diff options
523 files changed, 59540 insertions, 4193 deletions
diff --git a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.ati b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.ati index c6d9249..53c8e0b 100644 --- a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.ati +++ b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.ati @@ -6,7 +6,7 @@ Section "ServerLayout"  EndSection  Section "Files" -	RgbPath      "/usr/share/X11/rgb" +#	RgbPath      "/usr/share/X11/rgb"  	ModulePath   "/usr/lib/xorg/modules"  	FontPath     "/usr/share/fonts/misc"  	FontPath     "/usr/share/fonts/75dpi" diff --git a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.intel b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.intel index a4d258a..f3684fb 100644 --- a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.intel +++ b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.intel @@ -13,7 +13,7 @@ Section "ServerFlags"  EndSection  Section "Files" -	RgbPath      "/usr/share/X11/rgb" +#	RgbPath      "/usr/share/X11/rgb"  	ModulePath   "/usr/lib/xorg/modules"  	FontPath     "/usr/share/fonts/misc:unscaled"  	FontPath     "/usr/share/fonts/misc" diff --git a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.nvidia b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.nvidia index dec0f42..2cc4cb6 100755 --- a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.nvidia +++ b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.nvidia @@ -9,7 +9,7 @@ Section "ServerLayout"  EndSection  Section "Files" -    RgbPath         "/usr/X11R6/lib/X11/rgb" +#    RgbPath         "/usr/X11R6/lib/X11/rgb"  EndSection  Section "Module" diff --git a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vesa b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vesa index c569819..ce62457 100755 --- a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vesa +++ b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vesa @@ -9,7 +9,7 @@ Section "ServerLayout"  EndSection  Section "Files" -    RgbPath         "/usr/X11R6/lib/X11/rgb" +#    RgbPath         "/usr/X11R6/lib/X11/rgb"  EndSection  Section "Module" diff --git a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.via b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.via index 6dd7821..8454767 100644 --- a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.via +++ b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.via @@ -9,7 +9,7 @@ Section "ServerLayout"  EndSection  Section "Files" -    RgbPath         "/usr/X11R6/lib/X11/rgb" +#    RgbPath         "/usr/X11R6/lib/X11/rgb"  EndSection  Section "Module" diff --git a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vmware b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vmware index 843f2f4..a7a5113 100755 --- a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vmware +++ b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vmware @@ -9,7 +9,7 @@ Section "ServerLayout"  EndSection  Section "Files" -    RgbPath         "/usr/X11R6/lib/X11/rgb" +#    RgbPath         "/usr/X11R6/lib/X11/rgb"  EndSection  Section "Module" diff --git a/abs/core-testing/LinHES-config/xconfig.sh b/abs/core-testing/LinHES-config/xconfig.sh index 1d845b0..166f047 100755 --- a/abs/core-testing/LinHES-config/xconfig.sh +++ b/abs/core-testing/LinHES-config/xconfig.sh @@ -1,4 +1,5 @@  #!/bin/bash +NVPKGS="ati-dri xf86-video-ati xf86-video-radeonhd intel-dri xf86-video-intel unichrome-dri xf86-video-unichrome xf86-video-mga xf86-video-savage xf86-video-trident"  BASE=""  . /etc/profile  NVIDIA_96XX="$TEMPLATES/xorg/96xx_supported.txt" @@ -179,12 +180,12 @@ function setupX {                              then                                  #install 96xx drivers                                  echo "installing nvidia 96xx drivers" -                                pacman --noconfirm  -R libgl-dri > /dev/null 2>&1 +                                pacman --noconfirm  -R $NVPKGS > /dev/null 2>&1                                  pacman --noconfirm  -S nvidia-96xx nvidia-96xx-utils  > /dev/null 2>&1                              else                                  #install latest drivers                                  echo "installing current nvidia drivers" -                                pacman --noconfirm  -R libgl-dri > /dev/null 2>&1 +                                pacman --noconfirm  -R $NVPKGS > /dev/null 2>&1                                  pacman --noconfirm  -S nvidia nvidia-utils > /dev/null 2>&1                              fi                      fi @@ -198,7 +199,7 @@ function setupX {                      if [ ! x$TESTMODE = "xtest" ]                      then                          pacman --noconfirm  -R nvidia nvidia-utils > /dev/null 2>&1 -                        pacman --noconfirm  -S libgl-dri > /dev/null 2>&1 +                        pacman --noconfirm  -S libgl > /dev/null 2>&1                      fi                      ;; @@ -207,7 +208,7 @@ function setupX {                      if [ !  x$TESTMODE = "xtest" ]                      then                              pacman --noconfirm -R nvidia-utils > /dev/null 2>&1 -                            pacman --noconfirm -S libgl-dri > /dev/null 2>&1 +                            pacman --noconfirm -S libgl > /dev/null 2>&1                      fi                                  ;; diff --git a/abs/core-testing/LinHES-system/PKGBUILD b/abs/core-testing/LinHES-system/PKGBUILD index cad31f3..8135cff 100644 --- a/abs/core-testing/LinHES-system/PKGBUILD +++ b/abs/core-testing/LinHES-system/PKGBUILD @@ -1,6 +1,6 @@  pkgname=LinHES-system  pkgver=1.0 -pkgrel=17 +pkgrel=18  arch=('i686')  MVDIR=$startdir/pkg/usr/LH  BINDIR=$startdir/pkg/usr/bin diff --git a/abs/core-testing/LinHES-system/bin/backupcommon b/abs/core-testing/LinHES-system/bin/backupcommon index a5ed7c0..9b75db3 100755..100644 --- a/abs/core-testing/LinHES-system/bin/backupcommon +++ b/abs/core-testing/LinHES-system/bin/backupcommon @@ -1,12 +1,16 @@  #!/bin/bash +. /usr/LH/bin/library.sh || { +    echo 1>&2 "Can not load common library!" +    exit 1 +} +  #----------------------------------------------------------------------------  DATABASE="mythconverg" -DATABASE_DIR="/var/lib/mysql/$DATABASE" +DATABASE_DIR="/data/srv/mysql/$DATABASE"  BACKUP_LIST="./root ./home ./etc -             ./var/www/mythweb/.htaccess ./var/lib/alsa/asound.state" -RESTORE_LIST="./root ./home ./etc/mythtv/modules ./etc/lirc ./etc/htdigest -              ./etc/apache2/apache2.conf ./var/www/mythweb/.htaccess +             ./var/lib/alsa/asound.state" +RESTORE_LIST="./root ./home ./etc/mythtv/modules ./etc/lirc                ./etc/X11/xorg.conf ./etc/asound.conf ./etc/default/aumix                ./var/lib/alsa/asound.state ./etc/mplayer/mplayer.conf                ./etc/localtime ./etc/timezone" @@ -41,14 +45,54 @@ BACKUP_EXTRAS="$BACKUP_DIR/backup.list"  RESTORE_EXTRAS="$BACKUP_DIR/restore.list"  BACKUP_TAR="$BACKUP_DIR/savedfiles.tar"  BACKUP_SQL="$BACKUP_DIR/$DATABASE.sql" -DROP_SQL="/usr/local/share/knoppmyth/drop.sql" +#DROP_SQL="/usr/local/share/knoppmyth/drop.sql" +UTIL_DIR="/usr/LH/bin"  # Do we really still need to update from myth-0.11 to myth-0.12 ?  UPDATE_SQL="/usr/share/mythtv/sql/0.11-to-0.12.sql" -UPDATE_FILES="/usr/local/bin/restore_fixups.sh" +UPDATE_FILES="$UTIL_DIR/restore_fixups.sh"  COMPRESSION=".gz"  SOUNDS="/usr/share/sounds"  PLAYER="/usr/bin/aplay"  #---------------------------------------------------------------------------- +AWK=/bin/awk +BASH=/bin/bash +BUNZIP2=/bin/bunzip2 +BZIP2=/bin/bzip2 +CAT=/bin/cat +CHMOD=/bin/chmod +CHOWN=/bin/chown +EGREP=/bin/egrep +GREP=/bin/grep +GUNZIP=/bin/gunzip +GZIP=/bin/gzip +LS=/bin/ls +MV=/bin/mv +RM=/bin/rm +SED=/bin/sed +TAR=/bin/tar +TR=/bin/tr +DIFF=/usr/bin/diff +FIND=/usr/bin/find +MD5SUM=/usr/bin/md5sum +MYISAMCHK=/usr/bin/myisamchk +MYSQL=/usr/bin/mysql +MYSQLADMIN=/usr/bin/mysqladmin +MYSQLDUMP=/usr/bin/mysqldump +MYTHSHUTDOWN=/usr/bin/mythshutdown +SORT=/usr/bin/sort +WC=/usr/bin/wc +SV=/sbin/sv + +#---------------------------------------------------------------------------- + +require file+r+x $AWK $BASH $BUNZIP2 $BZIP2 $CAT $CHMOD $CHOWN $EGREP $GREP \ +                 $GUNZIP $GZIP $LS $MV $RM $SED $TAR $TR $DIFF $FIND $MD5SUM \ +                 $MYISAMCHK $MYSQL $MYSQLADMIN $MYSQLDUMP $MYTHSHUTDOWN \ +                 $SORT $WC $SV + +#require file+r "$DROP_SQL" + +require dir+r+w+x /tmp "$BACKUP_DIR" "$DATABASE_DIR"  play_sound () {      ($PLAYER $SOUNDS/$1 >& /dev/null)& @@ -56,26 +100,26 @@ play_sound () {  # Filter against an exclude list like the black list or the ignore list above  filter_list () { -    /bin/grep -vxF "$*" | -    /usr/bin/sort -u +    $GREP -vxF "$*" | +    $SORT -u  }  # Some people just can't read or follow directions... :-/  # This should track the directory names in the default backup list above  # We also use this to short circuit a certain incredibly dumb stunt  filter_redundant () { -    filter_list "$(echo $BACKUP_LIST ./myth | /usr/bin/tr -s ' ' '\n')" | -    /bin/egrep -v '^\./(root|home|etc|myth)/' | -    /usr/bin/sort -u +    filter_list "$($TR -s ' ' '\n' <<<"$BACKUP_LIST ./myth")" | +    $EGREP -v '^\./(root|home|etc|myth)/' | +    $SORT -u  }  get_extras () {      # One entry per line, and normalize the prefix -    /usr/bin/tr ' ' '\n' <"$1" | -    /usr/bin/awk '/^$/ {next} -                  /^\.\// {print $0 ; next} -                  /^\// {print "." $0 ; next} -                  { print "./" $0}' +    $TR ' ' '\n' <"$1" | +    $AWK '/^$/ {next} +          /^\.\// {print $0 ; next} +          /^\// {print "." $0 ; next} +          { print "./" $0}'  }  [ -f "$BACKUP_EXTRAS" ] && @@ -101,10 +145,10 @@ esac  shrink () {      case "$COMPRESSION" in      .gz) -        /bin/gzip -9 "$@" +        $GZIP -9 "$@"          ;;      .bz2) -        /bin/bzip2 -9 "$@" +        $BZIP2 -9 "$@"          ;;      *)          ;; @@ -114,13 +158,13 @@ shrink () {  expand () {      case "$*" in      *.gz) -        /bin/gunzip "$@" +        $GUNZIP "$@"          ;;      *.bz2) -        /bin/bunzip2 "$@" +        $BUNZIP2 "$@"          ;;      -c\ *) -        /bin/cat $2 /dev/null +        $CAT $2 /dev/null          ;;      -t\ *)          return 0 @@ -133,8 +177,8 @@ expand () {  }  single_format () { -    candidates=$(/bin/ls -1 "$1.gz" "$1.bz2" "$1" 2>/dev/null) -    case $(echo "$candidates" | /usr/bin/wc -l) in +    candidates=$($LS -1 "$1.gz" "$1.bz2" "$1" 2>/dev/null) +    case $($WC -l <<<"$candidates") in      1)  return 0  # One is good!      	;;      0)  echo "Error, no $1 found!" @@ -161,10 +205,10 @@ backup_roller () { # Gets the rollover sequence to use.      for i in "$@" ; do          for c in .gz .bz2 "" ; do              for f in $BACKUP_SQL $BACKUP_TAR ; do -                /bin/rm -f $f$c$prev_i +                $RM -f $f$c$prev_i                  if [ -f "$f$c$i" ] ; then                      echo "Moving $f$c$i to $f$c$prev_i" -                    /bin/mv -f $f$c$i $f$c$prev_i +                    $MV -f $f$c$i $f$c$prev_i                  fi              done          done @@ -174,17 +218,17 @@ backup_roller () { # Gets the rollover sequence to use.  # Given "subset A B" return true if is A a subset of B  subset () { -    cnt=$(/usr/bin/diff $1 $2 | /bin/grep '^<' | /usr/bin/wc -l) +    cnt=$($DIFF $1 $2 | $GREP '^<' | $WC -l)      [ "$cnt" -eq 0 ] && return 0 -    /usr/bin/diff $1 $2 +    $DIFF $1 $2  }  mysql_cmd () { -    /usr/bin/mysql -u root $DATABASE -sBe "$*" +    $MYSQL -u root $DATABASE -sBe "$*"  }  mysql_stdin () { -    /usr/bin/mysql -u root $DATABASE -sB +    $MYSQL -u root $DATABASE -sB  }  check_files () { @@ -205,14 +249,14 @@ check_files () {      echo "Generating a list of the backup contents..."      {      expand -c $BACKUP_TAR$c | -      /bin/tar tf - $OBJECT_LIST $EXCLUSION | -      /bin/sed '/\/$/s///' | +      $TAR tf - $OBJECT_LIST $EXCLUSION | +      $SED '/\/$/s///' |        filter_list "$IGNORE_LIST" >$SAVED_FILES -    } 2>&1 | /bin/sed -e '/Error exit delayed from previous errors/d' +    } 2>&1 | $SED -e '/Error exit delayed from previous errors/d'      echo "Generating a list of the directory contents..."      cd / -    /usr/bin/find $OBJECT_LIST \( -type d -or -type f -or -type l \) -print | +    $FIND $OBJECT_LIST \( -type d -or -type f -or -type l \) -print |        filter_list "$IGNORE_LIST" >$LIVE_FILES      echo "Comparing directory versus backup contents..." @@ -224,11 +268,11 @@ check_files () {          subset $SAVED_FILES $LIVE_FILES          ;;      *) -        /usr/bin/diff $LIVE_FILES $SAVED_FILES +        $DIFF $LIVE_FILES $SAVED_FILES          ;;      esac      FILE_STATUS=$? -    /bin/rm $LIVE_FILES $SAVED_FILES +    $RM $LIVE_FILES $SAVED_FILES      if [ $FILE_STATUS -eq 0 ] ; then          echo "Live and saved file lists match."      else @@ -240,11 +284,11 @@ check_files () {  has_records () {      filename="$1"      description="$2" -    if [ $(/usr/bin/wc -l < "$filename") -eq 0 ] ; then +    if [ $($WC -l < "$filename") -eq 0 ] ; then          echo "Warning, could not get record counts from $description!"          return 1      fi -    if [ $(/usr/bin/awk '{cnt+=$2} END {print cnt}' < "$filename") -eq 0 ] ; then +    if [ $($AWK '{cnt+=$2} END {print cnt}' < "$filename") -eq 0 ] ; then          echo "Warning, total record count from $description is zero!"          return 1      fi @@ -267,22 +311,22 @@ check_tables () {      echo "Generating a list of tables and record counts in the DB dump..."      expand -c "$BACKUP_SQL$c" | -      /usr/bin/awk '/CREATE TABLE/ { tbl = $3; gsub("`","",tbl); records[tbl] = 0; } \ +      $AWK '/CREATE TABLE/ { tbl = $3; gsub("`","",tbl); records[tbl] = 0; } \          /INSERT INTO/  { tbl = $3; gsub("`","",tbl); \                           n = split(substr($0,index($0,"VALUES (")+7),vals,"\\),\\("); \                           records[tbl] += n; } \          END { for (tbl in records) print tbl, records[tbl]; }' | -      /bin/sed 's/mythlog [0-9]*/mythlog 0/' | -      /usr/bin/sort >$SAVED_TABLES +      $SED 's/mythlog [0-9]*/mythlog 0/' | +      $SORT >$SAVED_TABLES      has_records "$SAVED_TABLES" "DB dump" || return 1      echo "Generating a list of tables and record counts in the live DB..."      for tbl in $(mysql_cmd "show tables") ; do          mysql_cmd "select '$tbl', count(*) from $tbl"      done | -      /usr/bin/tr -s '\t' ' ' | -      /bin/sed 's/mythlog [0-9]*/mythlog 0/' | -      /usr/bin/sort >$LIVE_TABLES +      $TR -s '\t' ' ' | +      $SED 's/mythlog [0-9]*/mythlog 0/' | +      $SORT >$LIVE_TABLES      has_records "$LIVE_TABLES" "live DB" || return 1      echo "Comparing live versus saved tables..." @@ -291,11 +335,11 @@ check_tables () {          subset $SAVED_TABLES $LIVE_TABLES          ;;      *)        # backup must exactly match the database -        /usr/bin/diff $LIVE_TABLES $SAVED_TABLES +        $DIFF $LIVE_TABLES $SAVED_TABLES          ;;      esac      TABLE_STATUS=$? -    /bin/rm $LIVE_TABLES $SAVED_TABLES +    $RM $LIVE_TABLES $SAVED_TABLES      if [ $TABLE_STATUS -eq 0 ] ; then          echo "Live and saved table lists match."      else @@ -314,4 +358,13 @@ check_files_and_tables () {      return $STATUS  } +stop_mysqld () { $SV stop mysql ; } +start_mysqld () { $SV start mysql ; } + +stop_mythbackend () { $SV stop mythbackend ; } +start_mythbackend () { $SV start mythbackend ; } + +lock_myth () { $MYTHSHUTDOWN --lock ; } +unlock_myth () { $MYTHSHUTDOWN --unlock ; } +  true # Make sure that this shows success diff --git a/abs/core-testing/LinHES-system/bin/checkbackup b/abs/core-testing/LinHES-system/bin/checkbackup index 129e5ff..b6d8587 100755 --- a/abs/core-testing/LinHES-system/bin/checkbackup +++ b/abs/core-testing/LinHES-system/bin/checkbackup @@ -1,7 +1,7 @@  #!/bin/bash  #---------------------------------------------------------------------------- -. $LinHES_ROOT/bin/backupcommon || { +. /usr/LH/bin/backupcommon || {      echo 1>&2 "Can not load common settings!"      exit 1  } diff --git a/abs/core-testing/LinHES-system/bin/checkrestore b/abs/core-testing/LinHES-system/bin/checkrestore index 73eb6bc..ef0360c 100755 --- a/abs/core-testing/LinHES-system/bin/checkrestore +++ b/abs/core-testing/LinHES-system/bin/checkrestore @@ -1,7 +1,7 @@  #!/bin/bash  #---------------------------------------------------------------------------- -. $LinHES_ROOT/bin/backupcommon  || { +. /usr/LH/bin/backupcommon || {      echo 1>&2 "Can not load common settings!"      exit 1  } diff --git a/abs/core-testing/LinHES-system/bin/library.sh b/abs/core-testing/LinHES-system/bin/library.sh new file mode 100755 index 0000000..2049de3 --- /dev/null +++ b/abs/core-testing/LinHES-system/bin/library.sh @@ -0,0 +1,164 @@ +msg () {  # A status reporting function +    [ "${VERBOSE:-0}" -gt 0 ] && echo "$*" +} + +error () { # An error reporting function +    echo 1>&2 "$*" +} + +fatal () { # Report an error and exit with a failure code +    error "$*" +    exit 1 +} + +# The only non builtin this uses is tr... +require () { # Check prerequisites +    e=0 +    props="$1" ; shift +    for obj in "$@" ; do +        [ -z "$obj" ] && continue # Too late to do anything itelligent... +        problems="" +        for prop in $(/bin/tr '+,' ' ' <<<"$props") ; do +            case "$prop" in +            e|exists) # kind of useless... +                [ -e "$obj" ] || problems="$problems, does not exist" ;; +            f|file) +                [ -f "$obj" ] || problems="$problems, is not a file" ;; +            d|dir) +                [ -d "$obj" ] || problems="$problems, is not a directory" ;; +            l|symlink) +                [ -L "$obj" ] || problems="$problems, is not a symlink" ;; +            nosymlink) +                [ -L "$obj" ] && problems="$problems, is a symlink" ;; +            r|readable) +                [ -r "$obj" ] || problems="$problems, is not readable" ;; +            w|writable) +                [ -w "$obj" ] || problems="$problems, is not writable" ;; +            x|executable) +                [ -x "$obj" ] || problems="$problems, is not executable" ;; +            *) +                fatal "Programmer error, unknown property: '$prop'" ;; +            esac +        done +        if [ -n "$problems" ] ; then +            error "Error: '$obj'$problems." +            e=1 +        fi +    done +    [ "$e" -ne 0 ] && fatal "Errors noted above are fatal." +} + +require file+r+x /bin/bash /bin/grep /bin/rm /bin/tr \ +                 /usr/bin/basename /usr/bin/env \ +                 /usr/bin/mysql /usr/bin/sort + +if [ -n "$DEBUG" ] ; then +    for debug_opt in $(/bin/tr ',' ' ' <<<"$DEBUG") ; do +        echo '============================================================' +        echo "==== $debug_opt" + +        # Note that the order you specifiy these debug options in matters. +        # I recommend always listing log first. For example: +        #   export DEBUG=log,env,set,trace +        case "$debug_opt" in +        env)    /usr/bin/env | /usr/bin/sort ;; +        set)    set ;; +        trace)  set -vx ;; +        log)    logfile="/tmp/$(/usr/bin/basename $0).$$.debug" +                /bin/rm -f "$logfile" # Try to avoid privilege escalation bugs +                echo "Redirecting stdout and stderr to '$logfile'" +                exec >"$logfile" 2>&1 ;; +        *)      error "Unknown debug option '$debug_opt'" ;; +        esac +    done +    echo '============================================================' +fi + +must_be_root () { # For things which must be run as root +    [ $(/usr/bin/id -u) -ne 0 ] && fatal "You must run this script as root!" +} + +must_be_mythtv () { # For things which must be run as mythtv (su if possible) +    case $(/usr/bin/id -nu) in +    mythtv) ;; # Continue +    root)   /bin/su - mythtv -c "$0 $*" ; exit $? ;; +    *)      fatal "You must run this script at mythtv or root!" ;; +    esac +} + +# Use a variable so you can override it. +DATABASE="mythconverg" + +mysql_cmd () { # Execute SQL from the command line +    /usr/bin/mysql -u root "$DATABASE" -sBe "$*" +} + +mysql_stdin () { # Execute SQL from stdin +    /usr/bin/mysql -u root "$DATABASE" -sB +} + +machine_clause () { # Helper function  +    if [ -z "$1" ] ; then +        echo "(hostname = '' or hostname is null)" +    else +        echo "hostname = '$1'" +    fi +} + +get_all_setting_names () { # List setting names +    case "$#" in +    0) MACHINE_CLAUSE="" ;; +    1) MACHINE_CLAUSE="where $(machine_clause "$1")" ;; +    *) fatal "Programmer error, get_all_names must be passed 0 or 1 args, got $#" ;; +    esac +    mysql_cmd "select distinct value from settings $MACHINE_CLAUSE order by value" +} + +get_all_setting_values () { # List settings +    case "$#" in +    0) MACHINE_CLAUSE="" ;; +    1) MACHINE_CLAUSE="where $(machine_clause "$1")" ;; +    *) fatal "Programmer error, get_all_values must be passed 0 or 1 args, got $#" ;; +    esac +    mysql_cmd "select value, data, hostname from settings $MACHINE_CLAUSE order by hostname, value, data" +} + +get_setting_value () { # Get the data for a setting (may return multiples!) +    case "$#" in +    1) MACHINE_CLAUSE="" ;; +    2) MACHINE_CLAUSE="and $(machine_clause "$2")" ;; +    *) fatal "Programmer error, get_value must be passed 1 or 2 args, got $#" ;; +    esac +    mysql_cmd "select data from settings where value = '$1' $MACHINE_CLAUSE" +} + +set_setting_value () { # Insert or update aome setting +    case "$#" in +    2) RECORD_CNT=$(get_value "$1" | wc -l) ;; +    3) RECORD_CNT=$(get_value "$1" "$3" | wc -l) ;; +    *) fatal "Programmer error, set_value must be passed 2 or 3 args, got $#" ;; +    esac +    MACHINE_CLAUSE="" +    if [ "$RECORD_CNT" -eq 0 ] ; then +        [ -n "$3" ] && MACHINE_CLAUSE=", $(machine_clause "$3")" +        mysql_cmd "insert into settings set value = '$1', data = '$2' $MACHINE_CLAUSE" +    else +        [ "$#" -eq 3 ] && MACHINE_CLAUSE="and $(machine_clause "$3")" +        mysql_cmd "update settings set data = '$2' where value = '$1' $MACHINE_CLAUSE" +    fi +} + +delete_setting_value () { # Totally remove some setting +    case "$#" in +    1) MACHINE_CLAUSE="" ;; +    2) MACHINE_CLAUSE="and $(machine_clause "$2")" ;; +    *) fatal "Programmer error, get_value must be passed 1 or 2 args, got $#" ;; +    esac +    mysql_cmd "delete from settings where value = '$1' $MACHINE_CLAUSE" +} + +# Filter against a newline seperated exclude list +filter_list () { +    /bin/grep -vxF "$*" | +    /usr/bin/sort -u +} diff --git a/abs/core-testing/LinHES-system/bin/mythbackup b/abs/core-testing/LinHES-system/bin/mythbackup index dfba611..d3cc4e8 100755 --- a/abs/core-testing/LinHES-system/bin/mythbackup +++ b/abs/core-testing/LinHES-system/bin/mythbackup @@ -1,18 +1,18 @@  #!/bin/bash  #---------------------------------------------------------------------------- -. $LinHES_ROOT/bin/backupcommon  || { +. /usr/LH/bin/backupcommon || {      echo 1>&2 "Can not load common settings!"      exit 1  }  #---------------------------------------------------------------------------- +# Prevent mythshutdown from shutting down the system in the middle... +lock_myth +  # Play a sound to let you know I'm starting.  play_sound init.wav -# Prevent mythshutdown from shutting down the system in the middle... -/usr/bin/mythshutdown --lock -  # Keep a chain of recent backups,  echo "Starting rollover of old backups, this may take a while..."  [ -f "$BACKUP_SQL" ] && shrink $BACKUP_SQL @@ -23,16 +23,16 @@ echo "Rollover completed."  # Start with the database backup, first we make sure it's healthy, and  # then we can dump it.  # Doing this while the backend is active would be BAD. -/etc/init.d/mythtv-backend stop +stop_mythbackend  # Stop, check, and fix $DATABASE db to ensure clean copy, then restart it. -/etc/init.d/mysql stop +stop_mysqld  cd $DATABASE_DIR -/usr/bin/myisamchk -f *.MYI -/etc/init.d/mysql stop ; /etc/init.d/mysql start +$MYISAMCHK -f *.MYI +start_mysqld  # Dumps the $DATABASE database -/usr/bin/mysqldump -c -u root $DATABASE > $BACKUP_SQL +$MYSQLDUMP -c -u root $DATABASE > $BACKUP_SQL  shrink $BACKUP_SQL  # Now to backup the other files, no fooling around, grab everything in the @@ -41,13 +41,13 @@ shrink $BACKUP_SQL  # gather all the things in the list into a nice tidy bundle  cd / -/bin/tar cvf $BACKUP_TAR $BACKUP_LIST 2>&1 | -    /bin/sed -e '/Error exit delayed from previous errors/d' +$TAR cvf $BACKUP_TAR $BACKUP_LIST 2>&1 | +    $SED -e '/Error exit delayed from previous errors/d'  shrink $BACKUP_TAR  # If you can't read this you've got no business restoring from it anyway. -/bin/chown root:root $BACKUP_TAR* $BACKUP_SQL* -/bin/chmod go-rwx $BACKUP_TAR* $BACKUP_SQL* +$CHOWN root:root $BACKUP_TAR* $BACKUP_SQL* +$CHMOD go-rwx $BACKUP_TAR* $BACKUP_SQL*  echo "Sanity checking your backup..."  play_sound testing.wav @@ -63,9 +63,9 @@ else  fi  # Now we can restart the backend. -/etc/init.d/mythtv-backend stop ; /etc/init.d/mythtv-backend start +start_mythbackend  # Unlock the system again... -/usr/bin/mythshutdown --unlock +unlock_myth  exit $STATUS diff --git a/abs/core-testing/LinHES-system/bin/mythrestore b/abs/core-testing/LinHES-system/bin/mythrestore index c13d357..7fce371 100755 --- a/abs/core-testing/LinHES-system/bin/mythrestore +++ b/abs/core-testing/LinHES-system/bin/mythrestore @@ -1,10 +1,7 @@  #!/bin/bash -# Let's prevent mythshutdown from shutting down the system. -/usr/bin/mythshutdown --lock -  #---------------------------------------------------------------------------- -. $LinHES_ROOT/bin/backupcommon  || { +. /usr/LH/bin/backupcommon || {      echo 1>&2 "Can not load common settings!"      exit 1  } @@ -18,7 +15,7 @@ do_file_updates() {  # A function because we need to do this in two places  do_db_updates() {      # We need to redo this since we just restored the old settings... -    /usr/bin/mythshutdown --lock +    lock_myth      # This is gross, but makes sure that the lock count has a sane value...      mysql_cmd "update settings set data = '1' where value = 'MythShutdownLock'" @@ -37,11 +34,14 @@ do_db_updates() {      mysql_cmd "drop table mythweb_sessions" >/dev/null 2>&1  } +# Let's prevent mythshutdown from shutting down the system. +lock_myth +  # Play a sound to let you know I'm starting.  play_sound restore.wav  # Doing this while the backend is active could be BAD. -/etc/init.d/mythtv-backend stop +stop_mythbackend  # If the standard backup file exists we try to restore the files based  # on our restore list. @@ -49,8 +49,8 @@ if compression=$(compression_type "$BACKUP_TAR") ; then      echo "Starting the restore of files..."      cd /      expand -c $BACKUP_TAR$compression | -        /bin/tar xpvf - $RESTORE_LIST $EXCLUSION 2>&1 | -        /bin/sed -e '/Error exit delayed from previous errors/d' +        $TAR xpvf - $RESTORE_LIST $EXCLUSION 2>&1 | +        $SED -e '/Error exit delayed from previous errors/d'      echo "Completed the restore of files."  fi @@ -58,9 +58,9 @@ fi  if compression=$(compression_type "$BACKUP_SQL") ; then      echo "Starting the DB restore, this can take a while..."      echo "Clearing out the existing skeleton..." -    mysql_stdin < $DROP_SQL +    #mysql_stdin < $DROP_SQL      echo "Recreating the db..." -    /usr/bin/mysqladmin -u root create $DATABASE +    $MYSQLADMIN -u root create $DATABASE      echo "Restoring the data (long)..."      expand -c $BACKUP_SQL$compression | mysql_stdin      echo "Doing any needed db updates..." @@ -87,6 +87,6 @@ do_db_updates  do_file_updates  # Now it's more or less safe to restart the backend. -/etc/init.d/mythtv-backend stop ; /etc/init.d/mythtv-backend start +start_mythbackend  exit $STATUS diff --git a/abs/core-testing/LinHES-system/bin/rollback.sh b/abs/core-testing/LinHES-system/bin/rollback.sh new file mode 100755 index 0000000..12897da --- /dev/null +++ b/abs/core-testing/LinHES-system/bin/rollback.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +#---------------------------------------------------------------------------- +. /usr/LH/bin/backupcommon || { +    echo 1>&2 "Can not load common settings!" +    exit 1 +} +#---------------------------------------------------------------------------- + +require file+r+x $MYTHSHUTDOWN + +# Prevent mythshutdown from shutting down the system in the middle... +lock_myth + +echo "Starting rollback of old backups" +backup_roller '' .1 .2 .3 .4 .5 .6 .7 .8 .9 .10 .11 .12 .13 .14 .15 .16 .17 .18 .19 +echo "Rollback completed." + +# Unlock the system again... +unlock_myth diff --git a/abs/core-testing/aalib/PKGBUILD b/abs/core-testing/aalib/PKGBUILD index ee23967..0ae5b05 100644 --- a/abs/core-testing/aalib/PKGBUILD +++ b/abs/core-testing/aalib/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 2990 2008-06-18 01:46:24Z eric $ +# $Id: PKGBUILD 9082 2008-08-17 03:29:36Z allan $  # Maintainer: arjan <arjan@archlinux.org>  # Contributor: Tom Newsom <Jeepster@gmx.co.uk>  #  pkgname=aalib  pkgver=1.4rc5 -pkgrel=5 +pkgrel=6  pkgdesc="AAlib is a portable ASCII art GFX library"  arch=('i686' 'x86_64')  url="http://aa-project.sourceforge.net/aalib/" @@ -18,7 +18,8 @@ md5sums=('9801095c42bba12edebd1902bcf0a990' '863a96a6689aa7ee073ca448bc2f133d')  build() {    cd $startdir/src/$pkgname-1.4.0    patch -Np0 -i ${startdir}/src/aclocal-fixes.patch || return 1 -  ./configure --prefix=/usr --mandir=/usr/share/man +  ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info    make || return 1    make DESTDIR=$startdir/pkg install +  rm ${pkgdir}/usr/share/info/dir  } diff --git a/abs/core-testing/acpid/PKGBUILD b/abs/core-testing/acpid/PKGBUILD index f39bbc1..4fbbdf2 100644 --- a/abs/core-testing/acpid/PKGBUILD +++ b/abs/core-testing/acpid/PKGBUILD @@ -1,31 +1,38 @@ +# $Id: PKGBUILD 20369 2008-12-03 02:03:14Z thayer $ +# Contributor: Manolis Tzanidakis +# Contributor: Judd Vinet <jvinet@zeroflux.org> +# Maintainer: Thayer Williams <thayer@archlinux.org>  pkgname=acpid -pkgver=1.0.6 -pkgrel=3 -arch=('i686') -pkgdesc="Utilities for using ACPI power management" +pkgver=1.0.8 +pkgrel=1 +pkgdesc="A daemon for delivering ACPI power management events"  url="http://acpid.sourceforge.net" +license=('GPL2') +arch=('i686' 'x86_64')  depends=(glibc) -source=(http://easynews.dl.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz -	acpid-1.0.4-gcc4.patch -	acpid -	anything -	handler.sh -	Makefile ) +source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz +    acpid +    anything +    handler.sh)  backup=('etc/acpi/handler.sh' 'etc/acpi/events/anything') -#options='-D_GNU_SOURCE' -MAKEFLAGS="-j2" +md5sums=('1d9c52fe2c0b51f8463f357c2a3d3ddb' +         '15903690f1bae4b3b0625b369de65521' +         '2d37b98d6e74bab815604b8b48c6cfd4' +         '0e8dd13793b1baa79a745f4034888367')  build() { -  cd $startdir/src/$pkgname-$pkgver - # patch -Np1 -i ${startdir}/src/acpid-1.0.4-gcc4.patch || return 1 -  cp ../Makefile . -  /usr/bin/make  || return 1 -  /bin/install -d -m0755 $startdir/pkg/usr/bin -  /usr/bin/make INSTPREFIX=$startdir/pkg \ -      MAN8DIR=$startdir/pkg/usr/man/man8 install -  /bin/install -D -m0755 ../acpid $startdir/pkg/etc/rc.d/acpid -  /bin/install -d -m0755 $startdir/pkg/etc/acpi/events -  /bin/install -D -m0644 ../anything $startdir/pkg/etc/acpi/events/anything -  /bin/install -D -m0755 ../handler.sh $startdir/pkg/etc/acpi/handler.sh +    cd $srcdir/$pkgname-$pkgver +    /usr/bin/make || return 1 +    /bin/install -d -m0755 $pkgdir/usr/bin || return 1 +    /usr/bin/make INSTPREFIX=$pkgdir \ +        MAN8DIR=$pkgdir/usr/share/man/man8 install || return 1 + +    # install our supplementary scripts +    /bin/install -D -m0755 $srcdir/acpid $pkgdir/etc/rc.d/acpid || return 1 +    /bin/install -D -m0644 $srcdir/anything $pkgdir/etc/acpi/events/anything || return 1 +    /bin/install -D -m0755 $srcdir/handler.sh $pkgdir/etc/acpi/handler.sh || return 1 + +    # set world readable bit on the acpid binary +    /bin/chmod 755 $pkgdir/usr/sbin/acpid || return 1  } diff --git a/abs/core-testing/acpid/handler.sh b/abs/core-testing/acpid/handler.sh index b885f77..ad31d1a 100755 --- a/abs/core-testing/acpid/handler.sh +++ b/abs/core-testing/acpid/handler.sh @@ -11,59 +11,55 @@ setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed"  set $*  case "$1" in -	button/power) -		#echo "PowerButton pressed!">/dev/tty5 -		case "$2" in -			PWRF)	logger "PowerButton pressed: $2" -      				xsay "Please wait while the system powers off" & -				 /sbin/halt-runit -				;; -			*)    logger "ACPI action undefined: $2" ;; -		esac -		;; -	button/sleep) -		case "$2" in -			SLPB) echo -n mem >/sys/power/state ;; -			*)    logger "ACPI action undefined: $2" ;; -		esac -		;; -	ac_adapter) -		case "$2" in -			AC) -				case "$4" in -					00000000) -						echo -n $minspeed >$setspeed -						#/etc/laptop-mode/laptop-mode start -					;; -					00000001) -						echo -n $maxspeed >$setspeed -						#/etc/laptop-mode/laptop-mode stop -					;; -				esac -				;; -			*) logger "ACPI action undefined: $2" ;; -		esac -		;; -	battery) -		case "$2" in -			BAT0) -				case "$4" in -					00000000)	#echo "offline" >/dev/tty5 -					;; -					00000001)	#echo "online"  >/dev/tty5 -					;; -				esac -				;; -			CPU0)	 -				;; -			*) logger "ACPI action undefined: $2" ;; -		esac -		;; - -	button/lid) -		#echo "LID switched!">/dev/tty5 -		;; -	*) -		logger "ACPI group/action undefined: $1 / $2" -		;; +    button/power) +        #echo "PowerButton pressed!">/dev/tty5 +        case "$2" in +            PWRF)   logger "PowerButton pressed: $2" ;; +            *)      logger "ACPI action undefined: $2" ;; +        esac +        ;; +    button/sleep) +        case "$2" in +            SLPB)   echo -n mem >/sys/power/state ;; +            *)      logger "ACPI action undefined: $2" ;; +        esac +        ;; +    ac_adapter) +        case "$2" in +            AC) +                case "$4" in +                    00000000) +                        echo -n $minspeed >$setspeed +                        #/etc/laptop-mode/laptop-mode start +                    ;; +                    00000001) +                        echo -n $maxspeed >$setspeed +                        #/etc/laptop-mode/laptop-mode stop +                    ;; +                esac +                ;; +            *)  logger "ACPI action undefined: $2" ;; +        esac +        ;; +    battery) +        case "$2" in +            BAT0) +                case "$4" in +                    00000000)   #echo "offline" >/dev/tty5 +                    ;; +                    00000001)   #echo "online"  >/dev/tty5 +                    ;; +                esac +                ;; +            CPU0)	 +                ;; +            *)  logger "ACPI action undefined: $2" ;; +        esac +        ;; +    button/lid) +        #echo "LID switched!">/dev/tty5 +        ;; +    *) +        logger "ACPI group/action undefined: $1 / $2" +        ;;  esac diff --git a/abs/core-testing/alsa-lib/PKGBUILD b/abs/core-testing/alsa-lib/PKGBUILD index 785f6b2..b49354a 100644 --- a/abs/core-testing/alsa-lib/PKGBUILD +++ b/abs/core-testing/alsa-lib/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 18680 2008-11-08 16:21:16Z tpowa $  # Maintainer: judd <jvinet@zeroflux.org>  pkgname=alsa-lib -pkgver=1.0.16 +pkgver=1.0.18  pkgrel=1  pkgdesc="An alternative implementation of Linux sound support" -arch=(i686 x86_64) +arch=('i686' 'x86_64')  url="http://www.alsa-project.org"  depends=('glibc')  optdepends=('python') @@ -13,11 +13,11 @@ makedepends=('python')  license=('GPL')  options=(!libtool)  source=(ftp://ftp.alsa-project.org/pub/lib/$pkgname-$pkgver.tar.bz2) -md5sums=('73b0986758bb762648a5fafc93e287c1')  build() { -  cd $startdir/src/$pkgname-$pkgver +  cd $srcdir/$pkgname-$pkgver    ./configure --prefix=/usr    make || return 1 -  make DESTDIR=$startdir/pkg install +  make DESTDIR=$pkgdir install  } +md5sums=('de60df7541fafe8c6a3397e0f105ff0e') diff --git a/abs/core-testing/alsa-oss/PKGBUILD b/abs/core-testing/alsa-oss/PKGBUILD index d70a9e9..66f7030 100644 --- a/abs/core-testing/alsa-oss/PKGBUILD +++ b/abs/core-testing/alsa-oss/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 13736 2008-09-28 09:04:09Z tpowa $  # Maintainer: judd <jvinet@zeroflux.org>  pkgname=alsa-oss -pkgver=1.0.15 +pkgver=1.0.17  pkgrel=1  pkgdesc="OSS compatibility library"  arch=(i686 x86_64)  license=('GPL')  url="http://www.alsa-project.org"  options=(!libtool) -depends=('glibc' 'alsa-lib>=1.0.15') +depends=('glibc' 'alsa-lib>=1.0.17a')  source=(ftp://ftp.alsa-project.org/pub/oss-lib/$pkgname-$pkgver.tar.bz2)  build() { @@ -17,4 +17,4 @@ build() {    make || return 1    make DESTDIR=$startdir/pkg install  } -md5sums=('49fb5fbae8bf955b248e46ff9c9a2aa1') +md5sums=('1b1850c2fc91476a73d50f537cbd402f') diff --git a/abs/core-testing/alsa-utils/PKGBUILD b/abs/core-testing/alsa-utils/PKGBUILD index a14e0ad..caa636c 100644 --- a/abs/core-testing/alsa-utils/PKGBUILD +++ b/abs/core-testing/alsa-utils/PKGBUILD @@ -1,27 +1,29 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 18682 2008-11-08 16:46:01Z tpowa $  # Maintainer: judd <jvinet@zeroflux.org>  pkgname=alsa-utils -pkgver=1.0.16 +pkgver=1.0.18  pkgrel=1  pkgdesc="An alternative implementation of Linux sound support" -arch=(i686 x86_64) +arch=('i686' 'x86_64')  url="http://www.alsa-project.org" -depends=('alsa-lib>=1.0.16' 'dialog' 'pciutils' 'ncurses') +#can not use >=$pkgver due to use of letters in alsa-lib update versioning +depends=("alsa-lib>1.0.17.999" 'dialog' 'pciutils' 'ncurses') +makedepends=('xmlto' 'docbook-xsl')  license=('GPL')  source=(ftp://ftp.alsa-project.org/pub/utils/$pkgname-${pkgver}.tar.bz2 \          alsa alsaconf.patch alsa.conf.d)  backup=(etc/conf.d/alsa) -md5sums=('b9f803f45e6988bb27a6bed521a949fc' -         'cce0969b0203a2bb35540fdf4f7e96ae' -         '538f82650d08e901efea86c5395520df' -         '366d370f874a45e67b63ce4a8b048202')  build() {    cd $startdir/src/$pkgname-${pkgver}    patch -Np1 -i ../alsaconf.patch || return 1 -  ./configure --prefix=/usr --with-curses=ncursesw +  ./configure --prefix=/usr    make || return 1    make DESTDIR=$startdir/pkg install    install -D -m755 ../alsa $startdir/pkg/etc/rc.d/alsa    install -D -m644 ../alsa.conf.d $startdir/pkg/etc/conf.d/alsa  } +md5sums=('0a6b26d27cc2adfd591d91d8c155fdb7' +         '9dff78913b13b10e67c4195e90395ed2' +         '538f82650d08e901efea86c5395520df' +         '93089f0d8872078939f76dd2acaebc2b') diff --git a/abs/core-testing/alsa-utils/alsa b/abs/core-testing/alsa-utils/alsa index 2581a9a..e1d6f28 100755 --- a/abs/core-testing/alsa-utils/alsa +++ b/abs/core-testing/alsa-utils/alsa @@ -7,7 +7,7 @@  case "$1" in    start)      stat_busy "Restoring ALSA Levels" -    /usr/sbin/alsactl restore +    /usr/sbin/alsactl $ALSA_ARGS restore      if [ $? -gt 0 ]; then        stat_fail      else @@ -17,20 +17,28 @@ case "$1" in      POWERSAVE=${POWERSAVE:-0}      if [ -e /sys/module/snd_ac97_codec/parameters/power_save \ -	 -a $POWERSAVE -ne 0 ]; then -        echo $POWERSAVE > /sys/module/snd_ac97_codec/parameters/power_save -        echo 1 > /dev/dsp +	  -a $POWERSAVE -ne 0 ]; then +      echo $POWERSAVE > /sys/module/snd_ac97_codec/parameters/power_save +      echo 1 > /dev/dsp      fi      if [ -e /sys/module/snd_hda_intel/parameters/power_save \ -	 -a $POWERSAVE -ne 0 ]; then -	echo $POWERSAVE > /sys/module/snd_hda_intel/parameters/power_save -        echo 1 > /dev/dsp +      -a $POWERSAVE -ne 0 ]; then +      echo $POWERSAVE > /sys/module/snd_hda_intel/parameters/power_save +      echo 1 > /dev/dsp      fi      ;;    stop) -    stat_busy "Saving ALSA Levels" -    /usr/sbin/alsactl store +    SAVE_VOLUME=${SAVE_VOLUME:-yes} +    if [ "$SAVE_VOLUME" == "yes" ]; then +      stat_busy "Saving ALSA Levels" +      /usr/sbin/alsactl $ALSA_ARGS store +    else +      stat_busy "Stopping ALSA" +    fi +    if [ "$MUTE_VOLUME" == "yes" ]; then +      /usr/bin/amixer -q set Master 0 mute +    fi      if [ $? -gt 0 ]; then        stat_fail      else @@ -44,5 +52,5 @@ case "$1" in      $0 start      ;;    *) -    echo "usage: $0 {start|stop|restart}"   +    echo "usage: $0 {start|stop|restart}"  esac diff --git a/abs/core-testing/alsa-utils/alsa.conf.d b/abs/core-testing/alsa-utils/alsa.conf.d index 1fa3d38..2c4a92e 100644 --- a/abs/core-testing/alsa-utils/alsa.conf.d +++ b/abs/core-testing/alsa-utils/alsa.conf.d @@ -1,4 +1,15 @@ +# Arguments for alsactl +# example: ALSA_ARGS="--file /var/run/alsa-state" +ALSA_ARGS="" +  # Enables powersaving mode for AC97 and hda_intel audio chips.  # Set to 1 to enable powersaving.  # Set to 0 to disable powersaving (default).  POWERSAVE=0 + +# Whether to save volume levels when stopped ("yes" or "no"). +SAVE_VOLUME="yes" + +# Whether to mute the master volume when stopped ("yes" or "no"). +# Useful for bad audio cards which make a noise on system poweroff. +MUTE_VOLUME="no" diff --git a/abs/core-testing/aspell/PKGBUILD b/abs/core-testing/aspell/PKGBUILD index 0b8a590..8d584b9 100644 --- a/abs/core-testing/aspell/PKGBUILD +++ b/abs/core-testing/aspell/PKGBUILD @@ -1,24 +1,31 @@ -# $Id: PKGBUILD 521 2008-04-20 13:00:37Z andyrtr $ -# Maintainer: dorphell <dorphell@archlinux.org> +# $Id: PKGBUILD 19099 2008-11-14 21:50:10Z thayer $  # Contributor: Jochem Kossen <j.kossen@home.nl> +# Contributor: dorphell <dorphell@archlinux.org> +# Maintainer: Thayer Williams <thayer@archlinux.org> +  pkgname=aspell  pkgver=0.60.6  _pkgmajorver=0.60 -pkgrel=1 -pkgdesc="A Free and Open Source spell checker designed to eventually replace Ispell" -arch=(i686 x86_64) +pkgrel=4 +pkgdesc="A spell checker designed to eventually replace Ispell" +url="http://aspell.net/" +arch=('i686' 'x86_64')  license=('LGPL') -depends=('gcc-libs' 'ncurses') +depends=('gcc-libs' 'ncurses>=5.6-7') +optdepends=('perl: to import old dictionaries')  options=(!libtool) -source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)  install=aspell.install -url="http://aspell.net/" +source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)  md5sums=('bc80f0198773d5c05086522be67334eb')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr +  cd ${srcdir}/${pkgname}-${pkgver} +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install -  ln -s ${pkgname}-${_pkgmajorver} ${startdir}/pkg/usr/lib/${pkgname} +  make DESTDIR=${pkgdir} install || return 1 +  ln -s ${pkgname}-${_pkgmajorver} ${pkgdir}/usr/lib/${pkgname} || return 1 + +  # cleanup info files +  rm ${pkgdir}/usr/share/info/dir || return 1 +  gzip ${pkgdir}/usr/share/info/* || return 1  } diff --git a/abs/core-testing/aspell/aspell.install b/abs/core-testing/aspell/aspell.install index b635a4a..2747f02 100644 --- a/abs/core-testing/aspell/aspell.install +++ b/abs/core-testing/aspell/aspell.install @@ -1,8 +1,23 @@ +infodir=/usr/share/info +filelist=(aspell.info aspell-dev.info) +  post_install() { -  echo "NOTE: aspell comes with no default dictionary" +  for file in ${filelist[@]}; do +    install-info $infodir/$file $infodir/dir 2> /dev/null +  done +  echo "==> aspell comes with no default dictionary" +} + +post_upgrade() { +  for file in ${filelist[@]}; do +    install-info $infodir/$file $infodir/dir 2> /dev/null +  done  } -op=$1 -shift +pre_remove() { +  for file in ${filelist[@]}; do +    install-info --delete $infodir/$file $infodir/dir 2> /dev/null +  done +} -[ "$(type -t "$op")" = "function" ] && $op "$@" +# vim:set ts=2 sw=2 et: diff --git a/abs/core-testing/ati-dri/PKGBUILD b/abs/core-testing/ati-dri/PKGBUILD new file mode 100644 index 0000000..253f136 --- /dev/null +++ b/abs/core-testing/ati-dri/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 17170 2008-10-26 11:01:19Z andyrtr $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Alexander Baldeck <alexander@archlinux.org> +pkgname=ati-dri +pkgver=7.2 +pkgrel=1 +pkgdesc="DRI drivers for ATI/AMD videochips" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +depends=('libdrm>=2.3.1' 'libgl>=7.2' 'expat>=2.0.1') +makedepends=('glproto>=1.4.9' 'pkgconfig' 'libxfixes' 'libxdamage' 'libxxf86vm' 'libxext') +conflicts=('xf86-video-ati<6.9.0-6') +options=('!libtool') +source=(http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${pkgver}.tar.bz2 +       mesa-7.1-link-shared.patch) +md5sums=('04d379292e023df0b0266825cb0dbde5' +         'f0baa948d9810f268413111ee439d24b') + +build() { +  cd "${srcdir}/Mesa-${pkgver}" +  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1 +  ./configure --prefix=/usr \ +    --with-dri-driverdir=/usr/lib/xorg/modules/dri \ +    --with-dri-drivers=radeon,r200,r300 \ +    --enable-glx-tls \ +    --disable-ttm-api \ +    --with-driver=dri \ +    --enable-xcb \ +    --disable-glu \ +    --disable-glut \ +    --disable-glw || return 1 +  make || return 1 +  cd src/mesa/drivers/dri || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  rm -f "${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so" +  rm -rf "${pkgdir}/usr/include" +  rm -rf "${pkgdir}/usr/lib/pkgconfig" +} diff --git a/abs/core-testing/ati-dri/mesa-7.1-link-shared.patch b/abs/core-testing/ati-dri/mesa-7.1-link-shared.patch new file mode 100644 index 0000000..7fdbf14 --- /dev/null +++ b/abs/core-testing/ati-dri/mesa-7.1-link-shared.patch @@ -0,0 +1,102 @@ +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile +--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000 +@@ -6,12 +6,17 @@ include $(TOP)/configs/current +  +  +  +-default: $(TOP)/$(LIB_DIR) subdirs ++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs +  +  + $(TOP)/$(LIB_DIR): + 	-mkdir $(TOP)/$(LIB_DIR) +  ++libdricore.so: ++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so ++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR)  +  + subdirs: + 	@for dir in $(DRI_DIRS) ; do \ +@@ -31,12 +36,14 @@ dri.pc: dri.pc.in + 	$(pcedit) $< > $@ +  +  +-install: dri.pc ++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so + 	@for dir in $(DRI_DIRS) ; do \ + 		if [ -d $$dir ] ; then \ + 			(cd $$dir && $(MAKE) install) || exit 1 ; \ + 		fi \ + 	done ++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) + 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal + 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \ + 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal +@@ -52,5 +59,6 @@ clean: + 			(cd $$dir && $(MAKE) clean) ; \ + 		fi \ + 	done ++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so + 	-rm -f common/*.o + 	-rm -f *.pc +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template +--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000 +@@ -1,6 +1,6 @@ + # -*-makefile-*- +  +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so +  + COMMON_SOURCES = \ +         ../common/utils.c \ +@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO +  + $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template + 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ +-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) ++		$(OBJECTS) $(WINOBJ) \ ++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \ ++		$(DRI_LIB_DEPS) +  +  + $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME) +diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S +--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000 +@@ -77,7 +77,6 @@ +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX +-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX + 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + 	pushl	%ebx +@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + 	pushl	%esi +@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + 	pushl	%esi +@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + 	.globl	_generic_read_RGBA_span_RGB565_MMX +-        .hidden _generic_read_RGBA_span_RGB565_MMX + 	.type	_generic_read_RGBA_span_RGB565_MMX, @function +  + _generic_read_RGBA_span_RGB565_MMX: diff --git a/abs/core-testing/aufs-utils/PKGBUILD b/abs/core-testing/aufs-utils/PKGBUILD index b845405..ee0932c 100644 --- a/abs/core-testing/aufs-utils/PKGBUILD +++ b/abs/core-testing/aufs-utils/PKGBUILD @@ -1,21 +1,24 @@ -# $Id: PKGBUILD 2265 2008-05-30 12:12:12Z paul $ +# $Id: PKGBUILD 15034 2008-10-12 11:58:48Z thomas $  # Contributor: Paul Mattal <paul@mattal.com>  # Maintainer: Paul Mattal <pjmattal@elys.com>  pkgname=aufs-utils -pkgver=20080527 +pkgver=20081012  pkgrel=1 -_kernver='2.6.26-ARCH' +_kernver='2.6.27-ARCH'  pkgdesc="Another Unionfs Implementation that supports NFS branches"  arch=('i686' 'x86_64')  url="http://aufs.sourceforge.net/"  license=('GPL2')  depends=('glibc')  source=(ftp://ftp.archlinux.org/other/aufs/aufs-$pkgver.tar.gz) -md5sums=('4378221aa5763d1f4408a0bbb0e80f0a') +md5sums=('fb5eaa69b2c7e6e521cb9a9cae9ac23f')  build() {    cd $startdir/src/aufs || return 1 +  # Fix TMPFS_MAGIC error +  sed 's|-le 26|-le 27|g' -i fs/aufs25/Makefile || return 1 +    # configure for NFS by:    # 1) configure local.mk to use FILP and LHASH    sed -i 's|CONFIG_AUFS_PUT_FILP_PATCH =|CONFIG_AUFS_PUT_FILP_PATCH = y|' \ diff --git a/abs/core-testing/aufs/PKGBUILD b/abs/core-testing/aufs/PKGBUILD index 57b6e24..37ae95f 100644 --- a/abs/core-testing/aufs/PKGBUILD +++ b/abs/core-testing/aufs/PKGBUILD @@ -1,34 +1,45 @@ -# $Id: PKGBUILD 5885 2008-07-21 19:28:11Z thomas $ +# $Id: PKGBUILD 15519 2008-10-14 07:05:41Z thomas $  # Contributor: Paul Mattal <paul@mattal.com>  # Maintainer: Paul Mattal <pjmattal@elys.com>  pkgname=aufs -pkgver=20080527 +pkgver=20081012  pkgrel=2 -_kernver='2.6.26-ARCH' +_kernver='2.6.27-ARCH'  pkgdesc="Another Unionfs Implementation that supports NFS branches"  arch=('i686' 'x86_64')  url="http://aufs.sourceforge.net/"  license=('GPL2') -depends=('kernel26>=2.6.26-1' 'kernel26<=2.6.27' 'glibc' 'aufs-utils') +depends=('kernel26>=2.6.27' 'kernel26<2.6.28' 'glibc' 'aufs-utils=20081012')  install=$pkgname.install  source=(ftp://ftp.archlinux.org/other/aufs/$pkgname-$pkgver.tar.gz)  options=(!libtool !makeflags) -md5sums=('4378221aa5763d1f4408a0bbb0e80f0a') +md5sums=('fb5eaa69b2c7e6e521cb9a9cae9ac23f')  build() {    cd $startdir/src/$pkgname || return 1 -  # use splice functions exported by unionfs kernel patch -  # - important for loopback fs mounts -  sed s'|#if.*KERNEL_VERSION(2, 6, 26).*|#if 0|' -i fs/aufs25/vfsub.h \ -    || return 1 +  # Fix TMPFS_MAGIC error +  sed 's|-le 26|-le 27|g' -i fs/aufs25/Makefile || return 1 + +  # use splice functions exported by unionfs kernel patch' +  # - important for loopback fs mounts     sed -i 's|CONFIG_AUFS_SPLICE_PATCH =|CONFIG_AUFS_SPLICE_PATCH = y|' \ -    local.mk || return 1 +     local.mk || return 1 + +  # this fixes the unionfs patch from hanging aufs +  sed -i 's|CONFIG_AUFS_UNIONFS23_PATCH =|CONFIG_AUFS_UNIONFS23_PATCH = y|' \ +     local.mk || return 1 + +  sed -i 's|CONFIG_AUFS_WORKAROUND_FUSE =|CONFIG_AUFS_WORKAROUND_FUSE = y|' \ +     local.mk || return 1 -  # patch for spin_lock conflict with the new unionfs patch -  sed s'|#if.*KERNEL_VERSION(2, 6, 26).*|#if 0|' -i fs/aufs25/cpup.c \ -    || return 1 +  sed -i 's|CONFIG_AUFS_BRANCH_MAX_127 = y|CONFIG_AUFS_BRANCH_MAX_127 =|' \ +     local.mk || return 1 +          	        	       	       	    +  sed -i 's|CONFIG_AUFS_BRANCH_MAX_1023 =|CONFIG_AUFS_BRANCH_MAX_1023 = y|' \ +     local.mk || return 1 +  # ???    sed -i 's|.*CONFIG_AUFS_SHWH =.*|CONFIG_AUFS_SHWH = y|' \      local.mk || return 1 diff --git a/abs/core-testing/aufs/aufs.install b/abs/core-testing/aufs/aufs.install index 42d039a..1a303d6 100644 --- a/abs/core-testing/aufs/aufs.install +++ b/abs/core-testing/aufs/aufs.install @@ -5,7 +5,7 @@ pre_install() {  post_install() {    # updating module dependencies    echo ">>> Updating module dependencies. Please wait ..." -  KERNEL_VERSION=2.6.26-ARCH +  KERNEL_VERSION=2.6.27-ARCH    depmod -v $KERNEL_VERSION > /dev/null 2>&1    /bin/true  } @@ -13,7 +13,7 @@ post_install() {  post_upgrade() {    # updating module dependencies    echo ">>> Updating module dependencies. Please wait ..." -  KERNEL_VERSION=2.6.26-ARCH +  KERNEL_VERSION=2.6.27-ARCH    depmod -v $KERNEL_VERSION > /dev/null 2>&1    /bin/true  } @@ -21,7 +21,7 @@ post_upgrade() {  post_remove() {    # updating module dependencies    echo ">>> Updating module dependencies. Please wait ..." -  KERNEL_VERSION=2.6.26-ARCH +  KERNEL_VERSION=2.6.27-ARCH    depmod -v $KERNEL_VERSION > /dev/null 2>&1    /bin/true  } diff --git a/abs/core-testing/avahi/ChangeLog b/abs/core-testing/avahi/ChangeLog index e4d3f7a..e298fb4 100644 --- a/abs/core-testing/avahi/ChangeLog +++ b/abs/core-testing/avahi/ChangeLog @@ -1,4 +1,8 @@ +2009-01-04  Douglas Soares de Andrade  <douglas@archlinux.org> + +	* Updated for i686: 0.6.24 +  2008-07-22  Douglas Soares de Andrade  <douglas@archlinux.org>  	* Updated for i686: 0.6.23 diff --git a/abs/core-testing/avahi/PKGBUILD b/abs/core-testing/avahi/PKGBUILD index f98180b..e068e17 100644 --- a/abs/core-testing/avahi/PKGBUILD +++ b/abs/core-testing/avahi/PKGBUILD @@ -1,26 +1,24 @@ -# $Id: PKGBUILD 6066 2008-07-23 03:45:52Z douglas $ -# Maintainer: Travis Willard <travis@archlinux.org> +# $Id: PKGBUILD 23159 2009-01-04 04:58:11Z douglas $ +# Maintainer: Douglas Soares de Andrade <douglas@archlinux.org>  pkgname=avahi -pkgver=0.6.23 +pkgver=0.6.24  pkgrel=1  pkgdesc="A multicast/unicast DNS-SD framework"  arch=('i686' 'x86_64')  url="http://www.avahi.org/"  license=('LGPL') -#depends=('dbus>=1.1.20-1' 'libcap' 'libdaemon>=0.11' 'gdbm' 'glib2' 'expat') -depends=('libcap' 'libdaemon>=0.11' 'gdbm' 'glib2' 'expat' 'dbus-python') +depends=('dbus>=1.1.20-1' 'libcap' 'libdaemon>=0.11' 'gdbm' 'glib2' 'expat')  optdepends=('qt3:Qt3 UI support' 'libglade:Avahi-discover-standalone'              'nss-mdns:NSS support for mDNS') -makedepends=('qt3' 'libglade' 'intltool') - +makedepends=('mono' 'pygtk' 'gtk-sharp-2' 'dbus-python' 'qt3' 'libglade' 'intltool')  backup=(etc/avahi/avahi-daemon.conf)  install=avahi.install  conflicts=('howl' 'mdnsresponder')  provides=('howl' 'mdnsresponder')  replaces=('howl' 'mdnsresponder')  options=('!libtool') -source=(http://www.avahi.org/download/avahi-${pkgver}.tar.gz) +source=(http://www.avahi.org/download/avahi-${pkgver}.tar.gz gnome-nettool.png)  build() {    [ -z "${QTDIR}" ] && . /etc/profile.d/qt3.sh @@ -39,7 +37,10 @@ build() {      --enable-compat-howl \      --with-distro=archlinux \      --with-avahi-priv-access-group=network \ -    --disable-autoipd --disable-glib     --disable-pygtk --disable-mono --disable-xmltoman +    --enable-autoipd \ +    --with-autoipd-user=avahi \ +    --with-autoipd-group=avahi +    make || return 1    make DESTDIR=${startdir}/pkg install @@ -57,9 +58,7 @@ build() {    cd ${startdir}/pkg/usr/lib/pkgconfig    ln -s avahi-compat-howl.pc howl.pc    mkdir -p ${startdir}/pkg/usr/share/pixmaps -#  install -m 644 ${startdir}/src/gnome-nettool.png ${startdir}/pkg/usr/share/pixmaps/gnome-nettool.png +  install -m 644 ${startdir}/src/gnome-nettool.png ${startdir}/pkg/usr/share/pixmaps/gnome-nettool.png  } - -md5sums=('aab1a304851d8145ea5f6a85c10af9e9' +md5sums=('068c1d220b07037e64caf87d4a7a0504'           '42c2905307c7a5dc6ac4b75f4c3d65a3') - diff --git a/abs/core-testing/avahi/gnome-nettool.png b/abs/core-testing/avahi/gnome-nettool.png Binary files differnew file mode 100644 index 0000000..227d067 --- /dev/null +++ b/abs/core-testing/avahi/gnome-nettool.png diff --git a/abs/core-testing/binutils/PKGBUILD b/abs/core-testing/binutils/PKGBUILD index f958da6..9a8b925 100644 --- a/abs/core-testing/binutils/PKGBUILD +++ b/abs/core-testing/binutils/PKGBUILD @@ -1,45 +1,46 @@ -# $Id: PKGBUILD 2707 2008-06-12 14:03:09Z andyrtr $ -# Maintainer: judd <jvinet@zeroflux.org> +# $Id: PKGBUILD 19325 2008-11-20 11:47:00Z andyrtr $ +# Maintainer: Andreas Radke <andyrtr@archlinux.org> -# compile always twice: first binutils, then gcc, then binutils again +# toolchain build order: kernel-headers->glibc->binutils->gcc-libs->gcc->binutils->glibc  pkgname=binutils -pkgver=2.18 -pkgrel=17 -_date=20080610 +pkgver=2.19 +pkgrel=1 +_date=20081119  pkgdesc="A set of programs to assemble and manipulate binary and object files"  arch=('i686' 'x86_64')  url="http://sources.redhat.com/binutils"  license=('GPL')  groups=('base')  options=('!libtool' '!distcc' '!ccache') -depends=('glibc>=2.8-1') -makedepends=('texinfo>=4.12-2') +depends=('glibc>=2.9-1' 'texinfo>=4.12-3')  source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2) -md5sums=('9847b4141a1c99558cfd88dd65182566') +md5sums=('4a49694b08ef0e5931dba4813326d062') +install=binutils.install  build() {    # for cvs checkout  #  mkdir ${startdir}/src/${pkgname}-${_date}  #  cd ${startdir}/src/${pkgname}-${_date} -#  export _TAG=binutils-2_18-branch +#  export _TAG=binutils-2_19-branch  #  export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src'  #  cvs -z9 co -r $_TAG binutils || return 1 -#  cd src && tar -cvjf ../binutils-2.18_${_date}.tar.bz2 * +#  cd src && tar -cvjf ../../../binutils-2.19_${_date}.tar.bz2 *  #  return 1    cd ${startdir}/src -  autoconf    mkdir build    cd build    CC="gcc -L`pwd`/bfd/.libs/"    if [ "${CARCH}" = "x86_64" ]; then -    ../configure --prefix=/usr --enable-shared --enable-64-bit-bfd --disable-multilib  +    ../configure --prefix=/usr --infodir=/usr/share/info --enable-shared --enable-64-bit-bfd --disable-multilib     else -    ../configure --prefix=/usr --enable-shared +    ../configure --prefix=/usr --infodir=/usr/share/info --enable-shared    fi +  # fix info files install path +  sed -i -e "s:infodir \= \/usr\/share:infodir \= ${pkgdir}\/usr\/share:" ${srcdir}/build/Makefile || return 1    # This checks the host environment and makes sure all the necessary tools are available to compile Binutils.    make configure-host || return 1 @@ -64,4 +65,6 @@ build() {    # Remove these symlinks, with binutils prereleases they are not ABI stable.    # Programs should compile static to the .a file.    rm -f ${startdir}/pkg/usr/lib/lib{bfd,opcodes}.so + +  rm -f ${pkgdir}/usr/share/info/dir  } diff --git a/abs/core-testing/binutils/binutils.install b/abs/core-testing/binutils/binutils.install new file mode 100644 index 0000000..a1e762a --- /dev/null +++ b/abs/core-testing/binutils/binutils.install @@ -0,0 +1,20 @@ +infodir=/usr/share/info +filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info) + +post_install() { +  for file in ${filelist[@]}; do +    install-info $infodir/$file $infodir/dir 2> /dev/null +  done +} + +post_upgrade() { +  post_install $1 +} + +pre_remove() { +  for file in ${filelist[@]}; do +    install-info --delete $infodir/$file $infodir/dir 2> /dev/null +  done +} + +# vim:set ts=2 sw=2 et: diff --git a/abs/core-testing/dbus-core/PKGBUILD b/abs/core-testing/dbus-core/PKGBUILD new file mode 100644 index 0000000..7a1bc6e --- /dev/null +++ b/abs/core-testing/dbus-core/PKGBUILD @@ -0,0 +1,53 @@ +# $Id: PKGBUILD 19084 2008-11-14 21:36:59Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Link Dupont <link@subpop.net> +# +pkgname=dbus-core +pkgver=1.2.4 +pkgrel=1 +pkgdesc="Freedesktop.org message bus system" +url="http://www.freedesktop.org/Software/dbus" +arch=(i686 x86_64) +license=('GPL' 'custom') +depends=('expat>=2.0') +conflicts=('dbus<1.2.3-2') +options=(!libtool) +install=dbus.install +source=(http://dbus.freedesktop.org/releases/dbus/dbus-${pkgver}.tar.gz +	dbus) +md5sums=('2e643910a09f44b000a0d76038637999' +         'f3fd196cc278bd7b45a4ca01fb8f7894') + +build() { +  cd "${srcdir}/dbus-${pkgver}" +  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ +  	      --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \ +              --with-system-pid-file=/var/run/dbus.pid \ +	      --enable-inotify --disable-dnotify \ +              --disable-verbose-mode --disable-static \ +	      --disable-tests --disable-asserts --without-x || return 1 +  make || return 1 +  make DESTDIR="${pkgdir}" install || return 1 + +  rm -f ${pkgdir}/usr/bin/dbus-launch +  rm -f ${pkgdir}/usr/share/man/man1/dbus-launch.1 + +  chown 81:81 "${pkgdir}/var/run/dbus" || return 1 + +  install -m755 -d "${pkgdir}/etc/rc.d" || return 1 +  install -m755 "${srcdir}/dbus" "${pkgdir}/etc/rc.d/" || return 1 + +  #Fix configuration file +  sed -i -e 's|<user>81</user>|<user>dbus</user>|' "${pkgdir}/etc/dbus-1/system.conf" || return 1 + +  #install .keep files so pacman doesn't delete empty dirs +  touch "${pkgdir}/usr/share/dbus-1/services/.keep" || return 1 +  touch "${pkgdir}/usr/share/dbus-1/system-services/.keep" || return 1 +  touch "${pkgdir}/etc/dbus-1/session.d/.keep" || return 1 +  touch "${pkgdir}/etc/dbus-1/system.d/.keep" || return 1 + +  rmdir "${pkgdir}/usr/lib/dbus-1.0/dbus-1" || return 1 + +  install -d -m755 "${pkgdir}/usr/share/licenses/dbus-core" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/dbus-core/" || return 1 +} diff --git a/abs/core-testing/dbus-core/dbus b/abs/core-testing/dbus-core/dbus new file mode 100644 index 0000000..cd26db8 --- /dev/null +++ b/abs/core-testing/dbus-core/dbus @@ -0,0 +1,57 @@ +#!/bin/bash + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in +    start) +        stat_busy "Starting D-BUS system messagebus" +	if [ ! -x /var/run/dbus ] ; then +	    install -m755 -g 81 -o 81 -d /var/run/dbus +	fi +        if [ -x /usr/bin/dbus-uuidgen ] ; then +            /usr/bin/dbus-uuidgen --ensure +        fi + +        /usr/bin/dbus-daemon --system +        if [ $? -gt 0 ]; then +            stat_fail +        else +            add_daemon dbus +            stat_done +        fi +        ;; +    stop) +        stat_busy "Stopping D-BUS system messagebus" +	[ -f /var/run/dbus.pid ] && kill `cat /var/run/dbus.pid` +        if [ $? -gt 0 ]; then +            stat_fail +        else +	    rm -f /var/run/dbus.pid +            rm_daemon dbus +            stat_done +        fi +        ;; +    restart) +        $0 stop +	sleep 1 +        $0 start +        ;; +    reload) +        stat_busy "Reloading D-BUS configuration" +        [ -f /var/run/dbus.pid ] && /usr/bin/dbus-send \ +                --system --type=method_call \ +                --dest=org.freedesktop.DBus \ +                / org.freedesktop.DBus.ReloadConfig +        if [ $? -gt 0 ]; then +            stat_fail +        else +            stat_done +        fi +        ;; +    *) +        echo "usage: $0 {start|stop|restart|reload}" +	;; +esac +exit 0 diff --git a/abs/core-testing/dbus-core/dbus.install b/abs/core-testing/dbus-core/dbus.install new file mode 100644 index 0000000..85dd9a7 --- /dev/null +++ b/abs/core-testing/dbus-core/dbus.install @@ -0,0 +1,21 @@ +post_install() { +  getent group dbus >/dev/null || usr/sbin/groupadd -g 81 dbus +  getent passwd dbus >/dev/null || usr/sbin/useradd -c 'System message bus' -u 81 -g dbus -d '/' -s /bin/false dbus +  usr/bin/passwd -l dbus &>/dev/null +  dbus-uuidgen --ensure +} + +# arg 1:  the new package version +# arg 2:  the old package version +post_upgrade() { +  post_install $1 + +  #Make sure new rc script can shutdown running dbus +  [ -f var/run/dbus/pid ] && mv var/run/dbus/pid var/run/dbus.pid +} + +# arg 1:  the old package version +pre_remove() { +  usr/sbin/userdel dbus &>/dev/null +  usr/sbin/groupdel dbus &>/dev/null +} diff --git a/abs/core-testing/dbus-glib/PKGBUILD b/abs/core-testing/dbus-glib/PKGBUILD index 4eb8838..c4e5026 100644 --- a/abs/core-testing/dbus-glib/PKGBUILD +++ b/abs/core-testing/dbus-glib/PKGBUILD @@ -1,22 +1,22 @@ -# $Id: PKGBUILD 3474 2008-06-22 20:19:25Z jgc $ +# $Id: PKGBUILD 22368 2008-12-26 15:52:52Z jgc $  # Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=dbus-glib -pkgver=0.76 +pkgver=0.78  pkgrel=1  pkgdesc="GLib bindings for DBUS"  arch=(i686 x86_64)  license=('GPL')  url="http://www.freedesktop.org/wiki/Software/DBusBindings" -depends=('dbus>=1.2.1' 'glib2>=2.16.3') +depends=('dbus>=1.2.4' 'glib2>=2.18.3')  makedepends=('pkgconfig')  options=('!libtool')  source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz) -md5sums=('d3b716a7e798faa1c6a867675f00306a') +md5sums=('d4aa04b9df35b4bd663be38e959941c8')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-static=no || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/core-testing/dbus-python/PKGBUILD b/abs/core-testing/dbus-python/PKGBUILD index e3e845f..ae77c04 100644 --- a/abs/core-testing/dbus-python/PKGBUILD +++ b/abs/core-testing/dbus-python/PKGBUILD @@ -1,18 +1,17 @@ -# $Id: PKGBUILD 9903 2008-08-20 20:08:55Z jgc $ +# $Id: PKGBUILD 17272 2008-10-27 16:25:58Z douglas $  # Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=dbus-python  pkgver=0.83.0 -pkgrel=1 +pkgrel=2  pkgdesc="Python bindings for DBUS"  arch=(i686 x86_64)  license=('GPL' 'LGPL')  url="http://www.freedesktop.org/wiki/Software/DBusBindings" -depends=('dbus-glib>=0.76' 'python>=2.5') +depends=('dbus-glib>=0.76' 'python>=2.6')  makedepends=('pkgconfig')  options=('!libtool')  source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz) -md5sums=('562c78876219bf458d79a041af18293d')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} @@ -20,3 +19,4 @@ build() {    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } +md5sums=('562c78876219bf458d79a041af18293d') diff --git a/abs/core-testing/dbus/30-dbus b/abs/core-testing/dbus/30-dbus new file mode 100644 index 0000000..603e92d --- /dev/null +++ b/abs/core-testing/dbus/30-dbus @@ -0,0 +1,9 @@ +#!/bin/bash + +# launches a session dbus instance + +dbuslaunch="`which dbus-launch 2>/dev/null`" +if [ -n "$dbuslaunch" ] && [ -x "$dbuslaunch" ] && [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then +  eval `$dbuslaunch --sh-syntax --exit-with-session` +fi + diff --git a/abs/core-testing/dbus/PKGBUILD b/abs/core-testing/dbus/PKGBUILD index dc747bc..3276f82 100644 --- a/abs/core-testing/dbus/PKGBUILD +++ b/abs/core-testing/dbus/PKGBUILD @@ -1,48 +1,38 @@ -# $Id: PKGBUILD 9899 2008-08-20 20:01:17Z jgc $ +# $Id: PKGBUILD 19087 2008-11-14 21:39:51Z jgc $  # Maintainer: Jan de Groot <jgc@archlinux.org>  # Contributor: Link Dupont <link@subpop.net>  #  pkgname=dbus -pkgver=1.2.3 +pkgver=1.2.4  pkgrel=1  pkgdesc="Freedesktop.org message bus system"  url="http://www.freedesktop.org/Software/dbus"  arch=(i686 x86_64)  license=('GPL' 'custom') -depends=('expat>=2.0' 'libx11' 'libsm') -options=(!libtool) -install=dbus.install +depends=("dbus-core>=${pkgver}" 'libx11' 'libsm')  source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz -	dbus) -md5sums=('f71641385768e99361bd298568207cee' -         'f3fd196cc278bd7b45a4ca01fb8f7894') +	30-dbus) +md5sums=('2e643910a09f44b000a0d76038637999' +         'd14e59575f04e55d21a04907b6fd9f3c')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd ${srcdir}/${pkgname}-${pkgver}    ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \    	      --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \                --with-system-pid-file=/var/run/dbus.pid \                --disable-verbose-mode --disable-static \ +	      --enable-inotify --disable-dnotify \  	      --disable-tests --disable-asserts || return 1 -  make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 -  chown 81:81 ${startdir}/pkg/var/run/dbus || return 1 +  cd tools || return 1 +  make dbus-launch || return 1 +  install -m755 -d ${pkgdir}/usr/bin +  install -m755 -d ${pkgdir}/usr/share/man/man1 +  install -m755 dbus-launch ${pkgdir}/usr/bin/ || return 1 +  install -m644 dbus-launch.1 ${pkgdir}/usr/share/man/man1/ || return 1 -  install -m755 -d  ${startdir}/pkg/etc/rc.d || return 1 -  install -m 755 ${startdir}/dbus ${startdir}/pkg/etc/rc.d/ || return 1 - -  #Fix configuration file -  sed -i -e 's|<user>81</user>|<user>dbus</user>|' ${startdir}/pkg/etc/dbus-1/system.conf || return 1 - -  #install .keep files so pacman doesn't delete empty dirs -  touch ${startdir}/pkg/usr/share/dbus-1/services/.keep || return 1 -  touch ${startdir}/pkg/usr/share/dbus-1/system-services/.keep || return 1 -  touch ${startdir}/pkg/etc/dbus-1/session.d/.keep || return 1 -  touch ${startdir}/pkg/etc/dbus-1/system.d/.keep || return 1 - -  rmdir ${startdir}/pkg/usr/lib/dbus-1.0/dbus-1 || return 1 +  install -m755 -d ${pkgdir}/etc/X11/xinit/xinitrc.d +  install -m755 ${srcdir}/30-dbus ${pkgdir}/etc/X11/xinit/xinitrc.d/ || return 1    install -d -m755 ${startdir}/pkg/usr/share/licenses/dbus -  install -m644 ${startdir}/src/${pkgname}-${pkgver}/COPYING \ -    ${startdir}/pkg/usr/share/licenses/dbus/ || return 1 +  install -m644 ../COPYING ${pkgdir}/usr/share/licenses/dbus/ || return 1  } diff --git a/abs/core-testing/dvb-firmware/PKGBUILD b/abs/core-testing/dvb-firmware/PKGBUILD index 6ad5707..0a4fd33 100644 --- a/abs/core-testing/dvb-firmware/PKGBUILD +++ b/abs/core-testing/dvb-firmware/PKGBUILD @@ -3,13 +3,13 @@  pkgname=dvb-firmware  pkgver=1 -pkgrel=1 +pkgrel=2  pkgdesc="Firmware for DVB cards"  arch=('i586' 'i686' 'x86_64')  license=('GPL2')  url="http://linuxtv.org/"  source=(ftp://ftp.knoppmyth.net/R6/sources/dvb-firmware.tar.bz2) -md5sums=('d58a3f2b556cf32ac5ab68cd86fcf6ec') +md5sums=('adc049deeeffc6ae8f57561396a73cb9')  build() {    cd $startdir/src/ diff --git a/abs/core-testing/fam/PKGBUILD b/abs/core-testing/fam/PKGBUILD new file mode 100644 index 0000000..e7f5e41 --- /dev/null +++ b/abs/core-testing/fam/PKGBUILD @@ -0,0 +1,49 @@ +# $Id: PKGBUILD 15741 2008-10-18 01:59:29Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Contributor: Tom Newsom <Jeepster@gmx.co.uk> +pkgname=fam +pkgver=2.7.0 +pkgrel=11 +pkgdesc="File Alteration Monitor - used by KDE, GNOME and others" +arch=('i686' 'x86_64') +license=('LGPL' 'GPL') +depends=('portmap') +url="http://oss.sgi.com/projects/fam/" +backup=(etc/fam/fam.conf) +options=('!makeflags') # Don't !libtool +source=(ftp://oss.sgi.com/projects/fam/download/stable/${pkgname}-${pkgver}.tar.gz +	fam-2.7.0-dnotify.patch +	fam-2.7.0-largefiles.patch +	fam-2.7.0-noc++.patch +	fam-2.7.0-gcc43.patch +	include_fam_h.patch +	fam) +md5sums=('1bf3ae6c0c58d3201afc97c6a4834e39' +         '073d1763318344635ea316293390205c' +         '47b41e0b0498793af004696a096d7da1' +         '0274cd113d3dcb015653b5606c7714ac' +         '13c14778038aa9601a27498448e855e0' +         '2638b8ffacb9f03b6e438e08ea7b290a' +         '45b648907ba1c7edec17fb544f1f4a13') + +build() { +  cd ${srcdir}/${pkgname}-${pkgver} +  patch -Np1 -i ${srcdir}/fam-2.7.0-dnotify.patch || return 1 +  patch -Np1 -i ${srcdir}/fam-2.7.0-largefiles.patch || return 1 +  patch -Np0 -i ${srcdir}/include_fam_h.patch || return 1 +  patch -Np1 -i ${srcdir}/fam-2.7.0-noc++.patch || return 1 +  patch -Np1 -i ${srcdir}/fam-2.7.0-gcc43.patch || return 1 + +  chmod 755 configure || return 1 + +  autoheader || return 1 +  aclocal || return 1 +  automake -a -c || return 1 +  autoconf || return 1 +  libtoolize --copy --force || return 1 + +  ./configure --prefix=/usr --sysconfdir=/etc/fam +  make || return 1 +  make DESTDIR=${pkgdir} install +  install -D -m755 ../fam ${pkgdir}/etc/rc.d/fam +} diff --git a/abs/core-testing/fam/fam b/abs/core-testing/fam/fam new file mode 100755 index 0000000..3acceff --- /dev/null +++ b/abs/core-testing/fam/fam @@ -0,0 +1,44 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/famd` +case "$1" in +  start) +    #Check for running portmap, start when not running +    ck_daemon portmap && /etc/rc.d/portmap start +    stat_busy "Starting File Alteration Monitor" +    if [ ! -f /var/run/daemons/portmap ]; then +      stat_fail +      echo "ERROR: PORTMAP is not running" +      exit 1 +    fi +    if [ -z "$PID" ]; then +       /usr/sbin/famd -T 0 -c /etc/fam/fam.conf +    fi +    if [ ! -z "$PID" -o $? -gt 0 ]; then +      stat_fail +    else +      add_daemon fam +      stat_done +    fi +    ;; +  stop) +    stat_busy "Stopping File Alteration Monitor" +    [ ! -z "$PID" ]  && kill $PID &> /dev/null +    if [ $? -gt 0 ]; then +      stat_fail +    else +      rm_daemon fam +      stat_done +    fi +    ;; +  restart) +    $0 stop +    sleep 1 +    $0 start +    ;; +  *) +    echo "usage: $0 {start|stop|restart}"   +esac diff --git a/abs/core-testing/fam/fam-2.7.0-dnotify.patch b/abs/core-testing/fam/fam-2.7.0-dnotify.patch new file mode 100644 index 0000000..1d8910e --- /dev/null +++ b/abs/core-testing/fam/fam-2.7.0-dnotify.patch @@ -0,0 +1,975 @@ +--- fam-2.7.0/src/DNotify.c++	2004-01-30 00:00:00.000000000 +0100 ++++ fam-2.7.0.dnotify/src/DNotify.c++	2004-01-30 00:00:00.000000000 +0100 +@@ -0,0 +1,582 @@ ++//  Copyright (C) 2001 Red Hat, Inc.  All Rights Reserved. ++//  Copyright (C) 1999 Silicon Graphics, Inc.  All Rights Reserved. ++//   ++//  This program is free software; you can redistribute it and/or modify it ++//  under the terms of version 2 of the GNU General Public License as ++//  published by the Free Software Foundation. ++// ++//  This program is distributed in the hope that it would be useful, but ++//  WITHOUT ANY WARRANTY; without even the implied warranty of ++//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  Further, any ++//  license provided herein, whether implied or otherwise, is limited to ++//  this program in accordance with the express provisions of the GNU ++//  General Public License.  Patent licenses, if any, provided herein do not ++//  apply to combinations of this program with other product or programs, or ++//  any other product whatsoever.  This program is distributed without any ++//  warranty that the program is delivered free of the rightful claim of any ++//  third person by way of infringement or the like.  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 the Free Software Foundation, Inc., 59 ++//  Temple Place - Suite 330, Boston MA 02111-1307, USA. ++ ++#define _GNU_SOURCE   ++#include <fcntl.h> ++ ++#include <string.h> ++#include <signal.h> ++#include <stdio.h> ++#include <unistd.h> ++#include <sys/types.h> ++#include <sys/stat.h> ++#include <libgen.h> ++ ++#include "DNotify.h" ++ ++#include "Interest.h" ++#include "Log.h" ++#include "Scheduler.h" ++#include <memory> ++ ++ ++int DNotify::pipe_write_fd = -2; ++int DNotify::pipe_read_fd = -2; ++volatile sig_atomic_t DNotify::queue_overflowed = 0; ++volatile sig_atomic_t DNotify::queue_changed = 0; ++int DNotify::change_queue[QUEUESIZE]; ++volatile int DNotify::queue_head = 0; // Only modified by read handler ++volatile int DNotify::queue_tail = 0; // Only modified by signal handler ++DNotify::EventHandler DNotify::ehandler; ++ ++DNotify::DirWatch *DNotify::dir_hash[DIR_HASHSIZE]; ++DNotify::FileWatch *DNotify::file_hash[FILE_HASHSIZE]; ++ ++struct DNotify::FileWatch ++{ ++    DirWatch *dir_watch; ++    dev_t file_dev; ++    ino_t file_ino; ++    FileWatch *next; // The DirWatch.watches list ++    FileWatch *hash_link; ++}; ++ ++struct DNotify::DirWatch ++{ ++    int fd; ++    dev_t dir_dev; ++    ino_t dir_ino; ++     ++    DirWatch *hash_link; ++    FileWatch *watches; ++}; ++ ++struct DNotify::ChangeEventData ++{ ++    dev_t file_dev; ++    ino_t file_ino; ++};     ++ ++DNotify::DNotify(EventHandler h) ++{ ++    assert(ehandler == NULL); ++    ehandler = h; ++} ++ ++DNotify::~DNotify() ++{ ++    if (pipe_read_fd >= 0) ++    { ++	//  Tell the scheduler. ++ ++	(void) Scheduler::remove_read_handler(pipe_read_fd); ++ ++	//  Close the pipe. ++ ++	if (close(pipe_read_fd) < 0) ++	    Log::perror("can't pipe read end"); ++	else ++	    Log::debug("closed pipe read end"); ++	 ++	if (close(pipe_write_fd) < 0) ++	    Log::perror("can't pipe write end"); ++	else ++	    Log::debug("closed pipe write end"); ++	pipe_read_fd = -1; ++    } ++    ehandler = NULL; ++} ++ ++void ++DNotify::overflow_signal_handler(int sig, siginfo_t *si, void *data) ++{ ++  char c = 'x'; ++ ++  { ++    char *str = "*************** overflow sigqueue ***********************\n"; ++    write (STDERR_FILENO, str, strlen(str)); ++  } ++ ++  if (!queue_overflowed) ++  { ++      queue_overflowed = 1; ++      // Trigger the read handler ++      write(pipe_write_fd, &c, 1); ++  } ++} ++ ++void ++DNotify::signal_handler(int sig, siginfo_t *si, void *data) ++{ ++  int left; ++  char c = 'x'; ++ ++  if (queue_head <= queue_tail) ++    left = (QUEUESIZE + queue_head) - queue_tail; ++  else  ++    left = queue_head - queue_tail; ++   ++  // Must leave at least one item unused to see difference ++  // Betweeen empty and full ++  if (left <= 1) ++  { ++      queue_overflowed = 1; ++      { ++	char *str = "*************** overflow famqueue ****************\n"; ++	write (STDERR_FILENO, str, strlen(str)); ++      } ++  } ++  else ++  { ++      change_queue[queue_tail] = si->si_fd; ++      queue_tail = (queue_tail + 1) % QUEUESIZE; ++  } ++   ++  if (!queue_changed) ++  { ++      queue_changed = 1; ++      // Trigger the read handler ++      write(pipe_write_fd, &c, 1); ++  } ++} ++ ++bool ++DNotify::is_active() ++{ ++    if (pipe_read_fd == -2) ++    { ++        int filedes[2]; ++	int res; ++	 ++	res = pipe (filedes); ++	if (res >= 0) ++	{   Log::debug("opened pipe"); ++   	    pipe_read_fd = filedes[0]; ++   	    pipe_write_fd = filedes[1]; ++ ++	    // Setup signal handler: ++	    struct sigaction act; ++	     ++	    act.sa_sigaction = signal_handler; ++	    sigemptyset(&act.sa_mask); ++	    act.sa_flags = SA_SIGINFO; ++	    sigaction(SIGRTMIN, &act, NULL); ++ ++	    // When the RT queue overflows we get a SIGIO ++	    act.sa_sigaction = overflow_signal_handler; ++	    sigemptyset(&act.sa_mask); ++	    sigaction(SIGIO, &act, NULL); ++ ++	    (void) Scheduler::install_read_handler(pipe_read_fd, read_handler, NULL); ++	} ++    } ++    return pipe_read_fd >= 0; ++} ++ ++DNotify::DirWatch * ++DNotify::lookup_dirwatch (int fd) ++{ ++  DirWatch **p; ++  DirWatch *w; ++ ++  p = dir_hashchain (fd); ++ ++  while (*p) ++    { ++      w = *p; ++ ++      if (w->fd == fd) ++	return w; ++ ++      p = &w->hash_link; ++    } ++   ++  return *p; ++} ++ ++// This colud be made faster by using another hash table. ++// But it's not that bad, since it is only used by express/revoke ++DNotify::DirWatch * ++DNotify::lookup_dirwatch (dev_t dir_dev, ino_t dir_ino) ++{ ++  DirWatch *p; ++  int i; ++ ++  for (i=0;i<DIR_HASHSIZE;i++) ++    { ++      p = dir_hash[i]; ++       ++      while (p) ++	{ ++	  if (p->dir_dev == dir_dev && p->dir_ino == dir_ino) ++	    return p; ++	   ++	  p = p->hash_link; ++	} ++    } ++   ++  return NULL; ++} ++ ++DNotify::FileWatch * ++DNotify::lookup_filewatch (dev_t dev, ino_t ino) ++{ ++  FileWatch **p; ++  FileWatch *w; ++ ++  p = file_hashchain (dev, ino); ++ ++  while (*p) ++    { ++      w = *p; ++ ++      if (w->file_dev == dev && w->file_ino == ino) ++	return w; ++ ++      p = &w->hash_link; ++    } ++   ++  return *p; ++} ++ ++// Make sure w is not already in the hash table before calling ++// this function. ++void ++DNotify::hash_dirwatch(DirWatch *w) ++{ ++  DirWatch **p; ++  p = dir_hashchain (w->fd); ++  w->hash_link = *p; ++  *p = w; ++} ++ ++// Make sure w is not already in the hash table before calling ++// this function. ++void ++DNotify::hash_filewatch(FileWatch *w) ++{ ++  FileWatch **p; ++  p = file_hashchain (w->file_dev, w->file_ino); ++  w->hash_link = *p; ++  *p = w; ++} ++ ++void ++DNotify::unhash_dirwatch(DirWatch *w) ++{ ++  DirWatch **p; ++   ++  p = dir_hashchain (w->fd); ++   ++  while (*p) ++    { ++      if (*p == w) ++	{ ++	  *p = w->hash_link; ++	  break; ++	} ++      p = &(*p)->hash_link; ++    } ++  w->hash_link = NULL; ++} ++ ++void ++DNotify::unhash_filewatch(FileWatch *w) ++{ ++  FileWatch **p; ++   ++  p = file_hashchain (w->file_dev, w->file_ino); ++   ++  while (*p) ++    { ++      if (*p == w) ++	{ ++	  *p = w->hash_link; ++	  break; ++	} ++      p = &(*p)->hash_link; ++    } ++  w->hash_link = NULL; ++} ++ ++DNotify::Status ++DNotify::watch_dir(const char *notify_dir, dev_t file_dev, ino_t file_ino) ++{ ++  struct stat stat; ++  dev_t dir_dev; ++  ino_t dir_ino; ++  DirWatch *dwatch; ++  FileWatch *fw; ++     ++  if (lstat (notify_dir, &stat) == -1) ++      return BAD; ++   ++  dwatch = lookup_dirwatch(stat.st_dev, stat.st_ino); ++  if (!dwatch) ++    { ++      Log::debug ("New DirWatch for %s (%x %x)\n", ++		  notify_dir, (int)stat.st_dev, (int)stat.st_ino); ++      dwatch = new DirWatch; ++      dwatch->watches = NULL; ++      dwatch->hash_link = NULL; ++      dwatch->dir_dev = stat.st_dev; ++      dwatch->dir_ino = stat.st_ino; ++       ++      dwatch->fd = open(notify_dir, O_RDONLY); ++      fcntl (dwatch->fd, F_SETSIG, SIGRTMIN); ++      if (fcntl (dwatch->fd, F_NOTIFY, ++                 (DN_MODIFY|DN_CREATE|DN_DELETE|DN_RENAME|DN_ATTRIB)  ++		  | DN_MULTISHOT) == -1) { ++	      return BAD; ++      } ++      hash_dirwatch (dwatch); ++    } ++ ++  fw = lookup_filewatch (file_dev, file_ino); ++  if (fw && fw->dir_watch == dwatch) ++	return OK; ++   ++  // No old FileWatch, need to add one: ++  Log::debug("New FileWatch for %x %x\n", (int)file_dev, (int)file_ino); ++  fw = new FileWatch; ++  fw->next = dwatch->watches; ++  dwatch->watches = fw; ++  fw->file_dev = file_dev; ++  fw->file_ino = file_ino; ++  fw->dir_watch = dwatch; ++  hash_filewatch(fw); ++  return OK; ++} ++ ++char * ++dirname_dup (const char *name) ++{ ++  char *copy = strdup(name); ++  char *res = dirname(copy); ++  res = strdup(res); ++  free (copy); ++  return res; ++} ++ ++DNotify::Status ++DNotify::express(const char *name, struct stat *status) ++{ ++    struct stat stat; ++    char *notify_dir; ++    int res; ++    Status s; ++    dev_t dev; ++    ino_t ino; ++ ++    Log::debug("express() name: %s\n", name); ++ ++    if (!is_active()) ++	return BAD; ++ ++    if (::lstat (name, &stat) == -1) ++      return BAD; ++ ++    dev = stat.st_dev; ++    ino = stat.st_ino; ++     ++    if ((stat.st_mode & S_IFMT) != S_IFDIR) ++	notify_dir = dirname_dup (name); ++    else ++	notify_dir = (char *)name; ++ ++    s = watch_dir (notify_dir, dev, ino); ++    if (notify_dir != name) ++        free (notify_dir); ++    if (s) ++      return s; ++ ++    // Check for a race condition; if someone removed or changed the ++    // file at the same time that we are expressing interest in it, ++    // revoke the interest so we don't get notifications about changes ++    // to a recycled inode that we don't otherwise care about. ++    // ++    struct stat st; ++    if (status == NULL) { ++	status = &st; ++    } ++    if (::lstat(name, status) == -1) { ++	Log::perror("stat on \"%s\" failed", name); ++	revoke(name, stat.st_dev, stat.st_ino); ++	return BAD; ++    } ++    if (status->st_dev != stat.st_dev ++	|| status->st_ino != stat.st_ino) { ++	Log::error("File \"%s\" changed between express and stat", ++		   name); ++	revoke(name, stat.st_dev, stat.st_ino); ++	return BAD; ++    }	 ++ ++    Log::debug("told dnotify to monitor \"%s\" = dev %d/%d, ino %d", name, ++	       major(status->st_dev), minor(status->st_dev), ++	       status->st_ino); ++    return OK; ++} ++ ++DNotify::Status ++DNotify::revoke(const char *name, dev_t dev, ino_t ino) ++{ ++    FileWatch *fwatch; ++    DirWatch *dwatch; ++     ++    Log::debug("revoke() name: %s, dev: %x, ino: %x\n", name, dev, ino); ++ ++    if (!is_active()) ++	return BAD; ++ ++    // Lookup FileWatch by dev:ino, and its DirWatch. ++    fwatch = lookup_filewatch (dev, ino); ++    if (fwatch == NULL) ++	return BAD; ++     ++    dwatch = fwatch->dir_watch; ++     ++    // delete FileWatch, if last FileWatch: close fd, delete DirWatch ++    Log::debug ("Destroying FileWatch for (%x %x)\n", ++		(int)fwatch->file_dev, (int)fwatch->file_ino); ++    FileWatch **p; ++    for (p=&dwatch->watches; *p; p=&(*p)->next) ++    { ++      if (*p == fwatch) ++	{ ++	  *p = (*p)->next; ++	  break; ++	} ++    } ++    unhash_filewatch(fwatch); ++    delete fwatch; ++    if (dwatch->watches == NULL) ++      { ++	Log::debug ("Destroying DirWatch for (%x %x)\n", ++		    (int)dwatch->dir_dev, (int)dwatch->dir_ino); ++	close(dwatch->fd); ++	unhash_dirwatch(dwatch); ++	delete dwatch; ++      } ++   ++    return OK; ++} ++ ++ ++void ++DNotify::all_watches_changed(void) ++{ ++  int i; ++  FileWatch *fw; ++ ++  for (i=0; i<FILE_HASHSIZE; i++) ++  { ++      fw = file_hash[i]; ++      while (fw) ++      { ++	  (*ehandler)(fw->file_dev, fw->file_ino, CHANGE); ++ ++	  fw = fw->hash_link; ++      } ++  } ++} ++ ++ ++void ++DNotify::read_handler(int fd, void *) ++{ ++    static char readbuf[5000]; ++    DirWatch *dw; ++    FileWatch *fw; ++    int snap_queue_tail; ++    int last_fd; ++ ++    int rc = read(fd, readbuf, sizeof readbuf); ++    queue_changed = 0; ++    if (rc < 0) ++        Log::perror("pipe read"); ++    else if (queue_overflowed) ++    { ++	  // There is a *slight* race condition here. Between reading ++	  // the queue_overflow flag and resetting it. But it doesn't ++	  // matter, since I'm gonna handle the overflow after reseting ++	  // anyway. ++	  queue_overflowed = false; ++ ++	  // We're soon gonna check all watches anyway, so ++	  // get rid of the current queue ++	  queue_head = queue_tail; ++	   ++	  all_watches_changed (); ++    } ++    else ++    { ++	// Don't read events that happen later than ++	// the initial read. (Otherwise skipping fd's ++	// might miss some changes). ++	snap_queue_tail = queue_tail; ++	last_fd = -1; ++	while (queue_head != snap_queue_tail) ++	{ ++	    fd = change_queue[queue_head]; ++	    queue_head = (queue_head + 1) % QUEUESIZE; ++ ++	    // Skip multiple changes to the same fd ++	    if (fd != last_fd) ++	    { ++		dw = lookup_dirwatch (fd); ++		if (dw) ++		{ ++		    int n_watches, i; ++		    ChangeEventData *data; ++		     ++		    Log::debug("dnotify said dev %d/%d, ino %ld changed", ++			       major(dw->dir_dev), minor(dw->dir_dev), dw->dir_ino); ++		     ++		    n_watches = 0; ++		    for (fw=dw->watches; fw; fw=fw->next) ++			n_watches++; ++		     ++		    data = new ChangeEventData[n_watches]; ++ ++		    i = 0; ++		    for (fw=dw->watches; fw; fw=fw->next) ++		    { ++			data[i].file_dev = fw->file_dev; ++			data[i].file_ino = fw->file_ino; ++			i++; ++		    } ++ ++		    for (i = 0; i < n_watches; i++) ++		    { ++			(*ehandler)(data[i].file_dev, data[i].file_ino, CHANGE); ++		    } ++		     ++		    delete[] data; ++		} ++	    } ++	    last_fd = fd; ++	} ++    } ++} ++ +--- fam-2.7.0/src/DNotify.h	2004-01-30 00:00:00.000000000 +0100 ++++ fam-2.7.0.dnotify/src/DNotify.h	2004-01-30 00:00:00.000000000 +0100 +@@ -0,0 +1,98 @@ ++//  Copyright (C) 2001 Red Hat, Inc.  All Rights Reserved. ++//  Copyright (C) 1999 Silicon Graphics, Inc.  All Rights Reserved. ++// ++//  This program is free software; you can redistribute it and/or modify it ++//  under the terms of version 2 of the GNU General Public License as ++//  published by the Free Software Foundation. ++// ++//  This program is distributed in the hope that it would be useful, but ++//  WITHOUT ANY WARRANTY; without even the implied warranty of ++//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  Further, any ++//  license provided herein, whether implied or otherwise, is limited to ++//  this program in accordance with the express provisions of the GNU ++//  General Public License.  Patent licenses, if any, provided herein do not ++//  apply to combinations of this program with other product or programs, or ++//  any other product whatsoever.  This program is distributed without any ++//  warranty that the program is delivered free of the rightful claim of any ++//  third person by way of infringement or the like.  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 the Free Software Foundation, Inc., 59 ++//  Temple Place - Suite 330, Boston MA 02111-1307, USA. ++ ++#ifndef DNotify_included ++#define DNotify_included ++ ++#include "config.h" ++#include "Monitor.h" ++#include <signal.h> ++ ++//  DNotify is an object encapsulating the dnotify linux fcntl. ++//  It "emulates" the IMon interface. ++//  There can only be one instantiation of the DNotify object. ++// ++//  The user of this object uses express() and revoke() to ++//  express/revoke interest in a file.  There is also ++//  a callback, the EventHandler.  When an dnotify event comes in, ++//  the EventHandler is called. ++// ++//  The user of the DNotify object is the Interest class. ++ ++class DNotify : public Monitor { ++public: ++    DNotify(EventHandler h); ++    ~DNotify(); ++ ++    static bool is_active(); ++ ++    virtual Status express(const char *name, struct stat *stat_return); ++    virtual Status revoke(const char *name, dev_t dev, ino_t ino); ++ ++private: ++    struct FileWatch; ++    struct DirWatch; ++    struct ChangeEventData; ++   ++    //  Class Variables ++    enum { QUEUESIZE = 1024 }; ++    static int pipe_write_fd; ++    static int pipe_read_fd; ++    static int change_queue[QUEUESIZE]; ++    static volatile sig_atomic_t queue_overflowed; ++    static volatile sig_atomic_t queue_changed; ++    static volatile int queue_head; // Only modified by read handler ++    static volatile int queue_tail; // Only modified by signal handler ++    static EventHandler ehandler; ++    static void overflow_signal_handler(int sig, siginfo_t *si, void *data); ++    static void signal_handler(int sig, siginfo_t *si, void *data); ++    static void read_handler(int fd, void *closure); ++  ++    enum { DIR_HASHSIZE = 367 }; ++    static DirWatch *dir_hash[DIR_HASHSIZE]; ++    enum { FILE_HASHSIZE = 823 }; ++    static FileWatch *file_hash[FILE_HASHSIZE]; ++ ++    static DirWatch **dir_hashchain(int fd) ++			  { return &dir_hash[(unsigned) (fd) % DIR_HASHSIZE]; } ++    static FileWatch **file_hashchain(dev_t d, ino_t i) ++			  { return &file_hash[(unsigned) (d+i) % FILE_HASHSIZE]; } ++ ++    static DirWatch *lookup_dirwatch (int fd); ++    static DirWatch *lookup_dirwatch (dev_t dir_dev, ino_t dir_ino); ++    static FileWatch *lookup_filewatch (dev_t file_dev, ino_t file_ino); ++    static void hash_dirwatch(DirWatch *w); ++    static void hash_filewatch(FileWatch *w); ++    static void unhash_dirwatch(DirWatch *w); ++    static void unhash_filewatch(FileWatch *w); ++    static Status watch_dir(const char *notify_dir, dev_t file_dev, ino_t file_ino); ++ ++    static void all_watches_changed(void); ++     ++    DNotify(const DNotify&);			// Do not copy ++    DNotify & operator = (const DNotify&);	//  or assign. ++}; ++ ++#endif /* !IMon_included */ ++ ++ +--- fam-2.7.0/src/Interest.c++	2004-01-30 00:00:00.000000000 +0100 ++++ fam-2.7.0.dnotify/src/Interest.c++	2004-01-30 00:00:00.000000000 +0100 +@@ -42,12 +42,21 @@ + #include "Event.h" + #include "FileSystem.h" + #include "IMon.h" ++#include "DNotify.h" + #include "Log.h" + #include "Pollster.h" + #include "timeval.h" +  + Interest *Interest::hashtable[]; +-IMon      Interest::imon(imon_handler); ++ ++#ifdef USE_DNOTIFY  ++static DNotify dnotify(Interest::monitor_handler); ++Monitor * Interest::monitor = &dnotify; ++#else ++static IMon imon(Interest::monitor_handler); ++Monitor * Interest::monitor = &imon; ++#endif ++ + bool      Interest::xtab_verification = true; +  + Interest::Interest(const char *name, FileSystem *fs, in_addr host, ExportVerification ev) +@@ -60,10 +69,10 @@ +       mypath_exported_to_host(ev == NO_VERIFY_EXPORTED) + { +     memset(&old_stat, 0, sizeof(old_stat));  +-    IMon::Status s = IMon::BAD; +  +-    s = imon.express(name, &old_stat); +-    if (s != IMon::OK) ++    Monitor::Status s = Monitor::BAD; ++    s = monitor->express(name, &old_stat); ++    if (s != Monitor::OK) +     {   int rc = lstat(name, &old_stat); + 	if (rc < 0) + 	{   Log::info("can't lstat %s", name); +@@ -100,7 +109,7 @@ +     } + #endif +  +-    if (exported_to_host()) fs->ll_monitor(this, s == IMon::OK); ++    if (exported_to_host()) fs->ll_monitor(this, s == Monitor::OK); + } +  + Interest::~Interest() +@@ -128,7 +137,7 @@ + 		pp = &p->hashlink;	// move to next element + 	    } + 	if (!found_same) +-	    (void) imon.revoke(name(), dev, ino); ++	  (void) monitor->revoke(name(), dev, ino); +     } + } +  +@@ -147,7 +156,7 @@ +  +         // Express interest. +         IMon::Status s = IMon::BAD; +-	s = imon.express(name(), NULL); ++	s = monitor->express(name(), NULL); +         if (s != IMon::OK) { +             return true; +         } +@@ -248,23 +257,23 @@ + } +  + void +-Interest::imon_handler(dev_t device, ino_t inumber, int event) ++Interest::monitor_handler(dev_t device, ino_t inumber, int event) + { +     assert(device || inumber); +  +     for (Interest *p = *hashchain(device, inumber), *next = p; p; p = next) +     {	next = p->hashlink; + 	if (p->ino == inumber && p->dev == device) +-	{   if (event == IMon::EXEC) ++	  {   if (event == Monitor::EXEC) + 	    {   p->cur_exec_state = EXECUTING; + 		(void) p->report_exec_state(); + 	    } +-	    else if (event == IMon::EXIT) ++	    else if (event == Monitor::EXIT) + 	    {   p->cur_exec_state = NOT_EXECUTING; + 		(void) p->report_exec_state(); + 	    } + 	    else +-	    {   assert(event == IMon::CHANGE); ++	    {   assert(event == Monitor::CHANGE); + 		p->scan(); + 	    } + 	} +--- fam-2.7.0/config.h.in	2003-01-20 01:40:15.000000000 +0100 ++++ fam-2.7.0.dnotify/config.h.in	2004-01-30 13:50:33.000000000 +0100 +@@ -180,3 +180,6 @@ +  + /* Define to `int' if <sys/types.h> doesn't define. */ + #undef uid_t ++ ++/* Define to 1 if you have F_NOTIFY fcntl */ ++#undef USE_DNOTIFY +--- fam-2.7.0/configure.ac	2003-11-26 20:47:59.000000000 +0100 ++++ fam-2.7.0.dnotify/configure.ac	2004-01-30 13:50:33.000000000 +0100 +@@ -34,7 +34,26 @@ + AC_HEADER_DIRENT + AC_CHECK_HEADERS([fcntl.h limits.h linux/imon.h netinet/in.h rpc/rpc.h rpcsvc/mount.h stddef.h stdlib.h string.h syslog.h sys/imon.h sys/param.h sys/select.h sys/statvfs.h sys/syssgi.h sys/time.h sys/types.h sys/un.h unistd.h]) +  +-if test "$have_sys_imon_h"; then ++# Test for the linux dnotify fcntl ++AC_MSG_CHECKING([for dnotify fcntl support]) ++AC_TRY_COMPILE([ ++#define _GNU_SOURCE   ++#include <fcntl.h> ++#include <unistd.h> ++], ++[ int fd = 1; ++  fcntl (fd, F_NOTIFY, (DN_MODIFY|DN_CREATE|DN_DELETE|DN_RENAME|DN_ATTRIB) ++                       |DN_MULTISHOT); ++], have_dnotify=yes, have_dnotify=no) ++ ++use_dnotify=false ++AC_MSG_RESULT($have_dnotify) ++ ++if test "$have_dnotify"; then ++        MONITOR_FUNCS=IMonNone ++        AC_DEFINE([USE_DNOTIFY], [], [Use dnotify]) ++	use_dnotify=true ++elif test "$have_sys_imon_h"; then + 	MONITOR_FUNCS=IMonIRIX + elif test "$have_linux_imon_h"; then + 	MONITOR_FUNCS=IMonLinux +@@ -42,6 +62,7 @@ + 	MONITOR_FUNCS=IMonNone + fi + AC_SUBST(MONITOR_FUNCS) ++AM_CONDITIONAL(USE_DNOTIFY, $use_dnotify) +  + # Checks for typedefs, structures, and compiler characteristics. + AC_HEADER_STDBOOL +--- fam-2.7.0/src/IMon.h	2004-01-30 00:00:00.000000000 +0200 ++++ fam-2.7.0.dnotify/src/IMon.h	2004-01-30 00:00:00.000000000 +0200 +@@ -24,10 +24,7 @@ + #define IMon_included +  + #include "config.h" +-#include <sys/stat.h> +-#include <sys/types.h> +- +-#include "Boolean.h" ++#include "Monitor.h" +  + struct stat; +  +@@ -41,25 +38,18 @@ + // + //  The user of the IMon object is the Interest class. +  +-class IMon { ++class IMon : public Monitor { +  + public: +- +-    enum Status { OK = 0, BAD = -1 }; +-    enum Event { EXEC, EXIT, CHANGE }; +- +-    typedef void (*EventHandler)(dev_t, ino_t, int event); +- +     IMon(EventHandler h); +     ~IMon(); +  +     static bool is_active(); +  +-    Status express(const char *name, struct stat *stat_return); +-    Status revoke(const char *name, dev_t dev, ino_t ino); ++    virtual Status express(const char *name, struct stat *stat_return); ++    virtual Status revoke(const char *name, dev_t dev, ino_t ino); +  + private: +- +     //  Class Variables +  +     static int imonfd; +--- fam-2.7.0/src/Interest.h	2004-01-30 00:00:00.000000000 +0200 ++++ fam-2.7.0.dnotify/src/Interest.h	2004-01-30 00:00:00.000000000 +0200 +@@ -32,7 +32,7 @@ +  + class Event; + class FileSystem; +-class IMon; ++class Monitor; + struct stat; +  + //  Interest -- abstract base class for filesystem entities of interest. +@@ -74,7 +74,7 @@ +  +     //  Public Class Method +  +-    static void imon_handler(dev_t, ino_t, int event); ++    static void monitor_handler(dev_t, ino_t, int event); +  +     static void enable_xtab_verification(bool enable); +  +@@ -121,7 +121,7 @@ +  +     //  Class Variables +  +-    static IMon imon; ++    static Monitor *monitor; +     static Interest *hashtable[HASHSIZE]; +     static bool xtab_verification; +  +--- fam-2.7.0/src/Makefile.am	2003-01-19 13:00:17.000000000 +0100 ++++ fam-2.7.0.dnotify/src/Makefile.am	2004-01-30 13:50:38.000000000 +0100 +@@ -71,7 +71,11 @@ +   main.c++ \ +   timeval.c++ \ +   timeval.h \ +-  @MONITOR_FUNCS@.c++ ++  Monitor.h \ ++  DNotify.h \ ++  DNotify.c++ \ ++  @MONITOR_FUNCS@.c++  +  +-EXTRA_famd_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++ ++EXTRA_famd_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++ DNotify.c++ \ ++  DNotify.h Monitor.h +  +--- fam-2.7.0/src/Monitor.h	2004-01-30 00:00:00.000000000 +0200 ++++ fam-2.7.0.dnotify/src/Monitor.h	2004-01-30 00:00:00.000000000 +0200 +@@ -0,0 +1,57 @@ ++//  Copyright (C) 2001 Red Hat, Inc.  All Rights Reserved. ++//  Copyright (C) 1999 Silicon Graphics, Inc.  All Rights Reserved. ++//   ++//  This program is free software; you can redistribute it and/or modify it ++//  under the terms of version 2 of the GNU General Public License as ++//  published by the Free Software Foundation. ++// ++//  This program is distributed in the hope that it would be useful, but ++//  WITHOUT ANY WARRANTY; without even the implied warranty of ++//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  Further, any ++//  license provided herein, whether implied or otherwise, is limited to ++//  this program in accordance with the express provisions of the GNU ++//  General Public License.  Patent licenses, if any, provided herein do not ++//  apply to combinations of this program with other product or programs, or ++//  any other product whatsoever.  This program is distributed without any ++//  warranty that the program is delivered free of the rightful claim of any ++//  third person by way of infringement or the like.  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 the Free Software Foundation, Inc., 59 ++//  Temple Place - Suite 330, Boston MA 02111-1307, USA. ++ ++#ifndef Monitor_included ++#define Monitor_included ++ ++#include "config.h" ++#include <sys/stat.h> ++#include <sys/types.h> ++ ++struct stat; ++ ++//  Monitor is an abstract baseclass for differend file monitoring ++//  systems. The original system used was IMon, and the Montor API ++//  is heavily influenced by that. ++//  There can only be one instantiation of the Monitor object. ++// ++//  The user of this object uses express() and revoke() to ++//  express/revoke interest in a file to imon.  There is also ++//  a callback, the EventHandler.  When an event comes in, ++//  the EventHandler is called. ++// ++//  The main implementers of the Monitor class is IMon and DNotify ++ ++class Monitor { ++public: ++ ++    enum Status { OK = 0, BAD = -1 }; ++    enum Event { EXEC, EXIT, CHANGE }; ++ ++    typedef void (*EventHandler)(dev_t, ino_t, int event); ++ ++    virtual Status express(const char *name, struct stat *stat_return) = 0; ++    virtual Status revoke(const char *name, dev_t dev, ino_t ino) = 0; ++}; ++ ++#endif /* !Monitor_included */ diff --git a/abs/core-testing/fam/fam-2.7.0-gcc43.patch b/abs/core-testing/fam/fam-2.7.0-gcc43.patch new file mode 100644 index 0000000..a5ba7f0 --- /dev/null +++ b/abs/core-testing/fam/fam-2.7.0-gcc43.patch @@ -0,0 +1,46 @@ +diff -Naur fam-2.7.0-old/include/BTree.h fam-2.7.0/include/BTree.h +--- fam-2.7.0-old/include/BTree.h	2003-01-20 14:22:30.000000000 +1000 ++++ fam-2.7.0/include/BTree.h	2008-10-18 10:43:11.000000000 +1000 +@@ -23,6 +23,8 @@ + #ifndef BTree_included + #define BTree_included +  ++#include <cstdlib> ++ + #include "Boolean.h" +  + //  This is an in-core B-Tree implementation. +diff -Naur fam-2.7.0-old/src/DNotify.c++ fam-2.7.0/src/DNotify.c++ +--- fam-2.7.0-old/src/DNotify.c++	2008-10-18 10:33:13.000000000 +1000 ++++ fam-2.7.0/src/DNotify.c++	2008-10-18 10:41:22.000000000 +1000 +@@ -31,6 +31,7 @@ + #include <sys/types.h> + #include <sys/stat.h> + #include <libgen.h> ++#include <cstdlib> +  + #include "DNotify.h" +  +diff -Naur fam-2.7.0-old/src/IMon.c++ fam-2.7.0/src/IMon.c++ +--- fam-2.7.0-old/src/IMon.c++	2003-01-19 00:18:12.000000000 +1000 ++++ fam-2.7.0/src/IMon.c++	2008-10-18 10:40:21.000000000 +1000 +@@ -40,7 +40,7 @@ + #include "Interest.h" + #include "Log.h" + #include "Scheduler.h" +-#include "alloc.h" ++#include <memory> +  + int		   IMon::imonfd = -2; + IMon::EventHandler IMon::ehandler = NULL; +diff -Naur fam-2.7.0-old/src/Interest.h fam-2.7.0/src/Interest.h +--- fam-2.7.0-old/src/Interest.h	2008-10-18 10:33:13.000000000 +1000 ++++ fam-2.7.0/src/Interest.h	2008-10-18 10:40:44.000000000 +1000 +@@ -23,6 +23,7 @@ + #ifndef Interest_included + #define Interest_included +  ++#include <cstdlib> + #include <sys/stat.h> + #include <sys/types.h> + #include <sys/time.h> diff --git a/abs/core-testing/fam/fam-2.7.0-largefiles.patch b/abs/core-testing/fam/fam-2.7.0-largefiles.patch new file mode 100644 index 0000000..60de9a4 --- /dev/null +++ b/abs/core-testing/fam/fam-2.7.0-largefiles.patch @@ -0,0 +1,8 @@ +--- fam-2.7.0/common.am	2003-01-19 06:09:08.000000000 -0600 ++++ fam-2.7.0.largefile/common.am	2005-01-12 19:08:06.462113110 -0600 +@@ -1,2 +1,5 @@ +-INCLUDES = @FAM_INC@ -DFAM_CONF=\"@FAM_CONF@\" ++INCLUDES = @FAM_INC@ -DFAM_CONF=\"@FAM_CONF@\" \ ++       -D_FILE_OFFSET_BITS=64                  \ ++       -D_LARGEFILE64_SOURCE ++ diff --git a/abs/core-testing/fam/fam-2.7.0-noc++.patch b/abs/core-testing/fam/fam-2.7.0-noc++.patch new file mode 100644 index 0000000..9188af0 --- /dev/null +++ b/abs/core-testing/fam/fam-2.7.0-noc++.patch @@ -0,0 +1,83 @@ +diff -ruN fam-2.7.0/lib/Client.c++ fam-2.7.0.noc++/lib/Client.c++ +--- fam-2.7.0/lib/Client.c++	2003-01-18 14:18:12.000000000 +0000 ++++ fam-2.7.0.noc++/lib/Client.c++	2006-03-02 22:47:50.000000000 +0000 +@@ -34,8 +34,6 @@ + #include <syslog.h> + #include <errno.h> +  +-#include <iostream.h> +- + #include "fam.h" + #include "Client.h" +  +@@ -440,3 +438,29 @@ +     memcpy(l, p, sizeof(u_int32_t)); +     *l = ntohl(*l); + } ++ ++/* Some C++ stuff needed when we not link to libstdc++ */ ++void *operator new (size_t sz) ++{ ++	void *ret = malloc (sz); ++	if (ret == NULL) ++	{ ++		fputs ("libfam memory allocation failed\n", stderr); ++	} ++	return ret; ++} ++ ++void *operator new[] (size_t sz) ++{ ++	return ::operator new(sz); ++} ++ ++void operator delete (void *ptr) ++{ ++	free (ptr); ++} ++ ++void operator delete[] (void *ptr) ++{ ++	free (ptr); ++} +diff -ruN fam-2.7.0/lib/Makefile.am fam-2.7.0.noc++/lib/Makefile.am +--- fam-2.7.0/lib/Makefile.am	2003-01-19 01:55:10.000000000 +0000 ++++ fam-2.7.0.noc++/lib/Makefile.am	2006-03-02 22:43:01.000000000 +0000 +@@ -7,8 +7,11 @@ + 	Client.h \ + 	fam.c++ +  +-libfam_la_LDFLAGS = -export-symbols fam.sym +-libfam_la_LIBADD = -lstdc++ ++libfam_la_LDFLAGS = -Wl,--version-script=fam.sym.version ++libfam_la_LIBADD = ++AM_CXXFLAGS = -fno-exceptions -fno-rtti ++ ++CXXLD=--tag=CC $(CXX) +  + EXTRA_DIST = fam.sym +  +diff -ruN fam-2.7.0/lib/fam.sym.version fam-2.7.0.noc++/lib/fam.sym.version +--- fam-2.7.0/lib/fam.sym.version	1970-01-01 00:00:00.000000000 +0000 ++++ fam-2.7.0.noc++/lib/fam.sym.version	2006-03-02 22:49:31.000000000 +0000 +@@ -0,0 +1,20 @@ ++{ ++   global: ++	FAMCancelMonitor; ++	FAMClose; ++	FAMDebugLevel; ++	FamErrlist; ++	FAMErrno; ++	FAMMonitorCollection; ++	FAMMonitorDirectory; ++	FAMMonitorDirectory2; ++	FAMMonitorFile; ++	FAMMonitorFile2; ++	FAMNextEvent; ++	FAMOpen; ++	FAMOpen2; ++	FAMPending; ++	FAMResumeMonitor; ++	FAMSuspendMonitor; ++   local: *; ++}; diff --git a/abs/core-testing/fam/include_fam_h.patch b/abs/core-testing/fam/include_fam_h.patch new file mode 100644 index 0000000..4248957 --- /dev/null +++ b/abs/core-testing/fam/include_fam_h.patch @@ -0,0 +1,11 @@ +--- include/fam.h.orig	2005-05-25 09:26:38.000000000 +0000 ++++ include/fam.h	2005-05-25 09:27:04.000000000 +0000 +@@ -41,7 +41,7 @@ + *****************************************************************************/ +  + /* For NAME_MAX - maximum # of chars in a filename */ +-#include "limits.h" ++#include <limits.h> +  +  +  diff --git a/abs/core-testing/fftw/PKGBUILD b/abs/core-testing/fftw/PKGBUILD new file mode 100644 index 0000000..1556108 --- /dev/null +++ b/abs/core-testing/fftw/PKGBUILD @@ -0,0 +1,48 @@ +# $Id: PKGBUILD 20304 2008-12-02 10:48:00Z ronald $ +# Maintainer: Ronald van Haren <ronald.archlinux.org> +# Contributor: damir <damir@archlinux.org> + +pkgname=fftw +pkgver=3.2 +pkgrel=1 +pkgdesc="A library for computing the discrete Fourier transform (DFT)" +arch=('i686' 'x86_64') +license=('GPL2') +url="http://www.fftw.org/" +depends=('glibc') +options=(!libtool) +source=(http://www.fftw.org/${pkgname}-${pkgver}.tar.gz) +install=fftw.install + +# notes: +# http://www.fftw.org/fftw2_doc/fftw_6.html#SEC69 +# http://www.fftw.org/faq/section2.html#singleprec +# http://www.fftw.org/fftw3_doc/Precision.html#Precision + +build() { +  cd ${srcdir}/${pkgname}-${pkgver} +   + # build & install double precision +  ./configure F77=gfortran --prefix=/usr \ +              --enable-shared || return 1 +  make || return 1 +  make DESTDIR=${pkgdir} install || return 1 +  make clean  + +  # build & install long double precission +  ./configure F77=gfortran --prefix=/usr \ +   --enable-long-double  --enable-shared || return 1 +  make || return 1 +  make DESTDIR=${pkgdir} install || return 1 +  make clean + +  # build + install single precision +  ./configure F77=gfortran --prefix=/usr \ +              --enable-float --enable-shared || return 1 +  make || return 1 +  make DESTDIR=${pkgdir} install || return 1 + +  # handle info files +  rm -f $pkgdir/usr/share/info/dir +  gzip $pkgdir/usr/share/info/* +} diff --git a/abs/core-testing/fftw/fftw.install b/abs/core-testing/fftw/fftw.install new file mode 100644 index 0000000..a3748aa --- /dev/null +++ b/abs/core-testing/fftw/fftw.install @@ -0,0 +1,22 @@ +info_dir=/usr/share/info +info_files=(fftw3.info) + +post_install() { +  for f in ${info_files[@]}; do +    install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null +  done +} + +post_upgrade() { +        post_install +} + +pre_remove() { +  for f in ${info_files[@]}; do +    install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null +  done +} + + + + diff --git a/abs/core-testing/fluxbox/ChangeLog b/abs/core-testing/fluxbox/ChangeLog new file mode 100644 index 0000000..f2f2e81 --- /dev/null +++ b/abs/core-testing/fluxbox/ChangeLog @@ -0,0 +1,10 @@ +2008-09-19  Eric Belanger  <eric@archlinux.org> + +	* fluxbox 1.1.1-1 +	* Upstream update + +2008-09-05  Eric Belanger  <eric@archlinux.org> + +	* fluxbox 1.1.0.1-1 +	* Upstream update +        * Added ChangeLog diff --git a/abs/core-testing/fluxbox/PKGBUILD b/abs/core-testing/fluxbox/PKGBUILD index 6735ad0..6e1c9c0 100644 --- a/abs/core-testing/fluxbox/PKGBUILD +++ b/abs/core-testing/fluxbox/PKGBUILD @@ -1,9 +1,10 @@ -#add custom keys - +# $Id: PKGBUILD 12779 2008-09-20 06:42:07Z eric $ +# Maintainer: Eric Belanger <eric@archlinux.org> +# Contributor:  John Proctor <jproctor@prium.net>  pkgname=fluxbox -pkgver=1.0.0 -pkgrel=5 +pkgver=1.1.1 +pkgrel=2  pkgdesc="A lightweight and highly-configurable window manager"  arch=('i686' 'x86_64')  url="http://www.fluxbox.org" @@ -11,30 +12,22 @@ license=('MIT')  depends=('libxft' 'libxpm' 'libxinerama' 'libxrandr' 'gcc-libs' 'bash' 'imlib2')  makedepends=('pkgconfig')  options=('!makeflags') -source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2 \ -        $pkgname.desktop fluxbox-1.0.0-gcc43.patch keys) - -md5sums=('990e276ead0d04421dce4080f485caca' 'eeae9c88a2526ac0bd8afcd9ce97f9ed'\ -         '9ddb3fcd5f080574a44f394282132b3c') -sha1sums=('7985e35fbb170fda24b9e04610690cd04c7a8748' -          'f3f83b8ce84d79c2f8670ef687e0dd89ab0552b8' -          '51de3957bacfc4848529ba7df80bddca59b1a20b') +source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2 \ +        fluxbox.desktop keys) +md5sums=('fa9fa8fe9a44f86522de5754f8b285ca' 'eeae9c88a2526ac0bd8afcd9ce97f9ed' 'f5e10bf230728190830717ed9d17770c') +sha1sums=('6d49deb6c4c7d73f7567e1cf7d2575c7edc4825f' 'f3f83b8ce84d79c2f8670ef687e0dd89ab0552b8')  build() { -  cd $startdir/src/$pkgname-${pkgver} -  patch -p1 < ../fluxbox-1.0.0-gcc43.patch || return 1 +  cd ${srcdir}/${pkgname}-${pkgver}    ./configure --prefix=/usr \ -   --enable-kde --enable-gnome \ -   --enable-xft --enable-xinerama \ -   --enable-imlib2 --enable-nls +    --enable-kde --enable-gnome \ +    --enable-xft --enable-xinerama \ +    --enable-imlib2 --enable-nls || return 1    make || return 1 -  make DESTDIR=$startdir/pkg install +  make DESTDIR=${pkgdir} install || return 1   # this is a fix to allow fluxbox to shutdown, but this can be changed by the user :-( -  sed -i 's|^.*slit\.autoHide.*$|session.screen0.slit.autoHide:  True|' \ -    $startdir/pkg/usr/share/fluxbox/init -  install -D -m644 ../$pkgname.desktop \ -    $startdir/pkg/etc/X11/sessions/$pkgname.desktop -  install -D -m644 COPYING $startdir/pkg/usr/share/licenses/$pkgname/COPYING -  install -D -m655 $startdir/src/keys $startdir/pkg/usr/share/fluxbox/keys - +  sed -i 's|^.*slit\.autoHide.*$|session.screen0.slit.autoHide:  True|' ${pkgdir}/usr/share/fluxbox/init || return 1 +  install -D -m644 ../fluxbox.desktop ${pkgdir}/etc/X11/sessions/fluxbox.desktop || return 1 +  install -D -m644 ../keys ${pkgdir}/usr/share/fluxbox/keys || return 1 +  install -D -m644 COPYING ${pkgdir}/usr/share/licenses/$pkgname/COPYING || return 1  } diff --git a/abs/core-testing/fluxbox/keys b/abs/core-testing/fluxbox/keys index 06e5f21..b412cbd 100644 --- a/abs/core-testing/fluxbox/keys +++ b/abs/core-testing/fluxbox/keys @@ -20,9 +20,9 @@ Mod1 F12 :Workspace 12  Mod1 x :ExecCommand xterm -fn *18*  Mod1 s :ExecCommand mythtv-setup  Mod1 m :ExecCommand mythfrontend -Mod1 1 :ExecCommand sudo /etc/rc.d/mythtv-backend start -Mod1 2 :ExecCommand sudo /etc/rc.d/mythtv-backend stop -Mod1 3 :ExecCommand sudo /etc/rc.d/mythtv-backend restart +Mod1 1 :ExecCommand sudo sv start mythbackend +Mod1 2 :ExecCommand sudo sv stop mythbackend +Mod1 3 :ExecCommand sudo sv restart mythbackend  Mod1 h :ExecCommand MythVantage -h  Mod1 Control u :ExecCommand killall -9 unclutter diff --git a/abs/core-testing/gcc/PKGBUILD b/abs/core-testing/gcc/PKGBUILD index 7319d97..f0d6b7e 100644 --- a/abs/core-testing/gcc/PKGBUILD +++ b/abs/core-testing/gcc/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 17247 2008-10-27 08:12:22Z jgc $ +# $Id: PKGBUILD 19322 2008-11-20 11:36:53Z andyrtr $  # Maintainer: Jan de Groot <jgc@archlinux.org>  # Maintainer: Andreas Radke <andyrtr@archlinux.org>  pkgname=gcc -pkgver=4.3.1 -pkgrel=1 -_snapshot=4.3-20080724 +pkgver=4.3.2 +pkgrel=2 +#_snapshot=4.3-20080724  pkgdesc="The GNU Compiler Collection"  arch=(i686 x86_64)  license=('GPL' 'LGPL')  groups=('base-devel')  url="http://gcc.gnu.org" -depends=('binutils>=2.18-9' "gcc-libs>=${pkgver}" 'mpfr>=2.3.1' 'texinfo') +depends=('binutils>=2.19' "gcc-libs>=${pkgver}" 'mpfr>=2.3.1' 'texinfo')  makedepends=('flex')  replaces=('gcc-fortran' 'gcc-objc')  options=('!libtool') @@ -21,7 +21,18 @@ source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,o  	ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-man-20080118.tar.bz2  	gcc_pure64.patch  	gcc-hash-style-both.patch -	gcc-java-driver.patch) +	gcc-java-driver.patch +	buildfix_new_bison.patch) +md5sums=('dd8048b43d3d4e5595bcade47b9144c6' +         'bfdf8d19e1b85f522f8b8d48d25e7aaa' +         'b3294ae213d65e05aacb9b46d11e1025' +         '08efa42ef267f8759146aa4e11904d25' +         '4a1dee5782dccc505072c6401cf1d4c3' +         '990881456a89b1ffbd68d2d7188759da' +         '4030ee1c08dd1e843c0225b772360e76' +         'bb420bc84b1104455b7230b1cd4b96c2' +         'c82665e579850eb37cdee8349d614dbe' +         '412fb8ebb30958eb1a93e9bd89413dd7')  build() {    if ! locale -a | grep ^de_DE; then @@ -39,6 +50,7 @@ build() {    fi    patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch || return 1    patch -Np0 -i ${srcdir}/gcc-java-driver.patch || return 1 +  patch -Np0 -i ${srcdir}/buildfix_new_bison.patch || return 1    echo ${pkgver} > gcc/BASE-VER diff --git a/abs/core-testing/gcc/buildfix_new_bison.patch b/abs/core-testing/gcc/buildfix_new_bison.patch new file mode 100644 index 0000000..01b8880 --- /dev/null +++ b/abs/core-testing/gcc/buildfix_new_bison.patch @@ -0,0 +1,22 @@ +--- gcc/treelang/parse.y	2007-07-18 08:19:29.000000000 +0000 ++++ gcc/treelang/parse.y.new	2008-11-20 06:40:00.013275486 +0000 +@@ -369,7 +369,6 @@ +   current_function = NULL; + } + ; +- + variable_defs_opt: + /* Nil.  */ { +   $$ = 0; +@@ -685,9 +684,9 @@ +  + expressions_with_commas_opt: + /* Nil.  */ { +-$$ = 0 ++$$ = 0; + } +-|expressions_with_commas { $$ = $1 } ++|expressions_with_commas { $$ = $1; } + ; +  + expressions_with_commas: diff --git a/abs/core-testing/ghostscript/PKGBUILD b/abs/core-testing/ghostscript/PKGBUILD index 2cf5416..8edc722 100644 --- a/abs/core-testing/ghostscript/PKGBUILD +++ b/abs/core-testing/ghostscript/PKGBUILD @@ -1,19 +1,18 @@ -# $Id: PKGBUILD 7626 2008-08-03 15:52:01Z jgc $ +# $Id: PKGBUILD 20527 2008-12-05 14:17:31Z allan $  # Maintainer: AndyRTR <andyrtr@archlinux.org>  pkgname=ghostscript  pkgver=8.63 -pkgrel=3 +pkgrel=4  pkgdesc="An interpreter for the PostScript language"  arch=(i686 x86_64)  license=('GPL' 'custom')  depends=('libxext' 'libxt' 'libcups>=1.3.8-2' 'fontconfig>=2.6.0' 'gtk2>=2.12.11' 'gnutls>=2.4.1')  makedepends=('automake' 'autoconf') +optdepends=('texlive-core: dvipdf')  replaces=('ghostscript-lrpng')  provides=('ghostscript-lprng')  url="http://www.cs.wisc.edu/~ghost/" -#url="http://www.cups.org/espgs/" -install=ghostscript.install  source=(ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/gs863/ghostscript-${pkgver}.tar.bz2  	ghostscript-fPIC.patch)  options=('!libtool' '!makeflags') diff --git a/abs/core-testing/glibc/ChangeLog b/abs/core-testing/glibc/ChangeLog index 79a44e7..dfd8a41 100644 --- a/abs/core-testing/glibc/ChangeLog +++ b/abs/core-testing/glibc/ChangeLog @@ -1,3 +1,10 @@ +glibc 2.9-2 +- apply Fedora10 changes to fix +  name resolving issues + +glibc 2.9-1 +- bump to new 2.9 branch +  glibc 2.8-2  - fix an old memory issue again @@ -25,4 +32,4 @@ glibc 2.7-3            localedata/tailor-iso14651_t1.diff partly    to fix broken et_EE locale  - switch to compressed patches -- added ChangeLog
\ No newline at end of file +- added ChangeLog diff --git a/abs/core-testing/glibc/PKGBUILD b/abs/core-testing/glibc/PKGBUILD index 68df516..01bf433 100644 --- a/abs/core-testing/glibc/PKGBUILD +++ b/abs/core-testing/glibc/PKGBUILD @@ -1,9 +1,11 @@ -# $Id: PKGBUILD 2685 2008-06-11 13:30:43Z andyrtr $ +# $Id: PKGBUILD 21686 2008-12-14 19:22:51Z andyrtr $  # Maintainer: Jan de Groot <jgc@archlinux.org> +# Maintainer: Andreas Radke <andyrtr@archlinux.org> +  pkgname=glibc -pkgver=2.8 -pkgrel=11 -_glibcdate=20080610 +pkgver=2.9 +pkgrel=2 +_glibcdate=20081119  install=glibc.install  backup=(etc/locale.gen)  pkgdesc="GNU C Library" @@ -11,16 +13,16 @@ arch=(i686 x86_64)  license=('GPL' 'LGPL')  url="http://www.gnu.org/software/libc"  groups=('base') -depends=('sh' 'kernel-headers>=2.6.25.6' 'tzdata') -makedepends=('gcc>=4.3.1-1') +depends=('sh' 'kernel-headers>=2.6.27.6' 'tzdata' 'texinfo') +makedepends=('gcc>=4.3.2-2')  replaces=('glibc-xen') -source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-2.8_${_glibcdate}.tar.bz2 -	ftp://ftp.archlinux.org/other/glibc/glibc-patches-${pkgver}-2.tar.bz2 +source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.bz2 +	ftp://ftp.archlinux.org/other/glibc/glibc-patches-${pkgver}-2.tar.gz  	nscd  	locale.gen.txt  	locale-gen) -md5sums=('63def58972f0e8429247916154c21323' -         '3ec00d9aa3f2fec046bc3e615dfb723a' +md5sums=('1f7cc590a7a9bbef8b09fe89af69fb8c' +         '7679e2bcd981847efccb2bad9e57fee3'           'b587ee3a70c9b3713099295609afde49'           '07ac979b6ab5eeb778d55f041529d623'           '476e9113489f93b348b21e144b6a8fcf') @@ -28,27 +30,33 @@ md5sums=('63def58972f0e8429247916154c21323'  build() {    # for cvs checkout -#  mkdir ${startdir}/src/glibc-${_glibcdate} -#  cd ${startdir}/src/glibc-${_glibcdate} -#  export _TAG=glibc-2_8-branch -#  export 'CVSROOT=:pserver:anoncvs@sources.redhat.com:/cvs/glibc' +  mkdir ${srcdir}/glibc-${_glibcdate} +  cd ${srcdir}/glibc-${_glibcdate} +  export _TAG=glibc-2_9-branch +  export 'CVSROOT=:pserver:anoncvs@sources.redhat.com:/cvs/glibc'  #  cvs -z9 co -r $_TAG libc || return 1 -#  tar -cvjf glibc-2.8_${_glibcdate}.tar.bz2 libc +#  tar -cvjf ../../glibc-2.9_${_glibcdate}.tar.bz2 libc  #  return 1 -  cd ${startdir}/src/libc +  cd ${srcdir}/libc    # patch from Debian -  patch -Np1 -i ${startdir}/src/glibc-patches/glibc-2.5-localedef_segfault-1.patch || return 1 # still needed? +  patch -Np1 -i ${srcdir}/glibc-patches/glibc-2.5-localedef_segfault-1.patch || return 1 # still needed?    # Upstream fixes. See sources.redhat.com bugzilla -  patch -Np1 -i ${startdir}/src/glibc-patches/glibc-2.7-bz4781.patch || return 1 +  patch -Np1 -i ${srcdir}/glibc-patches/glibc-2.7-bz4781.patch || return 1    # Gentoo fixes -  patch -Np1 -i ${startdir}/src/glibc-patches/glibc-dont-build-timezone.patch || return 1 +  patch -Np1 -i ${srcdir}/glibc-patches/glibc-dont-build-timezone.patch || return 1 + +  # fixes taken from FC10 2.9-3 rpm, fixes FS#12215 +  # see http://sources.redhat.com/bugzilla/show_bug.cgi?id=7060  +  # see https://bugzilla.redhat.com/show_bug.cgi?id=459756 +  patch -Np1 -i ${srcdir}/glibc-patches/glibc-nss_dns-gethostbyname4-disable.patch || return 1 +  patch -Np1 -i ${srcdir}/glibc-patches/glibc-fixes1.patch || return 1 -  install -m755 -d ${startdir}/pkg/etc -  touch ${startdir}/pkg/etc/ld.so.conf +  install -m755 -d ${pkgdir}/etc +  touch ${pkgdir}/etc/ld.so.conf    mkdir glibc-build    cd glibc-build @@ -68,33 +76,35 @@ build() {        --libdir=/usr/lib --without-gd    make || return 1 -  make install_root=${startdir}/pkg install || return 1 +  make install_root=${pkgdir} install || return 1 -  rm -f ${startdir}/pkg/etc/ld.so.cache ${startdir}/pkg/etc/ld.so.conf ${startdir}/pkg/etc/localtime +  rm -f ${pkgdir}/etc/ld.so.cache ${pkgdir}/etc/ld.so.conf ${pkgdir}/etc/localtime -  install -m755 -d ${startdir}/pkg/etc/rc.d -  install -m755 -d ${startdir}/pkg/usr/sbin -  install -m755 -d ${startdir}/pkg/usr/lib/locale -  install -m644 ${startdir}/src/libc/nscd/nscd.conf ${startdir}/pkg/etc/nscd.conf -  install -m755 ${startdir}/src/nscd ${startdir}/pkg/etc/rc.d/nscd -  install -m755 ${startdir}/src/locale-gen ${startdir}/pkg/usr/sbin +  install -m755 -d ${pkgdir}/etc/rc.d +  install -m755 -d ${pkgdir}/usr/sbin +  install -m755 -d ${pkgdir}/usr/lib/locale +  install -m644 ${srcdir}/libc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf +  install -m755 ${srcdir}/nscd ${pkgdir}/etc/rc.d/nscd +  install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin -  sed -i -e 's/^\tserver-user/#\tserver-user/' ${startdir}/pkg/etc/nscd.conf || return 1 +  sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf || return 1    # create /etc/locale.gen -  install -m644 ${startdir}/src/locale.gen.txt ${startdir}/pkg/etc/locale.gen -  sed -i "s|/| |g" ${startdir}/src/libc/localedata/SUPPORTED -  sed -i 's|\\| |g' ${startdir}/src/libc/localedata/SUPPORTED -  sed -i "s|SUPPORTED-LOCALES=||" ${startdir}/src/libc/localedata/SUPPORTED -  cat ${startdir}/src/libc/localedata/SUPPORTED >> ${startdir}/pkg/etc/locale.gen -  sed -i "s|^|#|g" ${startdir}/pkg/etc/locale.gen +  install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen +  sed -i "s|/| |g" ${srcdir}/libc/localedata/SUPPORTED +  sed -i 's|\\| |g' ${srcdir}/libc/localedata/SUPPORTED +  sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/libc/localedata/SUPPORTED +  cat ${srcdir}/libc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen +  sed -i "s|^|#|g" ${pkgdir}/etc/locale.gen    if [ "${CARCH}" = "x86_64" ]; then      # fix for the linker -    sed -i '/RTLDLIST/s%/ld-linux.so.2 /lib64%%' ${startdir}/pkg/usr/bin/ldd +    sed -i '/RTLDLIST/s%/ld-linux.so.2 /lib64%%' ${pkgdir}/usr/bin/ldd      #Comply with multilib binaries, they look for the linker in /lib64 -    mkdir ${startdir}/pkg/lib64 -    cd ${startdir}/pkg/lib64 +    mkdir ${pkgdir}/lib64 +    cd ${pkgdir}/lib64      ln -v -s ../lib/ld* .    fi + +  rm -f ${pkgdir}/usr/share/info/dir  } diff --git a/abs/core-testing/glibc/glibc.install b/abs/core-testing/glibc/glibc.install index 2a35040..2ed1127 100644 --- a/abs/core-testing/glibc/glibc.install +++ b/abs/core-testing/glibc/glibc.install @@ -1,3 +1,7 @@ +infodir=/usr/share/info +filelist=(libc.info libc.info-1 libc.info-2 libc.info-3 libc.info-4 libc.info-5 libc.info-6 libc.info-7  +          libc.info-8 libc.info-9 libc.info-10 libc.info-11) +  pre_upgrade() {  if [ "`uname -m`" = "x86_64" ]; then   if [ "`vercmp $2 2.4`" -lt 0 ]; then @@ -29,15 +33,18 @@ mv /lib64 /lib && echo "/lib64 moved"   fi  fi -} + for file in ${filelist[@]}; do +    install-info $infodir/$file $infodir/dir 2> /dev/null + done +}  post_upgrade() { -  echo -n "reloading init: "    ldconfig -r .    init u -  echo "done." -  cat << _EOF + +  if [ "`vercmp $2 2.3.6`" -lt 0 ]; then +    cat << _EOF    ==> ATTENTION INTERNATIONAL USERS:    ==>    ==> Locales are no longer included in the glibc package. @@ -46,21 +53,20 @@ post_upgrade() {    ==> glibc will try to autodetect the required locales now, if you need    ==> additional locales, please enable them in /etc/locale.gen and run    ==> /usr/sbin/locale-gen -  ==> -  ==> Check /etc/locale.gen.pacnew for new supported locales    ==>    _EOF -  # Check active locales, enable the ones that are in use -  loc=("$LANG" -       "`grep '^LOCALE=' etc/rc.conf | awk -F '=' '{ print $2 }'`") -  for l in "${loc[@]}"; do -    if [ ! -z "${l}" ]; then -      line="`grep -i "^#${l}[[:space:]]" etc/locale.gen`" -      if [ ! -z "${line}" ]; then -        sed -i -e "s|${line}|${line/\#/}|" etc/locale.gen +    # Check active locales, enable the ones that are in use +    loc=("$LANG" +         "`grep '^LOCALE=' etc/rc.conf | awk -F '=' '{ print $2 }'`") +    for l in "${loc[@]}"; do +      if [ ! -z "${l}" ]; then +        line="`grep -i "^#${l}[[:space:]]" etc/locale.gen`" +        if [ ! -z "${line}" ]; then +          sed -i -e "s|${line}|${line/\#/}|" etc/locale.gen +        fi        fi -    fi -  done +    done +  fi    usr/sbin/locale-gen @@ -115,8 +121,13 @@ if [ "`uname -m`" = "x86_64" ]; then   fi  fi + for file in ${filelist[@]}; do +    install-info $infodir/$file $infodir/dir 2> /dev/null + done  } -op=$1 -shift -$op $* +pre_remove() { +  for file in ${filelist[@]}; do +    install-info --delete $infodir/$file $infodir/dir 2> /dev/null +  done +} diff --git a/abs/core-testing/gnutls/PKGBUILD b/abs/core-testing/gnutls/PKGBUILD index ec50f98..7e3981c 100644 --- a/abs/core-testing/gnutls/PKGBUILD +++ b/abs/core-testing/gnutls/PKGBUILD @@ -1,24 +1,26 @@ -# $Id: PKGBUILD 8715 2008-08-16 04:25:59Z eric $ +# $Id: PKGBUILD 22309 2008-12-25 19:07:27Z jgc $  # Maintainer: Jan de Groot <jgc@archlinux.org>  # Notice:  # When building a new major version, build, install, build again.  #  pkgname=gnutls -pkgver=2.4.1 +pkgver=2.6.3  pkgrel=1  pkgdesc="A library which provides a secure layer over a reliable transport layer"  arch=(i686 x86_64)  license=('GPL3' 'LGPL')  url="http://www.gnu.org/software/gnutls/" +install=gnutls.install  options=('libtool') -depends=('gcc-libs' 'libtasn1>=1.4' 'readline' 'zlib' 'libgcrypt>=1.4') +depends=('gcc-libs>=4.3.2' 'libtasn1>=1.7' 'readline' 'zlib' 'libgcrypt>=1.4.3')  source=(ftp://ftp.gnutls.org/pub/gnutls/${pkgname}-${pkgver}.tar.bz2) -md5sums=('573db36cb3f8472b0293cfa1f52c607a') +md5sums=('c6d2d1996b87b238ad6f73f92225d9a2')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr --with-zlib --disable-guile || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  rm -f "${pkgdir}/usr/share/info/dir"  } diff --git a/abs/core-testing/gnutls/gnutls.install b/abs/core-testing/gnutls/gnutls.install new file mode 100644 index 0000000..0cf66fa --- /dev/null +++ b/abs/core-testing/gnutls/gnutls.install @@ -0,0 +1,18 @@ +infodir=/usr/share/info +filelist=(gnutls.info gnutls.info-1 gnutls.info-2 gnutls.info-3) + +post_install() { +  for file in ${filelist[@]}; do +    install-info $infodir/$file $infodir/dir 2> /dev/null +  done +} + +post_upgrade() { +  post_install $1 +} + +pre_remove() { +  for file in ${filelist[@]}; do +    install-info --delete $infodir/$file $infodir/dir 2> /dev/null +  done +} diff --git a/abs/core-testing/gsfonts/PKGBUILD b/abs/core-testing/gsfonts/PKGBUILD index 5294731..01bb023 100644 --- a/abs/core-testing/gsfonts/PKGBUILD +++ b/abs/core-testing/gsfonts/PKGBUILD @@ -8,7 +8,7 @@ arch=(i686 x86_64)  depends=('xorg-font-utils' 'fontconfig')  install=xfonts.install  url="http://sourceforge.net/projects/ghostscript" -source=(http://switch.dl.sourceforge.net/ghostscript/ghostscript-fonts-std-8.11.tar.gz) +source=(http://superb-east.dl.sourceforge.net/sourceforge/gs-fonts/ghostscript-fonts-std-8.11.tar.gz)  md5sums=('6865682b095f8c4500c54b285ff05ef6')  build() { diff --git a/abs/core-testing/gtk2/PKGBUILD b/abs/core-testing/gtk2/PKGBUILD index d119d56..1966409 100644 --- a/abs/core-testing/gtk2/PKGBUILD +++ b/abs/core-testing/gtk2/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 19648 2008-11-28 20:15:22Z jgc $ +# $Id: PKGBUILD 22045 2008-12-21 13:00:15Z jgc $  # Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=gtk2 -pkgver=2.14.5 +pkgver=2.14.6  pkgrel=1  pkgdesc="The GTK+ Toolkit (v2)"  arch=(i686 x86_64)  url="http://www.gtk.org/"  install=gtk2.install -depends=('atk>=1.24.0' 'pango>=1.22.3' 'libxcursor' 'libxinerama' 'libxrandr>=1.2.1' 'libxi' 'libcups>=1.3.9' 'libxcomposite' 'libxdamage' 'heimdal>=1.2' 'gnutls>=2.4.1') +depends=('atk>=1.24.0' 'pango>=1.22.4' 'libxcursor' 'libxinerama' 'libxrandr>=1.2.1' 'libxi' 'libcups>=1.3.9' 'libxcomposite' 'libxdamage' 'heimdal>=1.2.1' 'gnutls>=2.4.2')  makedepends=('pkgconfig')  replaces=('gtkprint-cups' 'gail')  conflicts=('gtkprint-cups' 'gail') @@ -17,21 +17,25 @@ options=('!libtool' '!docs')  backup=(etc/gtk-2.0/gtkrc)  license=('LGPL')  source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.14/gtk+-${pkgver}.tar.bz2 -	gtkclipboard-check.patch) -md5sums=('1b1b5d7ab5a25e84682cb27ee4808a40' -         '4025d3c15d6c6f73a032f403ffd4ff1c') +	gtkclipboard-check.patch +	gtk2-emit-size-change.patch) +md5sums=('69c2d2842203d7b627bc6ec34cb4a4f8' +         '4025d3c15d6c6f73a032f403ffd4ff1c' +         '942981cbba5057d9f02f4393e552f101')  build() { -  cd ${startdir}/src/gtk+-${pkgver} +  cd "${srcdir}/gtk+-${pkgver}"    # Workaround patch for flash -  patch -Np1 -i ${startdir}/src/gtkclipboard-check.patch || return 1 +  patch -Np1 -i "${srcdir}/gtkclipboard-check.patch" || return 1 +  # gdk does not let xfwm know about screen size changes +  patch -Np1 -i "${srcdir}/gtk2-emit-size-change.patch" || return 1    ./configure --prefix=/usr --sysconfdir=/etc \                --localstatedir=/var --with-xinput=yes \  	      --without-libjasper \  	      --with-included-loaders=png || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1 -  echo 'gtk-fallback-icon-theme = "gnome"' > ${startdir}/pkg/etc/gtk-2.0/gtkrc || return 1 +  echo 'gtk-fallback-icon-theme = "gnome"' > "${pkgdir}/etc/gtk-2.0/gtkrc" || return 1  } diff --git a/abs/core-testing/gtk2/gtk2-emit-size-change.patch b/abs/core-testing/gtk2/gtk2-emit-size-change.patch new file mode 100644 index 0000000..34053a8 --- /dev/null +++ b/abs/core-testing/gtk2/gtk2-emit-size-change.patch @@ -0,0 +1,26 @@ +diff -Naur gtk+-2.14.5-old/gdk/x11/gdkscreen-x11.c gtk+-2.14.5/gdk/x11/gdkscreen-x11.c +--- gtk+-2.14.5-old/gdk/x11/gdkscreen-x11.c	2008-11-24 16:36:03.000000000 +1000 ++++ gtk+-2.14.5/gdk/x11/gdkscreen-x11.c	2008-12-03 00:39:38.000000000 +1000 +@@ -894,11 +894,6 @@ + _gdk_x11_screen_size_changed (GdkScreen *screen, + 			      XEvent    *event) + { +-  gint width, height; +- +-  width = gdk_screen_get_width (screen); +-  height = gdk_screen_get_height (screen); +- + #ifdef HAVE_RANDR +   if (!XRRUpdateConfiguration (event)) +     return; +@@ -915,10 +910,6 @@ +     return; + #endif +  +-  if (width == gdk_screen_get_width (screen) &&  +-      height == gdk_screen_get_height (screen)) +-    return; +- +   _gdk_x11_screen_process_monitors_change (screen); +   g_signal_emit_by_name (screen, "size_changed"); + } diff --git a/abs/core-testing/hal-info/PKGBUILD b/abs/core-testing/hal-info/PKGBUILD index 7f697c8..a7f8dd0 100644 --- a/abs/core-testing/hal-info/PKGBUILD +++ b/abs/core-testing/hal-info/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 2153 2008-05-27 14:12:39Z jgc $ +# $Id: PKGBUILD 22303 2008-12-25 18:44:16Z jgc $  # Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=hal-info -_date=20080508 -pkgver=0.20080508 +_date=20081219 +pkgver=0.${_date}  pkgrel=1  pkgdesc="Hardware Abstraction Layer information files"  arch=(i686 x86_64)  license=('GPL' 'custom')  url="http://www.freedesktop.org/wiki/Software/hal"  source=(http://hal.freedesktop.org/releases/hal-info-${_date}.tar.gz) -md5sums=('6fc99d15d38945c17a291ea93e664664') +md5sums=('be7d6d47fd18250a99a3267e712d8af7')  build() { -  cd ${startdir}/src/${pkgname}-${_date} +  cd "${srcdir}/${pkgname}-${_date}"    ./configure --prefix=/usr --sysconfdir=/etc || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1 -  install -m755 -d ${startdir}/pkg/usr/share/licenses/${pkgname} -  install -m644 COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/ || return 1 +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1  } diff --git a/abs/core-testing/hal/PKGBUILD b/abs/core-testing/hal/PKGBUILD index f1a3b3f..4bad72d 100644 --- a/abs/core-testing/hal/PKGBUILD +++ b/abs/core-testing/hal/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 8861 2008-08-16 22:34:13Z eric $ +# $Id: PKGBUILD 12450 2008-09-14 10:49:05Z pierre $  # Maintainer: Jan de Groot <jgc@archlinux.org>  # Contributor: Link Dupont <link@subpop.net>  pkgname=hal  pkgver=0.5.11 -pkgrel=1 +pkgrel=4  pkgdesc="Hardware Abstraction Layer"  arch=(i686 x86_64)  license=('GPL' 'custom') @@ -18,10 +18,17 @@ source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.bz2  	hal-policy.patch  	cryptsetup_location.patch  	hal-0.5.9-hide-diagnostic.patch -	ntfs3g-valid-options.patch) -md5sums=('5e8935ab61bcb14afd2d4548084aace0' '277e96ac130d7bfce0b30f0b80db8782'\ -         '18dcdaa79952e2057c2e4745fbc8ad52' 'c688a3c6574699365926f4fef7441545'\ -         '4d4b6801a1cedca22b8bdd9db73b16fb' '4242a2c78885e396f639d0cd5e33218c') +	ntfs3g-valid-options.patch +	fix-udev-compatibility.patch +	ntfs-mount-fix.patch) +md5sums=('5e8935ab61bcb14afd2d4548084aace0' +         '277e96ac130d7bfce0b30f0b80db8782' +         '18dcdaa79952e2057c2e4745fbc8ad52' +         'c688a3c6574699365926f4fef7441545' +         '4d4b6801a1cedca22b8bdd9db73b16fb' +         '4242a2c78885e396f639d0cd5e33218c' +         '1a33d73fa422df2f05b7e3483836f778' +         '96cf8835c30dc581c4fcf72b6ad7675e')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} @@ -29,6 +36,9 @@ build() {    patch -Np1 -i ${startdir}/src/cryptsetup_location.patch || return 1    patch -Np1 -i ${startdir}/src/hal-0.5.9-hide-diagnostic.patch || return 1    patch -Np0 -i ${startdir}/src/ntfs3g-valid-options.patch || return 1 +  # Fix compatibility with udev 126 and later +  patch -Np1 -i ${startdir}/src/fix-udev-compatibility.patch || return 1 +  patch -p0 -i ${srcdir}/ntfs-mount-fix.patch || return 1    ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \                --libexecdir=/usr/lib/hal --enable-static=no \ diff --git a/abs/core-testing/hal/fix-udev-compatibility.patch b/abs/core-testing/hal/fix-udev-compatibility.patch new file mode 100644 index 0000000..2cfa3ad --- /dev/null +++ b/abs/core-testing/hal/fix-udev-compatibility.patch @@ -0,0 +1,31 @@ +diff -Nur hal-0.5.11.orig/hald/linux/blockdev.c hal-0.5.11/hald/linux/blockdev.c +--- hal-0.5.11.orig/hald/linux/blockdev.c	2008-05-08 01:23:41.000000000 +0200 ++++ hal-0.5.11/hald/linux/blockdev.c	2008-09-12 19:38:36.000000000 +0200 +@@ -1750,11 +1750,11 @@ +         char *ret; +         char *u_stdout; +         int u_exit_status; +-        const char *argv[] = {"/usr/bin/udevinfo", "--root", "--query", "name", "--path", NULL, NULL}; ++        const char *argv[] = {"/sbin/udevadm", "info", "--root", "--query", "name", "--path", NULL, NULL}; +         GError *g_error; +  +         ret = NULL; +-        argv[5] = sysfs_path; ++        argv[6] = sysfs_path; +  +         g_error = NULL; +  +diff -Nur hal-0.5.11.orig/hald/linux/coldplug.c hal-0.5.11/hald/linux/coldplug.c +--- hal-0.5.11.orig/hald/linux/coldplug.c	2008-05-08 01:23:32.000000000 +0200 ++++ hal-0.5.11/hald/linux/coldplug.c	2008-09-12 19:37:47.000000000 +0200 +@@ -149,8 +149,8 @@ + static gboolean + hal_util_init_sysfs_to_udev_map (void) + { +-	char *udevdb_export_argv[] = { "/usr/bin/udevinfo", "-e", NULL }; +-	char *udevroot_argv[] = { "/usr/bin/udevinfo", "-r", NULL }; ++	char *udevdb_export_argv[] = { "/sbin/udevadm", "info", "-e", NULL }; ++	char *udevroot_argv[] = { "/sbin/udevadm", "info", "-r", NULL }; + 	int udevinfo_exitcode; + 	UdevInfo *info = NULL; + 	char *p; diff --git a/abs/core-testing/hal/ntfs-mount-fix.patch b/abs/core-testing/hal/ntfs-mount-fix.patch new file mode 100644 index 0000000..13597f2 --- /dev/null +++ b/abs/core-testing/hal/ntfs-mount-fix.patch @@ -0,0 +1,18 @@ +--- tools/hal-storage-mount.c.orig	2008-04-21 01:48:27.000000000 +0200 ++++ tools/hal-storage-mount.c	2008-04-21 01:47:44.000000000 +0200 +@@ -769,13 +769,13 @@ +  + 	if (pol_is_fixed) { + 		if (pol_change_uid) { +-			action = NULL; /* "hal-storage-mount-fixed-extra-options"; TODO: rethink */ ++			action = "hal-storage-mount-fixed-extra-options"; /*TODO: rethink */ + 		} else { + 			action = "org.freedesktop.hal.storage.mount-fixed"; + 		} + 	} else { + 		if (pol_change_uid) { +-			action = NULL; /* "hal-storage-mount-removable-extra-options"; TODO: rethink "extra-options" */ ++			action = "hal-storage-mount-removable-extra-options"; /*TODO: rethink "extra-options" */ + 		} else { + 			action = "org.freedesktop.hal.storage.mount-removable"; + 		} diff --git a/abs/core-testing/heimdal/PKGBUILD b/abs/core-testing/heimdal/PKGBUILD index 4c79af6..06dd0cd 100644 --- a/abs/core-testing/heimdal/PKGBUILD +++ b/abs/core-testing/heimdal/PKGBUILD @@ -1,33 +1,33 @@ -# $Id: PKGBUILD 3738 2008-06-30 20:03:06Z andyrtr $ -# Maintainer: Jan de Groot <jgc@archlinux.org> +# $Id: PKGBUILD 21345 2008-12-12 02:52:37Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Contributor: Jan de Groot <jgc@archlinux.org>  # -### Attention: build it 2 times - it links against itself! ### -#   ^ better remove old pkg before ;) +### Attention: remove old pkg before building - it links against itself! ### +#  pkgname=heimdal -pkgver=1.2 -pkgrel=1 -pkgdesc="Heimdal Kerberos V5 libraries" -arch=(i686 x86_64) -url="http://www.pdc.kth.se/heimdal/" +pkgver=1.2.1 +pkgrel=2 +pkgdesc="Implementation of Kerberos V5 libraries" +arch=('i686' 'x86_64') +url="http://www.h5l.org/"  license=('custom')  depends=('db>=4.7' 'openssl' 'e2fsprogs') -options=('!libtool' '!emptydirs')  backup=(etc/krb5.conf) -source=(http://www.h5l.org/dist/src/heimdal-$pkgver.tar.gz \ +options=('!libtool' '!emptydirs') +install=$pkgname.install +source=(http://www.h5l.org/dist/src/${pkgname}-${pkgver}.tar.gz \  	002_all_heimdal-no_libedit.patch \  	003_all_heimdal-fPIC.patch \  	004_all_heimdal-rxapps.patch \ -	#006_all_heimdal-suid_fix.patch \  	heimdal-kdc.rc \  	kadmind.rc \  	kpasswd.rc) -md5sums=('8d6b690069acd2ae8ada1315174f52f9' +md5sums=('6e5028077e2a6b101a4a72801ba71b9e'           '1199c4a4a38e9c2b2c0a99bd5781767a'           '3d0262aa218e1611500de735d3581e28'           '0fe81cb1e33b2a2e60edaf47dfdfe4de' -         #'30372b1581e4d49a76688e450fd42443'           'e59650992b9541a30dfce727a194f6e0'           '1f2f86a67bbfddb7af581d35fdca9627'           'f8f1eca95b9d3f2b4ebf2417b71b81cf') @@ -39,24 +39,13 @@ build() {    patch -Np0 -i ${srcdir}/002_all_heimdal-no_libedit.patch || return 1    patch -Np0 -i ${srcdir}/003_all_heimdal-fPIC.patch || return 1    patch -Np0 -i ${srcdir}/004_all_heimdal-rxapps.patch || return 1 -#  patch -Np0 -i ${srcdir}/006_all_heimdal-suid_fix.patch || return 1 -   -#  libtoolize -f -c || return 1 -#  aclocal -I cf || return 1   -#  autoheader || return 1 -#  automake -a || return 1 -#  autoconf || return 1 -#  libtoolize -f -c || return 1 - -#  autoreconf || return 1 -#  libtoolize -f -c || return 1    sed -i -e 's|var/heimdal|var/lib/heimdal|g' configure.in configure \  	doc/setup.texi doc/heimdal.info kadmin/kadmind.8 kdc/kdc.8 \  	lib/hdb/hdb.h lib/krb5/krb5.conf.5 lib/krb5/krb5.conf.cat5    ./configure --prefix=/usr --enable-shared=yes --without-x \ -	--sysconfdir=/etc  --mandir=/usr/man \ +	--sysconfdir=/etc  --mandir=/usr/share/man \  	--datadir=/var/lib/heimdal \  	--localstatedir=/var/lib/heimdal \  	--with-openssl=/usr \ @@ -69,35 +58,35 @@ build() {    make DESTDIR=${pkgdir} install || return 1    for i in telnetd ftpd rshd; do -    mv ${pkgdir}/usr/man/man8/${i}.8 ${pkgdir}/usr/man/man8/k${i}.8 +    mv ${pkgdir}/usr/share/man/man8/${i}.8 ${pkgdir}/usr/share/man/man8/k${i}.8      mv ${pkgdir}/usr/sbin/${i} ${pkgdir}/usr/sbin/k${i}    done    for i in rcp rsh telnet ftp su login; do -    if [ -f ${pkgdir}/usr/man/man1/${i}.1 ]; then -      mv ${pkgdir}/usr/man/man1/${i}.1 ${pkgdir}/usr/man/man1/k${i}.1 +    if [ -f ${pkgdir}/usr/share/man/man1/${i}.1 ]; then +      mv ${pkgdir}/usr/share/man/man1/${i}.1 ${pkgdir}/usr/share/man/man1/k${i}.1      fi      mv ${pkgdir}/usr/bin/${i} ${pkgdir}/usr/bin/k${i}    done -  rm -rf ${pkgdir}/usr/man/cat{1,3,5,8} +  rm -rf ${pkgdir}/usr/share/man/cat{1,3,5,8} -  #Arch could be a KDC too +  # Arch could be a KDC too    mkdir -p ${pkgdir}/etc/rc.d    install -m644 ${srcdir}/heimdal-${pkgver}/krb5.conf ${pkgdir}/etc    for i in heimdal-kdc kadmind kpasswd; do      install -m755 ${srcdir}/${i}.rc ${pkgdir}/etc/rc.d/${i}    done -  #Remove some conflicts  -  rm ${pkgdir}/usr/man/man5/ftpusers.5* -  rm ${pkgdir}/usr/man/man5/login.access.5* -  # and some more -  rm ${pkgdir}/usr/bin/mk_cmds -  rm ${pkgdir}/usr/include/ss/ss.h -  rm ${pkgdir}/usr/lib/libss.a -  rm ${pkgdir}/usr/lib/libss.so +  # Remove conflicts  +  rm ${pkgdir}/usr/share/man/man5/ftpusers.5*		# man-pages +  rm ${pkgdir}/usr/share/info/dir + +  # Compress info pages +  for page in heimdal hx509; do +    gzip -9 ${pkgdir}/usr/share/info/${page}.info +  done -  # install the license +  # Install the license    install -D -m644 ${srcdir}/${pkgname}-${pkgver}/LICENSE \    	${pkgdir}/usr/share/licenses/${pkgname}/LICENSE  } diff --git a/abs/core-testing/heimdal/heimdal.install b/abs/core-testing/heimdal/heimdal.install new file mode 100644 index 0000000..499d216 --- /dev/null +++ b/abs/core-testing/heimdal/heimdal.install @@ -0,0 +1,20 @@ +infodir=/usr/share/info +filelist=(heimdal hx509) + +post_install() { +  for file in ${filelist[@]}; do +    install-info $infodir/$file.info.gz $infodir/dir 2> /dev/null +  done +} + +post_upgrade() { +  post_install $1 +} + +pre_remove() { +  for file in ${filelist[@]}; do +    install-info --delete $infodir/$file.info.gz $infodir/dir 2> /dev/null +  done +} + +# vim:set ts=2 sw=2 et: diff --git a/abs/core-testing/ilmbase/PKGBUILD b/abs/core-testing/ilmbase/PKGBUILD new file mode 100644 index 0000000..b8930a5 --- /dev/null +++ b/abs/core-testing/ilmbase/PKGBUILD @@ -0,0 +1,22 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> + +pkgname=ilmbase +pkgver=1.0.1 +pkgrel=1 +depends=('gcc-libs') +pkgdesc="IlmThread is a thread abstraction library for use with OpenEXR" +arch=(i686 x86_64) +license=('custom') +options=('!libtool') +source=(http://savannah.nongnu.org/download/openexr/$pkgname-$pkgver.tar.gz) +url="http://www.openexr.org" +md5sums=('f76f094e69a6079b0beb93d97e2a217e') + +build() { +  cd $startdir/src/$pkgname-$pkgver +  ./configure --prefix=/usr +  make || return 1 +  make DESTDIR=$startdir/pkg install +  install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING +} diff --git a/abs/core-testing/imagemagick/ChangeLog b/abs/core-testing/imagemagick/ChangeLog index 8b3a5fb..e46815d 100644 --- a/abs/core-testing/imagemagick/ChangeLog +++ b/abs/core-testing/imagemagick/ChangeLog @@ -1,3 +1,50 @@ +2008-12-29  Eric Belanger  <eric@archlinux.org> + +	* imagemagick 6.4.8.2-1 +	* Upstream update + +2008-12-14  Eric Belanger  <eric@archlinux.org> + +	* imagemagick 6.4.7.8-1 +	* Upstream update + +2008-12-05  Eric Belanger  <eric@archlinux.org> + +	* imagemagick 6.4.7.0-1 +	* Upstream update +	* Rebuild against heimdal 1.2.1 + +2008-11-25  Eric Belanger  <eric@archlinux.org> + +	* imagemagick 6.4.6.3-1 +	* Upstream update + +2008-11-14  Eric Belanger  <eric@archlinux.org> + +	* imagemagick 6.4.5.6-1 +	* Upstream update + +2008-10-26  Eric Belanger  <eric@archlinux.org> + +	* imagemagick 6.4.5.0-1 +	* Upstream update + +2008-10-18  Eric Belanger  <eric@archlinux.org> + +	* imagemagick 6.4.4.9-1 +	* Upstream update + +2008-10-03  Eric Belanger  <eric@archlinux.org> + +	* imagemagick 6.4.4.1-1 +	* Upstream update + +2008-09-06  Eric Belanger  <eric@archlinux.org> + +	* imagemagick 6.4.3.6-1 +	* Upstream update +	* Added JPEG2000 support (close FS#10544) +  2008-08-19  Eric Belanger  <eric@archlinux.org>  	* imagemagick 6.4.2.10-1 diff --git a/abs/core-testing/imagemagick/PKGBUILD b/abs/core-testing/imagemagick/PKGBUILD index 79555bf..ac04f26 100644 --- a/abs/core-testing/imagemagick/PKGBUILD +++ b/abs/core-testing/imagemagick/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 9867 2008-08-20 05:56:48Z eric $ +# $Id: PKGBUILD 22960 2008-12-30 05:45:59Z eric $  # Maintainer: Eric Belanger <eric@archlinux.org>  # NOTE: ImageMagick builds against an existing installation @@ -8,39 +8,39 @@  # install old package, build new package, install new package, rebuild  pkgname=imagemagick -pkgver=6.4.2.10 +pkgver=6.4.8.2  pkgrel=1  pkgdesc="An image viewing/manipulation program"  arch=('i686' 'x86_64')  url="http://www.imagemagick.org/"  license=('custom') -depends=('lcms' 'libwmf' 'librsvg' 'libxt' 'gcc-libs' 'ghostscript' 'openexr' 'libtool>=2.2' 'bzip2' 'libxml2') +depends=('lcms' 'libwmf' 'librsvg' 'libxt' 'gcc-libs' 'ghostscript' 'openexr' 'libtool>=2.2' 'heimdal>=1.2.1' 'bzip2' 'libxml2' 'jasper')  #makedepends=('ghostscript' 'openexr')  options=('!makeflags' '!docs')  source=(ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.bz2 \          libpng_mmx_patch_x86_64.patch add_delegate.patch) -md5sums=('f60ae313a2cc2fcc980543165e7ebaf4' '069980fc2590c02aed86420996259302'\ +md5sums=('8454e93a0b88fd9319157b5301deff38' '069980fc2590c02aed86420996259302'\           '7f5851c4450b73d52df55c7e806cc316') -sha1sums=('0c45712a07b0d337ac4130c3ad605566d013ea3f' +sha1sums=('e5de65c998776c5b49a1b364d05ca3515310e23a'            'e42f3acbe85b6098af75c5cecc9a254baaa0482c'            '19b40dcbc5bf8efb8ce7190fed17e2921de32ea5')  build() { -  cd ${srcdir}/ImageMagick-${pkgver%.*} +  cd ${srcdir}/ImageMagick-${pkgver%.*}-${pkgver##*.}    if [ "${CARCH}" = "x86_64" ]; then      patch -Np1 < ../libpng_mmx_patch_x86_64.patch || return 1    fi    patch -p0 < ../add_delegate.patch || return 1 +  sed -i "s/with_autotrace='no'/with_autotrace='yes'/" configure || return 1 -  #LIBS=-lMagickWand ./configure --prefix=/usr --without-modules --disable-static --disable-openmp \ -  ./configure --prefix=/usr --without-modules --disable-static --disable-openmp \ -              --with-x --with-wmf --with-openexr \ +  LIBS=-lMagickWand ./configure --prefix=/usr --without-modules --disable-static --enable-openmp \ +              --with-x --with-wmf --with-openexr --with-xml \                --with-gslib --with-gs-font-dir=/usr/share/fonts/Type1 \                --with-perl --with-perl-options="INSTALLDIRS=vendor" \ -              --without-gvc --without-djvu --without-jp2 \ -               --without-fpx --without-dps || return 1 +              --without-gvc --without-djvu --with-jp2 \ +              --without-jbig --without-fpx --without-dps || return 1    make || return 1    make DESTDIR=${pkgdir} install || return 1 diff --git a/abs/core-testing/inputproto/PKGBUILD b/abs/core-testing/inputproto/PKGBUILD index ddd445c..abbb0fc 100644 --- a/abs/core-testing/inputproto/PKGBUILD +++ b/abs/core-testing/inputproto/PKGBUILD @@ -1,22 +1,22 @@ -# $Id: PKGBUILD 670 2008-04-21 13:49:33Z alexander $ +# $Id: PKGBUILD 7996 2008-08-05 17:48:09Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=inputproto -pkgver=1.4.3 +pkgver=1.4.4  pkgrel=1  pkgdesc="X11 Input extension wire protocol"  arch=(i686 x86_64)  license=('custom')  url="http://xorg.freedesktop.org/"  source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2) +md5sums=('3a532379f226c34b36a5c585999f75e4')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr +  cd ${srcdir}/${pkgname}-${pkgver} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1 -  install -D -m644 ${startdir}/src/${pkgname}-${pkgver}/COPYING \ -                   ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING +  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} +  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1  } -md5sums=('a0f0d8cf6fbf0db8ba3937d0cc16138d') diff --git a/abs/core-testing/intel-dri/PKGBUILD b/abs/core-testing/intel-dri/PKGBUILD index 167f4e4..8da4e48 100644 --- a/abs/core-testing/intel-dri/PKGBUILD +++ b/abs/core-testing/intel-dri/PKGBUILD @@ -2,37 +2,42 @@  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=intel-dri -pkgver=7.0.3 -pkgrel=1 +pkgver=7.2 +pkgrel=2  pkgdesc="Mesa DRI drivers for Intel chipsets"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/" -depends=('libdrm>=2.3.0' 'expat>=2.0') -makedepends=('imake' 'mesa>=7.0.3' 'glproto>=1.4.9') +depends=('libdrm>=2.3.1' 'expat>=2.0.1' 'libgl>=7.2') +makedepends=('glproto>=1.4.9' 'pkgconfig' 'libxfixes' 'libxdamage' 'libxxf86vm' 'libxext')  options=('!libtool') -source=(http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${pkgver}.tar.bz2) -md5sums=('e6e6379d7793af40a6bc3ce1bace572e') +source=(http://downloads.sourceforge.net/mesa3d/MesaLib-${pkgver}.tar.bz2 +	mesa-7.1-link-shared.patch +	intel-revert-vbl.patch +	intel-disable-ttm-warning.patch) +md5sums=('04d379292e023df0b0266825cb0dbde5' +         'f0baa948d9810f268413111ee439d24b' +         'a111f4dc82e894f8801bc3fa129af7af' +         'a393d374b5d187ff2a5bb90b0f347c9a')  build() { -  cd ${startdir}/src/Mesa-${pkgver}/configs - -  CONFIG="linux-dri-x86" -  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64" -  echo "EXTRA_LIB_PATH =" >> ${CONFIG} -  echo "OPT_FLAGS = ${CFLAGS} -fno-strict-aliasing" >> ${CONFIG} -  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG} -  echo "USING_EGL = 0" >> ${CONFIG} -  echo "PROGRAM_DIRS =" >> ${CONFIG} -  echo "MKDEP = makedepend" >> ${CONFIG} -  echo "DRI_DIRS = i810 i915 i915tex i965" >> ${CONFIG} -  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG} -  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG} - -  ln -s ${CONFIG} current -  cd ${startdir}/src/Mesa-${pkgver}/src/mesa -  make linux-solo || return 1 -  cd drivers/dri -  make DESTDIR=${startdir}/pkg install || return 1 +  cd ${srcdir}/Mesa-${pkgver} +  patch -Np1 -i "${srcdir}/intel-revert-vbl.patch" || return 1 +  patch -Np1 -i "${srcdir}/intel-disable-ttm-warning.patch" || return 1 +  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1 +  ./configure --prefix=/usr \ +    --with-dri-driverdir=/usr/lib/xorg/modules/dri \ +    --with-dri-drivers=i810,i915,i965 \ +    --enable-glx-tls \ +    --disable-ttm-api \ +    --with-driver=dri \ +    --enable-xcb \ +    --disable-glu \ +    --disable-glut \ +    --disable-glw || return 1 +  make || return 1 +  cd src/mesa/drivers/dri || return 1 +  make DESTDIR=${pkgdir} install || return 1 +  rm -rf ${pkgdir}/usr/lib/pkgconfig +  rm -rf ${pkgdir}/usr/include +  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so  } diff --git a/abs/core-testing/intel-dri/intel-disable-ttm-warning.patch b/abs/core-testing/intel-dri/intel-disable-ttm-warning.patch new file mode 100644 index 0000000..f9d5223 --- /dev/null +++ b/abs/core-testing/intel-dri/intel-disable-ttm-warning.patch @@ -0,0 +1,13 @@ +diff -ruN Mesa-7.2.orig/src/mesa/drivers/dri/intel/intel_context.c Mesa-7.2/src/mesa/drivers/dri/intel/intel_context.c +--- Mesa-7.2.orig/src/mesa/drivers/dri/intel/intel_context.c	2008-09-13 20:25:44.000000000 +0000 ++++ Mesa-7.2/src/mesa/drivers/dri/intel/intel_context.c	2008-12-21 21:27:45.000000000 +0000 +@@ -490,9 +490,6 @@ +    if (intel->bufmgr == NULL) { +       if (ttm_disable) { + 	 fprintf(stderr, "TTM buffer manager disabled.  Using classic.\n"); +-      } else { +-	 fprintf(stderr, "Failed to initialize TTM buffer manager.  " +-		 "Falling back to classic.\n"); +       } +  +       if (intelScreen->tex.size == 0) { diff --git a/abs/core-testing/intel-dri/intel-revert-vbl.patch b/abs/core-testing/intel-dri/intel-revert-vbl.patch new file mode 100644 index 0000000..0394414 --- /dev/null +++ b/abs/core-testing/intel-dri/intel-revert-vbl.patch @@ -0,0 +1,21 @@ +commit 532d2051245a1d8afe7ca236f1d966d555bb121a +Author: Dave Airlie <airlied@linux.ie> +Date:   Fri Sep 12 17:21:25 2008 +1000 + +    Revert "intel: sync to vblank by default" +     +    This reverts commit e9bf3e4cc9a7e4bcd4c45bd707541d26ecdf0409. + +diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c +index c193830..f02192d 100644 +--- a/src/mesa/drivers/dri/intel/intel_screen.c ++++ b/src/mesa/drivers/dri/intel/intel_screen.c +@@ -55,7 +55,7 @@ PUBLIC const char __driConfigOptions[] = +    DRI_CONF_BEGIN +    DRI_CONF_SECTION_PERFORMANCE +       DRI_CONF_FTHROTTLE_MODE(DRI_CONF_FTHROTTLE_IRQS) +-      DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_ALWAYS_SYNC) ++      DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_DEF_INTERVAL_0) +       /* Options correspond to DRI_CONF_BO_REUSE_DISABLED, +        * DRI_CONF_BO_REUSE_ALL +        */ diff --git a/abs/core-testing/intel-dri/mesa-7.1-link-shared.patch b/abs/core-testing/intel-dri/mesa-7.1-link-shared.patch new file mode 100644 index 0000000..7fdbf14 --- /dev/null +++ b/abs/core-testing/intel-dri/mesa-7.1-link-shared.patch @@ -0,0 +1,102 @@ +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile +--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000 +@@ -6,12 +6,17 @@ include $(TOP)/configs/current +  +  +  +-default: $(TOP)/$(LIB_DIR) subdirs ++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs +  +  + $(TOP)/$(LIB_DIR): + 	-mkdir $(TOP)/$(LIB_DIR) +  ++libdricore.so: ++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so ++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR)  +  + subdirs: + 	@for dir in $(DRI_DIRS) ; do \ +@@ -31,12 +36,14 @@ dri.pc: dri.pc.in + 	$(pcedit) $< > $@ +  +  +-install: dri.pc ++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so + 	@for dir in $(DRI_DIRS) ; do \ + 		if [ -d $$dir ] ; then \ + 			(cd $$dir && $(MAKE) install) || exit 1 ; \ + 		fi \ + 	done ++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) + 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal + 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \ + 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal +@@ -52,5 +59,6 @@ clean: + 			(cd $$dir && $(MAKE) clean) ; \ + 		fi \ + 	done ++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so + 	-rm -f common/*.o + 	-rm -f *.pc +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template +--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000 +@@ -1,6 +1,6 @@ + # -*-makefile-*- +  +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so +  + COMMON_SOURCES = \ +         ../common/utils.c \ +@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO +  + $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template + 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ +-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) ++		$(OBJECTS) $(WINOBJ) \ ++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \ ++		$(DRI_LIB_DEPS) +  +  + $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME) +diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S +--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000 +@@ -77,7 +77,6 @@ +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX +-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX + 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + 	pushl	%ebx +@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + 	pushl	%esi +@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + 	pushl	%esi +@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + 	.globl	_generic_read_RGBA_span_RGB565_MMX +-        .hidden _generic_read_RGBA_span_RGB565_MMX + 	.type	_generic_read_RGBA_span_RGB565_MMX, @function +  + _generic_read_RGBA_span_RGB565_MMX: diff --git a/abs/core-testing/intltool/ChangeLog b/abs/core-testing/intltool/ChangeLog new file mode 100644 index 0000000..f9a7192 --- /dev/null +++ b/abs/core-testing/intltool/ChangeLog @@ -0,0 +1,29 @@ +2008-11-28  Jan de Groot  <jgc@archlinux.org> + +	* intltool 0.40.5-1 +	* Upstream update + +2008-09-25  Jan de Groot  <jgc@archlinux.org> + +	* intltool 0.40.4-1 +	* Upstream update + +2008-07-28  Eric Belanger  <eric@archlinux.org> + +	* intltool 0.40.3-1 +	* Upstream update + +2008-07-23  Eric Belanger  <eric@archlinux.org> + +	* intltool 0.40.1-1 +	* Upstream update + +2008-06-08  Eric Belanger  <eric@archlinux.org> + +	* intltool 0.40.0-1 +	* Upstream update + +2008-03-01  Eric Belanger  <eric@archlinux.org> + +	* intltool 0.37.1-1 +	* Upstream update diff --git a/abs/core-testing/intltool/PKGBUILD b/abs/core-testing/intltool/PKGBUILD new file mode 100644 index 0000000..b780d3b --- /dev/null +++ b/abs/core-testing/intltool/PKGBUILD @@ -0,0 +1,22 @@ +# $Id: PKGBUILD 19652 2008-11-28 20:22:55Z jgc $ +# Maintainer: Eric Belanger <eric@archlinux.org> +# Contributor: Jan de Groot <jgc@archlinux.org> + +pkgname=intltool +pkgver=0.40.5 +pkgrel=1 +pkgdesc="The internationalization tool collection" +arch=('i686' 'x86_64') +url="http://freedesktop.org/wiki/Software/intltool" +license=('GPL') +depends=('perlxml') +source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2) +md5sums=('3e7ded6f50d88cf8b8bb505eaf591775') +sha1sums=('72a67f18dbc12e1af11bfff80100993107b4df84') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1 +  make || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +} diff --git a/abs/core-testing/jack-audio-connection-kit/PKGBUILD b/abs/core-testing/jack-audio-connection-kit/PKGBUILD index f9d73eb..b9f0ed8 100644 --- a/abs/core-testing/jack-audio-connection-kit/PKGBUILD +++ b/abs/core-testing/jack-audio-connection-kit/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 9246 2008-08-17 05:38:58Z allan $  # Maintainer: tobias <tobias@archlinux.net>  # Contributor: Robert Emil Berge <robert@rebi.no>  pkgname=jack-audio-connection-kit  pkgver=0.109.2 -pkgrel=1 +pkgrel=2  pkgdesc="a low-latency audio server"  arch=(i686 x86_64)  license=(GPL2 LGPL2) diff --git a/abs/core-testing/kdelibs3/PKGBUILD b/abs/core-testing/kdelibs3/PKGBUILD index f4ed7a0..2effdcc 100644 --- a/abs/core-testing/kdelibs3/PKGBUILD +++ b/abs/core-testing/kdelibs3/PKGBUILD @@ -4,7 +4,7 @@  pkgname=kdelibs3  pkgver=3.5.10 -pkgrel=1 +pkgrel=2  pkgdesc="KDE3 Core Libraries"  arch=('i686' 'x86_64')  url="http://www.kde.org" @@ -15,7 +15,7 @@ depends=('libxslt' 'pcre' 'libart-lgpl' 'alsa-lib' 'libcups'  makedepends=('pkgconfig' 'cups')  options=('libtool')  install='kdelibs3.install' -source=("ftp://carroll.aset.psu.edu/pub/kde/stable/${pkgver}/src/kdelibs-${pkgver}.tar.bz2" +source=("http://download.kde.org/stable/${pkgver}/src/kdelibs-${pkgver}.tar.bz2"          'kde3.profile')  md5sums=('43cd55ed15f63b5738d620ef9f9fd568'           '3c49828eb8985cfb25af8e1495f7800a') diff --git a/abs/core-testing/kernel-headers/PKGBUILD b/abs/core-testing/kernel-headers/PKGBUILD index 485a918..91ecc59 100644 --- a/abs/core-testing/kernel-headers/PKGBUILD +++ b/abs/core-testing/kernel-headers/PKGBUILD @@ -1,27 +1,28 @@ -# $Id: PKGBUILD 3465 2008-06-22 20:06:08Z jgc $ +# $Id: PKGBUILD 19341 2008-11-20 14:48:13Z andyrtr $  # Maintainer: Jan de Groot <jgc@archlinux.org> +# Maintainer: Andreas Radke <andyrtr@archlinux.org> +  pkgname=kernel-headers -pkgver=2.6.25.8 -_basever=2.6.25 -pkgrel=10 +pkgver=2.6.27.6 +_basever=2.6.27 +pkgrel=2  pkgdesc="Kernel headers sanitized for use in userspace"  arch=('i686' 'x86_64')  license=('GPL')  url="http://www.gnu.org/software/libc"  groups=('base')  source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${_basever}.tar.bz2 -	http://www.kernel.org/pub/linux/kernel/v2.6/patch-${pkgver}.bz2 -	netfilter-includes.patch) -md5sums=('db95a49a656a3247d4995a797d333153' -         '007e6aca33604bc09687790361026d3c' -	 '671fa5d449e145199a871d1a41514122') +	http://www.kernel.org/pub/linux/kernel/v2.6/patch-${pkgver}.bz2) +md5sums=('b3e78977aa79d3754cb7f8143d7ddabd' +         'beec5a958abb1045c0b723dc1f195f7e')  build() { -  cd ${startdir}/src/linux-${_basever} -  patch -Np1 -i ${startdir}/src/patch-${pkgver} || return 1 -  patch -Np1 -i ${startdir}/src/netfilter-includes.patch || return 1 +  cd ${srcdir}/linux-${_basever} +  patch -Np1 -i ${srcdir}/patch-${pkgver} || return 1    make mrproper    make headers_check || return 1 -  make INSTALL_HDR_PATH=${startdir}/pkg/usr headers_install +  make INSTALL_HDR_PATH=${pkgdir}/usr headers_install + +  rm -rf ${pkgdir}/usr/include/drm  } diff --git a/abs/core-testing/kernel26/PKGBUILD b/abs/core-testing/kernel26/PKGBUILD index b96120c..3966ee1 100644 --- a/abs/core-testing/kernel26/PKGBUILD +++ b/abs/core-testing/kernel26/PKGBUILD @@ -1,12 +1,11 @@ -# $Id: PKGBUILD 10337 2008-08-26 21:10:56Z tpowa $ +# $Id: PKGBUILD 22035 2008-12-21 10:00:17Z tpowa $  # Maintainer: Tobias Powalowski <tpowa@archlinux.org>  # Maintainer: Thomas Baechler <thomas@archlinux.org>  pkgname=kernel26 -_basekernel=2.6.26 -pkgver=2.6.26.3 -pkgrel=10 -#_patchname="patch-${pkgver}-${pkgrel}-ARCH" -_patchname="patch-${pkgver}-1-ARCH" +_basekernel=2.6.27 +pkgver=2.6.27.10 +pkgrel=1 +_patchname="patch-${pkgver}-${pkgrel}-ARCH"  pkgdesc="The Linux Kernel and modules"  arch=(i686 x86_64)  license=('GPL2') @@ -20,7 +19,8 @@ depends=('coreutils' 'module-init-tools' 'mkinitcpio>=0.5.18')  replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi'            'alsa-driver' 'ieee80211' 'hostap-driver26'            'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv' -	  'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs') +          'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs' +          'gspcav1')  install=kernel26.install  source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2          ftp://ftp.archlinux.org/other/kernel26/${_patchname}.bz2 @@ -31,22 +31,22 @@ source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2  	logo_linux_clut224.ppm  	logo_linux_mono.pbm  	logo_linux_vga16.ppm) -md5sums=('5169d01c405bc3f866c59338e217968c' -         '003e89dd71b32ae9b93cd1601da3b1b0' -	 '4fd1071a8dc2ea993aed81d5920de18d' -         'd5ad1f296356d159a2616a49d98b3434' -	 '25584700a0a679542929c4bed31433b6' +md5sums=('b3e78977aa79d3754cb7f8143d7ddabd' +         '05083482b71bc6c364a96d318e5b49fe' +         '56ca3800d4567ba728382d02417152af' +         '5e96d95aec10471017e8b7c12d11a2d3' +         '25584700a0a679542929c4bed31433b6'  	 '7bdfe2e1daedb324fdfdfa95ba4e2430' -	 'a88d90384e50bd061a81fcc6573fc3bb' -	 'f536292192a69d590b2ffd4700c14185') +	 '3cc08afb1575b4c79d3f9c3410260ce2' +	 'a54b65186d0922f3890f9716cdb4f4a5')  build() {    KARCH=x86 -  cd $startdir/src/linux-$_basekernel +  cd ${srcdir}/linux-$_basekernel    # Add -ARCH patches    # See http://projects.archlinux.org/git/?p=linux-2.6-ARCH.git;a=summary -  patch -Np1 -i $startdir/src/${_patchname} || return 1 +  patch -Np1 -i ${srcdir}/${_patchname} || return 1    if [ "$CARCH" = "x86_64" ]; then      cat ../config.x86_64 >./.config @@ -54,13 +54,11 @@ build() {      cat ../config >./.config    fi    cp ../logo_linux_clut224.ppm drivers/video/logo/ -  cp ../logo_linux_mono.ppm drivers/video/logo/ -  cp ../logo_linux_vga16.ppm drivers/video/logo/ -  # build the full kernel version to use in pathnames -  . ./.config -  ### next line is only needed for rc kernels -  #_kernver="2.6.25${CONFIG_LOCALVERSION}" -  _kernver="${_basekernel}${CONFIG_LOCALVERSION}" +#  cp ../logo_linux_mono.pbm drivers/video/logo/ +#  cp ../logo_linux_vga16.ppm drivers/video/logo +  # get kernel version   +  make prepare +  _kernver="$(make kernelrelease)"    # load configuration    yes "" | make config    # build! @@ -71,89 +69,88 @@ build() {    #return 1    ####################    make bzImage modules || return 1 -  mkdir -p $startdir/pkg/{lib/modules,boot} -  make INSTALL_MOD_PATH=$startdir/pkg modules_install || return 1 -  cp System.map $startdir/pkg/boot/System.map26 -  cp arch/$KARCH/boot/bzImage $startdir/pkg/boot/vmlinuz26 +  mkdir -p ${pkgdir}/{lib/modules,boot} +  make INSTALL_MOD_PATH=${pkgdir} modules_install || return 1 +  cp System.map ${pkgdir}/boot/System.map26 +  cp arch/$KARCH/boot/bzImage ${pkgdir}/boot/vmlinuz26    install -D -m644 Makefile \ -    $startdir/pkg/usr/src/linux-${_kernver}/Makefile +    ${pkgdir}/usr/src/linux-${_kernver}/Makefile    install -D -m644 kernel/Makefile \ -    $startdir/pkg/usr/src/linux-${_kernver}/kernel/Makefile +    ${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile    install -D -m644 .config \ -    $startdir/pkg/usr/src/linux-${_kernver}/.config -  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include +    ${pkgdir}/usr/src/linux-${_kernver}/.config +  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include    for i in acpi asm-{generic,x86} config linux math-emu media net pcmcia scsi sound video; do -    cp -a include/$i $startdir/pkg/usr/src/linux-${_kernver}/include/ +    cp -a include/$i ${pkgdir}/usr/src/linux-${_kernver}/include/    done    # copy files necessary for later builds, like nvidia and vmware -  cp Module.symvers $startdir/pkg/usr/src/linux-${_kernver} -  cp -a scripts $startdir/pkg/usr/src/linux-${_kernver} +  cp Module.symvers ${pkgdir}/usr/src/linux-${_kernver} +  cp -a scripts ${pkgdir}/usr/src/linux-${_kernver}    # fix permissions on scripts dir -  chmod og-w -R $startdir/pkg/usr/src/linux-${_kernver}/scripts -  #mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/.tmp_versions +  chmod og-w -R ${pkgdir}/usr/src/linux-${_kernver}/scripts +  #mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions -  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/kernel +  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel -  cp arch/$KARCH/Makefile $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/ +  cp arch/$KARCH/Makefile ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/    if [ "$CARCH" = "i686" ]; then -    cp arch/$KARCH/Makefile_32.cpu $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/ +    cp arch/$KARCH/Makefile_32.cpu ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/    fi -  cp arch/$KARCH/kernel/asm-offsets.s $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/kernel/ +  cp arch/$KARCH/kernel/asm-offsets.s ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel/    # add headers for lirc package -  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video -  cp drivers/media/video/*.h  $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/ +  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video +  cp drivers/media/video/*.h  ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/    for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 usbvideo zc0301; do -   mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/$i -   cp -a drivers/media/video/$i/*.h $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/$i +   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i +   cp -a drivers/media/video/$i/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i    done    # add dm headers -  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/md -  cp drivers/md/*.h  $startdir/pkg/usr/src/linux-${_kernver}/drivers/md +  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/md +  cp drivers/md/*.h  ${pkgdir}/usr/src/linux-${_kernver}/drivers/md    # add inotify.h -  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include/linux -  cp include/linux/inotify.h $startdir/pkg/usr/src/linux-${_kernver}/include/linux/ +  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/linux +  cp include/linux/inotify.h ${pkgdir}/usr/src/linux-${_kernver}/include/linux/    # add CLUSTERIP file for iptables -  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/net/ipv4/netfilter/ +  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/net/ipv4/netfilter/    # add wireless headers -  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/net/mac80211/ -  cp net/mac80211/*.h $startdir/pkg/usr/src/linux-${_kernver}/net/mac80211/ +  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/ +  cp net/mac80211/*.h ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/    # add dvb headers for external modules    # in reference to:    # http://bugs.archlinux.org/task/9912 -  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core -  cp drivers/media/dvb/dvb-core/*.h $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/ +  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core +  cp drivers/media/dvb/dvb-core/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/    # add dvb headers for external modules    # in reference to:    # http://bugs.archlinux.org/task/11194 -  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include/config/dvb/ -  cp include/config/dvb/*.h $startdir/pkg/usr/src/linux-${_kernver}/include/config/dvb/ +  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/ +  cp include/config/dvb/*.h ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/    # add xfs and shmem for aufs building -  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/fs/xfs -  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/mm -  cp fs/xfs/xfs_sb.h $startdir/pkg/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h +  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs +  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/mm +  cp fs/xfs/xfs_sb.h ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h    # add vmlinux -  cp vmlinux $startdir/pkg/usr/src/linux-${_kernver} +  cp vmlinux ${pkgdir}/usr/src/linux-${_kernver}    # copy in Kconfig files    for i in `find . -name "Kconfig*"`; do  -    mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'` -    cp $i $startdir/pkg/usr/src/linux-${_kernver}/$i +    mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'` +    cp $i ${pkgdir}/usr/src/linux-${_kernver}/$i    done -  cd $startdir/pkg/usr/src/linux-${_kernver}/include && ln -s asm-$KARCH asm +  cd ${pkgdir}/usr/src/linux-${_kernver}/include && ln -s asm-$KARCH asm -  chown -R root.root $startdir/pkg/usr/src/linux-${_kernver} -  find $startdir/pkg/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \; -  cd $startdir/pkg/lib/modules/${_kernver} && \ +  chown -R root.root ${pkgdir}/usr/src/linux-${_kernver} +  find ${pkgdir}/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \; +  cd ${pkgdir}/lib/modules/${_kernver} && \      (rm -f source build; ln -sf ../../../usr/src/linux-${_kernver} build)    # install fallback mkinitcpio.conf file and preset file for kernel -  install -m644 -D $startdir/src/${pkgname}.preset $startdir/pkg/etc/mkinitcpio.d/${pkgname}.preset || return 1 +  install -m644 -D ${srcdir}/${pkgname}.preset ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset || return 1    # set correct depmod command for install    sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/kernel26.install    echo -e "# DO NOT EDIT THIS FILE\nALL_kver='${_kernver}'" > ${startdir}/pkg/etc/mkinitcpio.d/${pkgname}.kver    # remove unneeded architectures -  rm -rf $startdir/pkg/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa} +  rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}  } - diff --git a/abs/core-testing/kernel26/config b/abs/core-testing/kernel26/config index e885de7..79fdab8 100644 --- a/abs/core-testing/kernel26/config +++ b/abs/core-testing/kernel26/config @@ -1,7 +1,7 @@  #  # Automatically generated make config: don't edit -# Linux kernel version: 2.6.26 -# Mon Jul 21 19:06:23 2008 +# Linux kernel version: 2.6.27 +# Mon Dec  8 21:43:19 2008  #  # CONFIG_64BIT is not set  CONFIG_X86_32=y @@ -67,7 +67,8 @@ CONFIG_SWAP=y  CONFIG_SYSVIPC=y  CONFIG_SYSVIPC_SYSCTL=y  CONFIG_POSIX_MQUEUE=y -# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y  CONFIG_TASKSTATS=y  CONFIG_TASK_DELAY_ACCT=y  CONFIG_TASK_XACCT=y @@ -77,18 +78,8 @@ CONFIG_IKCONFIG=y  CONFIG_IKCONFIG_PROC=y  CONFIG_LOG_BUF_SHIFT=19  # CONFIG_CGROUPS is not set -# CONFIG_CGROUP_DEBUG is not set -# CONFIG_CGROUP_NS is not set -# CONFIG_CGROUP_DEVICE is not set -# CONFIG_CPUSETS is not set -# CONFIG_HAVE_UNSTABLE_SCHED_CLOCK is not set +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y  # CONFIG_GROUP_SCHED is not set -# CONFIG_FAIR_GROUP_SCHED is not set -# CONFIG_RT_GROUP_SCHED is not set -# CONFIG_USER_SCHED is not set -# CONFIG_CGROUP_SCHED is not set -# CONFIG_CGROUP_CPUACCT is not set -# CONFIG_RESOURCE_COUNTERS is not set  CONFIG_SYSFS_DEPRECATED=y  CONFIG_SYSFS_DEPRECATED_V2=y  CONFIG_RELAY=y @@ -104,7 +95,6 @@ CONFIG_SYSCTL=y  # CONFIG_EMBEDDED is not set  CONFIG_UID16=y  CONFIG_SYSCTL_SYSCALL=y -CONFIG_SYSCTL_SYSCALL_CHECK=y  CONFIG_KALLSYMS=y  # CONFIG_KALLSYMS_ALL is not set  CONFIG_KALLSYMS_EXTRA_PASS=y @@ -132,10 +122,16 @@ CONFIG_PROFILING=y  CONFIG_OPROFILE=m  CONFIG_HAVE_OPROFILE=y  # CONFIG_KPROBES is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_IOREMAP_PROT=y  CONFIG_HAVE_KPROBES=y  CONFIG_HAVE_KRETPROBES=y +# CONFIG_HAVE_ARCH_TRACEHOOK is not set  # CONFIG_HAVE_DMA_ATTRS is not set +CONFIG_USE_GENERIC_SMP_HELPERS=y +# CONFIG_HAVE_CLK is not set  CONFIG_PROC_PAGE_MONITOR=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y  CONFIG_SLABINFO=y  CONFIG_RT_MUTEXES=y  # CONFIG_TINY_SHMEM is not set @@ -153,6 +149,7 @@ CONFIG_LBD=y  CONFIG_BLK_DEV_IO_TRACE=y  CONFIG_LSF=y  CONFIG_BLK_DEV_BSG=y +# CONFIG_BLK_DEV_INTEGRITY is not set  #  # IO Schedulers @@ -177,25 +174,25 @@ CONFIG_NO_HZ=y  CONFIG_HIGH_RES_TIMERS=y  CONFIG_GENERIC_CLOCKEVENTS_BUILD=y  CONFIG_SMP=y +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y  CONFIG_X86_PC=y  # CONFIG_X86_ELAN is not set  # CONFIG_X86_VOYAGER is not set -# CONFIG_X86_NUMAQ is not set -# CONFIG_X86_SUMMIT is not set -# CONFIG_X86_BIGSMP is not set -# CONFIG_X86_VISWS is not set  # CONFIG_X86_GENERICARCH is not set -# CONFIG_X86_ES7000 is not set -# CONFIG_X86_RDC321X is not set  # CONFIG_X86_VSMP is not set +# CONFIG_X86_RDC321X is not set  CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y  CONFIG_PARAVIRT_GUEST=y +CONFIG_XEN_SAVE_RESTORE=y  CONFIG_VMI=y  # CONFIG_KVM_CLOCK is not set  # CONFIG_KVM_GUEST is not set  CONFIG_LGUEST_GUEST=y  CONFIG_PARAVIRT=y  # CONFIG_PARAVIRT_CLOCK is not set +# CONFIG_PARAVIRT_DEBUG is not set +# CONFIG_MEMTEST is not set  # CONFIG_M386 is not set  # CONFIG_M486 is not set  # CONFIG_M586 is not set @@ -232,7 +229,6 @@ CONFIG_X86_WP_WORKS_OK=y  CONFIG_X86_INVLPG=y  CONFIG_X86_BSWAP=y  CONFIG_X86_POPAD_OK=y -CONFIG_X86_GOOD_APIC=y  CONFIG_X86_INTEL_USERCOPY=y  CONFIG_X86_USE_PPRO_CHECKSUM=y  CONFIG_X86_TSC=y @@ -285,9 +281,12 @@ CONFIG_SPLIT_PTLOCK_CPUS=4  CONFIG_ZONE_DMA_FLAG=1  CONFIG_BOUNCE=y  CONFIG_VIRT_TO_BUS=y +CONFIG_MMU_NOTIFIER=y  # CONFIG_HIGHPTE is not set +CONFIG_X86_RESERVE_LOW_64K=y  # CONFIG_MATH_EMULATION is not set  CONFIG_MTRR=y +# CONFIG_MTRR_SANITIZER is not set  CONFIG_X86_PAT=y  CONFIG_EFI=y  # CONFIG_IRQBALANCE is not set @@ -300,6 +299,7 @@ CONFIG_HZ=300  CONFIG_SCHED_HRTICK=y  CONFIG_KEXEC=y  # CONFIG_CRASH_DUMP is not set +# CONFIG_KEXEC_JUMP is not set  CONFIG_PHYSICAL_START=0x100000  # CONFIG_RELOCATABLE is not set  CONFIG_PHYSICAL_ALIGN=0x100000 @@ -342,6 +342,7 @@ CONFIG_ACPI_CUSTOM_DSDT_INITRD=y  CONFIG_ACPI_BLACKLIST_YEAR=0  # CONFIG_ACPI_DEBUG is not set  CONFIG_ACPI_EC=y +CONFIG_ACPI_PCI_SLOT=m  CONFIG_ACPI_POWER=y  CONFIG_ACPI_SYSTEM=y  CONFIG_X86_PM_TIMER=y @@ -423,7 +424,7 @@ CONFIG_HOTPLUG_PCI_PCIE=m  CONFIG_PCIEAER=y  # CONFIG_PCIEASPM is not set  CONFIG_ARCH_SUPPORTS_MSI=y -# CONFIG_PCI_MSI is not set +CONFIG_PCI_MSI=y  CONFIG_PCI_LEGACY=y  # CONFIG_PCI_DEBUG is not set  CONFIG_HT_IRQ=y @@ -474,10 +475,6 @@ CONFIG_HOTPLUG_PCI_SHPC=m  CONFIG_BINFMT_ELF=y  CONFIG_BINFMT_AOUT=m  CONFIG_BINFMT_MISC=y - -# -# Networking -#  CONFIG_NET=y  # @@ -491,6 +488,7 @@ CONFIG_XFRM_USER=m  # CONFIG_XFRM_SUB_POLICY is not set  # CONFIG_XFRM_MIGRATE is not set  # CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=m  CONFIG_NET_KEY=m  # CONFIG_NET_KEY_MIGRATE is not set  CONFIG_INET=y @@ -692,6 +690,7 @@ CONFIG_IP_NF_TARGET_ECN=m  CONFIG_IP_NF_TARGET_TTL=m  CONFIG_IP_NF_TARGET_CLUSTERIP=m  CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m  CONFIG_IP_NF_ARPTABLES=m  CONFIG_IP_NF_ARPFILTER=m  CONFIG_IP_NF_ARP_MANGLE=m @@ -716,6 +715,7 @@ CONFIG_IP6_NF_TARGET_REJECT=m  CONFIG_IP6_NF_MANGLE=m  CONFIG_IP6_NF_TARGET_HL=m  CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m  #  # Bridge: Netfilter Configuration @@ -728,6 +728,7 @@ CONFIG_BRIDGE_EBT_802_3=m  CONFIG_BRIDGE_EBT_AMONG=m  CONFIG_BRIDGE_EBT_ARP=m  CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m  CONFIG_BRIDGE_EBT_LIMIT=m  CONFIG_BRIDGE_EBT_MARK=m  CONFIG_BRIDGE_EBT_PKTTYPE=m @@ -756,8 +757,10 @@ CONFIG_ATM_LANE=m  CONFIG_ATM_MPOA=m  CONFIG_ATM_BR2684=m  # CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_STP=m  CONFIG_BRIDGE=m  CONFIG_VLAN_8021Q=m +# CONFIG_VLAN_8021Q_GVRP is not set  # CONFIG_DECNET is not set  CONFIG_LLC=m  CONFIG_LLC2=m @@ -886,7 +889,7 @@ CONFIG_BT_RFCOMM_TTY=y  CONFIG_BT_BNEP=m  # CONFIG_BT_BNEP_MC_FILTER is not set  # CONFIG_BT_BNEP_PROTO_FILTER is not set -CONFIG_BT_CMTP=m +# CONFIG_BT_CMTP is not set  CONFIG_BT_HIDP=m  # @@ -894,6 +897,7 @@ CONFIG_BT_HIDP=m  #  CONFIG_BT_HCIUSB=m  CONFIG_BT_HCIUSB_SCO=y +# CONFIG_BT_HCIBTUSB is not set  CONFIG_BT_HCIBTSDIO=m  CONFIG_BT_HCIUART=m  CONFIG_BT_HCIUART_H4=y @@ -918,28 +922,19 @@ CONFIG_FIB_RULES=y  CONFIG_CFG80211=m  CONFIG_NL80211=y  CONFIG_WIRELESS_EXT=y +CONFIG_WIRELESS_EXT_SYSFS=y  CONFIG_MAC80211=m  #  # Rate control algorithm selection  # +CONFIG_MAC80211_RC_PID=y  CONFIG_MAC80211_RC_DEFAULT_PID=y -# CONFIG_MAC80211_RC_DEFAULT_NONE is not set - -# -# Selecting 'y' for an algorithm will -# - -# -# build the algorithm into mac80211. -#  CONFIG_MAC80211_RC_DEFAULT="pid" -CONFIG_MAC80211_RC_PID=y  CONFIG_MAC80211_MESH=y  CONFIG_MAC80211_LEDS=y  # CONFIG_MAC80211_DEBUGFS is not set -# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set -# CONFIG_MAC80211_DEBUG is not set +# CONFIG_MAC80211_DEBUG_MENU is not set  CONFIG_IEEE80211=m  # CONFIG_IEEE80211_DEBUG is not set  CONFIG_IEEE80211_CRYPT_WEP=m @@ -962,7 +957,9 @@ CONFIG_NET_9P_VIRTIO=m  CONFIG_UEVENT_HELPER_PATH=""  CONFIG_STANDALONE=y  CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=m +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE=""  # CONFIG_DEBUG_DRIVER is not set  # CONFIG_DEBUG_DEVRES is not set  # CONFIG_SYS_HYPERVISOR is not set @@ -1082,6 +1079,7 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8  # CONFIG_CDROM_PKTCDVD_WCACHE is not set  CONFIG_ATA_OVER_ETH=m  CONFIG_VIRTIO_BLK=m +# CONFIG_BLK_DEV_HD is not set  CONFIG_MISC_DEVICES=y  # CONFIG_IBM_ASM is not set  CONFIG_PHANTOM=m @@ -1092,8 +1090,11 @@ CONFIG_TIFM_7XX1=m  CONFIG_ACER_WMI=m  CONFIG_ASUS_LAPTOP=m  CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set  CONFIG_TC1100_WMI=m +CONFIG_HP_WMI=m  CONFIG_MSI_LAPTOP=m +CONFIG_COMPAL_LAPTOP=m  CONFIG_SONY_LAPTOP=m  # CONFIG_SONYPI_COMPAT is not set  CONFIG_THINKPAD_ACPI=m @@ -1104,6 +1105,7 @@ CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y  CONFIG_INTEL_MENLOW=m  CONFIG_EEEPC_LAPTOP=m  CONFIG_ENCLOSURE_SERVICES=m +CONFIG_HP_ILO=m  CONFIG_HAVE_IDE=y  CONFIG_IDE=m  CONFIG_BLK_DEV_IDE=m @@ -1111,6 +1113,8 @@ CONFIG_BLK_DEV_IDE=m  #  # Please see Documentation/ide/ide.txt for help/info on IDE drives  # +CONFIG_IDE_TIMINGS=y +CONFIG_IDE_ATAPI=y  # CONFIG_BLK_DEV_IDE_SATA is not set  CONFIG_BLK_DEV_IDEDISK=m  CONFIG_IDEDISK_MULTI_MODE=y @@ -1150,12 +1154,9 @@ CONFIG_BLK_DEV_AMD74XX=m  CONFIG_BLK_DEV_ATIIXP=m  CONFIG_BLK_DEV_CMD64X=m  CONFIG_BLK_DEV_TRIFLEX=m -CONFIG_BLK_DEV_CY82C693=m  CONFIG_BLK_DEV_CS5520=m  CONFIG_BLK_DEV_CS5530=m  CONFIG_BLK_DEV_CS5535=m -CONFIG_BLK_DEV_HPT34X=m -# CONFIG_HPT34X_AUTODMA is not set  CONFIG_BLK_DEV_HPT366=m  CONFIG_BLK_DEV_JMICRON=m  CONFIG_BLK_DEV_SC1200=m @@ -1187,8 +1188,6 @@ CONFIG_BLK_DEV_HT6560B=m  CONFIG_BLK_DEV_QD65XX=m  CONFIG_BLK_DEV_UMC8672=m  CONFIG_BLK_DEV_IDEDMA=y -# CONFIG_BLK_DEV_HD_ONLY is not set -# CONFIG_BLK_DEV_HD is not set  #  # SCSI device support @@ -1325,6 +1324,11 @@ CONFIG_PCMCIA_FDOMAIN=m  CONFIG_PCMCIA_NINJA_SCSI=m  CONFIG_PCMCIA_QLOGIC=m  CONFIG_PCMCIA_SYM53C500=m +CONFIG_SCSI_DH=m +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_ALUA=m  CONFIG_ATA=m  # CONFIG_ATA_NONSTANDARD is not set  CONFIG_ATA_ACPI=y @@ -1411,9 +1415,6 @@ CONFIG_DM_SNAPSHOT=m  CONFIG_DM_MIRROR=m  CONFIG_DM_ZERO=m  CONFIG_DM_MULTIPATH=m -CONFIG_DM_MULTIPATH_EMC=m -CONFIG_DM_MULTIPATH_RDAC=m -CONFIG_DM_MULTIPATH_HP=m  CONFIG_DM_DELAY=m  CONFIG_DM_UEVENT=y  CONFIG_FUSION=y @@ -1455,7 +1456,6 @@ CONFIG_I2O_PROC=m  CONFIG_MACINTOSH_DRIVERS=y  CONFIG_MAC_EMUMOUSEBTN=y  CONFIG_NETDEVICES=y -CONFIG_NETDEVICES_MULTIQUEUE=y  CONFIG_IFB=m  CONFIG_DUMMY=m  CONFIG_BONDING=m @@ -1465,7 +1465,22 @@ CONFIG_TUN=m  CONFIG_VETH=m  CONFIG_NET_SB1000=m  # CONFIG_ARCNET is not set -# CONFIG_PHYLIB is not set +CONFIG_PHYLIB=m + +# +# MII PHY device drivers +# +# CONFIG_MARVELL_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_QSEMI_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_CICADA_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_BROADCOM_PHY is not set +# CONFIG_ICPLUS_PHY is not set +# CONFIG_REALTEK_PHY is not set +# CONFIG_MDIO_BITBANG is not set  CONFIG_NET_ETHERNET=y  CONFIG_MII=m  CONFIG_HAPPYMEAL=m @@ -1523,9 +1538,7 @@ CONFIG_SEEQ8005=m  CONFIG_NET_PCI=y  CONFIG_PCNET32=m  CONFIG_AMD8111_ETH=m -# CONFIG_AMD8111E_NAPI is not set  CONFIG_ADAPTEC_STARFIRE=m -# CONFIG_ADAPTEC_STARFIRE_NAPI is not set  CONFIG_AC3200=m  CONFIG_APRICOT=m  CONFIG_B44=m @@ -1554,7 +1567,6 @@ CONFIG_SUNDANCE=m  CONFIG_TLAN=m  CONFIG_VIA_RHINE=m  # CONFIG_VIA_RHINE_MMIO is not set -# CONFIG_VIA_RHINE_NAPI is not set  CONFIG_SC92031=m  CONFIG_NET_POCKET=y  CONFIG_ATP=m @@ -1565,17 +1577,15 @@ CONFIG_ACENIC=m  # CONFIG_ACENIC_OMIT_TIGON_I is not set  CONFIG_DL2K=m  CONFIG_E1000=m -# CONFIG_E1000_NAPI is not set  # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set  CONFIG_E1000E=m -CONFIG_E1000E_ENABLED=y  CONFIG_IP1000=m  CONFIG_IGB=m +# CONFIG_IGB_LRO is not set  CONFIG_NS83820=m  CONFIG_HAMACHI=m  CONFIG_YELLOWFIN=m  CONFIG_R8169=m -# CONFIG_R8169_NAPI is not set  # CONFIG_R8169_VLAN is not set  CONFIG_SIS190=m  CONFIG_SKGE=m @@ -1587,16 +1597,14 @@ CONFIG_TIGON3=m  CONFIG_BNX2=m  CONFIG_QLA3XXX=m  CONFIG_ATL1=m +CONFIG_ATL1E=m  CONFIG_NETDEV_10000=y  CONFIG_CHELSIO_T1=m  CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T1_NAPI=y  CONFIG_CHELSIO_T3=m  CONFIG_IXGBE=m  CONFIG_IXGB=m -# CONFIG_IXGB_NAPI is not set  CONFIG_S2IO=m -# CONFIG_S2IO_NAPI is not set  CONFIG_MYRI10GE=m  CONFIG_NETXEN_NIC=m  CONFIG_NIU=m @@ -1645,22 +1653,25 @@ CONFIG_USB_NET_RNDIS_WLAN=m  CONFIG_RTL8180=m  CONFIG_RTL8187=m  CONFIG_ADM8211=m +# CONFIG_MAC80211_HWSIM is not set  CONFIG_P54_COMMON=m  CONFIG_P54_USB=m  CONFIG_P54_PCI=m  CONFIG_ATH5K=m  # CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH9K=m  CONFIG_IWLWIFI=m  CONFIG_IWLCORE=m  CONFIG_IWLWIFI_LEDS=y  CONFIG_IWLWIFI_RFKILL=y -CONFIG_IWL4965=m -CONFIG_IWL4965_HT=y -CONFIG_IWL4965_LEDS=y -CONFIG_IWL4965_SPECTRUM_MEASUREMENT=y -CONFIG_IWL4965_SENSITIVITY=y  # CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLAGN=m +CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y +CONFIG_IWLAGN_LEDS=y +CONFIG_IWL4965=y +CONFIG_IWL5000=y  CONFIG_IWL3945=m +CONFIG_IWL3945_RFKILL=y  CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y  CONFIG_IWL3945_LEDS=y  # CONFIG_IWL3945_DEBUG is not set @@ -1737,6 +1748,7 @@ CONFIG_USB_ARMLINUX=y  CONFIG_USB_EPSON2888=y  CONFIG_USB_KC2190=y  CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_HSO=m  CONFIG_NET_PCMCIA=y  CONFIG_PCMCIA_3C589=m  CONFIG_PCMCIA_3C574=m @@ -1770,8 +1782,10 @@ CONFIG_ATM_HORIZON=m  # CONFIG_ATM_HORIZON_DEBUG is not set  CONFIG_ATM_IA=m  # CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E_MAYBE=m -# CONFIG_ATM_FORE200E_PCA is not set +CONFIG_ATM_FORE200E=m +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0  CONFIG_ATM_HE=m  # CONFIG_ATM_HE_USE_SUNI is not set  # CONFIG_FDDI is not set @@ -1800,7 +1814,16 @@ CONFIG_NETPOLL=y  # CONFIG_NETPOLL_TRAP is not set  CONFIG_NET_POLL_CONTROLLER=y  CONFIG_VIRTIO_NET=m -CONFIG_ISDN=m +CONFIG_ISDN=y +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m  CONFIG_ISDN_I4L=m  CONFIG_ISDN_PPP=y  CONFIG_ISDN_PPP_VJ=y @@ -1903,7 +1926,7 @@ CONFIG_GIGASET_M101=m  CONFIG_GIGASET_UNDOCREQ=y  CONFIG_ISDN_CAPI=m  CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y -# CONFIG_CAPI_TRACE is not set +CONFIG_CAPI_TRACE=y  CONFIG_ISDN_CAPI_MIDDLEWARE=y  CONFIG_ISDN_CAPI_CAPI20=m  CONFIG_ISDN_CAPI_CAPIFS_BOOL=y @@ -1969,6 +1992,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y  # CONFIG_MOUSE_PS2_TOUCHKIT is not set  CONFIG_MOUSE_SERIAL=y  CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m  CONFIG_MOUSE_INPORT=m  # CONFIG_MOUSE_ATIXL is not set  CONFIG_MOUSE_LOGIBM=m @@ -2015,7 +2039,9 @@ CONFIG_TOUCHSCREEN_FUJITSU=m  CONFIG_TOUCHSCREEN_GUNZE=m  CONFIG_TOUCHSCREEN_ELO=m  CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_INEXIO=m  CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_HTCPEN=m  CONFIG_TOUCHSCREEN_PENMOUNT=m  CONFIG_TOUCHSCREEN_TOUCHRIGHT=m  CONFIG_TOUCHSCREEN_TOUCHWIN=m @@ -2036,6 +2062,7 @@ CONFIG_TOUCHSCREEN_USB_IRTOUCH=y  CONFIG_TOUCHSCREEN_USB_IDEALTEK=y  CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y  CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_TOUCHSCREEN_TOUCHIT213=m  CONFIG_INPUT_MISC=y  CONFIG_INPUT_PCSPKR=m  CONFIG_INPUT_APANEL=m @@ -2069,6 +2096,7 @@ CONFIG_GAMEPORT_FM801=m  # Character devices  #  CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y  CONFIG_VT_CONSOLE=y  CONFIG_HW_CONSOLE=y  CONFIG_VT_HW_CONSOLE_BINDING=y @@ -2131,7 +2159,7 @@ CONFIG_HW_RANDOM_INTEL=m  CONFIG_HW_RANDOM_AMD=m  CONFIG_HW_RANDOM_GEODE=m  CONFIG_HW_RANDOM_VIA=m -# CONFIG_HW_RANDOM_VIRTIO is not set +CONFIG_HW_RANDOM_VIRTIO=m  CONFIG_NVRAM=m  CONFIG_DTLK=m  CONFIG_R3964=m @@ -2148,7 +2176,7 @@ CONFIG_IPWIRELESS=m  CONFIG_MWAVE=m  CONFIG_PC8736x_GPIO=m  CONFIG_NSC_GPIO=m -# CONFIG_CS5535_GPIO is not set +CONFIG_CS5535_GPIO=m  # CONFIG_RAW_DRIVER is not set  # CONFIG_HPET is not set  CONFIG_HANGCHECK_TIMER=m @@ -2162,12 +2190,17 @@ CONFIG_DEVPORT=y  CONFIG_I2C=m  CONFIG_I2C_BOARDINFO=y  CONFIG_I2C_CHARDEV=m +CONFIG_I2C_HELPER_AUTO=y  CONFIG_I2C_ALGOBIT=m  CONFIG_I2C_ALGOPCA=m  #  # I2C Hardware Bus support  # + +# +# PC SMBus host controller drivers +#  CONFIG_I2C_ALI1535=m  CONFIG_I2C_ALI1563=m  CONFIG_I2C_ALI15X3=m @@ -2175,35 +2208,52 @@ CONFIG_I2C_AMD756=m  CONFIG_I2C_AMD756_S4882=m  CONFIG_I2C_AMD8111=m  CONFIG_I2C_I801=m -CONFIG_I2C_I810=m +CONFIG_I2C_ISCH=m  CONFIG_I2C_PIIX4=m  CONFIG_I2C_NFORCE2=m -CONFIG_I2C_OCORES=m -CONFIG_I2C_PARPORT=m -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PROSAVAGE=m -CONFIG_I2C_SAVAGE4=m -CONFIG_I2C_SIMTEC=m -CONFIG_SCx200_ACB=m +CONFIG_I2C_NFORCE2_S4985=m  CONFIG_I2C_SIS5595=m  CONFIG_I2C_SIS630=m  CONFIG_I2C_SIS96X=m -CONFIG_I2C_TAOS_EVM=m -# CONFIG_I2C_STUB is not set -CONFIG_I2C_TINY_USB=m  CONFIG_I2C_VIA=m  CONFIG_I2C_VIAPRO=m + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_OCORES=m +CONFIG_I2C_SIMTEC=m + +# +# External I2C/SMBus adapter drivers +# +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m + +# +# Graphics adapter I2C/DDC channel drivers +#  CONFIG_I2C_VOODOO3=m + +# +# Other I2C/SMBus bus drivers +#  CONFIG_I2C_PCA_ISA=m  CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_STUB is not set +CONFIG_SCx200_ACB=m  #  # Miscellaneous I2C Chip support  #  CONFIG_DS1682=m +CONFIG_AT24=m  CONFIG_SENSORS_EEPROM=m  CONFIG_SENSORS_PCF8574=m  CONFIG_PCF8575=m +CONFIG_SENSORS_PCA9539=m  CONFIG_SENSORS_PCF8591=m  CONFIG_SENSORS_MAX6875=m  CONFIG_SENSORS_TSL2550=m @@ -2228,6 +2278,8 @@ CONFIG_SPI_LM70_LLP=m  CONFIG_SPI_AT25=m  CONFIG_SPI_SPIDEV=m  CONFIG_SPI_TLE62X0=m +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +# CONFIG_GPIOLIB is not set  CONFIG_W1=m  CONFIG_W1_CON=y @@ -2255,7 +2307,9 @@ CONFIG_HWMON=y  CONFIG_HWMON_VID=m  CONFIG_SENSORS_ABITUGURU=m  CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_AD7414=m  CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADCXX=m  CONFIG_SENSORS_ADM1021=m  CONFIG_SENSORS_ADM1025=m  CONFIG_SENSORS_ADM1026=m @@ -2320,7 +2374,60 @@ CONFIG_SENSORS_APPLESMC=m  # CONFIG_HWMON_DEBUG_CHIP is not set  CONFIG_THERMAL=y  CONFIG_THERMAL_HWMON=y -# CONFIG_WATCHDOG is not set +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ADVANTECH_WDT=m +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_SC520_WDT=m +CONFIG_EUROTECH_WDT=m +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_WAFER_WDT=m +CONFIG_I6300ESB_WDT=m +CONFIG_ITCO_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_IT8712F_WDT=m +CONFIG_HP_WATCHDOG=m +CONFIG_SC1200_WDT=m +CONFIG_PC87413_WDT=m +CONFIG_60XX_WDT=m +CONFIG_SBC8360_WDT=m +CONFIG_SBC7240_WDT=m +CONFIG_CPU5_WDT=m +CONFIG_SMSC37B787_WDT=m +CONFIG_W83627HF_WDT=m +CONFIG_W83697HF_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_MACHZ_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m + +# +# ISA-based Watchdog Cards +# +CONFIG_PCWATCHDOG=m +CONFIG_MIXCOMWD=m +CONFIG_WDT=m +CONFIG_WDT_501=y + +# +# PCI-based Watchdog Cards +# +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m  #  # Sonics Silicon Backplane @@ -2341,8 +2448,10 @@ CONFIG_SSB_DRIVER_PCICORE=y  #  # Multifunction device drivers  # +# CONFIG_MFD_CORE is not set  CONFIG_MFD_SM501=m  # CONFIG_HTC_PASIC3 is not set +# CONFIG_MFD_TMIO is not set  #  # Multimedia devices @@ -2381,20 +2490,22 @@ CONFIG_MEDIA_TUNER_QT1010=m  CONFIG_MEDIA_TUNER_XC2028=m  CONFIG_MEDIA_TUNER_XC5000=m  CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m  CONFIG_VIDEO_V4L2=m  CONFIG_VIDEO_V4L1=m  CONFIG_VIDEOBUF_GEN=m  CONFIG_VIDEOBUF_DMA_SG=m  CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=m  CONFIG_VIDEOBUF_DVB=m  CONFIG_VIDEO_BTCX=m -CONFIG_VIDEO_IR_I2C=m  CONFIG_VIDEO_IR=m  CONFIG_VIDEO_TVEEPROM=m  CONFIG_VIDEO_TUNER=m  CONFIG_VIDEO_CAPTURE_DRIVERS=y  # CONFIG_VIDEO_ADV_DEBUG is not set  # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m  #  # Encoders/decoders and other helper chips @@ -2475,11 +2586,11 @@ CONFIG_VIDEO_SAA5246A=m  CONFIG_VIDEO_SAA5249=m  CONFIG_TUNER_3036=m  CONFIG_VIDEO_STRADIS=m -CONFIG_VIDEO_ZORAN_ZR36060=m  CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_ZR36060=m  CONFIG_VIDEO_ZORAN_BUZ=m  CONFIG_VIDEO_ZORAN_DC10=m -CONFIG_VIDEO_ZORAN_DC30=m  CONFIG_VIDEO_ZORAN_LML33=m  CONFIG_VIDEO_ZORAN_LML33R10=m  CONFIG_VIDEO_ZORAN_AVS6EYES=m @@ -2504,6 +2615,8 @@ CONFIG_VIDEO_CX18=m  CONFIG_VIDEO_CAFE_CCIC=m  CONFIG_V4L_USB_DRIVERS=y  CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m  CONFIG_VIDEO_PVRUSB2=m  CONFIG_VIDEO_PVRUSB2_SYSFS=y  CONFIG_VIDEO_PVRUSB2_DVB=y @@ -2529,9 +2642,12 @@ CONFIG_USB_PWC=m  # CONFIG_USB_PWC_DEBUG is not set  CONFIG_USB_ZR364XX=m  CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m  CONFIG_SOC_CAMERA=m  CONFIG_SOC_CAMERA_MT9M001=m  CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_VIDEO_SH_MOBILE_CEU=m  CONFIG_RADIO_ADAPTERS=y  CONFIG_RADIO_CADET=m  CONFIG_RADIO_RTRACK=m @@ -2589,6 +2705,8 @@ CONFIG_DVB_USB_DTT200U=m  CONFIG_DVB_USB_OPERA1=m  CONFIG_DVB_USB_AF9005=m  CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_ANYSEE=m  CONFIG_DVB_TTUSB_BUDGET=m  CONFIG_DVB_TTUSB_DEC=m  CONFIG_DVB_CINERGYT2=m @@ -2598,6 +2716,8 @@ CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512  CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250  CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y  CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=20 +CONFIG_DVB_SIANO_SMS1XXX=m +CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y  #  # Supported FlexCopII (B2C2) Adapters @@ -2648,6 +2768,7 @@ CONFIG_DVB_SP8870=m  CONFIG_DVB_SP887X=m  CONFIG_DVB_CX22700=m  CONFIG_DVB_CX22702=m +# CONFIG_DVB_DRX397XD is not set  CONFIG_DVB_L64781=m  CONFIG_DVB_TDA1004X=m  CONFIG_DVB_NXT6000=m @@ -2802,16 +2923,21 @@ CONFIG_FB_TRIDENT=m  CONFIG_FB_TRIDENT_ACCEL=y  # CONFIG_FB_ARK is not set  # CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set  # CONFIG_FB_GEODE is not set  # CONFIG_FB_SM501 is not set  # CONFIG_FB_VIRTUAL is not set  CONFIG_BACKLIGHT_LCD_SUPPORT=y  CONFIG_LCD_CLASS_DEVICE=m  CONFIG_LCD_LTV350QV=m +CONFIG_LCD_ILI9320=m +CONFIG_LCD_VGG2432A4=m +CONFIG_LCD_PLATFORM=m  CONFIG_BACKLIGHT_CLASS_DEVICE=y  CONFIG_BACKLIGHT_CORGI=m  CONFIG_BACKLIGHT_PROGEAR=m  CONFIG_BACKLIGHT_CARILLO_RANCH=m +CONFIG_BACKLIGHT_MBP_NVIDIA=m  #  # Display device support @@ -2848,15 +2974,7 @@ CONFIG_LOGO=y  CONFIG_LOGO_LINUX_MONO=y  CONFIG_LOGO_LINUX_VGA16=y  CONFIG_LOGO_LINUX_CLUT224=y - -# -# Sound -#  CONFIG_SOUND=m - -# -# Advanced Linux Sound Architecture -#  CONFIG_SND=m  CONFIG_SND_TIMER=m  CONFIG_SND_PCM=m @@ -2875,16 +2993,13 @@ CONFIG_SND_VERBOSE_PROCFS=y  # CONFIG_SND_VERBOSE_PRINTK is not set  # CONFIG_SND_DEBUG is not set  CONFIG_SND_VMASTER=y - -# -# Generic devices -# -# CONFIG_SND_PCSP is not set  CONFIG_SND_MPU401_UART=m  CONFIG_SND_OPL3_LIB=m  CONFIG_SND_OPL4_LIB=m  CONFIG_SND_VX_LIB=m  CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DRIVERS=y +CONFIG_SND_PCSP=m  CONFIG_SND_DUMMY=m  CONFIG_SND_VIRMIDI=m  CONFIG_SND_MTPAV=m @@ -2892,15 +3007,14 @@ CONFIG_SND_MTS64=m  CONFIG_SND_SERIAL_U16550=m  CONFIG_SND_MPU401=m  CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0  CONFIG_SND_AD1848_LIB=m  CONFIG_SND_CS4231_LIB=m  CONFIG_SND_SB_COMMON=m  CONFIG_SND_SB8_DSP=m  CONFIG_SND_SB16_DSP=m - -# -# ISA devices -# +CONFIG_SND_ISA=y  CONFIG_SND_ADLIB=m  CONFIG_SND_AD1816A=m  CONFIG_SND_AD1848=m @@ -2915,7 +3029,6 @@ CONFIG_SND_ES968=m  CONFIG_SND_ES1688=m  CONFIG_SND_ES18XX=m  CONFIG_SND_SC6000=m -CONFIG_SND_GUS_SYNTH=m  CONFIG_SND_GUSCLASSIC=m  CONFIG_SND_GUSEXTREME=m  CONFIG_SND_GUSMAX=m @@ -2930,15 +3043,11 @@ CONFIG_SND_SB8=m  CONFIG_SND_SB16=m  CONFIG_SND_SBAWE=m  CONFIG_SND_SB16_CSP=y -CONFIG_SND_SB16_CSP_FIRMWARE_IN_KERNEL=y  CONFIG_SND_SGALAXY=m  CONFIG_SND_SSCAPE=m  CONFIG_SND_WAVEFRONT=m  CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL=y - -# -# PCI devices -# +CONFIG_SND_PCI=y  CONFIG_SND_AD1889=m  CONFIG_SND_ALS300=m  CONFIG_SND_ALS4000=m @@ -3003,9 +3112,7 @@ CONFIG_SND_ICE1724=m  CONFIG_SND_INTEL8X0=m  CONFIG_SND_INTEL8X0M=m  CONFIG_SND_KORG1212=m -CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y  CONFIG_SND_MAESTRO3=m -CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y  CONFIG_SND_MIXART=m  CONFIG_SND_NM256=m  CONFIG_SND_PCXHR=m @@ -3021,44 +3128,16 @@ CONFIG_SND_VIA82XX_MODEM=m  CONFIG_SND_VIRTUOSO=m  CONFIG_SND_VX222=m  CONFIG_SND_YMFPCI=m -CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y -CONFIG_SND_AC97_POWER_SAVE=y -CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 - -# -# SPI devices -# - -# -# USB devices -# +CONFIG_SND_SPI=y +CONFIG_SND_USB=y  CONFIG_SND_USB_AUDIO=m  CONFIG_SND_USB_USX2Y=m  CONFIG_SND_USB_CAIAQ=m  CONFIG_SND_USB_CAIAQ_INPUT=y - -# -# PCMCIA devices -# +CONFIG_SND_PCMCIA=y  CONFIG_SND_VXPOCKET=m  CONFIG_SND_PDAUDIOCF=m - -# -# System on Chip audio support -#  CONFIG_SND_SOC=m - -# -# ALSA SoC audio for Freescale SOCs -# - -# -# SoC Audio for the Texas Instruments OMAP -# - -# -# Open Sound System -#  # CONFIG_SOUND_PRIME is not set  CONFIG_AC97_BUS=m  CONFIG_HID_SUPPORT=y @@ -3101,6 +3180,7 @@ CONFIG_USB_DEVICE_CLASS=y  CONFIG_USB_DYNAMIC_MINORS=y  CONFIG_USB_SUSPEND=y  # CONFIG_USB_OTG is not set +CONFIG_USB_MON=y  #  # USB Host Controller Drivers @@ -3111,7 +3191,6 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y  CONFIG_USB_EHCI_TT_NEWSCHED=y  CONFIG_USB_ISP116X_HCD=m  CONFIG_USB_ISP1760_HCD=m -# CONFIG_USB_ISP1760_PCI is not set  CONFIG_USB_OHCI_HCD=m  # CONFIG_USB_OHCI_HCD_SSB is not set  # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set @@ -3122,6 +3201,7 @@ CONFIG_USB_U132_HCD=m  CONFIG_USB_SL811_HCD=m  CONFIG_USB_SL811_CS=m  CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_GADGET_MUSB_HDRC is not set  #  # USB Device Class drivers @@ -3158,7 +3238,6 @@ CONFIG_USB_STORAGE_CYPRESS_ATACB=y  #  CONFIG_USB_MDC800=m  CONFIG_USB_MICROTEK=m -CONFIG_USB_MON=y  #  # USB port drivers @@ -3168,7 +3247,6 @@ CONFIG_USB_SERIAL=m  CONFIG_USB_EZUSB=y  CONFIG_USB_SERIAL_GENERIC=y  CONFIG_USB_SERIAL_AIRCABLE=m -CONFIG_USB_SERIAL_AIRPRIME=m  CONFIG_USB_SERIAL_ARK3116=m  CONFIG_USB_SERIAL_BELKIN=m  CONFIG_USB_SERIAL_CH341=m @@ -3228,7 +3306,6 @@ CONFIG_USB_SERIAL_OMNINET=m  CONFIG_USB_EMI62=m  CONFIG_USB_EMI26=m  CONFIG_USB_ADUTUX=m -CONFIG_USB_AUERSWALD=m  CONFIG_USB_RIO500=m  CONFIG_USB_LEGOTOWER=m  CONFIG_USB_LCD=m @@ -3265,7 +3342,7 @@ CONFIG_USB_GADGET_SELECTED=y  # CONFIG_USB_GADGET_FSL_USB2 is not set  CONFIG_USB_GADGET_NET2280=y  CONFIG_USB_NET2280=m -# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_PXA25X is not set  # CONFIG_USB_GADGET_M66592 is not set  # CONFIG_USB_GADGET_PXA27X is not set  # CONFIG_USB_GADGET_GOKU is not set @@ -3284,6 +3361,7 @@ CONFIG_USB_FILE_STORAGE=m  CONFIG_USB_G_SERIAL=m  CONFIG_USB_MIDI_GADGET=m  CONFIG_USB_G_PRINTER=m +# CONFIG_USB_CDC_COMPOSITE is not set  CONFIG_MMC=m  # CONFIG_MMC_DEBUG is not set  # CONFIG_MMC_UNSAFE_RESUME is not set @@ -3300,9 +3378,11 @@ CONFIG_SDIO_UART=m  # MMC/SD Host Controller Drivers  #  CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PCI=m  CONFIG_MMC_RICOH_MMC=m  CONFIG_MMC_WBSD=m  CONFIG_MMC_TIFM_SD=m +CONFIG_MMC_SDRICOH_CS=m  CONFIG_MEMSTICK=m  # CONFIG_MEMSTICK_DEBUG is not set @@ -3323,7 +3403,9 @@ CONFIG_LEDS_CLASS=m  #  # LED drivers  # +CONFIG_LEDS_PCA9532=m  CONFIG_LEDS_CLEVO_MAIL=m +CONFIG_LEDS_PCA955X=m  #  # LED Triggers @@ -3333,7 +3415,8 @@ CONFIG_LEDS_TRIGGER_TIMER=m  CONFIG_LEDS_TRIGGER_IDE_DISK=y  CONFIG_LEDS_TRIGGER_HEARTBEAT=m  CONFIG_LEDS_TRIGGER_DEFAULT_ON=m -# CONFIG_ACCESSIBILITY is not set +CONFIG_ACCESSIBILITY=y +CONFIG_A11Y_BRAILLE_CONSOLE=y  # CONFIG_INFINIBAND is not set  CONFIG_EDAC=y @@ -3351,6 +3434,7 @@ CONFIG_EDAC_I3000=m  CONFIG_EDAC_I82860=m  CONFIG_EDAC_R82600=m  CONFIG_EDAC_I5000=m +CONFIG_EDAC_I5100=m  CONFIG_RTC_LIB=m  CONFIG_RTC_CLASS=m @@ -3383,6 +3467,8 @@ CONFIG_RTC_DRV_FM3130=m  #  # SPI RTC drivers  # +CONFIG_RTC_DRV_M41T94=m +CONFIG_RTC_DRV_DS1305=m  CONFIG_RTC_DRV_MAX6902=m  CONFIG_RTC_DRV_R9701=m  CONFIG_RTC_DRV_RS5C348=m @@ -3414,6 +3500,7 @@ CONFIG_DMA_ENGINE=y  # DMA Clients  #  CONFIG_NET_DMA=y +# CONFIG_DMATEST is not set  CONFIG_DCA=m  CONFIG_AUXDISPLAY=y  CONFIG_KS0108=m @@ -3423,6 +3510,8 @@ CONFIG_CFAG12864B=m  CONFIG_CFAG12864B_RATE=20  CONFIG_UIO=m  CONFIG_UIO_CIF=m +CONFIG_UIO_PDRV=m +CONFIG_UIO_PDRV_GENIRQ=m  CONFIG_UIO_SMX=m  # @@ -3430,6 +3519,7 @@ CONFIG_UIO_SMX=m  #  CONFIG_EDD=m  # CONFIG_EDD_OFF is not set +CONFIG_FIRMWARE_MEMMAP=y  CONFIG_EFI_VARS=m  CONFIG_DELL_RBU=m  CONFIG_DCDBAS=m @@ -3475,11 +3565,11 @@ CONFIG_XFS_POSIX_ACL=y  CONFIG_XFS_RT=y  # CONFIG_XFS_DEBUG is not set  CONFIG_GFS2_FS=m -CONFIG_GFS2_FS_LOCKING_NOLOCK=m  CONFIG_GFS2_FS_LOCKING_DLM=m  CONFIG_OCFS2_FS=m  CONFIG_OCFS2_FS_O2CB=m  CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m +CONFIG_OCFS2_FS_STATS=y  # CONFIG_OCFS2_DEBUG_MASKLOG is not set  # CONFIG_OCFS2_DEBUG_FS is not set  CONFIG_DNOTIFY=y @@ -3566,6 +3656,7 @@ CONFIG_SQUASHFS=m  CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3  # CONFIG_VXFS_FS is not set  # CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set  # CONFIG_HPFS_FS is not set  # CONFIG_QNX4FS_FS is not set  # CONFIG_ROMFS_FS is not set @@ -3590,7 +3681,6 @@ CONFIG_NFS_ACL_SUPPORT=m  CONFIG_NFS_COMMON=y  CONFIG_SUNRPC=m  CONFIG_SUNRPC_GSS=m -CONFIG_SUNRPC_BIND34=y  CONFIG_RPCSEC_GSS_KRB5=m  CONFIG_RPCSEC_GSS_SPKM3=m  CONFIG_SMB_FS=m @@ -3599,6 +3689,7 @@ CONFIG_CIFS=m  CONFIG_CIFS_STATS=y  # CONFIG_CIFS_STATS2 is not set  CONFIG_CIFS_WEAK_PW_HASH=y +# CONFIG_CIFS_UPCALL is not set  CONFIG_CIFS_XATTR=y  CONFIG_CIFS_POSIX=y  # CONFIG_CIFS_DEBUG2 is not set @@ -3613,7 +3704,6 @@ CONFIG_NCPFS_SMALLDOS=y  CONFIG_NCPFS_NLS=y  # CONFIG_NCPFS_EXTRAS is not set  CONFIG_CODA_FS=m -# CONFIG_CODA_FS_OLD_API is not set  CONFIG_AFS_FS=m  # CONFIG_AFS_DEBUG is not set  CONFIG_9P_FS=m @@ -3678,7 +3768,7 @@ CONFIG_NLS_ISO8859_14=m  CONFIG_NLS_ISO8859_15=m  CONFIG_NLS_KOI8_R=m  CONFIG_NLS_KOI8_U=m -CONFIG_NLS_UTF8=y +CONFIG_NLS_UTF8=m  CONFIG_DLM=m  # CONFIG_DLM_DEBUG is not set @@ -3697,6 +3787,8 @@ CONFIG_DEBUG_FS=y  CONFIG_DEBUG_KERNEL=y  # CONFIG_DEBUG_SHIRQ is not set  CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0  # CONFIG_SCHED_DEBUG is not set  # CONFIG_SCHEDSTATS is not set  CONFIG_TIMER_STATS=y @@ -3719,6 +3811,7 @@ CONFIG_DEBUG_BUGVERBOSE=y  # CONFIG_DEBUG_INFO is not set  # CONFIG_DEBUG_VM is not set  # CONFIG_DEBUG_WRITECOUNT is not set +CONFIG_DEBUG_MEMORY_INIT=y  # CONFIG_DEBUG_LIST is not set  # CONFIG_DEBUG_SG is not set  # CONFIG_FRAME_POINTER is not set @@ -3727,22 +3820,32 @@ CONFIG_DEBUG_BUGVERBOSE=y  # CONFIG_BACKTRACE_SELF_TEST is not set  # CONFIG_FAULT_INJECTION is not set  # CONFIG_LATENCYTOP is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_HAVE_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +# CONFIG_FTRACE is not set +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_PREEMPT_TRACER is not set +# CONFIG_SYSPROF_TRACER is not set +# CONFIG_SCHED_TRACER is not set +# CONFIG_CONTEXT_SWITCH_TRACER is not set  # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set  # CONFIG_SAMPLES is not set  CONFIG_HAVE_ARCH_KGDB=y  # CONFIG_KGDB is not set -# CONFIG_NONPROMISC_DEVMEM is not set +# CONFIG_STRICT_DEVMEM is not set +CONFIG_X86_VERBOSE_BOOTUP=y  CONFIG_EARLY_PRINTK=y  # CONFIG_DEBUG_STACKOVERFLOW is not set  # CONFIG_DEBUG_STACK_USAGE is not set  # CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set  # CONFIG_X86_PTDUMP is not set  # CONFIG_DEBUG_RODATA is not set  # CONFIG_DEBUG_NX_TEST is not set  # CONFIG_4KSTACKS is not set -CONFIG_X86_FIND_SMP_CONFIG=y -CONFIG_X86_MPPARSE=y  CONFIG_DOUBLEFAULT=y +# CONFIG_MMIOTRACE is not set  CONFIG_IO_DELAY_TYPE_0X80=0  CONFIG_IO_DELAY_TYPE_0XED=1  CONFIG_IO_DELAY_TYPE_UDELAY=2 @@ -3754,6 +3857,7 @@ CONFIG_IO_DELAY_0X80=y  CONFIG_DEFAULT_IO_DELAY_TYPE=0  # CONFIG_DEBUG_BOOT_PARAMS is not set  # CONFIG_CPA_DEBUG is not set +# CONFIG_OPTIMIZE_INLINING is not set  #  # Security options @@ -3763,7 +3867,6 @@ CONFIG_KEYS=y  CONFIG_SECURITY=y  CONFIG_SECURITY_NETWORK=y  # CONFIG_SECURITY_NETWORK_XFRM is not set -CONFIG_SECURITY_CAPABILITIES=y  CONFIG_SECURITY_FILE_CAPABILITIES=y  CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0  # CONFIG_SECURITY_SMACK is not set @@ -3778,8 +3881,8 @@ CONFIG_CRYPTO=y  #  CONFIG_CRYPTO_ALGAPI=y  CONFIG_CRYPTO_AEAD=m -CONFIG_CRYPTO_BLKCIPHER=y -CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=m  CONFIG_CRYPTO_MANAGER=y  CONFIG_CRYPTO_GF128MUL=m  CONFIG_CRYPTO_NULL=m @@ -3797,7 +3900,7 @@ CONFIG_CRYPTO_SEQIV=m  #  # Block modes  # -CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CBC=m  CONFIG_CRYPTO_CTR=m  CONFIG_CRYPTO_CTS=m  CONFIG_CRYPTO_ECB=m @@ -3808,7 +3911,7 @@ CONFIG_CRYPTO_XTS=m  #  # Hash modes  # -CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_HMAC=m  CONFIG_CRYPTO_XCBC=m  # @@ -3816,8 +3919,12 @@ CONFIG_CRYPTO_XCBC=m  #  CONFIG_CRYPTO_CRC32C=m  CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MD5=m  CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m  CONFIG_CRYPTO_SHA1=m  CONFIG_CRYPTO_SHA256=m  CONFIG_CRYPTO_SHA512=m @@ -3835,7 +3942,7 @@ CONFIG_CRYPTO_BLOWFISH=m  CONFIG_CRYPTO_CAMELLIA=m  CONFIG_CRYPTO_CAST5=m  CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_DES=m  CONFIG_CRYPTO_FCRYPT=m  CONFIG_CRYPTO_KHAZAD=m  CONFIG_CRYPTO_SALSA20=m @@ -3878,6 +3985,7 @@ CONFIG_GENERIC_FIND_FIRST_BIT=y  CONFIG_GENERIC_FIND_NEXT_BIT=y  CONFIG_CRC_CCITT=m  CONFIG_CRC16=m +CONFIG_CRC_T10DIF=m  CONFIG_CRC_ITU_T=m  CONFIG_CRC32=y  CONFIG_CRC7=m diff --git a/abs/core-testing/kernel26/config.x86_64 b/abs/core-testing/kernel26/config.x86_64 index 9c7a16a..f8e491e 100644 --- a/abs/core-testing/kernel26/config.x86_64 +++ b/abs/core-testing/kernel26/config.x86_64 @@ -1,7 +1,7 @@  #  # Automatically generated make config: don't edit -# Linux kernel version: 2.6.26 -# Sun Aug 10 13:51:28 2008 +# Linux kernel version: 2.6.27 +# Mon Dec  8 22:37:16 2008  #  CONFIG_64BIT=y  # CONFIG_X86_32 is not set @@ -67,7 +67,8 @@ CONFIG_SWAP=y  CONFIG_SYSVIPC=y  CONFIG_SYSVIPC_SYSCTL=y  CONFIG_POSIX_MQUEUE=y -# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y  CONFIG_TASKSTATS=y  CONFIG_TASK_DELAY_ACCT=y  CONFIG_TASK_XACCT=y @@ -94,7 +95,6 @@ CONFIG_SYSCTL=y  # CONFIG_EMBEDDED is not set  CONFIG_UID16=y  CONFIG_SYSCTL_SYSCALL=y -CONFIG_SYSCTL_SYSCALL_CHECK=y  CONFIG_KALLSYMS=y  # CONFIG_KALLSYMS_ALL is not set  CONFIG_KALLSYMS_EXTRA_PASS=y @@ -122,10 +122,16 @@ CONFIG_PROFILING=y  CONFIG_OPROFILE=m  CONFIG_HAVE_OPROFILE=y  # CONFIG_KPROBES is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_IOREMAP_PROT=y  CONFIG_HAVE_KPROBES=y  CONFIG_HAVE_KRETPROBES=y +# CONFIG_HAVE_ARCH_TRACEHOOK is not set  # CONFIG_HAVE_DMA_ATTRS is not set +CONFIG_USE_GENERIC_SMP_HELPERS=y +# CONFIG_HAVE_CLK is not set  CONFIG_PROC_PAGE_MONITOR=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set  CONFIG_SLABINFO=y  CONFIG_RT_MUTEXES=y  # CONFIG_TINY_SHMEM is not set @@ -141,6 +147,7 @@ CONFIG_STOP_MACHINE=y  CONFIG_BLOCK=y  CONFIG_BLK_DEV_IO_TRACE=y  CONFIG_BLK_DEV_BSG=y +# CONFIG_BLK_DEV_INTEGRITY is not set  CONFIG_BLOCK_COMPAT=y  # @@ -166,24 +173,22 @@ CONFIG_NO_HZ=y  CONFIG_HIGH_RES_TIMERS=y  CONFIG_GENERIC_CLOCKEVENTS_BUILD=y  CONFIG_SMP=y +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y  CONFIG_X86_PC=y  # CONFIG_X86_ELAN is not set  # CONFIG_X86_VOYAGER is not set -# CONFIG_X86_NUMAQ is not set -# CONFIG_X86_SUMMIT is not set -# CONFIG_X86_BIGSMP is not set -# CONFIG_X86_VISWS is not set  # CONFIG_X86_GENERICARCH is not set -# CONFIG_X86_ES7000 is not set -# CONFIG_X86_RDC321X is not set  # CONFIG_X86_VSMP is not set  CONFIG_PARAVIRT_GUEST=y +# CONFIG_XEN is not set +CONFIG_XEN_SAVE_RESTORE=y  # CONFIG_KVM_CLOCK is not set  # CONFIG_KVM_GUEST is not set  CONFIG_PARAVIRT=y  # CONFIG_PARAVIRT_CLOCK is not set -CONFIG_MEMTEST_BOOTPARAM=y -CONFIG_MEMTEST_BOOTPARAM_VALUE=0 +# CONFIG_PARAVIRT_DEBUG is not set +# CONFIG_MEMTEST is not set  # CONFIG_M386 is not set  # CONFIG_M486 is not set  # CONFIG_M586 is not set @@ -215,8 +220,9 @@ CONFIG_X86_L1_CACHE_BYTES=128  CONFIG_X86_INTERNODE_CACHE_BYTES=128  CONFIG_X86_CMPXCHG=y  CONFIG_X86_L1_CACHE_SHIFT=7 -CONFIG_X86_GOOD_APIC=y +CONFIG_X86_WP_WORKS_OK=y  CONFIG_X86_TSC=y +CONFIG_X86_CMPXCHG64=y  CONFIG_X86_CMOV=y  CONFIG_X86_MINIMUM_CPU_FAMILY=64  CONFIG_X86_DEBUGCTLMSR=y @@ -226,6 +232,7 @@ CONFIG_DMI=y  CONFIG_GART_IOMMU=y  CONFIG_CALGARY_IOMMU=y  CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y +# CONFIG_AMD_IOMMU is not set  CONFIG_SWIOTLB=y  CONFIG_IOMMU_HELPER=y  CONFIG_NR_CPUS=16 @@ -269,7 +276,10 @@ CONFIG_RESOURCES_64BIT=y  CONFIG_ZONE_DMA_FLAG=1  CONFIG_BOUNCE=y  CONFIG_VIRT_TO_BUS=y +CONFIG_MMU_NOTIFIER=y +CONFIG_X86_RESERVE_LOW_64K=y  CONFIG_MTRR=y +# CONFIG_MTRR_SANITIZER is not set  CONFIG_X86_PAT=y  CONFIG_EFI=y  CONFIG_SECCOMP=y @@ -324,6 +334,7 @@ CONFIG_ACPI_CUSTOM_DSDT_INITRD=y  CONFIG_ACPI_BLACKLIST_YEAR=0  # CONFIG_ACPI_DEBUG is not set  CONFIG_ACPI_EC=y +CONFIG_ACPI_PCI_SLOT=m  CONFIG_ACPI_POWER=y  CONFIG_ACPI_SYSTEM=y  CONFIG_X86_PM_TIMER=y @@ -374,12 +385,13 @@ CONFIG_PCI=y  CONFIG_PCI_DIRECT=y  CONFIG_PCI_MMCONFIG=y  CONFIG_PCI_DOMAINS=y +# CONFIG_DMAR is not set  CONFIG_PCIEPORTBUS=y  CONFIG_HOTPLUG_PCI_PCIE=m  CONFIG_PCIEAER=y  # CONFIG_PCIEASPM is not set  CONFIG_ARCH_SUPPORTS_MSI=y -# CONFIG_PCI_MSI is not set +CONFIG_PCI_MSI=y  CONFIG_PCI_LEGACY=y  # CONFIG_PCI_DEBUG is not set  CONFIG_HT_IRQ=y @@ -424,10 +436,6 @@ CONFIG_IA32_AOUT=m  CONFIG_COMPAT=y  CONFIG_COMPAT_FOR_U64_ALIGNMENT=y  CONFIG_SYSVIPC_COMPAT=y - -# -# Networking -#  CONFIG_NET=y  # @@ -441,6 +449,7 @@ CONFIG_XFRM_USER=m  # CONFIG_XFRM_SUB_POLICY is not set  # CONFIG_XFRM_MIGRATE is not set  # CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=m  CONFIG_NET_KEY=m  # CONFIG_NET_KEY_MIGRATE is not set  CONFIG_INET=y @@ -642,6 +651,7 @@ CONFIG_IP_NF_TARGET_ECN=m  CONFIG_IP_NF_TARGET_TTL=m  CONFIG_IP_NF_TARGET_CLUSTERIP=m  CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m  CONFIG_IP_NF_ARPTABLES=m  CONFIG_IP_NF_ARPFILTER=m  CONFIG_IP_NF_ARP_MANGLE=m @@ -666,6 +676,7 @@ CONFIG_IP6_NF_TARGET_REJECT=m  CONFIG_IP6_NF_MANGLE=m  CONFIG_IP6_NF_TARGET_HL=m  CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m  #  # Bridge: Netfilter Configuration @@ -678,6 +689,7 @@ CONFIG_BRIDGE_EBT_802_3=m  CONFIG_BRIDGE_EBT_AMONG=m  CONFIG_BRIDGE_EBT_ARP=m  CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m  CONFIG_BRIDGE_EBT_LIMIT=m  CONFIG_BRIDGE_EBT_MARK=m  CONFIG_BRIDGE_EBT_PKTTYPE=m @@ -706,8 +718,10 @@ CONFIG_ATM_LANE=m  CONFIG_ATM_MPOA=m  CONFIG_ATM_BR2684=m  # CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_STP=m  CONFIG_BRIDGE=m  CONFIG_VLAN_8021Q=m +# CONFIG_VLAN_8021Q_GVRP is not set  # CONFIG_DECNET is not set  CONFIG_LLC=m  CONFIG_LLC2=m @@ -835,7 +849,7 @@ CONFIG_BT_RFCOMM_TTY=y  CONFIG_BT_BNEP=m  # CONFIG_BT_BNEP_MC_FILTER is not set  # CONFIG_BT_BNEP_PROTO_FILTER is not set -CONFIG_BT_CMTP=m +# CONFIG_BT_CMTP is not set  CONFIG_BT_HIDP=m  # @@ -843,6 +857,7 @@ CONFIG_BT_HIDP=m  #  CONFIG_BT_HCIUSB=m  CONFIG_BT_HCIUSB_SCO=y +# CONFIG_BT_HCIBTUSB is not set  CONFIG_BT_HCIBTSDIO=m  CONFIG_BT_HCIUART=m  CONFIG_BT_HCIUART_H4=y @@ -867,28 +882,19 @@ CONFIG_FIB_RULES=y  CONFIG_CFG80211=m  CONFIG_NL80211=y  CONFIG_WIRELESS_EXT=y +CONFIG_WIRELESS_EXT_SYSFS=y  CONFIG_MAC80211=m  #  # Rate control algorithm selection  # +CONFIG_MAC80211_RC_PID=y  CONFIG_MAC80211_RC_DEFAULT_PID=y -# CONFIG_MAC80211_RC_DEFAULT_NONE is not set - -# -# Selecting 'y' for an algorithm will -# - -# -# build the algorithm into mac80211. -#  CONFIG_MAC80211_RC_DEFAULT="pid" -CONFIG_MAC80211_RC_PID=y  CONFIG_MAC80211_MESH=y  CONFIG_MAC80211_LEDS=y  # CONFIG_MAC80211_DEBUGFS is not set -# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set -# CONFIG_MAC80211_DEBUG is not set +# CONFIG_MAC80211_DEBUG_MENU is not set  CONFIG_IEEE80211=m  # CONFIG_IEEE80211_DEBUG is not set  CONFIG_IEEE80211_CRYPT_WEP=m @@ -910,7 +916,9 @@ CONFIG_NET_9P=m  CONFIG_UEVENT_HELPER_PATH=""  CONFIG_STANDALONE=y  CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=m +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE=""  # CONFIG_DEBUG_DRIVER is not set  # CONFIG_DEBUG_DEVRES is not set  # CONFIG_SYS_HYPERVISOR is not set @@ -1026,6 +1034,7 @@ CONFIG_CDROM_PKTCDVD=m  CONFIG_CDROM_PKTCDVD_BUFFERS=8  # CONFIG_CDROM_PKTCDVD_WCACHE is not set  CONFIG_ATA_OVER_ETH=m +# CONFIG_BLK_DEV_HD is not set  CONFIG_MISC_DEVICES=y  # CONFIG_IBM_ASM is not set  CONFIG_PHANTOM=m @@ -1036,7 +1045,10 @@ CONFIG_TIFM_7XX1=m  CONFIG_ACER_WMI=m  CONFIG_ASUS_LAPTOP=m  CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_HP_WMI=m  CONFIG_MSI_LAPTOP=m +CONFIG_COMPAL_LAPTOP=m  CONFIG_SONY_LAPTOP=m  # CONFIG_SONYPI_COMPAT is not set  CONFIG_THINKPAD_ACPI=m @@ -1047,6 +1059,10 @@ CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y  CONFIG_INTEL_MENLOW=m  CONFIG_EEEPC_LAPTOP=m  CONFIG_ENCLOSURE_SERVICES=m +CONFIG_SGI_XP=m +CONFIG_HP_ILO=m +CONFIG_SGI_GRU=m +# CONFIG_SGI_GRU_DEBUG is not set  CONFIG_HAVE_IDE=y  CONFIG_IDE=m  CONFIG_BLK_DEV_IDE=m @@ -1054,6 +1070,8 @@ CONFIG_BLK_DEV_IDE=m  #  # Please see Documentation/ide/ide.txt for help/info on IDE drives  # +CONFIG_IDE_TIMINGS=y +CONFIG_IDE_ATAPI=y  # CONFIG_BLK_DEV_IDE_SATA is not set  CONFIG_BLK_DEV_IDEDISK=m  CONFIG_IDEDISK_MULTI_MODE=y @@ -1093,11 +1111,8 @@ CONFIG_BLK_DEV_AMD74XX=m  CONFIG_BLK_DEV_ATIIXP=m  CONFIG_BLK_DEV_CMD64X=m  CONFIG_BLK_DEV_TRIFLEX=m -CONFIG_BLK_DEV_CY82C693=m  CONFIG_BLK_DEV_CS5520=m  CONFIG_BLK_DEV_CS5530=m -CONFIG_BLK_DEV_HPT34X=m -# CONFIG_HPT34X_AUTODMA is not set  CONFIG_BLK_DEV_HPT366=m  CONFIG_BLK_DEV_JMICRON=m  CONFIG_BLK_DEV_SC1200=m @@ -1115,8 +1130,6 @@ CONFIG_BLK_DEV_TRM290=m  CONFIG_BLK_DEV_VIA82CXXX=m  CONFIG_BLK_DEV_TC86C001=m  CONFIG_BLK_DEV_IDEDMA=y -# CONFIG_BLK_DEV_HD_ONLY is not set -# CONFIG_BLK_DEV_HD is not set  #  # SCSI device support @@ -1231,6 +1244,11 @@ CONFIG_SCSI_LOWLEVEL_PCMCIA=y  CONFIG_PCMCIA_FDOMAIN=m  CONFIG_PCMCIA_QLOGIC=m  CONFIG_PCMCIA_SYM53C500=m +CONFIG_SCSI_DH=m +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_ALUA=m  CONFIG_ATA=m  # CONFIG_ATA_NONSTANDARD is not set  CONFIG_ATA_ACPI=y @@ -1311,9 +1329,6 @@ CONFIG_DM_SNAPSHOT=m  CONFIG_DM_MIRROR=m  CONFIG_DM_ZERO=m  CONFIG_DM_MULTIPATH=m -CONFIG_DM_MULTIPATH_EMC=m -CONFIG_DM_MULTIPATH_RDAC=m -CONFIG_DM_MULTIPATH_HP=m  CONFIG_DM_DELAY=m  CONFIG_DM_UEVENT=y  CONFIG_FUSION=y @@ -1356,7 +1371,6 @@ CONFIG_I2O_PROC=m  CONFIG_MACINTOSH_DRIVERS=y  CONFIG_MAC_EMUMOUSEBTN=y  CONFIG_NETDEVICES=y -CONFIG_NETDEVICES_MULTIQUEUE=y  CONFIG_IFB=m  CONFIG_DUMMY=m  CONFIG_BONDING=m @@ -1366,7 +1380,22 @@ CONFIG_TUN=m  CONFIG_VETH=m  CONFIG_NET_SB1000=m  # CONFIG_ARCNET is not set -# CONFIG_PHYLIB is not set +CONFIG_PHYLIB=m + +# +# MII PHY device drivers +# +# CONFIG_MARVELL_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_QSEMI_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_CICADA_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_BROADCOM_PHY is not set +# CONFIG_ICPLUS_PHY is not set +# CONFIG_REALTEK_PHY is not set +# CONFIG_MDIO_BITBANG is not set  CONFIG_NET_ETHERNET=y  CONFIG_MII=m  CONFIG_HAPPYMEAL=m @@ -1396,9 +1425,7 @@ CONFIG_HP100=m  CONFIG_NET_PCI=y  CONFIG_PCNET32=m  CONFIG_AMD8111_ETH=m -# CONFIG_AMD8111E_NAPI is not set  CONFIG_ADAPTEC_STARFIRE=m -# CONFIG_ADAPTEC_STARFIRE_NAPI is not set  CONFIG_B44=m  CONFIG_B44_PCI_AUTOSELECT=y  CONFIG_B44_PCICORE_AUTOSELECT=y @@ -1421,9 +1448,9 @@ CONFIG_SIS900=m  CONFIG_EPIC100=m  CONFIG_SUNDANCE=m  # CONFIG_SUNDANCE_MMIO is not set +# CONFIG_TLAN is not set  CONFIG_VIA_RHINE=m  # CONFIG_VIA_RHINE_MMIO is not set -# CONFIG_VIA_RHINE_NAPI is not set  CONFIG_SC92031=m  CONFIG_NET_POCKET=y  CONFIG_ATP=m @@ -1434,17 +1461,15 @@ CONFIG_ACENIC=m  # CONFIG_ACENIC_OMIT_TIGON_I is not set  CONFIG_DL2K=m  CONFIG_E1000=m -# CONFIG_E1000_NAPI is not set  # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set  CONFIG_E1000E=m -CONFIG_E1000E_ENABLED=y  CONFIG_IP1000=m  CONFIG_IGB=m +# CONFIG_IGB_LRO is not set  CONFIG_NS83820=m  CONFIG_HAMACHI=m  CONFIG_YELLOWFIN=m  CONFIG_R8169=m -# CONFIG_R8169_NAPI is not set  # CONFIG_R8169_VLAN is not set  CONFIG_SIS190=m  CONFIG_SKGE=m @@ -1456,16 +1481,14 @@ CONFIG_TIGON3=m  CONFIG_BNX2=m  CONFIG_QLA3XXX=m  CONFIG_ATL1=m +CONFIG_ATL1E=m  CONFIG_NETDEV_10000=y  CONFIG_CHELSIO_T1=m  CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T1_NAPI=y  CONFIG_CHELSIO_T3=m  CONFIG_IXGBE=m  CONFIG_IXGB=m -# CONFIG_IXGB_NAPI is not set  CONFIG_S2IO=m -# CONFIG_S2IO_NAPI is not set  CONFIG_MYRI10GE=m  CONFIG_NETXEN_NIC=m  CONFIG_NIU=m @@ -1514,22 +1537,25 @@ CONFIG_USB_NET_RNDIS_WLAN=m  CONFIG_RTL8180=m  CONFIG_RTL8187=m  CONFIG_ADM8211=m +# CONFIG_MAC80211_HWSIM is not set  CONFIG_P54_COMMON=m  CONFIG_P54_USB=m  CONFIG_P54_PCI=m  CONFIG_ATH5K=m  # CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH9K=m  CONFIG_IWLWIFI=m  CONFIG_IWLCORE=m  CONFIG_IWLWIFI_LEDS=y  CONFIG_IWLWIFI_RFKILL=y -CONFIG_IWL4965=m -CONFIG_IWL4965_HT=y -CONFIG_IWL4965_LEDS=y -CONFIG_IWL4965_SPECTRUM_MEASUREMENT=y -CONFIG_IWL4965_SENSITIVITY=y  # CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLAGN=m +CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y +CONFIG_IWLAGN_LEDS=y +CONFIG_IWL4965=y +CONFIG_IWL5000=y  CONFIG_IWL3945=m +CONFIG_IWL3945_RFKILL=y  CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y  CONFIG_IWL3945_LEDS=y  # CONFIG_IWL3945_DEBUG is not set @@ -1606,6 +1632,7 @@ CONFIG_USB_ARMLINUX=y  CONFIG_USB_EPSON2888=y  CONFIG_USB_KC2190=y  CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_HSO=m  CONFIG_NET_PCMCIA=y  CONFIG_PCMCIA_3C589=m  CONFIG_PCMCIA_3C574=m @@ -1634,8 +1661,12 @@ CONFIG_ATM_AMBASSADOR=m  # CONFIG_ATM_AMBASSADOR_DEBUG is not set  CONFIG_ATM_HORIZON=m  # CONFIG_ATM_HORIZON_DEBUG is not set -CONFIG_ATM_FORE200E_MAYBE=m -# CONFIG_ATM_FORE200E_PCA is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0  CONFIG_ATM_HE=m  # CONFIG_ATM_HE_USE_SUNI is not set  # CONFIG_FDDI is not set @@ -1663,7 +1694,16 @@ CONFIG_NETCONSOLE_DYNAMIC=y  CONFIG_NETPOLL=y  # CONFIG_NETPOLL_TRAP is not set  CONFIG_NET_POLL_CONTROLLER=y -CONFIG_ISDN=m +CONFIG_ISDN=y +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m  CONFIG_ISDN_I4L=m  CONFIG_ISDN_PPP=y  CONFIG_ISDN_PPP_VJ=y @@ -1752,7 +1792,7 @@ CONFIG_GIGASET_M101=m  CONFIG_GIGASET_UNDOCREQ=y  CONFIG_ISDN_CAPI=m  CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y -# CONFIG_CAPI_TRACE is not set +CONFIG_CAPI_TRACE=y  CONFIG_ISDN_CAPI_MIDDLEWARE=y  CONFIG_ISDN_CAPI_CAPI20=m  CONFIG_ISDN_CAPI_CAPIFS_BOOL=y @@ -1816,6 +1856,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y  # CONFIG_MOUSE_PS2_TOUCHKIT is not set  CONFIG_MOUSE_SERIAL=y  CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m  CONFIG_MOUSE_VSXXXAA=m  CONFIG_INPUT_JOYSTICK=y  CONFIG_JOYSTICK_ANALOG=m @@ -1858,6 +1899,7 @@ CONFIG_TOUCHSCREEN_FUJITSU=m  CONFIG_TOUCHSCREEN_GUNZE=m  CONFIG_TOUCHSCREEN_ELO=m  CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_INEXIO=m  CONFIG_TOUCHSCREEN_MK712=m  CONFIG_TOUCHSCREEN_PENMOUNT=m  CONFIG_TOUCHSCREEN_TOUCHRIGHT=m @@ -1879,6 +1921,7 @@ CONFIG_TOUCHSCREEN_USB_IRTOUCH=y  CONFIG_TOUCHSCREEN_USB_IDEALTEK=y  CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y  CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_TOUCHSCREEN_TOUCHIT213=m  CONFIG_INPUT_MISC=y  CONFIG_INPUT_PCSPKR=m  CONFIG_INPUT_APANEL=m @@ -1911,6 +1954,7 @@ CONFIG_GAMEPORT_FM801=m  # Character devices  #  CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y  CONFIG_VT_CONSOLE=y  CONFIG_HW_CONSOLE=y  CONFIG_VT_HW_CONSOLE_BINDING=y @@ -1995,12 +2039,17 @@ CONFIG_DEVPORT=y  CONFIG_I2C=m  CONFIG_I2C_BOARDINFO=y  CONFIG_I2C_CHARDEV=m +CONFIG_I2C_HELPER_AUTO=y  CONFIG_I2C_ALGOBIT=m  CONFIG_I2C_ALGOPCA=m  #  # I2C Hardware Bus support  # + +# +# PC SMBus host controller drivers +#  CONFIG_I2C_ALI1535=m  CONFIG_I2C_ALI1563=m  CONFIG_I2C_ALI15X3=m @@ -2008,33 +2057,50 @@ CONFIG_I2C_AMD756=m  CONFIG_I2C_AMD756_S4882=m  CONFIG_I2C_AMD8111=m  CONFIG_I2C_I801=m -CONFIG_I2C_I810=m +CONFIG_I2C_ISCH=m  CONFIG_I2C_PIIX4=m  CONFIG_I2C_NFORCE2=m -CONFIG_I2C_OCORES=m -CONFIG_I2C_PARPORT=m -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PROSAVAGE=m -CONFIG_I2C_SAVAGE4=m -CONFIG_I2C_SIMTEC=m +CONFIG_I2C_NFORCE2_S4985=m  CONFIG_I2C_SIS5595=m  CONFIG_I2C_SIS630=m  CONFIG_I2C_SIS96X=m -CONFIG_I2C_TAOS_EVM=m -# CONFIG_I2C_STUB is not set -CONFIG_I2C_TINY_USB=m  CONFIG_I2C_VIA=m  CONFIG_I2C_VIAPRO=m + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_OCORES=m +CONFIG_I2C_SIMTEC=m + +# +# External I2C/SMBus adapter drivers +# +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m + +# +# Graphics adapter I2C/DDC channel drivers +#  CONFIG_I2C_VOODOO3=m + +# +# Other I2C/SMBus bus drivers +#  CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_STUB is not set  #  # Miscellaneous I2C Chip support  #  CONFIG_DS1682=m +CONFIG_AT24=m  CONFIG_SENSORS_EEPROM=m  CONFIG_SENSORS_PCF8574=m  CONFIG_PCF8575=m +CONFIG_SENSORS_PCA9539=m  CONFIG_SENSORS_PCF8591=m  CONFIG_SENSORS_MAX6875=m  CONFIG_SENSORS_TSL2550=m @@ -2059,6 +2125,8 @@ CONFIG_SPI_LM70_LLP=m  CONFIG_SPI_AT25=m  CONFIG_SPI_SPIDEV=m  CONFIG_SPI_TLE62X0=m +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +# CONFIG_GPIOLIB is not set  CONFIG_W1=m  CONFIG_W1_CON=y @@ -2085,7 +2153,9 @@ CONFIG_HWMON=y  CONFIG_HWMON_VID=m  CONFIG_SENSORS_ABITUGURU=m  CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_AD7414=m  CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADCXX=m  CONFIG_SENSORS_ADM1021=m  CONFIG_SENSORS_ADM1025=m  CONFIG_SENSORS_ADM1026=m @@ -2150,7 +2220,51 @@ CONFIG_SENSORS_APPLESMC=m  # CONFIG_HWMON_DEBUG_CHIP is not set  CONFIG_THERMAL=y  CONFIG_THERMAL_HWMON=y -# CONFIG_WATCHDOG is not set +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ADVANTECH_WDT=m +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_SC520_WDT=m +CONFIG_EUROTECH_WDT=m +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_WAFER_WDT=m +CONFIG_I6300ESB_WDT=m +CONFIG_ITCO_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_IT8712F_WDT=m +CONFIG_HP_WATCHDOG=m +CONFIG_SC1200_WDT=m +CONFIG_PC87413_WDT=m +CONFIG_60XX_WDT=m +CONFIG_SBC8360_WDT=m +CONFIG_CPU5_WDT=m +CONFIG_SMSC37B787_WDT=m +CONFIG_W83627HF_WDT=m +CONFIG_W83697HF_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_MACHZ_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m + +# +# PCI-based Watchdog Cards +# +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m  #  # Sonics Silicon Backplane @@ -2171,8 +2285,10 @@ CONFIG_SSB_DRIVER_PCICORE=y  #  # Multifunction device drivers  # +# CONFIG_MFD_CORE is not set  CONFIG_MFD_SM501=m  # CONFIG_HTC_PASIC3 is not set +# CONFIG_MFD_TMIO is not set  #  # Multimedia devices @@ -2193,7 +2309,7 @@ CONFIG_VIDEO_MEDIA=m  #  CONFIG_VIDEO_SAA7146=m  CONFIG_VIDEO_SAA7146_VV=m -# CONFIG_MEDIA_ATTACH is not set +CONFIG_MEDIA_ATTACH=y  CONFIG_MEDIA_TUNER=m  # CONFIG_MEDIA_TUNER_CUSTOMIZE is not set  CONFIG_MEDIA_TUNER_SIMPLE=m @@ -2211,20 +2327,22 @@ CONFIG_MEDIA_TUNER_QT1010=m  CONFIG_MEDIA_TUNER_XC2028=m  CONFIG_MEDIA_TUNER_XC5000=m  CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m  CONFIG_VIDEO_V4L2=m  CONFIG_VIDEO_V4L1=m  CONFIG_VIDEOBUF_GEN=m  CONFIG_VIDEOBUF_DMA_SG=m  CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=m  CONFIG_VIDEOBUF_DVB=m  CONFIG_VIDEO_BTCX=m -CONFIG_VIDEO_IR_I2C=m  CONFIG_VIDEO_IR=m  CONFIG_VIDEO_TVEEPROM=m  CONFIG_VIDEO_TUNER=m  CONFIG_VIDEO_CAPTURE_DRIVERS=y  # CONFIG_VIDEO_ADV_DEBUG is not set  # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m  #  # Encoders/decoders and other helper chips @@ -2304,11 +2422,11 @@ CONFIG_VIDEO_SAA5246A=m  CONFIG_VIDEO_SAA5249=m  CONFIG_TUNER_3036=m  CONFIG_VIDEO_STRADIS=m -CONFIG_VIDEO_ZORAN_ZR36060=m  CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_ZR36060=m  CONFIG_VIDEO_ZORAN_BUZ=m  CONFIG_VIDEO_ZORAN_DC10=m -CONFIG_VIDEO_ZORAN_DC30=m  CONFIG_VIDEO_ZORAN_LML33=m  CONFIG_VIDEO_ZORAN_LML33R10=m  CONFIG_VIDEO_ZORAN_AVS6EYES=m @@ -2334,6 +2452,7 @@ CONFIG_VIDEO_CAFE_CCIC=m  CONFIG_V4L_USB_DRIVERS=y  CONFIG_USB_VIDEO_CLASS=m  CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m  CONFIG_VIDEO_PVRUSB2=m  CONFIG_VIDEO_PVRUSB2_SYSFS=y  CONFIG_VIDEO_PVRUSB2_DVB=y @@ -2359,9 +2478,12 @@ CONFIG_USB_PWC=m  # CONFIG_USB_PWC_DEBUG is not set  CONFIG_USB_ZR364XX=m  CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m  CONFIG_SOC_CAMERA=m  CONFIG_SOC_CAMERA_MT9M001=m  CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_VIDEO_SH_MOBILE_CEU=m  CONFIG_RADIO_ADAPTERS=y  CONFIG_RADIO_GEMTEK_PCI=m  CONFIG_RADIO_MAXIRADIO=m @@ -2407,6 +2529,8 @@ CONFIG_DVB_USB_DTT200U=m  CONFIG_DVB_USB_OPERA1=m  CONFIG_DVB_USB_AF9005=m  CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_ANYSEE=m  CONFIG_DVB_TTUSB_BUDGET=m  CONFIG_DVB_TTUSB_DEC=m  CONFIG_DVB_CINERGYT2=m @@ -2416,6 +2540,8 @@ CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512  CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250  CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y  CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=20 +CONFIG_DVB_SIANO_SMS1XXX=m +CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y  #  # Supported FlexCopII (B2C2) Adapters @@ -2466,6 +2592,7 @@ CONFIG_DVB_SP8870=m  CONFIG_DVB_SP887X=m  CONFIG_DVB_CX22700=m  CONFIG_DVB_CX22702=m +# CONFIG_DVB_DRX397XD is not set  CONFIG_DVB_L64781=m  CONFIG_DVB_TDA1004X=m  CONFIG_DVB_NXT6000=m @@ -2611,16 +2738,21 @@ CONFIG_FB_TRIDENT=m  CONFIG_FB_TRIDENT_ACCEL=y  # CONFIG_FB_ARK is not set  # CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set  # CONFIG_FB_GEODE is not set  # CONFIG_FB_SM501 is not set  # CONFIG_FB_VIRTUAL is not set  CONFIG_BACKLIGHT_LCD_SUPPORT=y  CONFIG_LCD_CLASS_DEVICE=m  CONFIG_LCD_LTV350QV=m +CONFIG_LCD_ILI9320=m +CONFIG_LCD_VGG2432A4=m +CONFIG_LCD_PLATFORM=m  CONFIG_BACKLIGHT_CLASS_DEVICE=y  CONFIG_BACKLIGHT_CORGI=m  CONFIG_BACKLIGHT_PROGEAR=m  CONFIG_BACKLIGHT_CARILLO_RANCH=m +CONFIG_BACKLIGHT_MBP_NVIDIA=m  #  # Display device support @@ -2656,15 +2788,7 @@ CONFIG_LOGO=y  CONFIG_LOGO_LINUX_MONO=y  CONFIG_LOGO_LINUX_VGA16=y  CONFIG_LOGO_LINUX_CLUT224=y - -# -# Sound -#  CONFIG_SOUND=m - -# -# Advanced Linux Sound Architecture -#  CONFIG_SND=m  CONFIG_SND_TIMER=m  CONFIG_SND_PCM=m @@ -2683,15 +2807,12 @@ CONFIG_SND_VERBOSE_PROCFS=y  # CONFIG_SND_VERBOSE_PRINTK is not set  # CONFIG_SND_DEBUG is not set  CONFIG_SND_VMASTER=y - -# -# Generic devices -# -# CONFIG_SND_PCSP is not set  CONFIG_SND_MPU401_UART=m  CONFIG_SND_OPL3_LIB=m  CONFIG_SND_VX_LIB=m  CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DRIVERS=y +CONFIG_SND_PCSP=m  CONFIG_SND_DUMMY=m  CONFIG_SND_VIRMIDI=m  CONFIG_SND_MTPAV=m @@ -2699,12 +2820,11 @@ CONFIG_SND_MTS64=m  CONFIG_SND_SERIAL_U16550=m  CONFIG_SND_MPU401=m  CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0  CONFIG_SND_SB_COMMON=m  CONFIG_SND_SB16_DSP=m - -# -# PCI devices -# +CONFIG_SND_PCI=y  CONFIG_SND_AD1889=m  CONFIG_SND_ALS300=m  CONFIG_SND_ALS4000=m @@ -2768,9 +2888,7 @@ CONFIG_SND_ICE1724=m  CONFIG_SND_INTEL8X0=m  CONFIG_SND_INTEL8X0M=m  CONFIG_SND_KORG1212=m -CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y  CONFIG_SND_MAESTRO3=m -CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y  CONFIG_SND_MIXART=m  CONFIG_SND_NM256=m  CONFIG_SND_PCXHR=m @@ -2785,44 +2903,16 @@ CONFIG_SND_VIA82XX_MODEM=m  CONFIG_SND_VIRTUOSO=m  CONFIG_SND_VX222=m  CONFIG_SND_YMFPCI=m -CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y -CONFIG_SND_AC97_POWER_SAVE=y -CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 - -# -# SPI devices -# - -# -# USB devices -# +CONFIG_SND_SPI=y +CONFIG_SND_USB=y  CONFIG_SND_USB_AUDIO=m  CONFIG_SND_USB_USX2Y=m  CONFIG_SND_USB_CAIAQ=m  CONFIG_SND_USB_CAIAQ_INPUT=y - -# -# PCMCIA devices -# +CONFIG_SND_PCMCIA=y  CONFIG_SND_VXPOCKET=m  CONFIG_SND_PDAUDIOCF=m - -# -# System on Chip audio support -#  CONFIG_SND_SOC=m - -# -# ALSA SoC audio for Freescale SOCs -# - -# -# SoC Audio for the Texas Instruments OMAP -# - -# -# Open Sound System -#  # CONFIG_SOUND_PRIME is not set  CONFIG_AC97_BUS=m  CONFIG_HID_SUPPORT=y @@ -2865,6 +2955,7 @@ CONFIG_USB_DEVICE_CLASS=y  CONFIG_USB_DYNAMIC_MINORS=y  CONFIG_USB_SUSPEND=y  # CONFIG_USB_OTG is not set +CONFIG_USB_MON=y  #  # USB Host Controller Drivers @@ -2875,7 +2966,6 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y  CONFIG_USB_EHCI_TT_NEWSCHED=y  CONFIG_USB_ISP116X_HCD=m  CONFIG_USB_ISP1760_HCD=m -# CONFIG_USB_ISP1760_PCI is not set  CONFIG_USB_OHCI_HCD=m  # CONFIG_USB_OHCI_HCD_SSB is not set  # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set @@ -2886,6 +2976,7 @@ CONFIG_USB_U132_HCD=m  CONFIG_USB_SL811_HCD=m  CONFIG_USB_SL811_CS=m  CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_GADGET_MUSB_HDRC is not set  #  # USB Device Class drivers @@ -2922,7 +3013,6 @@ CONFIG_USB_STORAGE_CYPRESS_ATACB=y  #  CONFIG_USB_MDC800=m  CONFIG_USB_MICROTEK=m -CONFIG_USB_MON=y  #  # USB port drivers @@ -2932,7 +3022,6 @@ CONFIG_USB_SERIAL=m  CONFIG_USB_EZUSB=y  CONFIG_USB_SERIAL_GENERIC=y  CONFIG_USB_SERIAL_AIRCABLE=m -CONFIG_USB_SERIAL_AIRPRIME=m  CONFIG_USB_SERIAL_ARK3116=m  CONFIG_USB_SERIAL_BELKIN=m  CONFIG_USB_SERIAL_CH341=m @@ -2992,7 +3081,6 @@ CONFIG_USB_SERIAL_OMNINET=m  CONFIG_USB_EMI62=m  CONFIG_USB_EMI26=m  CONFIG_USB_ADUTUX=m -CONFIG_USB_AUERSWALD=m  CONFIG_USB_RIO500=m  CONFIG_USB_LEGOTOWER=m  CONFIG_USB_LCD=m @@ -3029,7 +3117,7 @@ CONFIG_USB_GADGET_SELECTED=y  # CONFIG_USB_GADGET_FSL_USB2 is not set  CONFIG_USB_GADGET_NET2280=y  CONFIG_USB_NET2280=m -# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_PXA25X is not set  # CONFIG_USB_GADGET_M66592 is not set  # CONFIG_USB_GADGET_PXA27X is not set  # CONFIG_USB_GADGET_GOKU is not set @@ -3048,6 +3136,7 @@ CONFIG_USB_FILE_STORAGE=m  CONFIG_USB_G_SERIAL=m  CONFIG_USB_MIDI_GADGET=m  CONFIG_USB_G_PRINTER=m +# CONFIG_USB_CDC_COMPOSITE is not set  CONFIG_MMC=m  # CONFIG_MMC_DEBUG is not set  # CONFIG_MMC_UNSAFE_RESUME is not set @@ -3064,10 +3153,12 @@ CONFIG_SDIO_UART=m  # MMC/SD Host Controller Drivers  #  CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PCI=m  CONFIG_MMC_RICOH_MMC=m  CONFIG_MMC_WBSD=m  CONFIG_MMC_TIFM_SD=m  CONFIG_MMC_SPI=m +CONFIG_MMC_SDRICOH_CS=m  CONFIG_MEMSTICK=m  # CONFIG_MEMSTICK_DEBUG is not set @@ -3088,7 +3179,9 @@ CONFIG_LEDS_CLASS=m  #  # LED drivers  # +CONFIG_LEDS_PCA9532=m  CONFIG_LEDS_CLEVO_MAIL=m +CONFIG_LEDS_PCA955X=m  #  # LED Triggers @@ -3098,7 +3191,8 @@ CONFIG_LEDS_TRIGGER_TIMER=m  CONFIG_LEDS_TRIGGER_IDE_DISK=y  CONFIG_LEDS_TRIGGER_HEARTBEAT=m  CONFIG_LEDS_TRIGGER_DEFAULT_ON=m -# CONFIG_ACCESSIBILITY is not set +CONFIG_ACCESSIBILITY=y +CONFIG_A11Y_BRAILLE_CONSOLE=y  # CONFIG_INFINIBAND is not set  CONFIG_EDAC=y @@ -3111,6 +3205,7 @@ CONFIG_EDAC_E752X=m  CONFIG_EDAC_I82975X=m  CONFIG_EDAC_I3000=m  CONFIG_EDAC_I5000=m +CONFIG_EDAC_I5100=m  CONFIG_RTC_LIB=m  CONFIG_RTC_CLASS=m @@ -3143,6 +3238,8 @@ CONFIG_RTC_DRV_FM3130=m  #  # SPI RTC drivers  # +CONFIG_RTC_DRV_M41T94=m +CONFIG_RTC_DRV_DS1305=m  CONFIG_RTC_DRV_MAX6902=m  CONFIG_RTC_DRV_R9701=m  CONFIG_RTC_DRV_RS5C348=m @@ -3174,6 +3271,7 @@ CONFIG_DMA_ENGINE=y  # DMA Clients  #  CONFIG_NET_DMA=y +# CONFIG_DMATEST is not set  CONFIG_DCA=m  CONFIG_AUXDISPLAY=y  CONFIG_KS0108=m @@ -3183,6 +3281,8 @@ CONFIG_CFAG12864B=m  CONFIG_CFAG12864B_RATE=20  CONFIG_UIO=m  CONFIG_UIO_CIF=m +CONFIG_UIO_PDRV=m +CONFIG_UIO_PDRV_GENIRQ=m  CONFIG_UIO_SMX=m  # @@ -3190,6 +3290,7 @@ CONFIG_UIO_SMX=m  #  CONFIG_EDD=m  # CONFIG_EDD_OFF is not set +CONFIG_FIRMWARE_MEMMAP=y  CONFIG_EFI_VARS=m  CONFIG_DELL_RBU=m  CONFIG_DCDBAS=m @@ -3235,11 +3336,11 @@ CONFIG_XFS_POSIX_ACL=y  CONFIG_XFS_RT=y  # CONFIG_XFS_DEBUG is not set  CONFIG_GFS2_FS=m -CONFIG_GFS2_FS_LOCKING_NOLOCK=m  CONFIG_GFS2_FS_LOCKING_DLM=m  CONFIG_OCFS2_FS=m  CONFIG_OCFS2_FS_O2CB=m  CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m +CONFIG_OCFS2_FS_STATS=y  # CONFIG_OCFS2_DEBUG_MASKLOG is not set  # CONFIG_OCFS2_DEBUG_FS is not set  CONFIG_DNOTIFY=y @@ -3326,6 +3427,7 @@ CONFIG_SQUASHFS=m  CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3  # CONFIG_VXFS_FS is not set  # CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set  # CONFIG_HPFS_FS is not set  # CONFIG_QNX4FS_FS is not set  # CONFIG_ROMFS_FS is not set @@ -3350,7 +3452,6 @@ CONFIG_NFS_ACL_SUPPORT=m  CONFIG_NFS_COMMON=y  CONFIG_SUNRPC=m  CONFIG_SUNRPC_GSS=m -CONFIG_SUNRPC_BIND34=y  CONFIG_RPCSEC_GSS_KRB5=m  CONFIG_RPCSEC_GSS_SPKM3=m  CONFIG_SMB_FS=m @@ -3359,6 +3460,7 @@ CONFIG_CIFS=m  CONFIG_CIFS_STATS=y  # CONFIG_CIFS_STATS2 is not set  CONFIG_CIFS_WEAK_PW_HASH=y +# CONFIG_CIFS_UPCALL is not set  CONFIG_CIFS_XATTR=y  CONFIG_CIFS_POSIX=y  # CONFIG_CIFS_DEBUG2 is not set @@ -3373,7 +3475,6 @@ CONFIG_NCPFS_SMALLDOS=y  CONFIG_NCPFS_NLS=y  # CONFIG_NCPFS_EXTRAS is not set  CONFIG_CODA_FS=m -# CONFIG_CODA_FS_OLD_API is not set  CONFIG_AFS_FS=m  # CONFIG_AFS_DEBUG is not set  CONFIG_9P_FS=m @@ -3457,6 +3558,8 @@ CONFIG_DEBUG_FS=y  CONFIG_DEBUG_KERNEL=y  # CONFIG_DEBUG_SHIRQ is not set  CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0  # CONFIG_SCHED_DEBUG is not set  # CONFIG_SCHEDSTATS is not set  CONFIG_TIMER_STATS=y @@ -3478,6 +3581,7 @@ CONFIG_DEBUG_BUGVERBOSE=y  # CONFIG_DEBUG_INFO is not set  # CONFIG_DEBUG_VM is not set  # CONFIG_DEBUG_WRITECOUNT is not set +CONFIG_DEBUG_MEMORY_INIT=y  # CONFIG_DEBUG_LIST is not set  # CONFIG_DEBUG_SG is not set  # CONFIG_FRAME_POINTER is not set @@ -3486,11 +3590,21 @@ CONFIG_DEBUG_BUGVERBOSE=y  # CONFIG_BACKTRACE_SELF_TEST is not set  # CONFIG_FAULT_INJECTION is not set  # CONFIG_LATENCYTOP is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_HAVE_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +# CONFIG_FTRACE is not set +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_PREEMPT_TRACER is not set +# CONFIG_SYSPROF_TRACER is not set +# CONFIG_SCHED_TRACER is not set +# CONFIG_CONTEXT_SWITCH_TRACER is not set  # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set  # CONFIG_SAMPLES is not set  CONFIG_HAVE_ARCH_KGDB=y  # CONFIG_KGDB is not set -# CONFIG_NONPROMISC_DEVMEM is not set +# CONFIG_STRICT_DEVMEM is not set +CONFIG_X86_VERBOSE_BOOTUP=y  CONFIG_EARLY_PRINTK=y  # CONFIG_DEBUG_STACKOVERFLOW is not set  # CONFIG_DEBUG_STACK_USAGE is not set @@ -3500,8 +3614,8 @@ CONFIG_EARLY_PRINTK=y  # CONFIG_DEBUG_RODATA is not set  # CONFIG_DIRECT_GBPAGES is not set  # CONFIG_DEBUG_NX_TEST is not set -CONFIG_X86_MPPARSE=y  # CONFIG_IOMMU_DEBUG is not set +# CONFIG_MMIOTRACE is not set  CONFIG_IO_DELAY_TYPE_0X80=0  CONFIG_IO_DELAY_TYPE_0XED=1  CONFIG_IO_DELAY_TYPE_UDELAY=2 @@ -3513,6 +3627,7 @@ CONFIG_IO_DELAY_0X80=y  CONFIG_DEFAULT_IO_DELAY_TYPE=0  # CONFIG_DEBUG_BOOT_PARAMS is not set  # CONFIG_CPA_DEBUG is not set +# CONFIG_OPTIMIZE_INLINING is not set  #  # Security options @@ -3522,7 +3637,6 @@ CONFIG_KEYS=y  CONFIG_SECURITY=y  CONFIG_SECURITY_NETWORK=y  # CONFIG_SECURITY_NETWORK_XFRM is not set -CONFIG_SECURITY_CAPABILITIES=y  CONFIG_SECURITY_FILE_CAPABILITIES=y  CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0  # CONFIG_SECURITY_SMACK is not set @@ -3537,8 +3651,8 @@ CONFIG_CRYPTO=y  #  CONFIG_CRYPTO_ALGAPI=y  CONFIG_CRYPTO_AEAD=m -CONFIG_CRYPTO_BLKCIPHER=y -CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=m  CONFIG_CRYPTO_MANAGER=y  CONFIG_CRYPTO_GF128MUL=m  CONFIG_CRYPTO_NULL=m @@ -3556,7 +3670,7 @@ CONFIG_CRYPTO_SEQIV=m  #  # Block modes  # -CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CBC=m  CONFIG_CRYPTO_CTR=m  CONFIG_CRYPTO_CTS=m  CONFIG_CRYPTO_ECB=m @@ -3567,7 +3681,7 @@ CONFIG_CRYPTO_XTS=m  #  # Hash modes  # -CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_HMAC=m  CONFIG_CRYPTO_XCBC=m  # @@ -3575,8 +3689,12 @@ CONFIG_CRYPTO_XCBC=m  #  CONFIG_CRYPTO_CRC32C=m  CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MD5=m  CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m  CONFIG_CRYPTO_SHA1=m  CONFIG_CRYPTO_SHA256=m  CONFIG_CRYPTO_SHA512=m @@ -3594,7 +3712,7 @@ CONFIG_CRYPTO_BLOWFISH=m  CONFIG_CRYPTO_CAMELLIA=m  CONFIG_CRYPTO_CAST5=m  CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_DES=m  CONFIG_CRYPTO_FCRYPT=m  CONFIG_CRYPTO_KHAZAD=m  CONFIG_CRYPTO_SALSA20=m @@ -3630,6 +3748,7 @@ CONFIG_GENERIC_FIND_FIRST_BIT=y  CONFIG_GENERIC_FIND_NEXT_BIT=y  CONFIG_CRC_CCITT=m  CONFIG_CRC16=m +CONFIG_CRC_T10DIF=m  CONFIG_CRC_ITU_T=m  CONFIG_CRC32=y  CONFIG_CRC7=m diff --git a/abs/core-testing/kernel26/kernel26.install b/abs/core-testing/kernel26/kernel26.install index 514bcb7..f04dba4 100644 --- a/abs/core-testing/kernel26/kernel26.install +++ b/abs/core-testing/kernel26/kernel26.install @@ -1,12 +1,12 @@  # arg 1:  the new package version  # arg 2:  the old package version -KERNEL_VERSION=2.6.26-ARCH +KERNEL_VERSION=2.6.27-ARCH  post_install () {    # updating module dependencies    echo ">>> Updating module dependencies. Please wait ..." -  depmod -v $KERNEL_VERSION > /dev/null 2>&1 +  depmod $KERNEL_VERSION     # generate init ramdisks    echo ">>> MKINITCPIO SETUP"    echo ">>> ----------------" @@ -81,7 +81,7 @@ post_upgrade() {    fi    # updating module dependencies    echo ">>> Updating module dependencies. Please wait ..." -  depmod -v $KERNEL_VERSION > /dev/null 2>&1 +  depmod $KERNEL_VERSION    echo ">>> MKINITCPIO SETUP"    echo ">>> ----------------"    if [ "`vercmp $2 2.6.18`" -lt 0 ]; then diff --git a/abs/core-testing/kernel26/logo_linux_mono.pbm b/abs/core-testing/kernel26/logo_linux_mono.pbm index 6a5e007..7b1369c 100644 --- a/abs/core-testing/kernel26/logo_linux_mono.pbm +++ b/abs/core-testing/kernel26/logo_linux_mono.pbm @@ -1,883 +1,95 @@ -P3 +P1 +# CREATOR: GIMP PNM Filter Version 1.1  80 80 -255 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 0 0 0  -128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 0 0 0  -128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 0 0 0 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0  -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  - -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  - -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  - -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  - -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  - -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  - -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  - -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  - -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  - -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 0 0 0 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  -0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 0 0 0 128 128 127  -0 0 0 128 128 127 0 0 0 128 128 127 0 0 0 128 128 127 0 0 0 128 128 127  -0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  -128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  -128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - +1111111111111111111111111111111111000000000000111111111111111111111111 +1111111111111111111111111111111111111111100000010101000000111111111111 +1111111111111111111111111111111111111111111111111100011111111111110000 +1111111111111111111111111111111111111111111111111111111111000111111111 +1111111100011111111111111111111111111111111111111111111111111111111100 +1111111111111110111100111111111111111111111111111111111111111111111111 +1111111001111111111111111000110001111111111111111111111111111111111111 +1111111111111111000111111111111111001111110011111111111111111111111111 +1111111111111111111111111100111111111111111111111111001111111111111111 +1111111111111111111111111111111111110011111111111111111111111110011111 +1111111111111111111111111111111111111111111110011111111111111111111111 +1110011111111111111111111111111111111111111111111111111100111111111111 +1111111111111100111111111111111111111111111111111111111111111111100111 +1110111111111111011111100011111111111111111111111111111111111111111111 +1111110011100111111110000001111111001111111111111111111111111111111111 +1111111111111110011100000111110000000111111100111111111111111111111111 +1111111111111111111111111100100000001110000000001111111001111111111111 +1111111111111111111111111111111111100110000000111000000000111111001111 +1111111111111111111111111111111111111111111111001001000011100011010001 +1111100111111111111111111111111111111111111111111111111001100110000100 +0011100011111100111111111111111111111111111111111111111111111111110010 +0111000000001111000111111001111111111111111111111111111111111111111111 +1111110011000000000000000000111111001111111111111111111111111111111111 +1111111111111111001100000000000000000011111110011111111111111111111111 +1111111111111111111111111100110000000000000000001111110011111111111111 +1111111111111111111111111111111111110010000000000000000000111111100111 +1111111111111111111111111111111111111111111111001000000000000000000011 +1111100111111111111111111111111111111111111111111111110000110000000000 +0000000011111110011111111111111111111111111111111111111111111100000000 +0000000000000000001110001001111111111111111111111111111111111111111111 +1000000000000000000000000000011100110011111111111111111111111111111111 +1111111111000000000000000000000000000001111110011111111111111111111111 +1111111111111111111110000000000000000000000000000011111100111111111111 +1111111111111111111111111111110000000000000000000000000000000111110011 +1111111111111111111111111111111111111111100000000000000000000000000000 +0111111000111111111111111111111111111111111111111000000000000000000000 +0000000000011111110001111111111111111111111111111111111111100110000000 +0000000000000000000000111111110011111111111111111111111111111111111100 +1110000000000000000000000000000011111111000111111111111111111111111111 +1111111000111000000000000000000000000000000111111110011111111111111111 +1111111111111111001111110000000000000000000000000000011111111100111111 +1111111111111111111111111100011111000000000000000000000000000000111111 +1100011111111111111111111111111111110001111100000000000000000000000000 +0000111111111001111111111111111111111111111110010011111000000000000000 +0000000000000001111100110011111111111111111111111111111001100001000000 +0000000000000000001000000111001110011111111111111111111111111111100111 +0000000000000000000000000000110000000001111100111111111111111111111111 +1111001111111000000000000000000000000011000000111111110011111111111111 +1111111111111110011111111000000000000100000000011110101111111111001111 +1111111111111111111111110011111111111111111111110000111111111111111111 +1111001111111111111111111111111111100111111111111111111111100011111111 +1111111111111100111111111111111111111111111110011111111111111111111100 +0011111111111111111111100111111111111111111111111111111000111111111111 +1111111100000111111111111111111110011111111111111111111111111111110011 +1111111111111111100000011111111111111111111001111111111111111111111111 +1111110011111111111111111100000000111111111111111111100111111111111111 +1111111111111110011000111111111111000000000000111111111111111100011111 +1111111111111111111111111100100000000000000000000000000000000010000011 +1110011111111111111111111111111111100110000000000000000000000000000000 +0000000011111001111111111111111111111111111110011000000000000000000000 +0000000000000000000111100111111111111111111111111111100001000000000000 +0000000000000000000000000000111110011111111111111111111111111100000010 +0000000000000000000000000000000000000001111001111111111111111111111111 +1000000000000000000000000000000000000000000000001111100000000111111111 +1111111111000000000000000000000000000000000000000000000000000000000000 +0001111111111111111000000000000000000000000000000000000000000000000000 +0000000000000111111111111111000000000000000000000000000000000000000000 +0000000000000000000000011111111111000000000000000000000000000000000000 +0000000000000000000000000000000001111111110000000000000000000000000000 +0000000000000000000000000000000000000000000011111110000000000000000000 +0000000000000000000000000000000000000000000000000000001111111000000000 +0000000000000000000000000000000000000000000000000000000000000000001111 +0000000000000000000000000000000000000000000000000000000000000000000000 +0000000111100000000000000000000000000000000000000000000000000000000000 +0000000000000000000110000000000000000000000000000000000000000000000000 +0000000000000000000000000000011000000000000000000000000000000000000000 +0000000000001000000000000000000000000000000000000000000000000000000000 +0000000000000000000001100000000000000000000000001110000000000000000000 +0000000000000000000000000000011110000000000000000000000000111000000000 +0000000000000000000000000000000000000011111000000000000000000000000111 +1000000000000000000000000000000000000000000001111111100000000000000000 +0000001111000000000000000000000000000000001000000001011111111100000000 +0000000000000001111110000000000000000000000000000001111111111111111111 +1110000000000000000000011111110000000000000000000000000000000111111111 +1111111111110000000000000000000011111111110000000000000000000000000000 +1111111111111111111111100000000000000000111111111111101000000000000000 +0000000000010000000000000000000000000000000000001111111111111111111010 +0000000000000000000100000010101010101010100000000000000001111111111111 +1111111111111100000000000001000011111111111111111110001000000000011111 +1111111111111111111111111110100000000000111111111111111111111100000000 +0000011111111111111111111111111111111111100000000111111111111111111111 +111000000000011111111111111111
\ No newline at end of file diff --git a/abs/core-testing/kernel26/logo_linux_vga16.ppm b/abs/core-testing/kernel26/logo_linux_vga16.ppm index 51ffad6..8b2d1ea 100644 --- a/abs/core-testing/kernel26/logo_linux_vga16.ppm +++ b/abs/core-testing/kernel26/logo_linux_vga16.ppm @@ -5,8 +5,8 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 85 85 85 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0  +0 0 0 36 26 8 102 124 121 157 146 143 232 232 232 232 232 232 232 232 232 232 232 232  +232 232 232 232 232 232 232 232 232 214 202 162 157 146 143 44 44 44 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -15,10 +15,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  -170 170 170 255 255 255 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170 255 255 255 170 170 170  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +157 146 143 232 232 232 157 146 143 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 214 202 162 232 232 232 157 146 143  +36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -26,10 +26,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  -255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 214 202 162 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121  +232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -37,10 +37,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 255 255 255 85 85 85 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 102 124 121 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -48,10 +48,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 85 85 85 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 0 0 0  -0 0 0 0 0 0 170 170 170 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 44 44 44 44 44 44 0 0 0  +0 0 0 44 44 44 157 146 143 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -59,10 +59,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85  -0 0 0 0 0 0 0 0 0 170 170 170 170 170 170 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 102 124 121 44 44 44  +0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -70,10 +70,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 85 85 85 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 102 124 121 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 85 85 85 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 118 110 50 44 44 44  +0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -81,10 +81,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 255 255 255 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 44 44 44 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 36 26 8 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -92,10 +92,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -103,10 +103,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -114,10 +114,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 85 85 85  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 232 232 232 44 44 44   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -125,10 +125,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 85 85 85  +0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +36 26 8 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 44 44 44 36 26 8 44 44 44 44 44 44 44 44 44  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 102 124 121   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -136,10 +136,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  -85 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 85 85 85 170 170 170 170 170 170 170 170 170 170 170 170 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170  +0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121  +102 124 121 44 44 44 36 26 8 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 44 44 44 157 146 143 157 146 143 157 146 143 157 146 143 44 44 44 36 26 8  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 157 146 143   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -147,10 +147,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170  -170 170 170 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -85 85 85 170 170 170 170 170 170 170 170 170 255 255 255 170 170 170 85 85 85 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170  +0 0 0 0 0 0 255 255 254 0 0 0 0 0 0 36 26 8 157 146 143 157 146 143  +232 232 232 157 146 143 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +102 124 121 214 202 162 214 202 162 232 232 232 232 232 232 214 202 162 102 124 121 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 214 202 162   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -158,10 +158,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 85 85 85 170 170 170 255 255 255  -255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  -255 255 255 255 255 255 255 255 255 170 170 170 170 170 170 255 255 255 170 170 170 85 85 85  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  +0 0 0 0 0 0 250 246 233 0 0 0 0 0 0 102 124 121 214 202 162 232 232 232  +232 232 232 254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 102 124 121  +232 232 232 232 232 232 232 232 232 157 146 143 214 202 162 232 232 232 232 232 232 44 44 44  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -169,10 +169,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 170 170 170 170 170 170 0 0 0  -85 85 85 170 170 170 255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85  -255 255 255 170 170 170 0 0 0 0 0 0 85 85 85 85 85 85 255 255 255 170 170 170  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  +0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 102 124 121 157 146 143 0 0 0  +44 44 44 157 146 143 232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 102 124 121  +232 232 232 214 202 162 44 44 44 0 0 0 102 124 121 102 124 121 232 232 232 232 232 232  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -180,10 +180,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 170 170 170 85 85 85 0 0 0  -85 85 85 85 85 85 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 85 85 85  -255 255 255 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 255 255 255 255 255 255  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  +0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 157 146 143 44 44 44 44 44 44  +102 124 121 44 44 44 232 232 232 157 146 143 0 0 0 44 44 44 36 26 8 102 124 121  +232 232 232 102 124 121 0 0 0 0 0 0 44 44 44 0 0 0 232 232 232 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -191,32 +191,32 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 255 255 255 85 85 85 0 0 0 170 170 170 85 85 85 0 0 0  -0 0 0 0 0 0 170 170 170 170 170 170 0 0 0 0 0 0 0 0 0 85 85 85  -255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 255 255 255  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 157 146 143 102 124 121 0 0 0  +0 0 0 44 44 44 214 202 162 157 146 143 36 26 8 36 26 8 36 26 8 44 44 44  +232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 254 254 254  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254  +36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 170 170 170 85 85 85 0 0 0 85 85 85 170 170 170 0 0 0  -0 0 0 0 0 0 255 85 85 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -255 255 85 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 255 255 255 255 255 255  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 44 44 44 214 202 162 0 0 0  +0 0 0 36 26 8 188 146 47 227 174 11 227 174 11 226 188 8 227 174 11 188 146 47  +226 177 55 118 110 50 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 232 232 232  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 170 170 170 85 85 85 0 0 0 0 0 0 170 170 170 170 170 170  -170 85 0 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0  -255 255 85 255 255 85 170 85 0 170 85 0 85 85 85 255 255 255 255 255 255 85 85 85  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  +0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 232 232 232 157 146 143  +44 44 44 223 156 6 188 146 47 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8  +226 177 55 226 188 8 188 146 47 118 110 50 118 110 50 232 232 232 254 254 254 102 124 121  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -224,10 +224,10 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 170 170 170 85 85 85 0 0 0 0 0 0 85 85 85 255 85 85  -170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 170 170 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  +0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 44 44 44 226 177 55  +223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55  +226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 157 146 143 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  @@ -235,649 +235,649 @@ P3  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 170 170 170 85 85 85 0 0 0 0 0 0 170 85 0 170 85 0  -170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 102 124 121 102 124 121 0 0 0 36 26 8 118 110 50 223 156 6  +227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55  +226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 188 146 47  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 170 170 170 85 85 85 0 0 0 170 85 0 170 85 0 170 85 0  -170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 170 85 0 170 85 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 118 110 50 223 156 6 223 156 6  +223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55  +226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 223 156 6 223 156 6  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 85 85 85 170 170 170 0 0 0 170 85 0 170 85 0 170 85 0  -170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 102 124 121 157 146 143 36 26 8 36 26 8 188 146 47 223 156 6  +227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 226 188 8  +226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 223 156 6 223 156 6 188 146 47  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  -170 170 170 255 255 255 255 255 255 170 170 170 0 0 0 0 0 0 170 85 0 170 85 0  -170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 85 85 85  -0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 170 170 170  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +157 146 143 232 232 232 232 232 232 157 146 143 0 0 0 36 26 8 118 110 50 188 146 47  +223 156 6 226 188 8 226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 226 188 8  +226 188 8 188 146 47 188 146 47 188 146 47 188 146 47 223 156 6 188 146 47 36 26 8  +36 26 8 0 0 0 0 0 0 44 44 44 36 26 8 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 255 255 255  -170 170 170 170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 170 170 170 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 255 85 85 170 170 170 170 170 170  -0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85  -170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 157 146 143 232 232 232  +157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 44 44 44 118 110 50 118 110 50  +118 110 50 223 156 6 226 188 8 226 188 8 226 188 8 188 146 47 226 188 8 188 146 47  +188 146 47 188 146 47 188 146 47 188 146 47 188 146 47 188 146 47 157 146 143 214 202 162  +36 26 8 0 0 0 0 0 0 44 44 44 102 124 121 44 44 44 0 0 0 102 124 121  +157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 255 255 255 170 170 170  -170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 85 85 85 170 170 170 170 170 170  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170  -85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 0 0 0 0 0 0  -255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 232 232 232 157 146 143  +157 146 143 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 214 202 162 157 146 143  +118 110 50 188 146 47 188 146 47 223 156 6 188 146 47 223 156 6 188 146 47 188 146 47  +188 146 47 188 146 47 188 146 47 188 146 47 157 146 143 214 202 162 214 202 162 214 202 162  +102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 102 124 121 44 44 44 0 0 0  +254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 170 170 170 85 85 85  -170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 170 170 170 170 170 170 170 170 170  -170 170 170 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 170 170 170 170 170 170 170 170 255 255 255 255 255 255 255 255 255  -170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 157 146 143 102 124 121  +157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 157 146 143 214 202 162  +188 146 47 118 110 50 118 110 50 118 110 50 188 146 47 188 146 47 188 146 47 188 146 47  +118 110 50 188 146 47 157 146 143 214 202 162 214 202 162 232 232 232 232 232 232 232 232 232  +214 202 162 44 44 44 0 0 0 0 0 0 0 0 0 44 44 44 0 0 0 0 0 0  +232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 170 170 170 170 170 170  -170 170 170 170 170 170 85 85 85 170 170 170 85 85 85 170 170 170 170 170 170 170 170 170  -170 170 170 170 170 170 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 170 170 170 170 170 170 170 170 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 157 146 143 102 124 121  +102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 232 232 232  +157 146 143 214 202 162 188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 188 146 47  +188 146 47 214 202 162 157 146 143 232 232 232 232 232 232 232 232 232 254 254 254 232 232 232  +232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170 170 170 170  -85 85 85 170 170 170 85 85 85 170 170 170 85 85 85 85 85 85 85 85 85 255 255 255  -170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170  -170 170 170 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -85 85 85 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 157 146 143 157 146 143  +102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 232 232 232  +232 232 232 214 202 162 157 146 143 214 202 162 157 146 143 214 202 162 157 146 143 214 202 162  +157 146 143 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +44 44 44 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 170 170 170 170 170 170  -85 85 85 170 170 170 85 85 85 85 85 85 170 170 170 85 85 85 170 170 170 170 170 170  -255 255 255 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170  -170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 85 85 85 255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 102 124 121 232 232 232  +102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 102 124 121 214 202 162  +232 232 232 157 146 143 232 232 232 157 146 143 214 202 162 157 146 143 232 232 232 214 202 162  +232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 102 124 121 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 85 85 85 0 0 0 170 170 170  -85 85 85 170 170 170 170 170 170 85 85 85 170 170 170 85 85 85 170 170 170 170 170 170  -255 255 255 255 255 255 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 170 170 170 170 170 170 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 44 44 44 102 124 121  +102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 157 146 143  +232 232 232 232 232 232 157 146 143 232 232 232 157 146 143 232 232 232 214 202 162 232 232 232  +232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 36 26 8 232 232 232 214 202 162 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 255 255 255 85 85 85 0 0 0 0 0 0 170 170 170  -170 170 170 85 85 85 170 170 170 85 85 85 170 170 170 170 170 170 85 85 85 85 85 85  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170 0 0 0 0 0 0  +0 0 0 0 0 0 36 26 8 232 232 232 44 44 44 0 0 0 0 0 0 157 146 143  +102 124 121 102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121  +254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85  -170 170 170 85 85 85 170 170 170 85 85 85 85 85 85 85 85 85 170 170 170 85 85 85  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 85 85 85 0 0 0  +0 0 0 0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 102 124 121  +157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121  +232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 232 232 232 36 26 8 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 170 170 170 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85  -170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 85 85 85 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 255 255 255 0 0 0  +0 0 0 157 146 143 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121  +214 202 162 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 102 124 121 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 254 254 254 36 26 8   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 170 170 170  -170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170  +0 0 0 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +157 146 143 157 146 143 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143  +157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 232 232 232 250 246 233 255 255 254 157 146 143 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -85 85 85 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -85 85 85 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 170 170 170 85 85 85  -85 85 85 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -170 170 170 170 170 170 170 170 170 255 255 255 255 255 255 85 85 85 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +102 124 121 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 118 110 50 102 124 121 102 124 121  +102 124 121 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232  +214 202 162 232 232 232 214 202 162 232 232 232 254 254 254 44 44 44 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254  +36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -255 255 255 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 85 85 85 85 85 85  -85 85 85 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 170 170 170  -85 85 85 85 85 85 170 170 170 170 170 170 255 255 255 170 170 170 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170  -170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +232 232 232 44 44 44 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0  +44 44 44 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121  +102 124 121 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 157 146 143  +102 124 121 102 124 121 214 202 162 214 202 162 232 232 232 214 202 162 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 0 0 0 157 146 143  +157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  -170 170 170 0 0 0 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0  -0 0 0 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85  -85 85 85 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170  -85 85 85 0 0 0 170 170 170 170 170 170 170 170 170 255 255 255 85 85 85 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 0 0 0 0 0 0  -255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +232 232 232 0 0 0 102 124 121 157 146 143 44 44 44 0 0 0 0 0 0 0 0 0  +44 44 44 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121  +102 124 121 214 202 162 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 157 146 143  +44 44 44 0 0 0 214 202 162 232 232 232 157 146 143 232 232 232 102 124 121 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 0 0 0 0 0 0  +254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  -170 170 170 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0  -170 170 170 170 170 170 170 170 170 85 85 85 170 170 170 85 85 85 85 85 85 85 85 85  -85 85 85 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 85 85 85  -0 0 0 0 0 0 170 170 170 255 255 255 170 170 170 170 170 170 255 255 255 0 0 0  -0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0  -255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121  +157 146 143 0 0 0 44 44 44 102 124 121 102 124 121 102 124 121 44 44 44 44 44 44  +157 146 143 157 146 143 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121  +157 146 143 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 102 124 121  +44 44 44 0 0 0 157 146 143 232 232 232 232 232 232 214 202 162 232 232 232 36 26 8  +0 0 0 36 26 8 102 124 121 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0  +254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170  -85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85  -170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170  -170 170 170 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 85 85 85  -0 0 0 0 0 0 170 170 170 255 255 255 255 255 255 170 170 170 170 170 170 170 170 170  -85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162  +44 44 44 0 0 0 0 0 0 36 26 8 44 44 44 102 124 121 102 124 121 102 124 121  +157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143  +157 146 143 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 214 202 162 102 124 121  +0 0 0 0 0 0 157 146 143 232 232 232 232 232 232 232 232 232 157 146 143 102 124 121  +102 124 121 102 124 121 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0  +232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85  -85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 170 170 170 170 170 170  -170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 85 85 85 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 170 170 170 170 170 170 170 170 170 170 170 170 85 85 85  -0 0 0 0 0 0 85 85 85 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 102 124 121  +102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121  +157 146 143 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 232 232 232 254 254 254  +254 254 254 254 254 254 232 232 232 157 146 143 157 146 143 157 146 143 102 124 121 44 44 44  +0 0 0 0 0 0 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 44 44 44  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85  -85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 85 85 85 255 255 255  -255 255 255 255 255 255 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +44 44 44 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121  +102 124 121 102 124 121 102 124 121 44 44 44 36 26 8 0 0 0 44 44 44 255 255 254  +254 254 254 232 232 232 36 26 8 44 44 44 102 124 121 44 44 44 44 44 44 44 44 44  +0 0 0 0 0 0 0 0 0 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  -255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +102 124 121 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  -255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +254 254 254 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170  -170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  -255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 254 254 254  +254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 255 255 255  -255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  -170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121  +157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -170 170 170 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255  -255 255 255 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 254 254 254  +254 254 254 255 255 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0  +214 202 162 44 44 44 0 0 0 0 0 0 36 26 8 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 250 246 233 254 254 254 254 254 254  +254 254 254 254 254 254 255 255 254 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -255 255 255 0 0 0 0 0 0 85 85 85 255 255 255 170 170 170 85 85 85 0 0 0  +254 254 254 0 0 0 0 0 0 102 124 121 232 232 232 157 146 143 44 44 44 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 85 85 85 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 85 85 85 0 0 0  +0 0 0 36 26 8 102 124 121 214 202 162 255 255 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 157 146 143 44 44 44 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  -170 170 170 0 0 0 0 0 0 85 85 85 255 255 255 255 255 255 255 255 255 255 255 255  -170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 170 170 170 170 170 170  -170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85  -170 170 170 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +232 232 232 0 0 0 0 0 0 102 124 121 254 254 254 254 254 254 254 254 254 232 232 232  +157 146 143 157 146 143 102 124 121 118 110 50 102 124 121 102 124 121 102 124 121 157 146 143  +232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232  +214 202 162 102 124 121 102 124 121 44 44 44 102 124 121 44 44 44 102 124 121 102 124 121  +157 146 143 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  -170 170 170 0 0 0 0 0 0 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121  +157 146 143 0 0 0 0 0 0 102 124 121 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 232 232 232 254 254 254 250 246 233 254 254 254 254 254 254  +232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  -170 170 170 0 0 0 0 0 0 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +214 202 162 0 0 0 0 0 0 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 255 255 255  -170 170 170 0 0 0 0 0 0 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 157 146 143 232 232 232  +157 146 143 0 0 0 0 0 0 157 146 143 254 254 254 254 254 254 255 255 254 255 255 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +250 246 233 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 255 255 255 255 255 85 255 255 85  -170 85 0 0 0 0 0 0 0 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 232 232 232 214 202 162 226 177 55  +226 177 55 36 26 8 0 0 0 157 146 143 254 254 254 254 254 254 254 254 254 255 255 254  +255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 36 26 8 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 170 170 170 170 170 170 255 255 85 255 255 85 255 255 85  -255 255 85 170 85 0 170 85 0 85 85 85 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 85 85 85  +0 0 0 0 0 0 0 0 0 157 146 143 214 202 162 227 174 11 226 188 8 226 188 8  +226 188 8 223 156 6 118 110 50 102 124 121 254 254 254 254 254 254 255 255 254 255 255 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 250 246 233  +232 232 232 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +250 246 233 232 232 232 232 232 232 232 232 232 214 202 162 232 232 232 232 232 232 44 44 44   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 85 85 85 255 255 255 170 85 0 170 85 0 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 85 85  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 170 170 255 255 255  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 255 255 255 255 85 85 170 85 0 170 85 0 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 255 255 85 170 85 0 170 85 0 170 85 0 170 170 170  -170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -85 85 85 255 255 255 255 255 85 170 85 0 170 85 0 170 85 0 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 170 85 0 255 255 85  -255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 170 170 170 170 170 170 255 255 255  -170 170 170 255 85 85 170 85 0 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 170 170 170 170 85 0 170 85 0  -170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 170 85 0  -255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 0 0 0 170 170 170 255 255 255 170 170 170 255 255 85 255 255 85 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 170 170 170 170 170 170 170 170 170 170 85 0 170 85 0  -170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 170 85 0  -170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 85 85 85 255 255 255 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 170 170  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 170 170 170 170 170 170 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 170 85 0  -255 85 85 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 170 170 170 255 255 85 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 170 170 170 170 170 170 170 170 170 170 85 0 170 85 0  -170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 170 85 0  -170 85 0 170 170 170 255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 255 255 255 255 85 85 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 170 170 170 170 170 170 170 170 170 170 85 0 170 85 0  -170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 170 85 0  -170 85 0 170 85 0 255 85 85 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0  - -0 0 0 255 255 255 255 255 85 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 85 85 85 170 85 0 170 85 0  -170 85 0 255 255 85 255 255 85 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 255 255 85 255 255 255 170 170 170 0 0 0  - -0 0 0 170 170 170 255 255 85 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 170 170 170 0 0 0 170 85 0 170 85 0 170 85 0  -170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 255 85 85 255 255 255 0 0 0  - -0 0 0 170 170 170 170 170 170 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 170 170 170 0 0 0 0 0 0 170 85 0 170 85 0 170 85 0  -170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 170 85 0 170 85 0 170 85 0 255 255 85 170 170 170 0 0 0  - -0 0 0 170 170 170 170 170 170 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 170 85 0 170 85 0 170 85 0  -170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 170 85 0 170 85 0 255 255 85 255 255 255 0 0 0 0 0 0  - -0 0 0 170 170 170 255 255 85 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 170 85 0 170 170 170 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 170 85 0 170 85 0 255 85 85 255 255 255 0 0 0 0 0 0 0 0 0  - -0 0 0 170 170 170 255 255 85 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 170 85 0 170 85 0 170 85 0 170 170 170 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 85 85 85 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -170 85 0 170 85 0 255 85 85 255 255 255 85 85 85 0 0 0 0 0 0 0 0 0  - -0 0 0 255 255 255 255 255 85 170 85 0 170 85 0 170 85 0 255 255 85 255 255 85  -255 255 85 170 85 0 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 170 85 0 170 85 0 170 85 0 170 85 0 85 85 85 170 170 170  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 170 85 0 170 85 0  -170 85 0 170 170 170 255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 255 255 255 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 170 85 0 170 85 0 170 85 0 170 85 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 255 255 85 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - -0 0 0 255 255 255 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 255 255 85  -255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -255 255 85 255 255 85 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 170 170 255 255 255  -85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 102 124 121 232 232 232 227 174 11 227 174 11 226 188 8 226 188 8  +226 188 8 226 188 8 227 174 11 188 146 47 255 255 254 255 255 254 255 255 254 255 255 254  +255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +250 246 233 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 250 246 233 188 146 47  +223 156 6 223 156 6 188 146 47 188 146 47 118 110 50 118 110 50 118 110 50 188 146 47  +223 156 6 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 226 177 55 232 232 232  +36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 36 26 8 232 232 232 226 177 55 223 156 6 227 174 11 227 174 11 226 188 8  +226 188 8 226 188 8 226 188 8 226 188 8 214 202 162 255 255 254 255 255 254 255 255 254  +255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 226 177 55 223 156 6  +223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6  +223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 214 202 162  +157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +102 124 121 232 232 232 226 177 55 188 146 47 223 156 6 227 174 11 227 174 11 226 188 8  +227 174 11 226 188 8 226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 255 255 254  +255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 255 255 254 254 254 254 232 232 232 188 146 47 188 146 47  +223 156 6 223 156 6 223 156 6 227 174 11 223 156 6 227 174 11 223 156 6 227 174 11  +227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 226 177 55  +232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 157 146 143 214 202 162 232 232 232  +214 202 162 188 146 47 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8  +226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 250 246 233 255 255 254  +255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 226 177 55 118 110 50 188 146 47  +223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11  +227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 188 146 47  +250 246 233 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 102 124 121 250 246 233 214 202 162 214 202 162 226 177 55 188 146 47  +223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 227 174 11 226 188 8 226 188 8  +226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 255 255 254  +255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 214 202 162 157 146 143 157 146 143 223 156 6 223 156 6  +223 156 6 223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8  +226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 227 174 11 227 174 11 223 156 6  +214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 102 124 121 232 232 232 223 156 6 223 156 6 223 156 6 223 156 6 227 174 11  +223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 227 174 11  +226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 214 202 162  +255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 232 232 232 232 232 232 214 202 162 188 146 47 118 110 50 188 146 47  +223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11  +227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 223 156 6 188 146 47  +226 177 55 232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 214 202 162 226 177 55 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11  +227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 177 55  +250 246 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 214 202 162 214 202 162 157 146 143 223 156 6 223 156 6  +223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8  +226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 223 156 6  +188 146 47 226 177 55 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 232 232 232 226 177 55 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8  +226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8  +226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8  +226 177 55 250 246 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 232 232 232 232 232 232 157 146 143 188 146 47 188 146 47 223 156 6  +223 156 6 226 188 8 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 227 174 11 227 174 11 223 156 6  +223 156 6 188 146 47 226 177 55 254 254 254 157 146 143 44 44 44 0 0 0 0 0 0  + +0 0 0 232 232 232 226 177 55 223 156 6 227 174 11 226 188 8 227 174 11 226 188 8  +227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8  +226 188 8 214 202 162 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 232 232 232 157 146 143 102 124 121 223 156 6 223 156 6  +223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11  +226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11  +223 156 6 223 156 6 188 146 47 223 156 6 214 202 162 250 246 233 102 124 121 0 0 0  + +0 0 0 214 202 162 214 202 162 223 156 6 227 174 11 226 188 8 227 174 11 226 188 8  +226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11  +226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8  +226 188 8 226 188 8 214 202 162 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 232 232 232 232 232 232 36 26 8 118 110 50 118 110 50 223 156 6  +223 156 6 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8  +226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11  +227 174 11 223 156 6 223 156 6 223 156 6 223 156 6 226 177 55 232 232 232 0 0 0  + +0 0 0 157 146 143 214 202 162 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8  +227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11  +226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11  +226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 214 202 162 0 0 0 0 0 0 118 110 50 223 156 6 223 156 6  +223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11  +226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8  +227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 214 202 162 214 202 162 0 0 0  + +0 0 0 157 146 143 214 202 162 223 156 6 227 174 11 227 174 11 226 188 8 227 174 11  +226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 227 174 11 226 188 8  +226 188 8 226 188 8 226 188 8 226 177 55 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 102 124 121 0 0 0 0 0 0 36 26 8 36 26 8 188 146 47 223 156 6  +227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8  +226 188 8 227 174 11 223 156 6 223 156 6 226 177 55 232 232 232 0 0 0 0 0 0  + +0 0 0 157 146 143 214 202 162 223 156 6 223 156 6 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8  +226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 226 188 8 226 188 8 214 202 162 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 157 146 143  +36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 188 146 47 223 156 6 223 156 6  +223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8  +226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11  +226 188 8 227 174 11 223 156 6 188 146 47 232 232 232 36 26 8 0 0 0 0 0 0  + +0 0 0 157 146 143 226 177 55 223 156 6 227 174 11 227 174 11 226 188 8 227 174 11  +226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8  +226 177 55 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11  +226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 214 202 162 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 157 146 143 44 44 44 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 110 50 223 156 6 223 156 6  +227 174 11 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8  +227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11  +227 174 11 223 156 6 226 177 55 232 232 232 102 124 121 0 0 0 0 0 0 0 0 0  + +0 0 0 232 232 232 226 177 55 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11  +226 188 8 227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8  +226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8  +227 174 11 226 188 8 227 174 11 223 156 6 223 156 6 118 110 50 118 110 50 157 146 143  +232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +232 232 232 232 232 232 157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 118 110 50 223 156 6 223 156 6  +223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8  +226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11  +223 156 6 214 202 162 232 232 232 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0  + +36 26 8 250 246 233 188 146 47 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11  +227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 226 188 8 226 188 8 226 177 55 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 223 156 6 223 156 6 223 156 6 188 146 47 36 26 8 0 0 0  +0 0 0 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 36 26 8  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 36 26 8 36 26 8 118 110 50 223 156 6 223 156 6  +227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11  +227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 227 174 11 223 156 6 223 156 6  +232 232 232 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +44 44 44 250 246 233 223 156 6 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6  +223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11  +227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 227 174 11  +226 188 8 227 174 11 227 174 11 223 156 6 188 146 47 118 110 50 118 110 50 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 223 156 6 223 156 6 223 156 6  +223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 227 174 11 226 188 8  +227 174 11 227 174 11 227 174 11 227 174 11 223 156 6 188 146 47 214 202 162 250 246 233  +118 110 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 232 232 232 214 202 162 226 177 55 118 110 50 188 146 47 188 146 47 188 146 47  +223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 227 174 11  +227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11  +227 174 11 227 174 11 223 156 6 188 146 47 223 156 6 118 110 50 118 110 50 36 26 8  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 36 26 8 36 26 8 118 110 50 118 110 50 223 156 6  +223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11  +227 174 11 223 156 6 223 156 6 223 156 6 214 202 162 232 232 232 102 124 121 36 26 8  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 170 170 170 255 255 255 170 170 170 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 0 0 0  +0 0 0 0 0 0 102 124 121 157 146 143 250 246 233 214 202 162 214 202 162 188 146 47  +118 110 50 188 146 47 118 110 50 223 156 6 118 110 50 223 156 6 188 146 47 223 156 6  +188 146 47 223 156 6 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11  +223 156 6 223 156 6 223 156 6 118 110 50 118 110 50 118 110 50 36 26 8 36 26 8   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 170 170 255 255 255 85 85 85 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 188 146 47 188 146 47 188 146 47  +223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6  +223 156 6 188 146 47 118 110 50 232 232 232 157 146 143 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 85 85 85 170 170 170 255 255 255 255 255 255 170 170 170 170 170 170  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 157 146 143  +232 232 232 250 246 233 214 202 162 157 146 143 188 146 47 118 110 50 118 110 50 118 110 50  +118 110 50 118 110 50 188 146 47 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6  +188 146 47 223 156 6 118 110 50 188 146 47 118 110 50 118 110 50 36 26 8 36 26 8  +44 44 44 157 146 143 157 146 143 232 232 232 214 202 162 232 232 232 214 202 162 232 232 232  +232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232  +232 232 232 232 232 232 232 232 232 157 146 143 36 26 8 36 26 8 118 110 50 118 110 50  +188 146 47 118 110 50 223 156 6 223 156 6 223 156 6 223 156 6 188 146 47 223 156 6  +118 110 50 188 146 47 232 232 232 118 110 50 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 170 170 170  -255 255 255 255 255 255 255 255 255 170 170 170 170 170 170 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 0 0 0 0 0 0  -85 85 85 170 170 170 170 170 170 170 170 170 170 170 170 255 255 255 170 170 170 255 255 255  -255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  -255 255 255 255 255 255 255 255 255 85 85 85 85 85 85 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 170 170 255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - +0 0 0 36 26 8 118 110 50 102 124 121 157 146 143 214 202 162 232 232 232 214 202 162  +188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50  +118 110 50 118 110 50 118 110 50 118 110 50 36 26 8 118 110 50 157 146 143 232 232 232  +214 202 162 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 85 85 85 85 85 85 170 170 170 170 170 170 255 255 255 170 170 170  -170 170 170 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 85 85 85 170 170 170 255 255 255  -170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 170 170 170 170 170 170 85 85 85 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0  -170 170 170 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 214 202 162 157 146 143 118 110 50 118 110 50 188 146 47  +118 110 50 223 156 6 118 110 50 188 146 47 118 110 50 188 146 47 118 110 50 118 110 50  +157 146 143 214 202 162 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  -170 170 170 170 170 170 255 255 255 170 170 170 85 85 85 170 85 0 170 85 0 170 85 0  -170 85 0 170 85 0 170 85 0 85 85 85 85 85 85 255 255 255 85 85 85 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44  +157 146 143 214 202 162 232 232 232 188 146 47 118 110 50 118 110 50 118 110 50 118 110 50  +118 110 50 118 110 50 118 110 50 36 26 8 118 110 50 214 202 162 157 146 143 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 85 85 85 255 255 255 85 85 85 85 85 85 170 85 0  -170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 170 170  -170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 118 110 50 36 26 8 36 26 8  +118 110 50 118 110 50 118 110 50 118 110 50 188 146 47 36 26 8 118 110 50 214 202 162  +214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 85 85 85 170 170 170 170 170 170 85 85 85 85 85 85  -85 85 85 85 85 85 85 85 85 170 170 170 255 255 255 85 85 85 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8  +0 0 0 0 0 0 36 26 8 102 124 121 214 202 162 214 202 162 118 110 50 118 110 50  +118 110 50 118 110 50 118 110 50 157 146 143 232 232 232 102 124 121 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 255 255 255 170 170 170 85 85 85  -85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 170 170 170 255 255 255 85 85 85  +0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 232 232 232 214 202 162 188 146 47  +36 26 8 36 26 8 118 110 50 36 26 8 118 110 50 157 146 143 214 202 162 102 124 121   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170 170 170 170  -170 170 170 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 157 146 143 157 146 143  +157 146 143 214 202 162 214 202 162 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170  -170 170 170 255 255 255 255 255 255 255 255 255 170 170 170 85 85 85 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 118 110 50 157 146 143  +232 232 232 214 202 162 232 232 232 232 232 232 214 202 162 157 146 143 36 26 8 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  diff --git a/abs/core-testing/libcups/PKGBUILD b/abs/core-testing/libcups/PKGBUILD index 363a46a..fbdac67 100644 --- a/abs/core-testing/libcups/PKGBUILD +++ b/abs/core-testing/libcups/PKGBUILD @@ -1,15 +1,16 @@ -# $Id: PKGBUILD 7638 2008-08-03 15:54:53Z jgc $ +# $Id: PKGBUILD 20496 2008-12-05 11:29:11Z allan $  # Maintainer: Andreas Radke <andyrtr@archlinux.org> +  pkgname=libcups -pkgver=1.3.8 +pkgver=1.3.9  pkgrel=2  pkgdesc="The CUPS Printing System" -arch=(i686 x86_64) +arch=('i686' 'x86_64')  license=('GPL')  url="http://www.cups.org/"  depends=('gnutls>=2.4.1' 'libtiff' 'libpng' 'heimdal>=1.2') -source=(http://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2) -md5sums=('84e09577d673b212f605dd09caee456c') +source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2) +md5sums=('cf63f451c356e6cabb08972d4d11c365')  build() {    cd ${srcdir}/cups-${pkgver} diff --git a/abs/core-testing/libdaemon/PKGBUILD b/abs/core-testing/libdaemon/PKGBUILD index 8750faf..6c123ab 100644 --- a/abs/core-testing/libdaemon/PKGBUILD +++ b/abs/core-testing/libdaemon/PKGBUILD @@ -1,23 +1,24 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ -# Maintainer: Mark Rosenstand <mark@archlinux.org> +# $Id: PKGBUILD 19217 2008-11-17 21:02:07Z thayer $  # Contributor: Manolis Tzanidakis +# Contributor: Mark Rosenstand <mark@archlinux.org> +# Maintainer: Thayer Williams <thayer@archlinux.org> +  pkgname=libdaemon -pkgver=0.12 +pkgver=0.13  pkgrel=1 -pkgdesc="A lightweight C library which eases the writing of UNIX daemons." -arch=('i686' 'x86_64') -license=('LGPL') +pkgdesc="A lightweight C library which eases the writing of UNIX daemons"  url="http://0pointer.de/lennart/projects/libdaemon/" +license=('LGPL') +arch=('i686' 'x86_64')  depends=('glibc')  source=(http://0pointer.de/lennart/projects/libdaemon/$pkgname-$pkgver.tar.gz) -md5sums=('76596823cc1a6d1cdf7779b782ff0ee6') -sha1sums=('2b45ab37df853afd25f7985ed699b799e0464413')  options=('!libtool') +md5sums=('ae9113fcd825d5a7f07e5ddccb3c3102')  build() { -  cd $startdir/src/$pkgname-$pkgver -  ./configure --prefix=/usr --disable-doxygen --disable-lynx +  cd $srcdir/$pkgname-$pkgver +  ./configure --prefix=/usr --disable-lynx || return 1    make || return 1 -  make DESTDIR=$startdir/pkg install +  make DESTDIR=$pkgdir install || return 1  } diff --git a/abs/core-testing/libdrm/PKGBUILD b/abs/core-testing/libdrm/PKGBUILD index 19a4db2..816aa2a 100644 --- a/abs/core-testing/libdrm/PKGBUILD +++ b/abs/core-testing/libdrm/PKGBUILD @@ -1,20 +1,20 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 19237 2008-11-17 22:36:17Z jgc $  # Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=libdrm -pkgver=2.3.0 -pkgrel=1 +pkgver=2.3.1 +pkgrel=2  pkgdesc="Userspace interface to kernel DRM services"  arch=(i686 x86_64)  depends=('glibc') -options=('!libtool') +options=('!libtool' 'force')  url="http://dri.freedesktop.org/"  source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2) -md5sums=('01a1e1ee0268a2403db42fa630036ab2') +md5sums=('620fe7dd02c3236c3e9881a3a238173d')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/core-testing/libexif/PKGBUILD b/abs/core-testing/libexif/PKGBUILD index 74989c8..7c47361 100644 --- a/abs/core-testing/libexif/PKGBUILD +++ b/abs/core-testing/libexif/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 23029 2009-01-01 16:38:33Z jgc $  # Maintainer: Jan de Groot <jgc@archlinux.org>  # Contributor: Tobias Kieslich <tobias@justdreams.de>  pkgname=libexif -pkgver=0.6.16 +pkgver=0.6.17  pkgrel=1  pkgdesc="A library to parse an EXIF file and read the data from those tags"  arch=(i686 x86_64) @@ -12,11 +12,11 @@ url="http://sourceforge.net/projects/libexif"  depends=('glibc')  options=('!libtool')  source=(http://downloads.sf.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2) -md5sums=('deee153b1ded5a944ea05d041d959eca') +md5sums=('f7cf4e623a48c9a3b13f7f95f0a41015')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install +  make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/core-testing/libgcrypt/PKGBUILD b/abs/core-testing/libgcrypt/PKGBUILD index f4ebfea..bcf31c8 100644 --- a/abs/core-testing/libgcrypt/PKGBUILD +++ b/abs/core-testing/libgcrypt/PKGBUILD @@ -1,23 +1,24 @@ -# $Id: PKGBUILD 3545 2008-06-24 17:33:25Z andyrtr $ +# $Id: PKGBUILD 12853 2008-09-22 17:17:27Z andyrtr $  # Maintainer: Andreas Radke <andyrtr@archlinux.org>  pkgname=libgcrypt -pkgver=1.4.1 -pkgrel=10 +pkgver=1.4.3 +pkgrel=2  pkgdesc="a general purpose crypto library based on the code used"  arch=(i686 x86_64)  url="http://www.gnupg.org"  license=('LGPL')  groups=('base') -depends=('libgpg-error>=1.6') +depends=('libgpg-error>=1.6' 'texinfo')  options=(!libtool)  source=(#ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2  	ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/libgcrypt/${pkgname}-${pkgver}.tar.bz2) -md5sums=('26703ecef4bbe113b8e6a87572b80b32') +md5sums=('46e50e811ed51f1e0e8dd677dded967d')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr --disable-padlock-support +  cd ${srcdir}/${pkgname}-${pkgver} +  ./configure --prefix=/usr --disable-padlock-support --disable-static    make || return 1 -  make DESTDIR=${startdir}/pkg install +  make DESTDIR=${pkgdir} install || return 1 +  rm -f ${pkgdir}/usr/share/info/dir  } diff --git a/abs/core-testing/libgcrypt/libgcrypt.install b/abs/core-testing/libgcrypt/libgcrypt.install new file mode 100644 index 0000000..86de0a5 --- /dev/null +++ b/abs/core-testing/libgcrypt/libgcrypt.install @@ -0,0 +1,20 @@ +infodir=/usr/share/info +filelist=(gcrypt.info) + +post_install() { +  for file in ${filelist[@]}; do +    install-info $infodir/$file $infodir/dir 2> /dev/null +  done +} + +post_upgrade() { +  post_install $1 +} + +pre_remove() { +  for file in ${filelist[@]}; do +    install-info --delete $infodir/$file $infodir/dir 2> /dev/null +  done +} + +# vim:set ts=2 sw=2 et: diff --git a/abs/core-testing/libgl/PKGBUILD b/abs/core-testing/libgl/PKGBUILD index 43e7c58..ce2faba 100644 --- a/abs/core-testing/libgl/PKGBUILD +++ b/abs/core-testing/libgl/PKGBUILD @@ -1,49 +1,40 @@ -# $Id: PKGBUILD 1895 2008-05-22 17:55:59Z jgc $ +# $Id: PKGBUILD 12994 2008-09-25 18:01:13Z jgc $  # Maintainer: Alexander Baldeck <kth5@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=libgl -pkgver=7.0.3 -pkgrel=2 +pkgver=7.2 +pkgrel=1  pkgdesc="Mesa DRI OpenGL library and drivers"  arch=(i686 x86_64)  license=('LGPL')  url="http://www.mesa3d.org" -depends=('libxxf86vm' 'libdrm>=2.3' 'libxdamage') -makedepends=('imake' 'glproto>=1.4.9' 'fixesproto' 'damageproto' 'pkgconfig') +depends=('libdrm>=2.3.1' 'libxxf86vm' 'libxdamage' 'expat>=2.0.1') +makedepends=('dri2proto>=1.1' 'glproto>=1.4.9' 'pkgconfig')  provides=('libgl-dri')  replaces=('libgl-dri' 'libgl-mesa') -source=(http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${pkgver}.tar.bz2) -md5sums=('e6e6379d7793af40a6bc3ce1bace572e') +options=(!makeflags) +source=(http://downloads.sourceforge.net/mesa3d/MesaLib-${pkgver}.tar.bz2 +	mesa-7.1-link-shared.patch) +md5sums=('04d379292e023df0b0266825cb0dbde5' +         'f0baa948d9810f268413111ee439d24b')  build() {    cd ${startdir}/src/Mesa-${pkgver} - -  CONFIG="linux-dri-x86" -  if [ "${CARCH}" = "x86_64" ]; then -    CONFIG="linux-dri-x86-64" -    sed -i -e "s/lib64/lib/g" configs/${CONFIG} -  fi - -  echo "EXTRA_LIB_PATH =" >> configs/${CONFIG} -  echo "OPT_FLAGS = ${CFLAGS}" >> configs/${CONFIG} -  echo "SRC_DIRS = glx/x11 mesa" >> configs/${CONFIG} -  rm -f include/GL/glut*h -  echo "USING_EGL = 0" >> configs/${CONFIG} -  echo "PROGRAM_DIRS =" >> configs/${CONFIG} -  echo "MKDEP = makedepend" >> configs/${CONFIG} -  echo "DRI_DIRS =" >> configs/${CONFIG} -  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> configs/${CONFIG} -  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> configs/${CONFIG} -  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> configs/${CONFIG} - -  make ${CONFIG} || return 1 -  install -m755 -d ${startdir}/pkg/usr -  make INSTALL_DIR=${startdir}/pkg/usr install || return 1 - -  rm -rf ${startdir}/pkg/usr/include - -  install -m755 -d ${startdir}/pkg/usr/lib/xorg/modules/extensions || return 1 -  cd ${startdir}/pkg/usr/lib/xorg/modules/extensions || return 1 -  ln -sf libGLcore.xorg libGLcore.so -  ln -sf libglx.xorg libglx.so +  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch || return 1 +  ./configure --prefix=/usr \ +    --with-dri-driverdir=/usr/lib/xorg/modules/dri \ +    --with-dri-drivers=swrast \ +    --enable-glx-tls \ +    --disable-ttm-api \ +    --with-driver=dri \ +    --enable-xcb \ +    --disable-glu \ +    --disable-glut \ +    --disable-glw || return 1 +  make || return 1 +  make DESTDIR=${pkgdir} install || return 1 +  rm -rf ${pkgdir}/usr/include +  rm -rf ${pkgdir}/usr/lib/pkgconfig +  install -m755 -d ${pkgdir}/usr/lib/xorg/modules/extensions +  ln -sf libglx.xorg ${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so || return 1  } diff --git a/abs/core-testing/libgl/mesa-7.1-link-shared.patch b/abs/core-testing/libgl/mesa-7.1-link-shared.patch new file mode 100644 index 0000000..7fdbf14 --- /dev/null +++ b/abs/core-testing/libgl/mesa-7.1-link-shared.patch @@ -0,0 +1,102 @@ +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile +--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000 +@@ -6,12 +6,17 @@ include $(TOP)/configs/current +  +  +  +-default: $(TOP)/$(LIB_DIR) subdirs ++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs +  +  + $(TOP)/$(LIB_DIR): + 	-mkdir $(TOP)/$(LIB_DIR) +  ++libdricore.so: ++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so ++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR)  +  + subdirs: + 	@for dir in $(DRI_DIRS) ; do \ +@@ -31,12 +36,14 @@ dri.pc: dri.pc.in + 	$(pcedit) $< > $@ +  +  +-install: dri.pc ++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so + 	@for dir in $(DRI_DIRS) ; do \ + 		if [ -d $$dir ] ; then \ + 			(cd $$dir && $(MAKE) install) || exit 1 ; \ + 		fi \ + 	done ++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) + 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal + 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \ + 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal +@@ -52,5 +59,6 @@ clean: + 			(cd $$dir && $(MAKE) clean) ; \ + 		fi \ + 	done ++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so + 	-rm -f common/*.o + 	-rm -f *.pc +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template +--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000 +@@ -1,6 +1,6 @@ + # -*-makefile-*- +  +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so +  + COMMON_SOURCES = \ +         ../common/utils.c \ +@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO +  + $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template + 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ +-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) ++		$(OBJECTS) $(WINOBJ) \ ++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \ ++		$(DRI_LIB_DEPS) +  +  + $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME) +diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S +--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000 +@@ -77,7 +77,6 @@ +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX +-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX + 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + 	pushl	%ebx +@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + 	pushl	%esi +@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + 	pushl	%esi +@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + 	.globl	_generic_read_RGBA_span_RGB565_MMX +-        .hidden _generic_read_RGBA_span_RGB565_MMX + 	.type	_generic_read_RGBA_span_RGB565_MMX, @function +  + _generic_read_RGBA_span_RGB565_MMX: diff --git a/abs/core-testing/libglade/PKGBUILD b/abs/core-testing/libglade/PKGBUILD index fc10160..c0bfa29 100644 --- a/abs/core-testing/libglade/PKGBUILD +++ b/abs/core-testing/libglade/PKGBUILD @@ -1,26 +1,26 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 13455 2008-09-27 11:03:58Z jgc $  # Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=libglade -pkgver=2.6.2 +pkgver=2.6.3  pkgrel=1  pkgdesc="Allows you to load glade interface files in a program at runtime"  arch=(i686 x86_64)  license=('LGPL') -depends=('gtk2' 'libxml2') +depends=('gtk2>=2.14.1' 'libxml2>=2.6.32')  makedepends=('python' 'pkgconfig')  options=('!libtool')  install=glade.install  source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.6/${pkgname}-${pkgver}.tar.bz2  	libglade-2.0.1-nowarning.patch)  url="http://www.gnome.org" -md5sums=('da4f9d1c6cd1337f6ef5e2db768d8557' '4f879c0ce550004905aa0fb24f25c353') +md5sums=('1c359860b1a0f369f0b6e3f96fd985c2' '4f879c0ce550004905aa0fb24f25c353')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  patch -Np1 -i ${startdir}/src/libglade-2.0.1-nowarning.patch || return 1 -  ./configure --sysconfdir=/etc --prefix=/usr --localstatedir=/var +  cd ${srcdir}/${pkgname}-${pkgver} +  patch -Np1 -i ${srcdir}/libglade-2.0.1-nowarning.patch || return 1 +  ./configure --sysconfdir=/etc --prefix=/usr --localstatedir=/var || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install -  install -m755 libglade-convert ${startdir}/pkg/usr/bin/libglade-convert +  make DESTDIR=${pkgdir} install || return 1 +  install -m755 libglade-convert ${pkgdir}/usr/bin/libglade-convert || return 1  } diff --git a/abs/core-testing/libglade/glade.install b/abs/core-testing/libglade/glade.install index c98d2ed..a7f05c5 100644 --- a/abs/core-testing/libglade/glade.install +++ b/abs/core-testing/libglade/glade.install @@ -23,8 +23,3 @@ post_remove() {    xmlcatalog --noout --del \      /usr/share/xml/libglade/glade-2.0.dtd etc/xml/catalog  } - -op=$1 -shift - -$op $* diff --git a/abs/core-testing/libgsf/PKGBUILD b/abs/core-testing/libgsf/PKGBUILD index 84f5edb..67aa465 100644 --- a/abs/core-testing/libgsf/PKGBUILD +++ b/abs/core-testing/libgsf/PKGBUILD @@ -1,25 +1,27 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 22409 2008-12-26 18:58:32Z jgc $  # Maintainer: Jan de Groot <jgc@archlinux.org>  # Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>  pkgname=libgsf -pkgver=1.14.8 +pkgver=1.14.10  pkgrel=1  pkgdesc="The GNOME Structured File Library is a utility library for reading and writing structured file formats."  arch=(i686 x86_64)  url="http://www.gnome.org/"  license=('GPL' 'LGPL') -depends=('libxml2' 'glib2>=2.16.1' 'bzip2') +depends=('libxml2>=2.7.2' 'glib2>=2.18.3' 'bzip2')  makedepends=('perlxml' 'pkgconfig' 'python')  options=('!libtool')  source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/1.14/${pkgname}-${pkgver}.tar.bz2) -md5sums=('09e4b6639be79fa888cabc751f73674f') +md5sums=('f9b2f309089af683066ff0b319227e57')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  sed -i -e 's/gsf-gnome gsf-win32//' -e 's/thumbnailer//' Makefile.* -  ./configure --prefix=/usr --disable-gtk-doc --without-gnome --without-bonobo +  sed -i -e 's/gsf-gnome//' -e 's/thumbnailer//' Makefile.* +  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ +              --without-gnome-vfs --without-bonobo \ +	      --disable-static || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install +  make DESTDIR=${startdir}/pkg install || return 1    rm -f ${startdir}/pkg/usr{,/share}/man/man1/gsf-office-thumbnailer.1  } diff --git a/abs/core-testing/libidn/PKGBUILD b/abs/core-testing/libidn/PKGBUILD index 6fb7d24..170388c 100644 --- a/abs/core-testing/libidn/PKGBUILD +++ b/abs/core-testing/libidn/PKGBUILD @@ -1,22 +1,30 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ -# Maintainer: Jan de Groot <jgc@archlinux.org> -# Contributor: Eric Johnson <eric@archlinux.org> +# $Id: PKGBUILD 19577 2008-11-27 10:01:45Z ronald $ +# Maintainer: Ronald van Haren <ronald.archlinux.org> +# Contributor: Jan de Groot <jgc.archlinux.org> +# Contributor: Eric Johnson <eric.archlinux.org> +  pkgname=libidn -pkgver=1.0 +pkgver=1.11  pkgrel=1  pkgdesc="Implementation of the Stringprep, Punycode and IDNA specifications" -arch=(i686 x86_64)  url="http://www.gnu.org/software/libidn/" -license=('GPL' 'LGPL') +arch=('i686' 'x86_64') +license=('GPL3' 'LGPL2')  depends=('glibc')  makedepends=('pkgconfig')  options=('!libtool') -source=(ftp://alpha.gnu.org/pub/gnu/libidn/${pkgname}-${pkgver}.tar.gz) -md5sums=('8a6a15dc061c0e17a97cb6b77d850e86') +source=(http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz) +install=libidn.install +md5sums=('8859b17928f84b899b19e72bfa1c6dbf') +sha1sums=('08cffdcf9736f4ac61acc32e79a1d9672f640351')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd ${srcdir}/${pkgname}-${pkgver}    ./configure --prefix=/usr    make || return 1 -  make DESTDIR=${startdir}/pkg install +  make DESTDIR=${pkgdir} install || return 1 + +  # handle info files +  rm $pkgdir/usr/share/info/{dir,libidn-components.png} # nobody is missing a png I assume +  gzip $pkgdir/usr/share/info/*  } diff --git a/abs/core-testing/libidn/libidn.install b/abs/core-testing/libidn/libidn.install new file mode 100644 index 0000000..a0366eb --- /dev/null +++ b/abs/core-testing/libidn/libidn.install @@ -0,0 +1,19 @@ +info_dir=/usr/share/info +info_files=(libidn.info) + +post_install() { +  for f in ${info_files[@]}; do +    install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null +  done +} + +post_upgrade() { +        post_install +} + +pre_remove() { +  for f in ${info_files[@]}; do +    install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null +  done +} + diff --git a/abs/core-testing/libpcap/PKGBUILD b/abs/core-testing/libpcap/PKGBUILD index 0a586db..e5c11e2 100644 --- a/abs/core-testing/libpcap/PKGBUILD +++ b/abs/core-testing/libpcap/PKGBUILD @@ -1,44 +1,34 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ -# Maintainer: dorphell <dorphell@archlinux.org> +# $Id: PKGBUILD 20200 2008-12-01 17:56:56Z thomas $ +# Maintainer: Thomas Bächler <thomas@archlinux.org>  pkgname=libpcap -pkgver=0.9.8 -pkgrel=11 +pkgver=1.0.0 +pkgrel=1  pkgdesc="A system-independent interface for user-level packet capture" -arch=(i686 x86_64) +arch=('i686' 'x86_64')  url="http://www.tcpdump.org/"  license=('BSD')  groups=('base')  depends=('glibc')  makedepends=('flex') -source=(http://www.sfr-fresh.com/unix/misc/libpcap-${pkgver}.tar.gz -        libpcap-shared.patch) -md5sums=('5208f24d0328ee7c20b52c43eaa9aa0e' -         'b8a9c5e5cea0b89a8a7456c6c4d59db4') - -# This package has a strict SONAME that changes in EVERY MINOR -# release. Whenever you feel like updating this package, DON'T, -# it will break a number of essential system tools. -# Again, for dummies: IF YOU UPDATE THIS PACKAGE DIRECTLY TO CORE, -# I WILL PERSONALLY CHOP YOUR HEAD OFF! +source=(http://www.tcpdump.org/release/libpcap-${pkgver}.tar.gz) +md5sums=('9ad1358c5dec48456405eac197a46d3d')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  patch -Np1 -i ${startdir}/libpcap-shared.patch || return 1 -  sed -i -e "s/@MAJOR@/`awk -F '.' '{ print $1 }' VERSION`/" \ -         -e "s/@MINOR@/`awk -F '.' '{ print $2 }' VERSION`/" \ -	 -e "s/@SUBMINOR@/`awk -F '.' '{ print $3 }' VERSION`/" \ -	 -e "s/@VERSION@/`cat VERSION`/" Makefile.in -   +  cd ${srcdir}/${pkgname}-${pkgver}    ./configure --prefix=/usr --enable-ipv6 -  DEFS="-g -D_U_=\"\" -fPIC -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"  -  make -j1 DEFS="${DEFS}" || return 1 -  make DESTDIR=${startdir}/pkg install -#  # backwards compatibility, programs often look for net/bpf.h -  mkdir -p ${startdir}/pkg/usr/include/net -  cd ${startdir}/pkg/usr/include/net +  make || return 1 +  make shared || return 1 +   +  install -d -m755 ${pkgdir}/usr/bin +  make DESTDIR=${pkgdir} install install-shared || return 1 +  ln -s libpcap.so.1.0.0 ${pkgdir}/usr/lib/libpcap.so.1 +  ln -s libpcap.so.1.0.0 ${pkgdir}/usr/lib/libpcap.so +  # backwards compatibility, programs often look for net/bpf.h +  mkdir -p ${pkgdir}/usr/include/net +  cd ${pkgdir}/usr/include/net    ln -s ../pcap-bpf.h bpf.h    #install the license -  install -D -m644 $startdir/src/$pkgname-$pkgver/LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE +  install -D -m644 ${srcdir}/$pkgname-$pkgver/LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE  } diff --git a/abs/core-testing/libpciaccess/PKGBUILD b/abs/core-testing/libpciaccess/PKGBUILD new file mode 100644 index 0000000..499f365 --- /dev/null +++ b/abs/core-testing/libpciaccess/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Alexander Baldeck <alexander@archlinux.org> +# Contributor: Jan de Groot <jgc@archlinux.org> +pkgname=libpciaccess +pkgver=0.10.5 +pkgrel=1 +pkgdesc="X11 PCI access library" +arch=(i686 x86_64) +license=('custom') +url="http://xorg.freedesktop.org/" +depends=('glibc') +makedepends=('pkgconfig') +options=('!libtool') +source=(${url}/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2) +md5sums=('617bebf31e5685c83f935009aeae5f38') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr --sysconfdir=/etc || return 1 +  make || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1 +} diff --git a/abs/core-testing/libpng/ChangeLog b/abs/core-testing/libpng/ChangeLog index 9612756..98aa66d 100644 --- a/abs/core-testing/libpng/ChangeLog +++ b/abs/core-testing/libpng/ChangeLog @@ -1,4 +1,8 @@ +2008-10-06  Douglas Soares de Andrade  <douglas@archlinux.org> + +	* Updated for i686: 1.2.32 +  2008-08-23  Douglas Soares de Andrade  <douglas@archlinux.org>  	* Updated for i686: 1.2.31 diff --git a/abs/core-testing/libpng/PKGBUILD b/abs/core-testing/libpng/PKGBUILD index a67b300..12515ed 100644 --- a/abs/core-testing/libpng/PKGBUILD +++ b/abs/core-testing/libpng/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 10073 2008-08-23 15:51:29Z douglas $ +# $Id: PKGBUILD 22148 2008-12-22 12:33:23Z pierre $  # Maintainer: dorphell <dorphell@archlinux.org>  # Maintainer: Travis Willard <travis@archlinux.org>  # Maintainer: Douglas Soares de Andrade <douglas@archlinux.org>  pkgname=libpng -pkgver=1.2.31 +pkgver=1.2.34  pkgrel=1  pkgdesc="A collection of routines used to create PNG format graphics files"  arch=('i686' 'x86_64') @@ -12,19 +12,18 @@ url="http://www.libpng.org/pub/png/libpng.html"  license=('custom')  depends=('zlib')  options=('!libtool') -source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2 -        # http://littlesvr.ca/apng/diff/${pkgname}-${pkgver}-apng.patch -	    ${pkgname}-${pkgver}-apng.patch ) +source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2" +        "http://hp.vector.co.jp/authors/VA013651/lib/libpng-${pkgver}-apng.patch.gz")  options=('!libtool') - -md5sums=('78d2f8c4e0d64f8948819563587302d3' -         'fab42a4ad4de6fcb87dcca6a7a19aefb') +md5sums=('37362876feb21344fd3af1228527db0f' +         'a7ee9fd9af34692b75eedd5b03b69ca9')  build() {    cd ${startdir}/src/${pkgname}-${pkgver}    # Add animated PNG (apng) support -  patch -Np0 -i $startdir/src/${pkgname}-${pkgver}-apng.patch || return 1 +  # see http://hp.vector.co.jp/authors/VA013651/freeSoftware/apng.html +  patch -p1 -i $srcdir/libpng-${pkgver}-apng.patch || return 1    libtoolize --force --copy || return 1    aclocal || return 1 diff --git a/abs/core-testing/librsvg/PKGBUILD b/abs/core-testing/librsvg/PKGBUILD index c4f4a11..6a702aa 100644 --- a/abs/core-testing/librsvg/PKGBUILD +++ b/abs/core-testing/librsvg/PKGBUILD @@ -1,28 +1,27 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 13073 2008-09-25 20:24:43Z jgc $  # Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=librsvg -pkgver=2.22.2 +pkgver=2.22.3  pkgrel=1  pkgdesc="SAX-based renderer for SVG files into a GdkPixbuf"  arch=(i686 x86_64)  license=('LGPL') -depends=('gtk2>=2.12.9' 'libcroco>=0.6.1' 'libgsf>=1.14.8') +depends=('gtk2>=2.14.3' 'libcroco>=0.6.1' 'libgsf>=1.14.8')  makedepends=('perlxml' 'pkgconfig')  options=('!libtool')  url="http://librsvg.sourceforge.net/"  source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.22/${pkgname}-${pkgver}.tar.bz2)  install=librsvg.install -md5sums=('aae602677ce201b1a0ed6a0c18c207f2') +md5sums=('c4ec4fdb2b1842e221ca39127e85682d')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr --libexecdir=/usr/lib/${pkgname} \                --with-croco \  	      --disable-mozilla-plugin --with-svgz    make || return 1 -  make DESTDIR=${startdir}/pkg install -  rm -rf ${startdir}/pkg/usr/share/gtk-doc -  rm -rf ${startdir}/pkg/usr/lib/mozilla -  rm ${startdir}/pkg/usr/lib/gtk-2.0/*/{engines,loaders}/*.a +  make DESTDIR="${pkgdir}" install +  rm -rf "${pkgdir}/usr/lib/mozilla" +  rm ${pkgdir}/usr/lib/gtk-2.0/*/{engines,loaders}/*.a  } diff --git a/abs/core-testing/librsvg/librsvg.install b/abs/core-testing/librsvg/librsvg.install index 8a6dd5a..01eaab0 100644 --- a/abs/core-testing/librsvg/librsvg.install +++ b/abs/core-testing/librsvg/librsvg.install @@ -1,4 +1,3 @@ -# arg 1:  the new package version  post_install() {    #We need to update the pixbuf loaders to let GTK support SVG images    usr/bin/gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules diff --git a/abs/core-testing/libtasn1/PKGBUILD b/abs/core-testing/libtasn1/PKGBUILD index 9d0f14a..150c1dd 100644 --- a/abs/core-testing/libtasn1/PKGBUILD +++ b/abs/core-testing/libtasn1/PKGBUILD @@ -1,21 +1,26 @@ -# $Id: PKGBUILD 3687 2008-06-29 10:44:27Z jgc $ -# Maintainer: judd <jvinet@zeroflux.org> +# $Id: PKGBUILD 22306 2008-12-25 18:56:59Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: judd <jvinet@zeroflux.org>  pkgname=libtasn1 -pkgver=1.4 +pkgver=1.7  pkgrel=1  pkgdesc="The ASN.1 library used in GNUTLS"  arch=(i686 x86_64) -license=('GPL' 'LGPL') +license=('GPL3' 'LGPL')  url="http://www.gnu.org/software/gnutls/" -depends=('glibc') +depends=('glibc' 'texinfo')  options=('!libtool') +install=libtasn1.install  source=(ftp://ftp.gnutls.org/pub/gnutls/${pkgname}/${pkgname}-${pkgver}.tar.gz) -md5sums=('a733ecdfed3517910e627d24e050979f') +md5sums=('ebfd69b3514d8e8830057f0e9df6a5f9')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1 + +  rm -f "${pkgdir}/usr/share/info/dir" +  gzip ${pkgdir}/usr/share/info/* || return 1  } diff --git a/abs/core-testing/libtasn1/libtasn1.install b/abs/core-testing/libtasn1/libtasn1.install new file mode 100644 index 0000000..2d1ecc0 --- /dev/null +++ b/abs/core-testing/libtasn1/libtasn1.install @@ -0,0 +1,18 @@ +info_dir=/usr/share/info +info_files=(libtasn1.info) + +post_install() { +  for f in ${info_files[@]}; do +    install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null +  done +} + +post_upgrade() { +  post_install $1 +} + +pre_remove() { +  for f in ${info_files[@]}; do +    install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null +  done +} diff --git a/abs/core-testing/libtool/PKGBUILD b/abs/core-testing/libtool/PKGBUILD index 965a282..f861926 100644 --- a/abs/core-testing/libtool/PKGBUILD +++ b/abs/core-testing/libtool/PKGBUILD @@ -1,21 +1,25 @@ -# $Id: PKGBUILD 1505 2008-05-12 10:28:03Z andyrtr $ +# $Id: PKGBUILD 12053 2008-09-08 14:37:58Z andyrtr $  # Maintainer: judd <jvinet@zeroflux.org>  pkgname=libtool -pkgver=2.2.4 +pkgver=2.2.6a  pkgrel=1  pkgdesc="A generic library support script"  arch=('i686' 'x86_64')  license=('GPL')  url="http://www.gnu.org/software/libtool" +install=libtool.install  groups=('base-devel') -depends=('sh') +depends=('sh' 'tar')  source=(ftp://ftp.gnu.org/pub/gnu/libtool/${pkgname}-${pkgver}.tar.gz) -md5sums=('0b87e84c7aad3b5e979bbe35312fd4c1') +md5sums=('8ca1ea241cd27ff9832e045fe9afe4fd')  options=('!libtool')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  #cd ${startdir}/src/${pkgname}-${pkgver} +  cd ${startdir}/src/${pkgname}-2.2.6    ./configure --prefix=/usr    make || return 1    make DESTDIR=${startdir}/pkg install + +  rm -f ${pkgdir}/usr/share/info/dir  } diff --git a/abs/core-testing/libtool/libtool.install b/abs/core-testing/libtool/libtool.install new file mode 100644 index 0000000..1794742 --- /dev/null +++ b/abs/core-testing/libtool/libtool.install @@ -0,0 +1,20 @@ +infodir=/usr/share/info +filelist=(libtool.info  libtool.info-1  libtool.info-2) + +post_install() { +  for file in ${filelist[@]}; do +    install-info $infodir/$file $infodir/dir 2> /dev/null +  done +} + +post_upgrade() { +  post_install $1 +} + +pre_remove() { +  for file in ${filelist[@]}; do +    install-info --delete $infodir/$file $infodir/dir 2> /dev/null +  done +} + +# vim:set ts=2 sw=2 et: diff --git a/abs/core-testing/libx11/PKGBUILD b/abs/core-testing/libx11/PKGBUILD index e69ed0a..d697a21 100644 --- a/abs/core-testing/libx11/PKGBUILD +++ b/abs/core-testing/libx11/PKGBUILD @@ -1,28 +1,26 @@ -# $Id: PKGBUILD 1882 2008-05-22 17:44:17Z jgc $ +# $Id: PKGBUILD 20482 2008-12-05 09:43:28Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor Jan de Groot <jgc@archlinux.org>  pkgname=libx11 -pkgver=1.1.4 +pkgver=1.1.5  pkgrel=2  pkgdesc="X11 client-side library"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/" -depends=('libxau' 'libxdmcp' 'libxcb>=1.1' 'kbproto' 'inputproto' 'bigreqsproto') -makedepends=('pkgconfig' 'xcmiscproto' 'xextproto' 'xf86bigfontproto' 'xtrans' \ -             'bigreqsproto' 'xorg-util-macros' 'autoconf' 'automake' 'libtool') +depends=('libxcb>=1.1.90.1' 'kbproto>=1.0.3') +makedepends=('xproto>=7.0.13' 'xextproto>=7.0.3' 'xf86bigfontproto>=1.1.2' 'xtrans>=1.2.1' 'kbproto>=1.0.3' 'inputproto>=1.4.4' 'xorg-util-macros')  options=('!libtool')  license=('custom:XFREE86')  source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.bz2  	012_ru_RU_UTF-8_XLC_LOCALE.diff  	xorg.sh) -md5sums=('1469a5a8aa8d288dce6f4c45d2f68dc3' +md5sums=('d1512d65dadd4f48c779d4749e7753a8'           'c7e38a68b932ed557bc71979eed2a8a1' -         'ea3f14c529072c8be061493763479800') +         '942ff006e69e041f0307c1316e0dec5d')  build() { -  cd ${startdir}/src/libX11-${pkgver} -  patch -Np1 -i ${startdir}/src/012_ru_RU_UTF-8_XLC_LOCALE.diff || return 1 - +  cd ${srcdir}/libX11-${pkgver} +  patch -Np1 -i ${srcdir}/012_ru_RU_UTF-8_XLC_LOCALE.diff || return 1    libtoolize --force --copy || return 1    aclocal || return 1 @@ -32,13 +30,12 @@ build() {    ./configure --prefix=/usr \                --with-xcb || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR=${pkgdir} install || return 1 -  install -d -m755 ${startdir}/pkg/etc/profile.d  -  install -m755 ${startdir}/src/xorg.sh \ -                ${startdir}/pkg/etc/profile.d/ || return 1 +  install -m755 -d ${pkgdir}/etc/profile.d  +  install -m755 ${srcdir}/xorg.sh \ +                ${pkgdir}/etc/profile.d/ || return 1 -  install -d -m755 ${startdir}/pkg/usr/share/licenses/${pkgname} -  install -m644 -D ${startdir}/src/libX11-${pkgver}/COPYING \ -                   ${startdir}/pkg/usr/share/licenses/${pkgname}/ || return 1 +  install -d -m755 ${pkgdir}/usr/share/licenses/${pkgname} +  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1  } diff --git a/abs/core-testing/libx11/xorg.sh b/abs/core-testing/libx11/xorg.sh index d3ade91..9b37312 100644 --- a/abs/core-testing/libx11/xorg.sh +++ b/abs/core-testing/libx11/xorg.sh @@ -13,7 +13,3 @@ if [ -z $XDG_CONFIG_DIRS ]; then  else  	export XDG_CONFIG_DIRS=/etc/xdg:$XDG_CONFIG_DIRS  fi - -# temporarily loosen restrictions in libxcb to get java -# application involving X to work. -export  LIBXCB_ALLOW_SLOPPY_LOCK=true diff --git a/abs/core-testing/libxaw/PKGBUILD b/abs/core-testing/libxaw/PKGBUILD index 3b447d1..c1d71de 100644 --- a/abs/core-testing/libxaw/PKGBUILD +++ b/abs/core-testing/libxaw/PKGBUILD @@ -1,26 +1,25 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 18578 2008-11-07 22:16:28Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=libxaw -pkgver=1.0.4 +pkgver=1.0.5  pkgrel=1  pkgdesc="X11 Athena Widget library"  arch=(i686 x86_64)  license=('custom:')  url="http://xorg.freedesktop.org/" -depends=('libxmu' 'libxpm' 'libxp') +depends=('libxmu' 'libxpm')  makedepends=('pkgconfig')  options=('!libtool')  source=(${url}/releases/individual/lib/libXaw-${pkgver}.tar.bz2) +md5sums=('64e7782db4653cb57c7f7e660b2431c3')  build() { -  cd ${startdir}/src/libXaw-${pkgver} -  ./configure --prefix=/usr --sysconfdir=/etc +  cd "${srcdir}/libXaw-${pkgver}" +  ./configure --prefix=/usr --sysconfdir=/etc || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1 -  mkdir -p ${startdir}/pkg/usr/share/licenses/${pkgname} -  install -m644 ${startdir}/src/libXaw-${pkgver}/COPYING \ -                ${startdir}/pkg/usr/share/licenses/${pkgname}/license.txt +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1  } -md5sums=('73671d8f1cf36fdd81395328cc3539c9') diff --git a/abs/core-testing/libxml2/PKGBUILD b/abs/core-testing/libxml2/PKGBUILD index be9b8bc..8b8cb34 100644 --- a/abs/core-testing/libxml2/PKGBUILD +++ b/abs/core-testing/libxml2/PKGBUILD @@ -1,25 +1,26 @@ -# $Id: PKGBUILD 1153 2008-05-01 14:49:04Z jgc $ +# $Id: PKGBUILD 22385 2008-12-26 16:51:09Z jgc $  # Maintainer: Jan de Groot <jgc@archlinux.org>  # Contributor: John Proctor <jproctor@prium.net>  pkgname=libxml2 -pkgver=2.6.32 +pkgver=2.7.2  pkgrel=1  pkgdesc="XML parsing library, version 2"  arch=(i686 x86_64)  license=('custom') -depends=('zlib' 'readline') -makedepends=('python>=2.5') +depends=('zlib>=1.2.3.3' 'readline>=5.2-8' 'ncurses>=5.6-7') +makedepends=('python')  options=('!libtool') -source=(ftp://ftp.xmlsoft.org/${pkgname}/${pkgname}-${pkgver}.tar.gz)  url="http://www.xmlsoft.org/" -md5sums=('2621d322c16f0257e30f0ff2b13384de') +source=(ftp://ftp.xmlsoft.org/${pkgname}/${pkgname}-${pkgver}.tar.gz +	largefile64.patch)  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}" +  patch -Np1 -i ${srcdir}/largefile64.patch || return 1    ./configure --prefix=/usr --with-threads --with-history || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 -  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} -  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1  } diff --git a/abs/core-testing/libxml2/largefile64.patch b/abs/core-testing/libxml2/largefile64.patch new file mode 100644 index 0000000..29be827 --- /dev/null +++ b/abs/core-testing/libxml2/largefile64.patch @@ -0,0 +1,12 @@ +--- libxml2-2.6.32.dfsg.orig/libxml.h ++++ libxml2-2.6.32.dfsg/libxml.h +@@ -13,6 +13,9 @@ + #ifndef _LARGEFILE_SOURCE + #define _LARGEFILE_SOURCE + #endif ++#ifndef _LARGEFILE64_SOURCE ++#define _LARGEFILE64_SOURCE ++#endif + #ifndef _FILE_OFFSET_BITS + #define _FILE_OFFSET_BITS 64 + #endif diff --git a/abs/core-testing/lighttpd/PKGBUILD b/abs/core-testing/lighttpd/PKGBUILD index db98bc4..ee4d780 100644 --- a/abs/core-testing/lighttpd/PKGBUILD +++ b/abs/core-testing/lighttpd/PKGBUILD @@ -1,13 +1,15 @@ +# $Id: PKGBUILD 17048 2008-10-24 16:27:19Z pierre $ +# Maintainer: Pierre Schmitz <pierre@archlinux.de> +  pkgname=lighttpd  pkgver=1.4.20 -pkgrel=12 +pkgrel=2  pkgdesc='a secure, fast, compliant and very flexible web-server'  license=('custom')  arch=('i686' 'x86_64')  url="http://www.lighttpd.net/" -#depends=('pcre' 'openssl' 'zlib' 'bzip2' 'attr' 'libldap') -depends=('pcre' 'openssl' 'zlib' 'bzip2' 'attr' ) -makedepends=('fcgi' 'libmysqlclient'  'libxml2' 'e2fsprogs' 'sqlite3' 'gdbm' 'pkgconfig') +depends=('pcre' 'openssl' 'zlib' 'bzip2' 'attr' 'libldap') +makedepends=('fcgi' 'libmysqlclient' 'lua' 'libxml2' 'e2fsprogs' 'sqlite3' 'gdbm' 'pkgconfig')  optdepends=('libxml2: mod_webdav' \              'e2fsprogs: mod_webdav' \              'lua: mod_cml/mod_magnet' \ @@ -15,11 +17,10 @@ optdepends=('libxml2: mod_webdav' \              'sqlite3: mod_webdav' \              'gdbm: mod_trigger_b4_dl' \              ) -backup=('etc/lighttpd/lighttpd.conf' 'etc/logrotate.d/lighttpd' 'etc/lighttpd/auth-inc.conf') +backup=('etc/lighttpd/lighttpd.conf' 'etc/logrotate.d/lighttpd')  options=('!libtool' 'emptydirs') -install='lighttpd.install'  source=("http://www.lighttpd.net/download/lighttpd-${pkgver}.tar.bz2" \ -        'lighttpd.rc.d' 'lighttpd.logrotate.d' lighttpd.conf auth-inc.conf) +        'lighttpd.rc.d' 'lighttpd.logrotate.d')  md5sums=('ed6ee0bb714f393219a32768d86984d8'           'bd690eee0d9e51857448770a151023b0' @@ -34,8 +35,8 @@ build() {  		--localstatedir=/var \  		--libdir=/usr/lib/lighttpd \  		--includedir=/usr/include/lighttpd \ -		--with-mysql --without-sqlite3 \ -		--without-ldap \ +		--with-mysql \ +		--with-ldap \  		--with-attr \  		--with-openssl \  		--with-kerberos5 \ @@ -44,7 +45,7 @@ build() {  		--with-webdav-locks \  		--with-gdbm \  		--with-memcache \ -		--without-lua || return 1 +		--with-lua || return 1  	make || return 1  	make DESTDIR=$pkgdir install || return 1 @@ -52,22 +53,17 @@ build() {  	install -D -m644 ../lighttpd.logrotate.d $pkgdir/etc/logrotate.d/lighttpd  	install -d -m755 -o http -g http $pkgdir/var/run/lighttpd/  	install -d -m755 -o http -g http $pkgdir/var/log/lighttpd/ -	 +	install -D -m644 doc/lighttpd.conf $pkgdir/etc/lighttpd/lighttpd.conf  	# set sane defaults -	#sed -e 's|/srv/www/htdocs/|/srv/http/|' \ -	#    -e 's|/srv/www/|/srv/http/|' \ -	#    -e 's|#server.username            = "wwwrun"|server.username            = "http"|' \ -	#    -e 's|#server.groupname           = "wwwrun"|server.groupname           = "http"|' \ -	#    -e 's|#server.pid-file            = "/var/run/lighttpd.pid"|server.pid-file            = "/var/run/lighttpd/lighttpd.pid"|' \ -	#    -e 's|/usr/local/bin/php-cgi|/usr/bin/php-cgi|' \ -	#    -i ${pkgdir}/etc/lighttpd/lighttpd.conf || return 1 -	install -D -m644 $startdir/src/lighttpd.conf $pkgdir/etc/lighttpd/lighttpd.conf -	install -D -m644 $startdir/src/auth-inc.conf $pkgdir/etc/lighttpd/auth-inc.conf +	sed -e 's|/srv/www/htdocs/|/srv/http/|' \ +	    -e 's|/srv/www/|/srv/http/|' \ +	    -e 's|#server.username            = "wwwrun"|server.username            = "http"|' \ +	    -e 's|#server.groupname           = "wwwrun"|server.groupname           = "http"|' \ +	    -e 's|#server.pid-file            = "/var/run/lighttpd.pid"|server.pid-file            = "/var/run/lighttpd/lighttpd.pid"|' \ +	    -e 's|/usr/local/bin/php-cgi|/usr/bin/php-cgi|' \ +	    -i ${pkgdir}/etc/lighttpd/lighttpd.conf || return 1 +  	install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING  } - -#changelog -#remove ldap -#add custom lighttpd.conf diff --git a/abs/core-testing/lirc-utils/PKGBUILD b/abs/core-testing/lirc-utils/PKGBUILD index b1f1f9a..a5e4fae 100644 --- a/abs/core-testing/lirc-utils/PKGBUILD +++ b/abs/core-testing/lirc-utils/PKGBUILD @@ -2,13 +2,13 @@  # Maintainer: Paul Mattal <paul@archlinux.org>  pkgname=lirc-utils -pkgver=0.8.3 +pkgver=0.8.4  pkgrel=1  pkgdesc="Linux Infrared Remote Control utils"  arch=(i686 x86_64)  url="http://www.lirc.org/"  license=('GPL') -_kernver=2.6.26-ARCH +_kernver=2.6.27-ARCH  depends=('alsa-lib' 'libusb' 'libx11' 'libsm')  makedepends=('help2man')  replaces=('lirc+pctv') @@ -17,14 +17,14 @@ backup=('etc/lircd.conf' 'etc/lircmd.conf'\  options=('!libtool' '!makeflags')  source=(http://umn.dl.sf.net/sourceforge/lirc/lirc-$pkgver.tar.bz2 \  	lircd lircmd lirc.logrotate lircd.conf.d kernel-2.6.26.patch) -md5sums=('8e78eeded7b31e5ad02e328970437c0f' '909ad968afa10e4511e1da277bb23c3b'\ +md5sums=('8f3ba7eb57529992f3991d6981a3feb6' '909ad968afa10e4511e1da277bb23c3b'\           '85f7fdac55e5256967241864049bf5e9' '3deb02604b37811d41816e9b4385fcc3'\           '5b1f8c9cd788a39a6283f93302ce5c6e' '1753acd774f50b638e6173d364de53fd')  build() {  	# configure  	cd $startdir/src/lirc-$pkgver || return 1 -	patch -Np1 -i ../kernel-2.6.26.patch || return 1 +#	patch -Np1 -i ../kernel-2.6.26.patch || return 1        # Disabling lirc_gpio driver as it does no longer work Kernel 2.6.22+  	sed -i -e "s:lirc_gpio\.o::" drivers/lirc_gpio/Makefile.am || return 1 diff --git a/abs/core-testing/lirc/PKGBUILD b/abs/core-testing/lirc/PKGBUILD index 4548a46..b880096 100644 --- a/abs/core-testing/lirc/PKGBUILD +++ b/abs/core-testing/lirc/PKGBUILD @@ -2,14 +2,14 @@  # Maintainer: Paul Mattal <paul@archlinux.org>  pkgname=lirc -pkgver=0.8.3 -pkgrel=3 +pkgver=0.8.4 +pkgrel=2  _kernver=2.6.27-ARCH  pkgdesc="Linux Infrared Remote Control kernel modules for stock arch kernel"  arch=(i686 x86_64)  url="http://www.lirc.org/"  license=('GPL') -depends=('lirc-utils=0.8.3' 'kernel26>=2.6.27' 'kernel26<2.6.28') +depends=('lirc-utils=0.8.4' 'kernel26>=2.6.27' 'kernel26<2.6.28')  makedepends=('help2man')  replaces=('lirc+pctv')  options=('!makeflags') @@ -21,8 +21,8 @@ source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.t  build() {  	# configure  	cd $startdir/src/lirc-$pkgver || return 1 -	patch -Np1 -i ../kernel-2.6.26.patch || return 1 -	patch -Np1 -i ../kernel-2.6.27.patch || return 1 +#	patch -Np1 -i ../kernel-2.6.26.patch || return 1 +#	patch -Np1 -i ../kernel-2.6.27.patch || return 1  	./configure --enable-sandboxed --prefix=/usr \  		--with-driver=all --with-kerneldir=/usr/src/linux-${_kernver}/ \ @@ -49,6 +49,6 @@ build() {  	sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \  		$startdir/lirc.install || return 1  } -md5sums=('8e78eeded7b31e5ad02e328970437c0f' +md5sums=('8f3ba7eb57529992f3991d6981a3feb6'           '1753acd774f50b638e6173d364de53fd'           '6f151eb4e81fc7776a06c9063e6ad9a5') diff --git a/abs/core-testing/madwifi/PKGBUILD b/abs/core-testing/madwifi/PKGBUILD index da2ec7a..d14d5f1 100644 --- a/abs/core-testing/madwifi/PKGBUILD +++ b/abs/core-testing/madwifi/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 7965 2008-08-05 10:52:26Z tpowa $ +# $Id: PKGBUILD 14765 2008-10-10 15:32:35Z thomas $  # Originally by kleptophobiac <kleptophobiac@gmail.com>  # Modified by James Rayner for the repositories <iphitus@gmail.com> -_kernver=2.6.26-ARCH; +_kernver=2.6.27-ARCH;  pkgname=madwifi  pkgver=0.9.4.3844 -pkgrel=1 +pkgrel=2  pkgdesc="Madwifi drivers for Atheros wireless chipsets. For stock arch 2.6 kernel"  arch=(i686 x86_64)  license=('GPL')  url="http://madwifi.org" -depends=('madwifi-utils' 'kernel26>=2.6.26-1' 'kernel26<2.6.27') +depends=('madwifi-utils' 'kernel26>=2.6.27' 'kernel26<2.6.28')  makedepends=('sharutils')  install=madwifi-ng.install  # subversion source: svn checkout http://svn.madwifi.org/madwifi/trunk madwifi diff --git a/abs/core-testing/madwifi/madwifi-ng.install b/abs/core-testing/madwifi/madwifi-ng.install index a4cac8b..2b02087 100644 --- a/abs/core-testing/madwifi/madwifi-ng.install +++ b/abs/core-testing/madwifi/madwifi-ng.install @@ -1,20 +1,20 @@  # arg 1:  the new package version  post_install() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1		   }  # arg 1:  the new package version  # arg 2:  the old package version  post_upgrade() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -ae -v $KERNEL_VERSION	 > /dev/null 2>&1	   }  # arg 1:  the old package version  post_remove() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -ae -v $KERNEL_VERSION	 > /dev/null 2>&1	   } diff --git a/abs/core-testing/mcpp/PKGBUILD b/abs/core-testing/mcpp/PKGBUILD index 9d0afce..57dae67 100644 --- a/abs/core-testing/mcpp/PKGBUILD +++ b/abs/core-testing/mcpp/PKGBUILD @@ -1,27 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 22398 2008-12-26 17:32:45Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=mcpp -pkgver=2.6.4 -pkgrel=2 +pkgver=2.7.2 +pkgrel=1  pkgdesc="Matsui's CPP implementation precisely conformed to standards"  arch=(i686 x86_64) -license=('custom:') +license=('custom')  url="http://mcpp.sourceforge.net" -source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz \ -        mcpp-2.6.4-patch) +source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz )  depends=(glibc) +md5sums=('512de48c87ab023a69250edc7a0c7b05')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  patch -Np0 -i ${startdir}/src/mcpp-2.6.4-patch || return 1 -  ./configure --prefix=/usr +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install +  make DESTDIR="${pkgdir}" install || return 1 -  mkdir -p ${startdir}/pkg/usr/share/licenses/${pkgname} -  install -m644 ${startdir}/src/${pkgname}-${pkgver}/LICENSE \ -                ${startdir}/pkg/usr/share/licenses/${pkgname}/LICENSE +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  ln -sf ../doc/${pkgname}/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/"  } -md5sums=('c0f5aa9b13e36ea0f2ab9358c5d65153' -         '80890eb2988d7e80964b814cf134f842') diff --git a/abs/core-testing/mesa/PKGBUILD b/abs/core-testing/mesa/PKGBUILD index 9d36715..72d100e 100644 --- a/abs/core-testing/mesa/PKGBUILD +++ b/abs/core-testing/mesa/PKGBUILD @@ -1,63 +1,46 @@ -# $Id: PKGBUILD 3486 2008-06-22 21:12:34Z jgc $ +# $Id: PKGBUILD 12996 2008-09-25 18:06:12Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=mesa -pkgver=7.0.3 -pkgrel=3 +pkgver=7.2 +pkgrel=1  pkgdesc="Mesa OpenGL library"  arch=(i686 x86_64)  license=('LGPL')  url="http://mesa3d.sourceforge.net" -depends=('libgl' 'glproto>=1.4.9' 'gcc-libs' 'libxt') -makedepends=('imake' 'pkgconfig') +depends=('libgl' 'libx11>=1.1.4-3' 'libxt' 'glproto>=1.4.9' 'gcc-libs>=4.3.1') +makedepends=('pkgconfig' 'dri2proto>=1.1' 'libdrm>=2.3.1')  conflicts=('mesa-apps')  replaces=('mesa-apps') -source=(http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${pkgver}.tar.bz2 -        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaDemos-${pkgver}.tar.bz2 -	ftp://ftp.archlinux.org/other/mesa/gl-manpages-1.0.1.tar.bz2 -	mesa-6.5-apps-noglut.patch) -md5sums=('e6e6379d7793af40a6bc3ce1bace572e' -         '47fd6863621d3c9c7dbb870ab7f0c303' -         '6ae05158e678f4594343f32c2ca50515' -         'cc5a4ea4ea8de4425997fcda2a9d8648') +source=(http://downloads.sourceforge.net/mesa3d/MesaLib-${pkgver}.tar.bz2 +	http://downloads.sourceforge.net/mesa3d/MesaDemos-${pkgver}.tar.bz2 +	ftp://ftp.archlinux.org/other/mesa/gl-manpages-1.0.1.tar.bz2) +md5sums=('04d379292e023df0b0266825cb0dbde5' +         '22e03dc4038cd63f32c21eb60994892b' +         '6ae05158e678f4594343f32c2ca50515')  build() { -  cd ${startdir}/src/Mesa-${pkgver} -  patch -Np0 -i ${startdir}/src/mesa-6.5-apps-noglut.patch || return 1 - -  unset CFLAGS -  unset CXXFLAGS - -  CONFIG="linux-dri-x86" -  if [ "${CARCH}" = "x86_64" ]; then -    CONFIG="linux-dri-x86-64" -    sed -i -e "s/lib64/lib/g" configs/${CONFIG} -  fi -  echo "EXTRA_LIB_PATH =" >> configs/${CONFIG} -  echo "SRC_DIRS = glx/x11 glu glw" >> configs/${CONFIG} -  rm -f include/GL/glut*h -  echo "USING_EGL = 0" >> configs/${CONFIG} -  echo "PROGRAM_DIRS =" >> configs/${CONFIG} -  echo "MKDEP = makedepend" >> configs/${CONFIG} -  echo "DRI_DIRS =" >> configs/${CONFIG} -  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> configs/${CONFIG} -  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> configs/${CONFIG} -  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> configs/${CONFIG} +  cd ${srcdir}/Mesa-${pkgver} +  ./configure --prefix=/usr \ +    --with-dri-driverdir=/usr/lib/xorg/modules/dri \ +    --with-dri-drivers=swrast \ +    --enable-glx-tls \ +    --disable-ttm-api \ +    --with-driver=dri \ +    --enable-xcb \ +    --disable-glut || return 1 +  make || return 1 +  make DESTDIR=${pkgdir} install || return 1 -  make ${CONFIG} || return 1 -  install -m755 -d ${startdir}/pkg/usr -  make INSTALL_DIR=${startdir}/pkg/usr install || return 1 -  install -m644 include/GL/*.h ${startdir}/pkg/usr/include/GL/ || return 1 +  install -m755 -d ${pkgdir}/usr/bin +  install -m755 progs/xdemos/glx{gears,info} ${pkgdir}/usr/bin/ || return 1 -  rm -f ${startdir}/pkg/usr/lib/libGL.so* -  cd progs/xdemos -  make CFLAGS+="-I${startdir}/pkg/usr/include" glxinfo glxgears || return 1 -  install -m755 -d ${startdir}/pkg/usr/bin || return 1 -  install -m755 glxinfo glxgears ${startdir}/pkg/usr/bin/ || return 1 +  rm -f ${pkgdir}/usr/lib/libGL.so* +  rm -rf ${pkgdir}/usr/lib/xorg -  cd ${startdir}/src/gl-manpages-1.0.1 +  cd ${srcdir}/gl-manpages-1.0.1    ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR=${pkgdir} install || return 1  } diff --git a/abs/core-testing/mesa/mesa-7.1-link-shared.patch b/abs/core-testing/mesa/mesa-7.1-link-shared.patch new file mode 100644 index 0000000..7fdbf14 --- /dev/null +++ b/abs/core-testing/mesa/mesa-7.1-link-shared.patch @@ -0,0 +1,102 @@ +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile +--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000 +@@ -6,12 +6,17 @@ include $(TOP)/configs/current +  +  +  +-default: $(TOP)/$(LIB_DIR) subdirs ++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs +  +  + $(TOP)/$(LIB_DIR): + 	-mkdir $(TOP)/$(LIB_DIR) +  ++libdricore.so: ++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so ++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR)  +  + subdirs: + 	@for dir in $(DRI_DIRS) ; do \ +@@ -31,12 +36,14 @@ dri.pc: dri.pc.in + 	$(pcedit) $< > $@ +  +  +-install: dri.pc ++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so + 	@for dir in $(DRI_DIRS) ; do \ + 		if [ -d $$dir ] ; then \ + 			(cd $$dir && $(MAKE) install) || exit 1 ; \ + 		fi \ + 	done ++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) + 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal + 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \ + 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal +@@ -52,5 +59,6 @@ clean: + 			(cd $$dir && $(MAKE) clean) ; \ + 		fi \ + 	done ++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so + 	-rm -f common/*.o + 	-rm -f *.pc +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template +--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000 +@@ -1,6 +1,6 @@ + # -*-makefile-*- +  +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so +  + COMMON_SOURCES = \ +         ../common/utils.c \ +@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO +  + $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template + 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ +-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) ++		$(OBJECTS) $(WINOBJ) \ ++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \ ++		$(DRI_LIB_DEPS) +  +  + $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME) +diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S +--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000 +@@ -77,7 +77,6 @@ +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX +-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX + 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + 	pushl	%ebx +@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + 	pushl	%esi +@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + 	pushl	%esi +@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + 	.globl	_generic_read_RGBA_span_RGB565_MMX +-        .hidden _generic_read_RGBA_span_RGB565_MMX + 	.type	_generic_read_RGBA_span_RGB565_MMX, @function +  + _generic_read_RGBA_span_RGB565_MMX: diff --git a/abs/core-testing/mythtv/stable/mytharchive/PKGBUILD b/abs/core-testing/mythtv/stable/mytharchive/PKGBUILD index fb3b755..7d24ae3 100644 --- a/abs/core-testing/mythtv/stable/mytharchive/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mytharchive/PKGBUILD @@ -4,18 +4,18 @@  pkgname=mytharchive  pkgver=0.21 -pkgrel=1 +pkgrel=2  pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."  arch=('i686' 'x86_64')  url="http://www.mythtv.org"  license=('GPL')  depends=("mythtv>=${pkgver}" 'libxmu' 'mysql-python' 'pil' 'dvdauthor')  source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2") -md5sums=('af20a78ac66719feddf9a39f1a799ded') +md5sums=('00ee70be781b9af5913f046525d79ab9')  groups=('mythtv-extras')  build() { -   cd $startdir/src/mythplugins-${pkgver} +   cd $startdir/src/mythplugins     . /etc/profile.d/qt3.sh     # use QT3 qmake diff --git a/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD index 5a53093..34e64f2 100644 --- a/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD @@ -4,7 +4,7 @@  pkgname=mythbrowser  pkgver=0.21 -pkgrel=2 +pkgrel=3  pkgdesc="Mini web browser for MythTV"  arch=('i686' 'x86_64')  url="http://www.mythtv.org" @@ -13,10 +13,10 @@ depends=("mythtv>=${pkgver}" 'wget' 'libxvmc' 'kdelibs3')  groups=('mythtv-extras')  options=('!makeflags')  source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2") -md5sums=('af20a78ac66719feddf9a39f1a799ded') +md5sums=('00ee70be781b9af5913f046525d79ab9')  build() { -   cd $startdir/src/mythplugins-${pkgver} +   cd $startdir/src/mythplugins     . /etc/profile.d/qt3.sh     . /etc/profile.d/kde3.sh diff --git a/abs/core-testing/mythtv/stable/mythcontrols/PKGBUILD b/abs/core-testing/mythtv/stable/mythcontrols/PKGBUILD index cf7f43c..2639834 100644 --- a/abs/core-testing/mythtv/stable/mythcontrols/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythcontrols/PKGBUILD @@ -4,7 +4,7 @@  pkgname=mythcontrols  pkgver=0.21 -pkgrel=1 +pkgrel=2  pkgdesc="Experimental controls for MythTV"  arch=('i686' 'x86_64')  url="http://www.mythtv.org" @@ -12,11 +12,11 @@ license=('GPL')  depends=("mythtv>=${pkgver}")  options=('!makeflags')  source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2") -md5sums=('af20a78ac66719feddf9a39f1a799ded') +md5sums=('00ee70be781b9af5913f046525d79ab9')  groups=('mythtv-extras')  build() { -   cd $startdir/src/mythplugins-${pkgver} +   cd $startdir/src/mythplugins     . /etc/profile.d/qt3.sh     # use QT3 qmake diff --git a/abs/core-testing/mythtv/stable/mythflix/PKGBUILD b/abs/core-testing/mythtv/stable/mythflix/PKGBUILD index f613963..e9033ac 100644 --- a/abs/core-testing/mythtv/stable/mythflix/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythflix/PKGBUILD @@ -4,18 +4,18 @@  pkgname=mythflix  pkgver=0.21 -pkgrel=1 +pkgrel=2  pkgdesc="Netflix access plugin for MythTV"  arch=('i686' 'x86_64')  url="http://www.mythtv.org"  license=('GPL')  depends=("mythtv>=${pkgver}")  source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2") -md5sums=('af20a78ac66719feddf9a39f1a799ded') +md5sums=('00ee70be781b9af5913f046525d79ab9')  groups=('mythtv-extras')  build() { -   cd $startdir/src/mythplugins-${pkgver} +   cd $startdir/src/mythplugins     . /etc/profile.d/qt3.sh     # use QT3 qmake diff --git a/abs/core-testing/mythtv/stable/mythgallery/PKGBUILD b/abs/core-testing/mythtv/stable/mythgallery/PKGBUILD index 76a66c5..3218bb4 100644 --- a/abs/core-testing/mythtv/stable/mythgallery/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythgallery/PKGBUILD @@ -4,18 +4,18 @@  pkgname=mythgallery  pkgver=0.21 -pkgrel=1 +pkgrel=2  pkgdesc="Image gallery plugin for MythTV"  arch=('i686' 'x86_64')  url="http://www.mythtv.org"  license=('GPL')  depends=("mythtv>=${pkgver}" 'libexif' 'libtiff')  source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2") -md5sums=('af20a78ac66719feddf9a39f1a799ded') +md5sums=('00ee70be781b9af5913f046525d79ab9')  groups=('mythtv-extras')  build() { -   cd $startdir/src/mythplugins-${pkgver} +   cd $startdir/src/mythplugins     . /etc/profile.d/qt3.sh     # use QT3 qmake diff --git a/abs/core-testing/mythtv/stable/mythgame/PKGBUILD b/abs/core-testing/mythtv/stable/mythgame/PKGBUILD index 33fb9a5..74a1e00 100644 --- a/abs/core-testing/mythtv/stable/mythgame/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythgame/PKGBUILD @@ -4,18 +4,18 @@  pkgname=mythgame  pkgver=0.21 -pkgrel=1 +pkgrel=2  pkgdesc="Emulation plugin for MythTV"  arch=('i686' 'x86_64')  url="http://www.mythtv.org"  license=('GPL')  depends=("mythtv>=${pkgver}" 'zlib')  source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2") -md5sums=('af20a78ac66719feddf9a39f1a799ded') +md5sums=('00ee70be781b9af5913f046525d79ab9')  groups=('mythtv-extras')  build() { -   cd $startdir/src/mythplugins-$pkgver +   cd $startdir/src/mythplugins  	export QMAKESPEC='linux-g++'     source /etc/profile.d/qt3.sh diff --git a/abs/core-testing/mythtv/stable/mythmusic/PKGBUILD b/abs/core-testing/mythtv/stable/mythmusic/PKGBUILD index fbbfbc4..73415c7 100644 --- a/abs/core-testing/mythtv/stable/mythmusic/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythmusic/PKGBUILD @@ -4,7 +4,7 @@  pkgname=mythmusic  pkgver=0.21 -pkgrel=5 +pkgrel=7  pkgdesc="Music playing plugin for MythTV"  arch=('i686' 'x86_64')  url="http://www.mythtv.org" @@ -13,11 +13,11 @@ depends=("mythtv>=${pkgver}" 'libid3tag' 'libmad' 'libvorbis' 'flac>=1.1.4' 'lib           'cdparanoia' 'fftw2' 'sdl' 'faad2>=2.6.1' 'lame' 'taglib' \  	 'libvisual-plugins' 'libvisual-projectm')  source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2") -md5sums=('af20a78ac66719feddf9a39f1a799ded') +md5sums=('00ee70be781b9af5913f046525d79ab9')  groups=('mythtv-extras')  build() { -   cd $startdir/src/mythplugins-${pkgver} +   cd $startdir/src/mythplugins     . /etc/profile.d/qt3.sh     # use QT3 qmake diff --git a/abs/core-testing/mythtv/stable/mythnews/PKGBUILD b/abs/core-testing/mythtv/stable/mythnews/PKGBUILD index 9133755..3288ce7 100644 --- a/abs/core-testing/mythtv/stable/mythnews/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythnews/PKGBUILD @@ -4,18 +4,18 @@  pkgname=mythnews  pkgver=0.21 -pkgrel=1 +pkgrel=2  pkgdesc="News checking plugin for MythTV"  arch=('i686' 'x86_64')  url="http://www.mythtv.org"  license=('GPL')  depends=("mythtv>=${pkgver}")  source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2") -md5sums=('af20a78ac66719feddf9a39f1a799ded') +md5sums=('00ee70be781b9af5913f046525d79ab9')  groups=('mythtv-extras')  build() { -   cd $startdir/src/mythplugins-${pkgver} +   cd $startdir/src/mythplugins     . /etc/profile.d/qt3.sh     # use QT3 qmake diff --git a/abs/core-testing/mythtv/stable/mythphone/PKGBUILD b/abs/core-testing/mythtv/stable/mythphone/PKGBUILD index 24cd04f..b093caa 100644 --- a/abs/core-testing/mythtv/stable/mythphone/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythphone/PKGBUILD @@ -4,18 +4,18 @@  pkgname=mythphone  pkgver=0.21 -pkgrel=1 +pkgrel=2  pkgdesc="Plugin that allows phone calls to be made to MythTv"  arch=('i686' 'x86_64')  url="http://www.mythtv.org"  license=('GPL')  depends=("mythtv>=${pkgver}")  source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2") -md5sums=('af20a78ac66719feddf9a39f1a799ded') +md5sums=('00ee70be781b9af5913f046525d79ab9')  groups=('mythtv-extras')  build() { -   cd $startdir/src/mythplugins-${pkgver} +   cd $startdir/src/mythplugins     . /etc/profile.d/qt3.sh     # use QT3 qmake diff --git a/abs/core-testing/mythtv/stable/mythsmolt/PKGBUILD b/abs/core-testing/mythtv/stable/mythsmolt/PKGBUILD index a56292c..854b2e3 100644 --- a/abs/core-testing/mythtv/stable/mythsmolt/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythsmolt/PKGBUILD @@ -1,6 +1,6 @@  pkgname=mythsmolt  pkgver=0.21 -pkgrel=3 +pkgrel=4  pkgdesc="mythsmolt, a hardware profileing tool"  arch=('i686' 'x86_64')  url="http://www.mythvantage.com" diff --git a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD index 3cd45a8..8ba8102 100644 --- a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD @@ -1,6 +1,6 @@  pkgname=mythtv  pkgver=0.21 -pkgrel=17 +pkgrel=19  pkgdesc="A Homebrew PVR project"  arch=('i686' 'x86_64')  depends=('bash' 'mysql-clients>=5.0' 'qt3' 'lame' 'lirc-utils' 'ffmpeg' \ @@ -9,7 +9,7 @@ backup=(etc/mythtv/mythbackend.conf etc/mythtv/mysql.txt)  source=(ftp://ftp.knoppmyth.net/R6/sources/${pkgname}-${pkgver}-fixes.tar.bz2 \  	mythbackend myththemedmenu.cpp.patch myththemedmenu.h.patch  smolt_jump.patch  ) -#md5sums=('08506f0c5120c072085b6995f529167a' '7ef6de58240e7aad389a0b13d91b1cf6'\ +#md5sums=('6e8180a0122d5fe335aa5e4b036ffc1d' '7ef6de58240e7aad389a0b13d91b1cf6'\  #         'a0ecb7f476cb71c0c1ac90d349fc7695')  license=('GPL2') @@ -19,7 +19,7 @@ url="http://www.mythtv.org/"  install=mythtv.install  build() { -   cd $startdir/src/${pkgname}-${pkgver} || return 1 +	cd $startdir/src/${pkgname}-${pkgver} || return 1  #apply patches   	 patch -p0 < ../myththemedmenu.cpp.patch diff --git a/abs/core-testing/mythtv/stable/mythtv/menu-xml/library.xml.patch b/abs/core-testing/mythtv/stable/mythtv/menu-xml/library.xml.patch index 19955dc..ac42e90 100644 --- a/abs/core-testing/mythtv/stable/mythtv/menu-xml/library.xml.patch +++ b/abs/core-testing/mythtv/stable/mythtv/menu-xml/library.xml.patch @@ -1,21 +1,17 @@ ---- library.xml.orig	2008-10-02 22:46:30.000000000 +0000 -+++ library.xml	2008-07-02 04:05:15.000000000 +0000 -@@ -117,13 +117,11 @@ -      <depends>mythFM mythfm</depends> +--- library.xml.orig	2009-01-09 03:55:53.000000000 +0000 ++++ library.xml	2009-01-09 04:08:30.000000000 +0000 +@@ -118,11 +118,9 @@      </button> --   <button> +    <button>  -     <type>STREAM</type> --     <text>Play online streams</text> +-     <text>Play Online Streams</text>  -     <text lang="HE">נגן מדיה מכוונת</text>  -     <action>PLUGIN mythstream</action>  -     <depends>mythstream</depends> --   </button> -+     <button>  +       <type>STREAM</type>  +       <text>Online Streams</text>  +       <action>MENU is.xml</action> -+     </button> +    </button>      <button> -      <type>IMAGES</type> diff --git a/abs/core-testing/mythtv/stable/mythvideo/PKGBUILD b/abs/core-testing/mythtv/stable/mythvideo/PKGBUILD index 21f2a22..a1bab3f 100644 --- a/abs/core-testing/mythtv/stable/mythvideo/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythvideo/PKGBUILD @@ -4,7 +4,7 @@  pkgname=mythvideo  pkgver=0.21 -pkgrel=2 +pkgrel=3  pkgdesc="Video playback and browsing plugin for MythTV"  arch=('i686' 'x86_64')  url="http://www.mythtv.org" @@ -12,12 +12,12 @@ license=('GPL')  depends=("mythtv>=${pkgver}" 'mplayer' 'perlxml' 'perl-libwww' 'perl-uri' 'perl-xml-simple' 'ffmpeg')  source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2"\  	mtd) -md5sums=('af20a78ac66719feddf9a39f1a799ded' '476c12ba074794ad7f4ae092bdf949d6') +md5sums=('00ee70be781b9af5913f046525d79ab9' '476c12ba074794ad7f4ae092bdf949d6')  replaces=('mythdvd')  groups=('mythtv-extras')  build() { -   cd $startdir/src/mythplugins-${pkgver} +   cd $startdir/src/mythplugins     . /etc/profile.d/qt3.sh     # use QT3 qmake diff --git a/abs/core-testing/mythtv/stable/mythweather/PKGBUILD b/abs/core-testing/mythtv/stable/mythweather/PKGBUILD index ce2894a..42e9dc1 100644 --- a/abs/core-testing/mythtv/stable/mythweather/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythweather/PKGBUILD @@ -4,18 +4,18 @@  pkgname=mythweather  pkgver=0.21 -pkgrel=1 +pkgrel=2  pkgdesc="Weather checking plugin for MythTV"  arch=('i686' 'x86_64')  url="http://www.mythtv.org"  license=('GPL')  depends=("mythtv>=${pkgver}" 'wget')  source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2") -md5sums=('af20a78ac66719feddf9a39f1a799ded') +md5sums=('00ee70be781b9af5913f046525d79ab9')  groups=('mythtv-extras')  build() { -   cd $startdir/src/mythplugins-${pkgver} +   cd $startdir/src/mythplugins     . /etc/profile.d/qt3.sh     # use QT3 qmake diff --git a/abs/core-testing/mythtv/stable/mythweb/PKGBUILD b/abs/core-testing/mythtv/stable/mythweb/PKGBUILD index 6474b01..d5ddefb 100644 --- a/abs/core-testing/mythtv/stable/mythweb/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythweb/PKGBUILD @@ -1,6 +1,6 @@  pkgname=mythweb  pkgver=0.21 -pkgrel=8 +pkgrel=9  pkgdesc="Web interface for MythTV's backend"  arch=('i686' 'x86_64')  url="http://www.mythtv.org" @@ -8,7 +8,7 @@ license=('GPL')  depends=("mythtv>=${pkgver}" 'lighttpd' 'php')  install=mythweb.install  source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2") -md5sums=('af20a78ac66719feddf9a39f1a799ded') +md5sums=('00ee70be781b9af5913f046525d79ab9')  groups=('mythtv-extras')  DOCROOT=/data/srv/httpd/htdocs/mythweb @@ -21,7 +21,7 @@ build() {  #   tar -zxvf $startdir/patch/icons.tar.gz  ### -   cp -r $startdir/src/mythplugins-$pkgver/$pkgname/* $startdir/pkg/$DOCROOT +   cp -r $startdir/src/mythplugins/$pkgname/* $startdir/pkg/$DOCROOT  #   cp $startdir/src/mythplugins-$pkgver/$pkgname/data/.htaccess $startdir/pkg/$DOCROOT     rm $startdir/pkg/srv/$DOCROOT/README     chown -R http:users $startdir/pkg/$DOCROOT diff --git a/abs/core-testing/ndiswrapper/PKGBUILD b/abs/core-testing/ndiswrapper/PKGBUILD index 927dc8c..9e4a0f1 100644 --- a/abs/core-testing/ndiswrapper/PKGBUILD +++ b/abs/core-testing/ndiswrapper/PKGBUILD @@ -1,29 +1,35 @@ -#$Id: PKGBUILD 7906 2008-08-05 07:01:51Z tpowa $ +#$Id: PKGBUILD 18549 2008-11-07 09:00:55Z tpowa $  #Maintainer: Tobias Powalowski <tpowa@archlinux.org>  pkgname=ndiswrapper -_kernver=2.6.26-ARCH +_kernver=2.6.27-ARCH  pkgver=1.53 -pkgrel=1 +pkgrel=3  pkgdesc="Module for NDIS (Windows Network Drivers) drivers supplied by vendors. For stock arch 2.6 kernel."  license=('GPL')  arch=(i686 x86_64)  url="http://ndiswrapper.sourceforge.net"  install="ndiswrapper.install" -depends=("ndiswrapper-utils=$pkgver" 'kernel26>=2.6.26-1' 'kernel26<2.6.27') -source=(http://downloads.sourceforge.net/sourceforge/ndiswrapper/ndiswrapper-$pkgver.tar.gz) +depends=("ndiswrapper-utils=$pkgver" 'kernel26>=2.6.27' 'kernel26<2.6.28') +source=(http://downloads.sourceforge.net/sourceforge/ndiswrapper/ndiswrapper-$pkgver.tar.gz +        kernel-2.6.27.patch +	ndiswrapper-CVE-2008-4395.patch) +md5sums=('393c6e6ab0803963148e18538601cdec' +         'cd09562c4afdbd20a0237a5e6d976b31' +         'b35e548a0c9eb1395f6f7b434a258ddf')  build()  { -  cd $startdir/src/ndiswrapper-$pkgver/driver -  make KVERS=$_kernver  -  make DESTDIR=$startdir/pkg KVERS=$_kernver install || return 1 -  rm $startdir/pkg/lib/modules/$_kernver/modules.* #wtf? +  cd $srcdir/ndiswrapper-$pkgver/driver +  patch -Np1 -i ../../kernel-2.6.27.patch || return 1 +  patch -Np3 -i ../../ndiswrapper-CVE-2008-4395.patch || return 1 +  make KVERS=$_kernver || return 1 +  make DESTDIR=$pkgdir KVERS=$_kernver install || return 1 +  rm $pkgdir/lib/modules/$_kernver/modules.* #wtf?    sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install    # move it to correct kernel directory -  mkdir -p $startdir/pkg/lib/modules/$_kernver/kernel/drivers/net/wireless/ndiswrapper -  mv $startdir/pkg/lib/modules/$_kernver/misc/* $startdir/pkg/lib/modules/$_kernver/kernel/drivers/net/wireless/ndiswrapper/ -  rm -r $startdir/pkg/lib/modules/$_kernver/misc/ +  mkdir -p $pkgdir/lib/modules/$_kernver/kernel/drivers/net/wireless/ndiswrapper +  mv $pkgdir/lib/modules/$_kernver/misc/* $pkgdir/lib/modules/$_kernver/kernel/drivers/net/wireless/ndiswrapper/ +  rm -r $pkgdir/lib/modules/$_kernver/misc/  } -md5sums=('393c6e6ab0803963148e18538601cdec') diff --git a/abs/core-testing/ndiswrapper/kernel-2.6.27.patch b/abs/core-testing/ndiswrapper/kernel-2.6.27.patch new file mode 100644 index 0000000..522dfe9 --- /dev/null +++ b/abs/core-testing/ndiswrapper/kernel-2.6.27.patch @@ -0,0 +1,116 @@ +diff -aur driver.old/iw_ndis.c driver/iw_ndis.c +--- driver.old/iw_ndis.c	2008-08-04 21:10:16.000000000 +0200 ++++ driver/iw_ndis.c	2008-08-04 21:30:12.000000000 +0200 +@@ -1015,7 +1015,7 @@ + 	return 0; + } +  +-static char *ndis_translate_scan(struct net_device *dev, char *event, ++static char *ndis_translate_scan(struct net_device *dev, struct iw_request_info *info, char *event, + 				 char *end_buf, void *item) + { + 	struct iw_event iwe; +@@ -1034,7 +1034,7 @@ + 	iwe.u.ap_addr.sa_family = ARPHRD_ETHER; + 	iwe.len = IW_EV_ADDR_LEN; + 	memcpy(iwe.u.ap_addr.sa_data, bssid->mac, ETH_ALEN); +-	event = iwe_stream_add_event(event, end_buf, &iwe, IW_EV_ADDR_LEN); ++	event = iwe_stream_add_event(info, event, end_buf, &iwe, IW_EV_ADDR_LEN); +  + 	/* add essid */ + 	memset(&iwe, 0, sizeof(iwe)); +@@ -1044,13 +1044,13 @@ + 		iwe.u.data.length = IW_ESSID_MAX_SIZE; + 	iwe.u.data.flags = 1; + 	iwe.len = IW_EV_POINT_LEN + iwe.u.data.length; +-	event = iwe_stream_add_point(event, end_buf, &iwe, bssid->ssid.essid); ++	event = iwe_stream_add_point(info, event, end_buf, &iwe, bssid->ssid.essid); +  + 	/* add protocol name */ + 	memset(&iwe, 0, sizeof(iwe)); + 	iwe.cmd = SIOCGIWNAME; + 	strncpy(iwe.u.name, network_type_to_name(bssid->net_type), IFNAMSIZ); +-	event = iwe_stream_add_event(event, end_buf, &iwe, IW_EV_CHAR_LEN); ++	event = iwe_stream_add_event(info, event, end_buf, &iwe, IW_EV_CHAR_LEN); +  + 	/* add mode */ + 	memset(&iwe, 0, sizeof(iwe)); +@@ -1061,7 +1061,7 @@ + 		iwe.u.mode = IW_MODE_INFRA; + 	else // if (bssid->mode == Ndis802_11AutoUnknown) + 		iwe.u.mode = IW_MODE_AUTO; +-	event = iwe_stream_add_event(event, end_buf, &iwe, IW_EV_UINT_LEN); ++	event = iwe_stream_add_event(info, event, end_buf, &iwe, IW_EV_UINT_LEN); +  + 	/* add freq */ + 	memset(&iwe, 0, sizeof(iwe)); +@@ -1076,7 +1076,7 @@ + 	/* convert from kHz to Hz */ + 	iwe.u.freq.e += 3; + 	iwe.len = IW_EV_FREQ_LEN; +-	event = iwe_stream_add_event(event, end_buf, &iwe, IW_EV_FREQ_LEN); ++	event = iwe_stream_add_event(info, event, end_buf, &iwe, IW_EV_FREQ_LEN); +  + 	/* add qual */ + 	memset(&iwe, 0, sizeof(iwe)); +@@ -1090,7 +1090,7 @@ + 	iwe.u.qual.noise = WL_NOISE; + 	iwe.u.qual.qual  = i; + 	iwe.len = IW_EV_QUAL_LEN; +-	event = iwe_stream_add_event(event, end_buf, &iwe, IW_EV_QUAL_LEN); ++	event = iwe_stream_add_event(info, event, end_buf, &iwe, IW_EV_QUAL_LEN); +  + 	/* add key info */ + 	memset(&iwe, 0, sizeof(iwe)); +@@ -1101,7 +1101,7 @@ + 		iwe.u.data.flags = IW_ENCODE_ENABLED | IW_ENCODE_NOKEY; + 	iwe.u.data.length = 0; + 	iwe.len = IW_EV_POINT_LEN; +-	event = iwe_stream_add_point(event, end_buf, &iwe, bssid->ssid.essid); ++	event = iwe_stream_add_point(info, event, end_buf, &iwe, bssid->ssid.essid); +  + 	/* add rate */ + 	memset(&iwe, 0, sizeof(iwe)); +@@ -1115,7 +1115,7 @@ + 		if (bssid->rates[i] & 0x7f) { + 			iwe.u.bitrate.value = ((bssid->rates[i] & 0x7f) * + 					       500000); +-			current_val = iwe_stream_add_value(event, current_val, ++			current_val = iwe_stream_add_value(info, event, current_val, + 							   end_buf, &iwe, + 							   IW_EV_PARAM_LEN); + 		} +@@ -1128,13 +1128,13 @@ + 	iwe.cmd = IWEVCUSTOM; + 	sprintf(buf, "bcn_int=%d", bssid->config.beacon_period); + 	iwe.u.data.length = strlen(buf); +-	event = iwe_stream_add_point(event, end_buf, &iwe, buf); ++	event = iwe_stream_add_point(info, event, end_buf, &iwe, buf); +  + 	memset(&iwe, 0, sizeof(iwe)); + 	iwe.cmd = IWEVCUSTOM; + 	sprintf(buf, "atim=%u", bssid->config.atim_window); + 	iwe.u.data.length = strlen(buf); +-	event = iwe_stream_add_point(event, end_buf, &iwe, buf); ++	event = iwe_stream_add_point(info, event, end_buf, &iwe, buf); +  + 	TRACE2("%d, %u", bssid->length, (unsigned int)sizeof(*bssid)); + 	if (bssid->length > sizeof(*bssid)) { +@@ -1155,7 +1155,7 @@ + 				memset(&iwe, 0, sizeof(iwe)); + 				iwe.cmd = IWEVGENIE; + 				iwe.u.data.length = ielen; +-				event = iwe_stream_add_point(event, end_buf, ++				event = iwe_stream_add_point(info, event, end_buf, + 							     &iwe, iep); + 			} + 			iep += ielen; +@@ -1236,7 +1236,7 @@ + 	TRACE2("%d", bssid_list->num_items); + 	cur_item = &bssid_list->bssid[0]; + 	for (i = 0; i < bssid_list->num_items; i++) { +-		event = ndis_translate_scan(dev, event, ++		event = ndis_translate_scan(dev, info, event, + 					    extra + IW_SCAN_MAX_DATA, cur_item); + 		cur_item = (struct ndis_wlan_bssid *)((char *)cur_item + + 						      cur_item->length);     diff --git a/abs/core-testing/ndiswrapper/ndiswrapper-CVE-2008-4395.patch b/abs/core-testing/ndiswrapper/ndiswrapper-CVE-2008-4395.patch new file mode 100644 index 0000000..53682e0 --- /dev/null +++ b/abs/core-testing/ndiswrapper/ndiswrapper-CVE-2008-4395.patch @@ -0,0 +1,86 @@ +diff --git a/ubuntu/ndiswrapper/iw_ndis.c b/ubuntu/ndiswrapper/iw_ndis.c +index b114ef6..01d3751 100644 +--- a/ubuntu/ndiswrapper/iw_ndis.c ++++ b/ubuntu/ndiswrapper/iw_ndis.c +@@ -47,12 +47,7 @@ int set_essid(struct ndis_device *wnd, const char *ssid, int ssid_len) + 	req.length = ssid_len; + 	if (ssid_len) + 		memcpy(&req.essid, ssid, ssid_len); +-	DBG_BLOCK(2) { +-		char buf[NDIS_ESSID_MAX_SIZE+1]; +-		memcpy(buf, ssid, ssid_len); +-		buf[ssid_len] = 0; +-		TRACE2("ssid = '%s'", buf); +-	} ++	TRACE2("ssid = '%.*s'", ssid_len, ssid); +  + 	res = mp_set(wnd, OID_802_11_SSID, &req, sizeof(req)); + 	if (res) { +@@ -125,7 +120,6 @@ static int iw_get_essid(struct net_device *dev, struct iw_request_info *info, + 		EXIT2(return -EOPNOTSUPP); + 	} + 	memcpy(extra, req.essid, req.length); +-	extra[req.length] = 0; + 	if (req.length > 0) + 		wrqu->essid.flags  = 1; + 	else +@@ -1000,7 +994,7 @@ static int iw_set_nick(struct net_device *dev, struct iw_request_info *info, +  + 	if (wrqu->data.length > IW_ESSID_MAX_SIZE || wrqu->data.length <= 0) + 		return -EINVAL; +-	memset(wnd->nick, 0, sizeof(wnd->nick)); ++	wnd->nick_len = wrqu->data.length; + 	memcpy(wnd->nick, extra, wrqu->data.length); + 	return 0; + } +@@ -1010,7 +1004,7 @@ static int iw_get_nick(struct net_device *dev, struct iw_request_info *info, + { + 	struct ndis_device *wnd = netdev_priv(dev); +  +-	wrqu->data.length = strlen(wnd->nick); ++	wrqu->data.length = wnd->nick_len; + 	memcpy(extra, wnd->nick, wrqu->data.length); + 	return 0; + } +diff --git a/ubuntu/ndiswrapper/ndis.h b/ubuntu/ndiswrapper/ndis.h +index 27ba99e..65d6b0b 100644 +--- a/ubuntu/ndiswrapper/ndis.h ++++ b/ubuntu/ndiswrapper/ndis.h +@@ -878,6 +878,7 @@ struct ndis_device { + 	unsigned long scan_timestamp; + 	struct encr_info encr_info; + 	char nick[IW_ESSID_MAX_SIZE]; ++	size_t nick_len; + 	struct ndis_essid essid; + 	struct auth_encr_capa capa; + 	enum ndis_infrastructure_mode infrastructure_mode; +diff --git a/ubuntu/ndiswrapper/proc.c b/ubuntu/ndiswrapper/proc.c +index fd5f433..6feff23 100644 +--- a/ubuntu/ndiswrapper/proc.c ++++ b/ubuntu/ndiswrapper/proc.c +@@ -97,10 +97,8 @@ static int procfs_read_ndis_encr(char *page, char **start, off_t off, + 	p += sprintf(p, "\n"); +  + 	res = mp_query(wnd, OID_802_11_SSID, &essid, sizeof(essid)); +-	if (!res) { +-		essid.essid[essid.length] = '\0'; +-		p += sprintf(p, "essid=%s\n", essid.essid); +-	} ++	if (!res) ++		p += sprintf(p, "essid=%.*s\n", essid.length, essid.essid); + 	res = mp_query_int(wnd, OID_802_11_ENCRYPTION_STATUS, &encr_status); + 	if (!res) { + 		typeof(&wnd->encr_info.keys[0]) tx_key; +diff --git a/ubuntu/ndiswrapper/wrapndis.c b/ubuntu/ndiswrapper/wrapndis.c +index f6e5d46..35ef1cd 100644 +--- a/ubuntu/ndiswrapper/wrapndis.c ++++ b/ubuntu/ndiswrapper/wrapndis.c +@@ -2028,7 +2028,7 @@ static wstdcall NTSTATUS NdisAddDevice(struct driver_object *drv_obj, + 	wnd->attributes = 0; + 	wnd->dma_map_count = 0; + 	wnd->dma_map_addr = NULL; +-	wnd->nick[0] = 0; ++	wnd->nick_len = 0; + 	init_timer(&wnd->hangcheck_timer); + 	wnd->scan_timestamp = 0; + 	init_timer(&wnd->iw_stats_timer); diff --git a/abs/core-testing/ndiswrapper/ndiswrapper.install b/abs/core-testing/ndiswrapper/ndiswrapper.install index 696f2d4..06bf5c9 100644 --- a/abs/core-testing/ndiswrapper/ndiswrapper.install +++ b/abs/core-testing/ndiswrapper/ndiswrapper.install @@ -2,7 +2,7 @@  post_install()  {    ndiswrapper -m -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -ae -v $KERNEL_VERSION > /dev/null 2>&1   } @@ -11,14 +11,14 @@ post_install()  post_upgrade()  {    ndiswrapper -m -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -ae -v $KERNEL_VERSION > /dev/null 2>&1   }  # arg 1:  the old package version  post_remove()  { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -ae -v $KERNEL_VERSION > /dev/null 2>&1  } diff --git a/abs/core-testing/nvidia-71xx/PKGBUILD b/abs/core-testing/nvidia-71xx/PKGBUILD index e879abe..af98000 100644 --- a/abs/core-testing/nvidia-71xx/PKGBUILD +++ b/abs/core-testing/nvidia-71xx/PKGBUILD @@ -3,8 +3,8 @@  pkgname=nvidia-71xx  pkgver=71.86.06 -_kernver='2.6.26-ARCH' -pkgrel=3 +_kernver='2.6.27-ARCH' +pkgrel=4  pkgdesc="NVIDIA legacy drivers for kernel26, 71xx branch"  arch=(i686 x86_64)  [ "$CARCH" = "i686"   ] && ARCH=x86 diff --git a/abs/core-testing/nvidia-71xx/nvidia-71xx.install b/abs/core-testing/nvidia-71xx/nvidia-71xx.install index 18b7435..9956ea8 100644 --- a/abs/core-testing/nvidia-71xx/nvidia-71xx.install +++ b/abs/core-testing/nvidia-71xx/nvidia-71xx.install @@ -1,6 +1,6 @@  # arg 1:  the new package version  post_install() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -v $KERNEL_VERSION  > /dev/null 2>&1		   } @@ -13,7 +13,7 @@ post_upgrade() {  # arg 1:  the old package version  post_remove() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -v $KERNEL_VERSION	 > /dev/null 2>&1    rmmod nvidia >/dev/null 2>&1  } diff --git a/abs/core-testing/nvidia-96xx-utils/PKGBUILD b/abs/core-testing/nvidia-96xx-utils/PKGBUILD index b745a3c..749dc08 100644 --- a/abs/core-testing/nvidia-96xx-utils/PKGBUILD +++ b/abs/core-testing/nvidia-96xx-utils/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 5959 2008-07-21 20:38:14Z thomas $ +# $Id: PKGBUILD 18827 2008-11-09 14:01:28Z jgc $  # Maintainer: Tobias Powalowski <tpowa@archlinux.org>  # Contributor: James Rayner <iphitus@gmail.com>  pkgname=nvidia-96xx-utils -pkgver=96.43.07 +pkgver=96.43.09  pkgrel=1  pkgdesc="NVIDIA legacy drivers utilities and libraries, 96xx branch."  arch=(i686 x86_64) @@ -16,9 +16,9 @@ conflicts=('libgl' 'libgl-dri' 'ati-fglrx-utils' 'nvidia-utils' \             'nvidia-71xx-utils' 'nvidia-legacy-utils')  provides=('libgl')  install=nvidia-96xx.install -source=(http://us.download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run \ +source=(http://download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run \          supported-cards.txt) -md5sums=('8fa2b7c5e4629850d4bd33033ec46166' +md5sums=('758c739114b81ea2cb7da7c22ab80a7e'           '6363d7e494d33729609540088e33e73f')  [ "$CARCH" = "x86_64" ] && md5sums=('c03bd2469292d91dde8767af1418c4e1'           '6363d7e494d33729609540088e33e73f') @@ -31,14 +31,14 @@ build()    sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run --extract-only    cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/ -  mkdir -p $startdir/pkg/usr/{lib,bin,share/applications,share/pixmaps,man/man1} +  mkdir -p $startdir/pkg/usr/{lib,bin,share/applications,share/pixmaps,share/man/man1}    mkdir -p $startdir/pkg/usr/lib/xorg/modules/{extensions,drivers}    mkdir -p $startdir/pkg/usr/share/licenses/nvidia-96xx/    install lib/{libGLcore.so.${pkgver},libGL.so.${pkgver},libnvidia-cfg.so.${pkgver},tls/libnvidia-tls.so.${pkgver}} \         $startdir/pkg/usr/lib/ || return 1 -  install -m644 share/man/man1/* $startdir/pkg/usr/man/man1/ || return 1 -  rm $startdir/pkg/usr/man/man1/nvidia-installer.1.gz || return 1 +  install -m644 share/man/man1/* $startdir/pkg/usr/share/man/man1/ || return 1 +  rm $startdir/pkg/usr/share/man/man1/nvidia-installer.1.gz || return 1    install X11R6/lib/libXv* $startdir/pkg/usr/lib/ || return 1    install -m644 share/applications/nvidia-settings.desktop $startdir/pkg/usr/share/applications/ || return 1    # fix nvidia .desktop file diff --git a/abs/core-testing/nvidia-96xx/PKGBUILD b/abs/core-testing/nvidia-96xx/PKGBUILD index 3ccbbfe..0041d95 100644 --- a/abs/core-testing/nvidia-96xx/PKGBUILD +++ b/abs/core-testing/nvidia-96xx/PKGBUILD @@ -1,26 +1,23 @@ -# $Id: PKGBUILD 14780 2008-10-10 15:35:36Z thomas $ +# $Id: PKGBUILD 19057 2008-11-14 11:41:03Z pierre $  # Maintainer : Tobias Powalowski <tpowa@archlinux.org>  pkgname=nvidia-96xx -pkgver=96.43.07 -_kernver='2.6.26-ARCH' -pkgrel=6 +pkgver=96.43.09 +_kernver='2.6.27-ARCH' +pkgrel=1  pkgdesc="NVIDIA legacy drivers for kernel26, 96xx branch"  arch=(i686 x86_64)  license=('custom:NVIDIA')  [ "$CARCH" = "i686"   ] && ARCH=x86  [ "$CARCH" = "x86_64" ] && ARCH=x86_64  url="http://www.nvidia.com/" -depends=('kernel26>=2.6.26' 'kernel26<2.6.28' 'nvidia-96xx-utils') +depends=('kernel26>=2.6.27' 'kernel26<2.6.28' 'nvidia-96xx-utils')  conflicts=('nvidia' 'nvidia-71xx' 'nvidia-legacy')  install=nvidia-96xx.install  license=('custom') -source=(http://us.download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run -        NVIDIA_173.14.12_2.6.27.patch) -md5sums=('8fa2b7c5e4629850d4bd33033ec46166' -         'cd4a68b5a88be6976b90cd0df6bfe89e') -[ "$CARCH" = "x86_64" ] && md5sums=('c03bd2469292d91dde8767af1418c4e1' -                                    'cd4a68b5a88be6976b90cd0df6bfe89e') +source=(http://download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run) +md5sums=('758c739114b81ea2cb7da7c22ab80a7e') +[ "$CARCH" = "x86_64" ] && md5sums=('c03bd2469292d91dde8767af1418c4e1')  build()  { @@ -29,9 +26,6 @@ build()    sh NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run --extract-only    cd NVIDIA-Linux-$ARCH-${pkgver}-pkg0 -  # Any extra patches are applied in here... -  patch -Np1 -i ../NVIDIA_173.14.12_2.6.27.patch || return 1 -    cd usr/src/nv/    ln -s Makefile.kbuild Makefile    make SYSSRC=/lib/modules/$_kernver/build module || return 1 diff --git a/abs/core-testing/nvidia-96xx/nvidia-96xx.install b/abs/core-testing/nvidia-96xx/nvidia-96xx.install index dbbec39..dfded65 100644 --- a/abs/core-testing/nvidia-96xx/nvidia-96xx.install +++ b/abs/core-testing/nvidia-96xx/nvidia-96xx.install @@ -1,6 +1,6 @@  # arg 1:  the new package version  post_install() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -v $KERNEL_VERSION  > /dev/null 2>&1		   } @@ -13,7 +13,7 @@ post_upgrade() {  # arg 1:  the old package version  post_remove() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -v $KERNEL_VERSION	 > /dev/null 2>&1	   } diff --git a/abs/core-testing/nvidia-utils/PKGBUILD b/abs/core-testing/nvidia-utils/PKGBUILD index d1058c4..384086a 100644 --- a/abs/core-testing/nvidia-utils/PKGBUILD +++ b/abs/core-testing/nvidia-utils/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 7914 2008-08-05 08:01:00Z tpowa $ +# $Id: PKGBUILD 19054 2008-11-14 11:36:20Z pierre $  # Maintainer: Thomas Baechler <thomas@archlinux.org>  # Contributor: James Rayner <iphitus@gmail.com>  pkgname=nvidia-utils -pkgver=173.14.12 -pkgrel=5 +pkgver=177.82 +pkgrel=1  pkgdesc="NVIDIA drivers utilities and libraries."  arch=('i686' 'x86_64')  [ "$CARCH" = "i686"   ] && ARCH=x86 	  @@ -18,9 +18,9 @@ license=('custom')  install=nvidia.install  source=(http://us.download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run \          supported-cards.txt) -md5sums=('76b8eba1b14fc273a1a4044705b0aa56' +md5sums=('882f34a662f0175682fdc4a9bec909ba'           'bf8d68d66757096c3ab17653230bf2a8') -[ "$CARCH" = "x86_64" ] && md5sums=('8675e4ca65033b343c8c77b2ce82e71d' +[ "$CARCH" = "x86_64" ] && md5sums=('6a6d04411529c8d7616deee3d68c5346'                          	    'bf8d68d66757096c3ab17653230bf2a8')  options=(docs !strip) diff --git a/abs/core-testing/nvidia/PKGBUILD b/abs/core-testing/nvidia/PKGBUILD index 0814d77..b1a5f33 100644 --- a/abs/core-testing/nvidia/PKGBUILD +++ b/abs/core-testing/nvidia/PKGBUILD @@ -1,22 +1,22 @@ -# $Id: PKGBUILD 8443 2008-08-11 05:11:22Z tpowa $ +# $Id: PKGBUILD 19051 2008-11-14 11:33:00Z pierre $  # Maintainer : Thomas Baechler <thomas@archlinux.org>  pkgname=nvidia -pkgver=173.14.12 -_kernver='2.6.26-ARCH' -pkgrel=4 +pkgver=177.82 +_kernver='2.6.27-ARCH' +pkgrel=1  pkgdesc="NVIDIA drivers for kernel26."  arch=('i686' 'x86_64')  [ "$CARCH" = "i686"   ] && ARCH=x86  [ "$CARCH" = "x86_64" ] && ARCH=x86_64  url="http://www.nvidia.com/" -depends=('kernel26>=2.6.26.2-1' 'kernel26<2.6.27' 'nvidia-utils') +depends=('kernel26>=2.6.27' 'kernel26<2.6.28' 'nvidia-utils')  conflicts=('nvidia-96xx' 'nvidia-71xx' 'nvidia-legacy')  license=('custom')  install=nvidia.install  source=(http://us.download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run) -md5sums=('76b8eba1b14fc273a1a4044705b0aa56') -[ "$CARCH" = "x86_64" ] && md5sums=('8675e4ca65033b343c8c77b2ce82e71d') +md5sums=('882f34a662f0175682fdc4a9bec909ba') +[ "$CARCH" = "x86_64" ] && md5sums=('6a6d04411529c8d7616deee3d68c5346')  build()  { diff --git a/abs/core-testing/nvidia/nvidia.install b/abs/core-testing/nvidia/nvidia.install index dbbec39..dfded65 100644 --- a/abs/core-testing/nvidia/nvidia.install +++ b/abs/core-testing/nvidia/nvidia.install @@ -1,6 +1,6 @@  # arg 1:  the new package version  post_install() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -v $KERNEL_VERSION  > /dev/null 2>&1		   } @@ -13,7 +13,7 @@ post_upgrade() {  # arg 1:  the old package version  post_remove() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -v $KERNEL_VERSION	 > /dev/null 2>&1	   } diff --git a/abs/core-testing/openexr/PKGBUILD b/abs/core-testing/openexr/PKGBUILD index 1c92fbb..c71f10b 100644 --- a/abs/core-testing/openexr/PKGBUILD +++ b/abs/core-testing/openexr/PKGBUILD @@ -1,24 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 17480 2008-10-30 16:52:29Z pierre $  # Maintainer: Tobias Powalowski <tpowa@archlinux.org>  pkgname=openexr -pkgver=1.4.0a -pkgrel=2 -depends=('mesa' 'libxext' 'libxft' 'fltk') -makedepends=('xproto') +pkgver=1.6.1 +pkgrel=1 +depends=('zlib' 'ilmbase')  pkgdesc="openexr library for EXR images"  arch=(i686 x86_64) -options=(!libtool) -source=(http://savannah.nongnu.org/download/$pkgname/$pkgname-$pkgver.tar.gz gcc43.patch) +options=('!libtool') +license=('custom') +source=("http://savannah.nongnu.org/download/$pkgname/$pkgname-$pkgver.tar.gz" 'gcc43.patch')  url="http://www.openexr.org" +md5sums=('11951f164f9c872b183df75e66de145a' '7c83ee3d69ad688142e7de63cb68e70a')  build() { -  cd $startdir/src/$pkgname-1.4.0 -   # gcc4 fix -  #patch -Np1 -i ../openexr-gcc4.patch -  patch -Np1 -i ../gcc43.patch +  cd $startdir/src/$pkgname-$pkgver +  patch -p1 -i $srcdir/gcc43.patch || return 1    ./configure --prefix=/usr    make || return 1    make DESTDIR=$startdir/pkg install +  install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING  } -md5sums=('d0a4b9a930c766fa51561b05fb204afe' 'd972a8ea4296762ea30a3dc7de2208ac') diff --git a/abs/core-testing/openexr/gcc43.patch b/abs/core-testing/openexr/gcc43.patch index 08ae699..3624872 100644 --- a/abs/core-testing/openexr/gcc43.patch +++ b/abs/core-testing/openexr/gcc43.patch @@ -1,21 +1,22 @@ ---- a/exrenvmap/main.cpp -+++ b/exrenvmap/main.cpp -@@ -46,6 +46,8 @@ +diff -Nura openexr-1.6.1/exrenvmap/main.cpp openexr-1.6.1.new/exrenvmap/main.cpp +--- openexr-1.6.1/exrenvmap/main.cpp	2007-04-25 03:07:51.000000000 +0200 ++++ openexr-1.6.1.new/exrenvmap/main.cpp	2008-10-30 17:18:13.000000000 +0100 +@@ -45,6 +45,7 @@ + #include <iostream>   #include <exception>   #include <stdlib.h> ++#include <string.h> -+#include <cstring> -+   using namespace Imf;   using namespace std; -  ---- a/exrmaketiled/main.cpp -+++ b/exrmaketiled/main.cpp -@@ -47,6 +47,8 @@ +diff -Nura openexr-1.6.1/exrmaketiled/main.cpp openexr-1.6.1.new/exrmaketiled/main.cpp +--- openexr-1.6.1/exrmaketiled/main.cpp	2007-04-25 03:08:45.000000000 +0200 ++++ openexr-1.6.1.new/exrmaketiled/main.cpp	2008-10-30 17:18:40.000000000 +0100 +@@ -46,6 +46,7 @@ + #include <exception>   #include <string>   #include <stdlib.h> ++#include <string.h> -+#include <cstring> -+   using namespace Imf; - using namespace std;  + using namespace std; diff --git a/abs/core-testing/openssh/PKGBUILD b/abs/core-testing/openssh/PKGBUILD index 523544f..3313676 100644 --- a/abs/core-testing/openssh/PKGBUILD +++ b/abs/core-testing/openssh/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 3735 2008-06-30 20:01:30Z andyrtr $ +# $Id: PKGBUILD 20515 2008-12-05 12:08:00Z allan $  # Maintainer: Aaron Griffin <aaron@archlinux.org>  # Contributor: judd <jvinet@zeroflux.org>  pkgname=openssh -pkgver=5.0p1 +pkgver=5.1p1  pkgrel=2  #_gsskexver=20080404  pkgdesc='A Secure SHell server/client' @@ -15,10 +15,8 @@ depends=('openssl>=0.9.8g' 'zlib' 'pam' 'tcp_wrappers' 'heimdal>=1.2-1')  source=(ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/$pkgname-$pkgver.tar.gz          sshd sshd.confd sshd.pam)          #http://www.sxw.org.uk/computing/patches/$pkgname-$pkgver-gsskex-$_gsskexver.patch -md5sums=('1f1dfaa775f33dd3328169de9bdc292a' -         'd9ee5e0a0d143689b3d6f11454a2a892' -         'e2cea70ac13af7e63d40eb04415eacd5' -         '1c7c2ea8734ec7e3ca58d820634dc73a') +md5sums=('03f2d0c1b5ec60d4ac9997a146d2faec' 'd9ee5e0a0d143689b3d6f11454a2a892' +         'e2cea70ac13af7e63d40eb04415eacd5' '1c7c2ea8734ec7e3ca58d820634dc73a')  build() {    cd $startdir/src/$pkgname-$pkgver @@ -49,13 +47,17 @@ build() {    install -D -m755 contrib/ssh-copy-id $startdir/pkg/usr/bin/ssh-copy-id    install -D -m644 contrib/ssh-copy-id.1  $startdir/pkg/usr/man/man1/ssh-copy-id.1 -  #adjust our config files +  i# sshd_config    sed -i \      -e 's|^#ListenAddress 0.0.0.0|ListenAddress 0.0.0.0|g' \      -e 's|^#UsePAM no|UsePAM yes|g' \      -e 's|^#ChallengeResponseAuthentication yes|ChallengeResponseAuthentication no|g' \      $startdir/pkg/etc/ssh/sshd_config -  sed -i -e 's|^# Host \*|Host *|g' $startdir/pkg/etc/ssh/ssh_config    echo "HashKnownHosts yes" >>  $startdir/pkg/etc/ssh/ssh_config    echo "StrictHostKeyChecking ask" >>  $startdir/pkg/etc/ssh/ssh_config + +  #ssh_config +  sed -i \ +    -e 's|^# Host \*|Host *|g' \ +    $startdir/pkg/etc/ssh/ssh_config  } diff --git a/abs/core-testing/openssl/PKGBUILD b/abs/core-testing/openssl/PKGBUILD index ec3fe68..c52c9aa 100644 --- a/abs/core-testing/openssl/PKGBUILD +++ b/abs/core-testing/openssl/PKGBUILD @@ -1,28 +1,30 @@ -# $Id: PKGBUILD 9446 2008-08-17 18:04:42Z pierre $ +# $Id: PKGBUILD 21679 2008-12-14 17:14:03Z pierre $  # Maintainer: Pierre Schmitz <pierre@archlinux.de> +  pkgname=openssl -pkgver=0.9.8h -pkgrel=13 +pkgver=0.9.8i +pkgrel=4  pkgdesc='The Open Source toolkit for Secure Sockets Layer and Transport Layer Security'  arch=('i686' 'x86_64')  url='http://www.openssl.org'  license=('custom:BSD') -groups=('base') -depends=('glibc') +depends=('zlib' 'perl') +optdepends=('ca-certificates')  options=('!makeflags')  source=("http://www.openssl.org/source/${pkgname}-${pkgver}.tar.gz" \ -        'http://www.linuxfromscratch.org/patches/blfs/svn/openssl-0.9.8g-fix_manpages-1.patch') -md5sums=('7d3d41dafc76cf2fcb5559963b5783b3' +        'http://www.linuxfromscratch.org/patches/blfs/svn/openssl-0.9.8i-fix_manpages-1.patch') +md5sums=('561e00f18821c74b2b86c8c7786f9d8b'           '04a6a88c2ee4badd4f8649792b73eaf3')  build() { -	cd $startdir/src/$pkgname-$pkgver +	cd $srcdir/$pkgname-$pkgver -	patch -p1 -i ../openssl-0.9.8g-fix_manpages-1.patch  || return 1 -	./config --prefix=/usr --openssldir=/etc/ssl shared +	patch -p1 -i $srcdir/openssl-0.9.8i-fix_manpages-1.patch  || return 1 +	./config --prefix=/usr --openssldir=/etc/ssl shared zlib-dynamic -Wa,--noexecstack  	make || return 1 -	make INSTALL_PREFIX=$startdir/pkg MANDIR=/usr/share/man install +	make test  || return 1 +	make INSTALL_PREFIX=$pkgdir MANDIR=/usr/share/man install -	install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE +	install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE  } diff --git a/abs/core-testing/pam/PKGBUILD b/abs/core-testing/pam/PKGBUILD index 4bdca6a..0750e52 100644 --- a/abs/core-testing/pam/PKGBUILD +++ b/abs/core-testing/pam/PKGBUILD @@ -1,22 +1,23 @@ -# $Id: PKGBUILD 3761 2008-06-30 20:27:30Z andyrtr $ +# $Id: PKGBUILD 17251 2008-10-27 08:14:27Z jgc $  # Maintainer: judd <jvinet@zeroflux.org>  pkgname=pam -pkgver=1.0.1 -pkgrel=11 +pkgver=1.0.2 +pkgrel=2  pkgdesc="PAM (Pluggable Authentication Modules) library"  arch=(i686 x86_64)  license=('GPL2')  url="http://www.kernel.org/pub/linux/libs/pam/"  groups=('base')  depends=('glibc' 'db>=4.7' 'cracklib') +makedepends=('flex')  backup=(etc/security/{access.conf,group.conf,limits.conf,namespace.conf,namespace.init,pam_env.conf,time.conf} etc/pam.d/other etc/default/passwd etc/environment)  source=(http://www.kernel.org/pub/linux/libs/pam/library/Linux-PAM-$pkgver.tar.bz2 \ -        ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2/pam_unix2-2.1.tar.bz2 \ +        ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2/pam_unix2-2.6.tar.bz2 \          other)  options=('!libtool' '!emptydirs') -md5sums=('1c75f81bd44c5da93014992820917847' -         '08d3bc1940897b5dfcbe2f51dd979ad0' -         '6e6c8719e5989d976a14610f340bd33a') +md5sums=('fc5e35645b75befae28c88b711b28ffb' +         'e2788389a6c59224110a45fcff30e02b' +	 '6e6c8719e5989d976a14610f340bd33a')  build() {    cd $startdir/src/Linux-PAM-$pkgver @@ -26,7 +27,7 @@ build() {    install -D -m644 ../other $startdir/pkg/etc/pam.d/other    # build pam_unix2 module    # source ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2 -  cd $startdir/src/pam_unix2-2.1 +  cd $startdir/src/pam_unix2-2.6    ./configure    make || return 1    make DESTDIR=$startdir/pkg install diff --git a/abs/core-testing/pango/PKGBUILD b/abs/core-testing/pango/PKGBUILD index 5284f02..afa7a8f 100644 --- a/abs/core-testing/pango/PKGBUILD +++ b/abs/core-testing/pango/PKGBUILD @@ -1,24 +1,24 @@ -# $Id: PKGBUILD 4025 2008-07-02 18:01:45Z jgc $  +# $Id: PKGBUILD 22043 2008-12-21 12:14:05Z jgc $   # Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=pango -pkgver=1.20.5 +pkgver=1.22.4  pkgrel=1  pkgdesc="A library for layout and rendering of text"  arch=(i686 x86_64)  license=('LGPL') -depends=('glib2>=2.16.4' 'cairo>=1.6.4' 'libxft>=2.1.12' 'libthai>=0.1.9') +depends=('glib2>=2.18.3' 'cairo>=1.8.6' 'libxft>=2.1.13' 'libthai>=0.1.9')  makedepends=('pkgconfig' 'libxt')  options=('!libtool' '!emptydirs')  install=pango.install -source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.20/${pkgname}-${pkgver}.tar.bz2) -url="http://www.gtk.org/" -md5sums=('052b60a12f6b2eb4f251ab961f2b2b84') +source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.22/${pkgname}-${pkgver}.tar.bz2) +url="http://www.pango.org/" +md5sums=('7c3f3748052799746d73c6d3a0cc1205')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr --sysconfdir=/etc \ -              --localstatedir=/var --without-qt || return 1 +              --localstatedir=/var || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/core-testing/pango/bgo563356.patch b/abs/core-testing/pango/bgo563356.patch new file mode 100644 index 0000000..226fd0c --- /dev/null +++ b/abs/core-testing/pango/bgo563356.patch @@ -0,0 +1,305 @@ +diff -aur old/ChangeLog new/ChangeLog +--- old/ChangeLog	2008-12-06 14:35:33.037390818 +0800 ++++ new/ChangeLog	2008-12-06 14:35:11.475339336 +0800 +@@ -1,3 +1,39 @@ ++2008-12-05  Behdad Esfahbod  <behdad@gnome.org> ++ ++	Bug 563356 – The input area of firefox and the blank width after text ++	in gnome-menu was stretched too wide, under pango-1.22.3 ++ ++	* docs/tmpl/fonts.sgml: ++	* pango/pango-impl-utils.h: ++	* pango/pangocairo-atsuifont.c ++	(pango_cairo_atsui_font_create_metrics_for_context): ++	* pango/pangocairo-win32font.c ++	(pango_cairo_win32_font_create_metrics_for_context): ++	* pango/pangofc-font.c (pango_fc_font_create_metrics_for_context): ++	For approximate_char_width calculation take each char's width into ++	account.  That is, do a weighted average instead of uniform average. ++	g_unichar_iszerowidth() chars count as 0, g_unichar_iswide() chars ++	count 2, and the rest count as 1.  Pretty much wcwidth() behavior. ++	See bug report for rationale. ++ ++2008-11-28  Behdad Esfahbod  <behdad@gnome.org> ++ ++	Bug 562574 – Pangocariowin32 is leaking every cairo font it ever ++	creates ++ ++	* pango/pangocairo-atsuifont.c (pango_cairo_atsui_font_finalize): ++	* pango/pangocairo-win32font.c (pango_cairo_win32_font_finalize): ++	Finalize shared pangocairo font resources.  Oops! ++ ++	* pango/pangocairo-font.c (_pango_cairo_font_private_finalize): ++	Protect against multiple calls to finalize.  This is practiced by the ++	pangocairo-fcfont when a font is shutdown and then finalized. ++ ++2008-11-26  Behdad Esfahbod  <behdad@gnome.org> ++ ++	* examples/cairotwisted.c (parametrize_path), (point_on_path): ++	Handle close_path correctly. ++ + 2008-11-23  Behdad Esfahbod  <behdad@gnome.org> +  + 	* === Released 1.22.3 === +diff -aur old/docs/tmpl/fonts.sgml new/docs/tmpl/fonts.sgml +--- old/docs/tmpl/fonts.sgml	2008-12-06 14:35:11.450807479 +0800 ++++ new/docs/tmpl/fonts.sgml	2008-12-06 14:34:53.771786070 +0800 +@@ -441,7 +441,10 @@ + @descent: the distance from the baseline to the lowest point of the glyphs of + 	 the font. This is positive in practically all fonts. + @approximate_char_width: approximate average width of the regular glyphs of +-         the font. ++         the font.  Note that for this calculation, East Asian characters ++	 (those passing g_unichar_iswide()) are counted as double-width. ++	 This produces a more uniform value for this measure across languages ++	 and results in more uniform and more expected UI sizes. + @approximate_digit_width: approximate average width of the glyphs for digits +          of the font. + @underline_position: position of the underline. This is normally negative. +diff -aur old/examples/cairotwisted.c new/examples/cairotwisted.c +--- old/examples/cairotwisted.c	2008-12-06 14:35:32.900725834 +0800 ++++ new/examples/cairotwisted.c	2008-12-06 14:35:11.264059243 +0800 +@@ -216,7 +216,7 @@ + parametrize_path (cairo_path_t *path) + { +   int i; +-  cairo_path_data_t *data, current_point; ++  cairo_path_data_t *data, last_move_to, current_point; +   parametrization_t *parametrization; +  +   parametrization = malloc (path->num_data * sizeof (parametrization[0])); +@@ -226,8 +226,13 @@ +     parametrization[i] = 0.0; +     switch (data->header.type) { +     case CAIRO_PATH_MOVE_TO: ++	last_move_to = data[1]; + 	current_point = data[1]; + 	break; ++    case CAIRO_PATH_CLOSE_PATH: ++	/* Make it look like it's a line_to to last_move_to */ ++	data = (&last_move_to) - 1; ++	/* fall through */ +     case CAIRO_PATH_LINE_TO: + 	parametrization[i] = two_points_distance (¤t_point, &data[1]); + 	current_point = data[1]; +@@ -245,8 +250,6 @@ +  + 	current_point = data[3]; + 	break; +-    case CAIRO_PATH_CLOSE_PATH: +-	break; +     default: + 	g_assert_not_reached (); +     } +@@ -320,7 +323,7 @@ + { +   int i; +   double ratio, the_y = *y, the_x = *x, dx, dy; +-  cairo_path_data_t *data, current_point; ++  cairo_path_data_t *data, last_move_to, current_point; +   cairo_path_t *path = param->path; +   parametrization_t *parametrization = param->parametrization; +  +@@ -333,6 +336,7 @@ +     switch (data->header.type) { +     case CAIRO_PATH_MOVE_TO: + 	current_point = data[1]; ++        last_move_to = data[1]; + 	break; +     case CAIRO_PATH_LINE_TO: + 	current_point = data[1]; +@@ -352,6 +356,10 @@ +  +   case CAIRO_PATH_MOVE_TO: +       break; ++  case CAIRO_PATH_CLOSE_PATH: ++      /* Make it look like it's a line_to to last_move_to */ ++      data = (&last_move_to) - 1; ++      /* fall through */ +   case CAIRO_PATH_LINE_TO: +       { + 	ratio = the_x / parametrization[i]; +@@ -424,8 +432,6 @@ + 	*y +=  dx * ratio; +       } +       break; +-  case CAIRO_PATH_CLOSE_PATH: +-      break; +   default: +       g_assert_not_reached (); +   } +diff -aur old/pango/pango-impl-utils.h new/pango/pango-impl-utils.h +--- old/pango/pango-impl-utils.h	2008-12-06 14:35:22.291559359 +0800 ++++ new/pango/pango-impl-utils.h	2008-12-06 14:35:03.550729660 +0800 +@@ -23,6 +23,7 @@ + #ifndef __PANGO_IMPL_UTILS_H__ + #define __PANGO_IMPL_UTILS_H__ +  ++#include <glib.h> + #include <glib-object.h> + #include <pango/pango.h> +  +@@ -92,6 +93,36 @@ + 			       PangoRectangle   *ink_rect, + 			       PangoRectangle   *logical_rect); +  ++ ++/* We define these functions static here because we don't want to add public API ++ * for them (if anything, it belongs to glib, but glib found it trivial enough ++ * not to add API for).  At some point metrics calculations will be ++ * centralized and this mess can be minimized.  Or so I hope. ++ */ ++ ++static inline G_GNUC_UNUSED int ++pango_unichar_width (gunichar c) ++{ ++  return G_UNLIKELY (g_unichar_iszerowidth (c)) ? 0 : ++	   G_UNLIKELY (g_unichar_iswide (c)) ? 2 : 1; ++} ++ ++static G_GNUC_UNUSED glong ++pango_utf8_strwidth (const gchar *p) ++{ ++  glong len = 0; ++  g_return_val_if_fail (p != NULL, 0); ++ ++  while (*p) ++    { ++      len += pango_unichar_width (g_utf8_get_char (p)); ++      p = g_utf8_next_char (p); ++    } ++ ++  return len; ++} ++ ++ + G_END_DECLS +  + #endif /* __PANGO_IMPL_UTILS_H__ */ +diff -aur old/pango/pangocairo-atsuifont.c new/pango/pangocairo-atsuifont.c +--- old/pango/pangocairo-atsuifont.c	2008-12-06 14:35:23.464057615 +0800 ++++ new/pango/pangocairo-atsuifont.c	2008-12-06 14:35:04.914061436 +0800 +@@ -24,6 +24,7 @@ +  + #import <Cocoa/Cocoa.h> +  ++#include "pango-impl-utils.h" + #include "pangoatsui-private.h" + #include "pangocairo.h" + #include "pangocairo-private.h" +@@ -148,7 +149,7 @@ +   pango_layout_set_text (layout, sample_str, -1); +   pango_layout_get_extents (layout, NULL, &extents); +  +-  metrics->approximate_char_width = extents.width / g_utf8_strlen (sample_str, -1); ++  metrics->approximate_char_width = extents.width / pango_utf8_strwidth (sample_str); +  +   pango_layout_set_text (layout, "0123456789", -1); +   metrics->approximate_digit_width = max_glyph_width (layout); +@@ -174,6 +175,10 @@ + static void + pango_cairo_atsui_font_finalize (GObject *object) + { ++  PangoCairoATSUIFont *cafont = (PangoCairoATSUIFont *) object; ++ ++  _pango_cairo_font_private_finalize (&cafont->cf_priv); ++ +   G_OBJECT_CLASS (pango_cairo_atsui_font_parent_class)->finalize (object); + } +  +@@ -191,7 +196,7 @@ + } +  + static void +-pango_cairo_atsui_font_init (PangoCairoATSUIFont *cafont) ++pango_cairo_atsui_font_init (PangoCairoATSUIFont *cafont G_GNUC_UNUSED) + { + } +  +diff -aur old/pango/pangocairo-fcfont.c new/pango/pangocairo-fcfont.c +--- old/pango/pangocairo-fcfont.c	2008-12-06 14:35:22.840724772 +0800 ++++ new/pango/pangocairo-fcfont.c	2008-12-06 14:35:04.294060844 +0800 +@@ -88,7 +88,7 @@ + static void + pango_cairo_fc_font_finalize (GObject *object) + { +-  PangoCairoFcFont *cffont = (PangoCairoFcFont *) (object); ++  PangoCairoFcFont *cffont = (PangoCairoFcFont *) object; +  +   _pango_cairo_font_private_finalize (&cffont->cf_priv); +  +@@ -162,7 +162,7 @@ + } +  + static void +-pango_cairo_fc_font_init (PangoCairoFcFont *cffont) ++pango_cairo_fc_font_init (PangoCairoFcFont *cffont G_GNUC_UNUSED) + { + } +  +diff -aur old/pango/pangocairo-font.c new/pango/pangocairo-font.c +--- old/pango/pangocairo-font.c	2008-12-06 14:35:23.387391067 +0800 ++++ new/pango/pangocairo-font.c	2008-12-06 14:35:04.840728398 +0800 +@@ -560,14 +560,18 @@ +  +   if (cf_priv->scaled_font) +     cairo_scaled_font_destroy (cf_priv->scaled_font); ++  cf_priv->scaled_font = NULL; +  +   _pango_cairo_font_hex_box_info_destroy (cf_priv->hbi); ++  cf_priv->hbi = NULL; +  +   if (cf_priv->glyph_extents_cache) +     g_free (cf_priv->glyph_extents_cache); ++  cf_priv->glyph_extents_cache = NULL; +  +   g_slist_foreach (cf_priv->metrics_by_lang, (GFunc)free_metrics_info, NULL); +   g_slist_free (cf_priv->metrics_by_lang); ++  cf_priv->metrics_by_lang = NULL; + } +  + gboolean +diff -aur old/pango/pangocairo-win32font.c new/pango/pangocairo-win32font.c +--- old/pango/pangocairo-win32font.c	2008-12-06 14:35:22.500726273 +0800 ++++ new/pango/pangocairo-win32font.c	2008-12-06 14:35:03.990726207 +0800 +@@ -150,7 +150,7 @@ +   pango_layout_set_text (layout, sample_str, -1); +   pango_layout_get_extents (layout, NULL, &extents); +  +-  metrics->approximate_char_width = extents.width / g_utf8_strlen (sample_str, -1); ++  metrics->approximate_char_width = extents.width / pango_utf8_strwidth (sample_str); +  +   pango_layout_set_text (layout, "0123456789", -1); +   metrics->approximate_digit_width = max_glyph_width (layout); +@@ -164,6 +164,10 @@ + static void + pango_cairo_win32_font_finalize (GObject *object) + { ++  PangoCairoWin32Font *cwfont = (PangoCairoWin32Font *) object; ++ ++  _pango_cairo_font_private_finalize (&cwfont->cf_priv); ++ +   G_OBJECT_CLASS (pango_cairo_win32_font_parent_class)->finalize (object); + } +  +@@ -225,7 +229,7 @@ + } +  + static void +-pango_cairo_win32_font_init (PangoCairoWin32Font *cwfont) ++pango_cairo_win32_font_init (PangoCairoWin32Font *cwfont G_GNUC_UNUSED) + { + } +  +diff -aur old/pango/pangofc-font.c new/pango/pangofc-font.c +--- old/pango/pangofc-font.c	2008-12-06 14:35:23.117390557 +0800 ++++ new/pango/pangofc-font.c	2008-12-06 14:35:04.564059609 +0800 +@@ -496,7 +496,7 @@ +   pango_layout_get_extents (layout, NULL, &extents); +  +   metrics->approximate_char_width = +-    extents.width / g_utf8_strlen (sample_str, -1); ++    extents.width / pango_utf8_strwidth (sample_str); +  +   pango_layout_set_text (layout, "0123456789", -1); +   metrics->approximate_digit_width = max_glyph_width (layout); diff --git a/abs/core-testing/pil/PKGBUILD b/abs/core-testing/pil/PKGBUILD index 59e9b83..f7149de 100644 --- a/abs/core-testing/pil/PKGBUILD +++ b/abs/core-testing/pil/PKGBUILD @@ -1,10 +1,12 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ -# Maintainer: simo <simo@archlinux.org> +# $Id: PKGBUILD 16703 2008-10-22 02:31:25Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Contributor: simo <simo@archlinux.org> +  pkgname=pil  pkgver=1.1.6 -pkgrel=4 +pkgrel=5  pkgdesc="Python imaging library" -arch=(i686 x86_64) +arch=('i686' 'x86_64')  url="http://www.pythonware.com/products/pil/index.htm"  license=('custom:"pil"')  depends=('python' 'libjpeg' 'freetype2')  @@ -13,14 +15,14 @@ source=(http://effbot.org/downloads/Imaging-$pkgver.tar.gz)  md5sums=('3a9b5c20ca52f0a9900512d2c7347622')  build() { -  cd $startdir/src/Imaging-$pkgver +  cd $srcdir/Imaging-$pkgver    python setup.py build_ext  -  python setup.py install --root=$startdir/pkg -  mkdir -p $startdir/pkg/usr/include/python2.5/ -  cp libImaging/*.h $startdir/pkg/usr/include/python2.5/ +  python setup.py install --root=$pkgdir +  mkdir -p $pkgdir/usr/include/python2.6/ +  cp libImaging/*.h $pkgdir/usr/include/python2.6/    # Install license -  install -m644 -D $startdir/src/Imaging-$pkgver/README \ -                   $startdir/pkg/usr/share/licenses/pil/README +  install -m644 -D $srcdir/Imaging-$pkgver/README \ +                   $pkgdir/usr/share/licenses/pil/README  } diff --git a/abs/core-testing/plextor-convertX-driver/PKGBUILD b/abs/core-testing/plextor-convertX-driver/PKGBUILD index 102d539..fb503fb 100755 --- a/abs/core-testing/plextor-convertX-driver/PKGBUILD +++ b/abs/core-testing/plextor-convertX-driver/PKGBUILD @@ -2,13 +2,13 @@  pkgname=plextor-convertX-driver  pkgver=0.9.8 -pkgrel=2 -_kernver=2.6.26-ARCH +pkgrel=3 +_kernver=2.6.27-ARCH  pkgdesc="Drivers for Plextor tuners"  arch=(i686 x86_64)  url="http://nikosapi.org/software/WIS_Go7007"  install="convertX.install" -source=("http://nikosapi.org/software/WIS_Go7007/wis-go7007-linux-0.9.8-2.tar.bz2" 'wis-go7007-2.6.26-nopage.diff') +source=("http://nikosapi.org/software/WIS_Go7007/wis-go7007-linux-0.9.8-2.tar.bz2" 'wis-go7007-2.6.26-nopage.diff' 'wis-go7007-linux-0.9.8-2-2.6.27.patch')  depends=('udev>=070' 'fxload')  makedepends=('gcc') @@ -17,6 +17,7 @@ build() {    # SET UP    cd $startdir/src/wis-go7007-linux-0.9.8-2 || return 1    patch -Np1 -i ../wis-go7007-2.6.26-nopage.diff || return 1 +  patch -Np1 -i ../wis-go7007-linux-0.9.8-2-2.6.27.patch || return 1    # build    make clean ||  return 1    make || return 1 diff --git a/abs/core-testing/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch b/abs/core-testing/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch new file mode 100644 index 0000000..6275d8c --- /dev/null +++ b/abs/core-testing/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch @@ -0,0 +1,83 @@ +diff -Naur wis-go7007-linux-0.9.8-2/kernel/go7007-driver.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-driver.c +--- wis-go7007-linux-0.9.8-2/kernel/go7007-driver.c	2007-03-21 12:51:54.000000000 -0500 ++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-driver.c	2008-12-30 21:04:32.545534308 -0600 +@@ -32,7 +32,7 @@ + #include <linux/i2c.h> + #include <linux/firmware.h> + #include <asm/uaccess.h> +-#include <asm/semaphore.h> ++#include <linux/semaphore.h> + #include <asm/system.h> + #include <linux/videodev.h> + #include <media/tuner.h> +diff -Naur wis-go7007-linux-0.9.8-2/kernel/go7007-i2c.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-i2c.c +--- wis-go7007-linux-0.9.8-2/kernel/go7007-i2c.c	2008-04-06 09:28:35.000000000 -0500 ++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-i2c.c	2008-12-30 21:04:32.569550193 -0600 +@@ -29,7 +29,7 @@ + #include <linux/device.h> + #include <linux/i2c.h> + #include <asm/uaccess.h> +-#include <asm/semaphore.h> ++#include <linux/semaphore.h> + #include <asm/system.h> +  + #include "go7007-priv.h" +diff -Naur wis-go7007-linux-0.9.8-2/kernel/go7007-v4l2.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-v4l2.c +--- wis-go7007-linux-0.9.8-2/kernel/go7007-v4l2.c	2008-12-30 21:16:17.221534155 -0600 ++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-v4l2.c	2008-12-30 21:10:24.252534209 -0600 +@@ -35,10 +35,12 @@ + #include <media/audiochip.h> + #else + #include <media/v4l2-common.h> ++#include <media/v4l2-chip-ident.h> ++#include <media/v4l2-ioctl.h> + #endif + #include <linux/i2c.h> + #include <asm/uaccess.h> +-#include <asm/semaphore.h> ++#include <linux/semaphore.h> + #include <asm/system.h> +  + #include "../include/go7007.h" +@@ -1478,7 +1480,7 @@ +  + static struct video_device go7007_template = { + 	.name		= "go7007", +-	.type		= VID_TYPE_CAPTURE, ++	.vfl_type		= VID_TYPE_CAPTURE, + 	.fops		= &go7007_fops, + 	.minor		= -1, + 	.release	= go7007_vfl_release, +@@ -1492,7 +1494,7 @@ + 	if (go->video_dev == NULL) + 		return -ENOMEM; + 	memcpy(go->video_dev, &go7007_template, sizeof(go7007_template)); +-	go->video_dev->dev = go->dev; ++	go->video_dev->parent = go->dev; + 	rv = video_register_device(go->video_dev, VFL_TYPE_GRABBER, -1); + 	if (rv < 0) + 	{ +diff -Naur wis-go7007-linux-0.9.8-2/kernel/snd-go7007.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/snd-go7007.c +--- wis-go7007-linux-0.9.8-2/kernel/snd-go7007.c	2007-09-06 22:45:25.000000000 -0500 ++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/snd-go7007.c	2008-12-30 21:04:33.077579435 -0600 +@@ -34,7 +34,7 @@ + #include <linux/mm.h> + #include <linux/i2c.h> + #include <asm/uaccess.h> +-#include <asm/semaphore.h> ++#include <linux/semaphore.h> + #include <asm/system.h> + #include <sound/driver.h> + #include <sound/core.h> +diff -Naur wis-go7007-linux-0.9.8-2/kernel/wis-sony-tuner.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/wis-sony-tuner.c +--- wis-go7007-linux-0.9.8-2/kernel/wis-sony-tuner.c	2006-04-01 16:37:18.000000000 -0600 ++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/wis-sony-tuner.c	2008-12-30 21:10:36.100534544 -0600 +@@ -23,6 +23,8 @@ + #include <media/tuner.h> + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) + #include <media/v4l2-common.h> ++#include <media/v4l2-chip-ident.h> ++#include <media/v4l2-ioctl.h> + #endif +  + #include "wis-i2c.h" diff --git a/abs/core-testing/ppp/PKGBUILD b/abs/core-testing/ppp/PKGBUILD index 24f40a7..8240ad7 100644 --- a/abs/core-testing/ppp/PKGBUILD +++ b/abs/core-testing/ppp/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 20217 2008-12-01 18:12:37Z thomas $  # Maintainer: judd <jvinet@zeroflux.org>  pkgname=ppp  pkgver=2.4.4 -pkgrel=15 +pkgrel=7  pkgdesc="A daemon which implements the PPP protocol for dial-up networking"  arch=(i686 x86_64)   url="http://www.samba.org/ppp/"  license=('custom:GPL/BSD')  groups=('base') -depends=('glibc' 'libpcap>=0.9.8') +depends=('glibc' 'libpcap>=1.0.0')  backup=(etc/ppp/{chap-secrets,pap-secrets,options,ip-up,ip-down})  source=(ftp://ftp.samba.org/pub/ppp/ppp-$pkgver.tar.gz \          options pon poff ppp plog pon.1 ip-up ip-down) @@ -42,6 +42,6 @@ build() {    install -D -m600 etc.ppp/pap-secrets $startdir/pkg/etc/ppp/pap-secrets    install -D -m600 etc.ppp/chap-secrets $startdir/pkg/etc/ppp/chap-secrets    install -D -m755 $startdir/src/ppp $startdir/pkg/etc/rc.d/ppp  -  install -D -m644 $startdir/src/pon.1 $startdir/pkg/usr/man/man1/pon.1 +  install -D -m644 $startdir/src/pon.1 $startdir/pkg/usr/share/man/man1/pon.1    mkdir -p $startdir/pkg/etc/ppp/peers  } diff --git a/abs/core-testing/pygobject/PKGBUILD b/abs/core-testing/pygobject/PKGBUILD index 159de7a..e6e4548 100644 --- a/abs/core-testing/pygobject/PKGBUILD +++ b/abs/core-testing/pygobject/PKGBUILD @@ -1,21 +1,21 @@ -# $Id: PKGBUILD 2539 2008-06-06 13:24:21Z jgc $ +# $Id: PKGBUILD 16706 2008-10-22 02:32:50Z allan $  # Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=pygobject -pkgver=2.14.2 -pkgrel=1 +pkgver=2.15.4 +pkgrel=2  pkgdesc="Python bindings for GObject"  arch=(i686 x86_64)  license=('LGPL') -depends=('python>=2.5.1-5' 'glib2>=2.16.3') -source=(http://ftp.gnome.org/pub/gnome/sources/pygobject/2.14/${pkgname}-${pkgver}.tar.bz2) +depends=('python>=2.5.2-5' 'glib2>=2.18.1') +source=(http://ftp.gnome.org/pub/gnome/sources/pygobject/2.15/${pkgname}-${pkgver}.tar.bz2)  options=('!libtool')  url="http://www.pygtk.org/" -md5sums=('0e9e9300e81847f4f7266f49d3bebbaf') +md5sums=('df59affe5b8fd7148506c3473d479868')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/core-testing/pygtk/PKGBUILD b/abs/core-testing/pygtk/PKGBUILD index 71bec7d..434af1c 100644 --- a/abs/core-testing/pygtk/PKGBUILD +++ b/abs/core-testing/pygtk/PKGBUILD @@ -1,24 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 16726 2008-10-22 02:50:46Z allan $  # Maintainer: Jan de Groot <jgc@archlinux.org>  # Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>  pkgname=pygtk -pkgver=2.12.1 -pkgrel=1 +pkgver=2.13.0 +pkgrel=2  pkgdesc="Python bindings for the GTK widget set"  arch=(i686 x86_64)  license=('LGPL') -depends=('libglade>=2.6.2' 'pycairo>=1.4.0' 'pygobject>=2.14.1' 'python-numeric>=24.2-2' 'gtk2>=2.12.0') +depends=('libglade>=2.6.3' 'pycairo>=1.6.4' 'pygobject>=2.15.4' 'python-numeric>=24.2-2')  options=('!libtool')  url="http://www.pygtk.org/" -source=(http://ftp.gnome.org/pub/gnome/sources/pygtk/2.12/${pkgname}-${pkgver}.tar.bz2) -md5sums=('a816346d750d61e3fa67a200e4292694') +source=(http://ftp.gnome.org/pub/gnome/sources/pygtk/2.13/${pkgname}-${pkgver}.tar.bz2) +md5sums=('e1513921bfd3790b456899c483fceaea')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  sed -i -e 's/SUBDIRS = codegen . $(GTK_SUBDIR) examples tests docs/SUBDIRS = codegen . $(GTK_SUBDIR) examples tests/' Makefile.in -  ./configure --prefix=/usr +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install -  install -m644 gtk/gtk-extrafuncs.defs ${startdir}/pkg/usr/share/pygtk/2.0/defs/ +  make DESTDIR="${pkgdir}" install || return 1 +  install -m644 gtk/gtk-extrafuncs.defs "${pkgdir}/usr/share/pygtk/2.0/defs/" || return 1  } diff --git a/abs/core-testing/python-numeric/PKGBUILD b/abs/core-testing/python-numeric/PKGBUILD index 9ec5dec..67a8ab5 100644 --- a/abs/core-testing/python-numeric/PKGBUILD +++ b/abs/core-testing/python-numeric/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 16713 2008-10-22 02:37:43Z allan $  # Maintainer: arjan <arjan@archlinux.org>  # Contributor orelien <aurelien.foret@wanadoo.fr>  pkgname=python-numeric  pkgver=24.2 -pkgrel=2 +pkgrel=3  pkgdesc="Numerical Python adds a fast array facility to the Python language."  arch=(i686 x86_64)  depends=('python>=2.5') -source=(http://heanet.dl.sourceforge.net/sourceforge/numpy/Numeric-${pkgver}.tar.gz) +source=(http://downloads.sourceforge.net/sourceforge/numpy/Numeric-${pkgver}.tar.gz)  replaces=('numeric')  url="http://numeric.scipy.org/"  md5sums=(2ae672656e06716a149acb048cca3093) diff --git a/abs/core-testing/python/ChangeLog b/abs/core-testing/python/ChangeLog new file mode 100644 index 0000000..2d5c46a --- /dev/null +++ b/abs/core-testing/python/ChangeLog @@ -0,0 +1,9 @@ +2008-12-07  Allan McRae <allan@archlinux.org> +	* python 2.6.1-1 +	* upstream update +	* fix gdbm related build error +	* fix modulator/pynche launchers + +2008-10-27  Allan McRae <allan@archlinux.org> +	* python 2.6-2 +	* patched to use internal expat
\ No newline at end of file diff --git a/abs/core-testing/python/PKGBUILD b/abs/core-testing/python/PKGBUILD index bc812de..16ebac5 100644 --- a/abs/core-testing/python/PKGBUILD +++ b/abs/core-testing/python/PKGBUILD @@ -1,57 +1,58 @@ -# $Id: PKGBUILD 4689 2008-07-08 21:50:56Z andyrtr $ +# $Id: PKGBUILD 20912 2008-12-07 08:52:24Z allan $  # Maintainer: Allan McRae <allan@archlinux.org>  # Contributer: Jason Chu <jason@archlinux.org>  pkgname=python -pkgver=2.5.2 -pkgrel=5 -_pybasever=2.5 +pkgver=2.6.1 +pkgrel=1 +_pybasever=2.6  pkgdesc="A high-level scripting language"  arch=('i686' 'x86_64')  license=('custom')  url="http://www.python.org" -depends=('db4.5' 'bzip2' 'gdbm' 'openssl>=0.9.8d' 'zlib') +depends=('db' 'bzip2' 'gdbm' 'openssl>=0.9.8d' 'zlib')  makedepends=('tk>=8.5.0' 'sqlite3') -provides=('python-elementree' 'python-ctypes') -replaces=('python-elementree' 'python-ctypes') -install=python.install +optdepends=('tk: for IDLE, pynche and modulator') +provides=('python-elementtree' 'python-ctypes') +replaces=('python-elementtree' 'python-ctypes')  source=(http://www.python.org/ftp/python/${pkgver}/Python-${pkgver}.tar.bz2 +	python-2.6-internal-expat.patch +	python-2.6-gdbm.patch  	modulator-launcher -	pynche-launcher -	Python-2.4.4-gdbm-1.patch -	python-2.5.CVE-2007-4965-int-overflow.patch -	python2.6-set_wakeup_fd4.patch -	Python-2.5.2-idlelib.patch) -md5sums=('afb5451049eda91fbde10bd5a4b7fadc' -         'faa0d4b947bfe67fc8684b5c464f46f2' -         '60a44af1d8af276274e20c564c0f3d8b' -         '2b61e06365e9fb5f3af22d946efa8be6' -         '491416c1b337fc61b6cdf5981d895a7d' -         'ec56710959deb01b5fa35829cafec6a3' -         'e6441e0b013ac64795221154e0495e10') +	pynche-launcher) +md5sums=('e81c2f0953aa60f8062c05a4673f2be0' +         '993800dbcc0c4f199c1ceee998a06e71' +         '13fab4bb2cacbc433e62d7191a17f71e' +         'b4a531570415280dc406c8d5c1fa8d83' +         '9f731b9033db285132a3524fb36409e7') +  build() { -  cd ${startdir}/src/Python-${pkgver} -  patch -Np1 -i ${srcdir}/Python-2.4.4-gdbm-1.patch || return 1 -  # fix http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-4965 -  patch -Np1 -i ${srcdir}/python-2.5.CVE-2007-4965-int-overflow.patch || return 1 -   -  patch -Np2 -i ${srcdir}/python2.6-set_wakeup_fd4.patch || return 1 -  patch -Np0 -i ${srcdir}/Python-2.5.2-idlelib.patch +  cd ${srcdir}/Python-${pkgver} + +  patch -Np0 -i ${srcdir}/python-2.6-internal-expat.patch +  patch -Np1 -i ${srcdir}/python-2.6-gdbm.patch    ./configure --prefix=/usr --enable-shared --with-threads --enable-unicode +   +  # temporary backwards compatibility stuff... +  sed -i 's#SITEPATH=#SITEPATH=:/usr/lib/python2.5/site-packages#' Makefile +    make || return 1    make DESTDIR=${pkgdir} install    rm ${pkgdir}/usr/bin/python    ln -sf python${_pybasever} ${pkgdir}/usr/bin/python +  ln -sf python${_pybasever} ${pkgdir}/usr/bin/python2    # Install the tools    #modulator +  sed -i "s#%%PYBASEVER%%#${_pybasever}#" ${srcdir}/modulator-launcher    install -m755 ${srcdir}/modulator-launcher ${pkgdir}/usr/bin/modulator    cp -r Tools/modulator ${pkgdir}/usr/lib/python${_pybasever}/site-packages/    #pynche +  sed -i "s#%%PYBASEVER%%#${_pybasever}#" ${srcdir}/pynche-launcher    install -m755 ${srcdir}/pynche-launcher ${pkgdir}/usr/bin/pynche    rm -f Tools/pynche/*.pyw    cp -r Tools/pynche ${pkgdir}/usr/lib/python${_pybasever}/site-packages/ @@ -65,5 +66,5 @@ build() {    install Tools/scripts/*py ${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts/    # license -  install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE +  install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE  } diff --git a/abs/core-testing/python/modulator-launcher b/abs/core-testing/python/modulator-launcher index 732f05c..ba46e93 100644 --- a/abs/core-testing/python/modulator-launcher +++ b/abs/core-testing/python/modulator-launcher @@ -1,2 +1,2 @@  #!/bin/bash -exec /usr/lib/python2.5/site-packages/modulator/modulator.py +exec /usr/lib/python%%PYBASEVER%%/site-packages/modulator/modulator.py diff --git a/abs/core-testing/python/pynche-launcher b/abs/core-testing/python/pynche-launcher index ab3a6d8..a4338a7 100644 --- a/abs/core-testing/python/pynche-launcher +++ b/abs/core-testing/python/pynche-launcher @@ -1,3 +1,3 @@  #!/bin/bash -/usr/lib/python2.5/site-packages/pynche/pynche +/usr/lib/python%%PYBASEVER%%/site-packages/pynche/pynche diff --git a/abs/core-testing/python/python-2.6-gdbm.patch b/abs/core-testing/python/python-2.6-gdbm.patch new file mode 100644 index 0000000..0f223f6 --- /dev/null +++ b/abs/core-testing/python/python-2.6-gdbm.patch @@ -0,0 +1,12 @@ +diff -Naur Python-2.6-old/setup.py Python-2.6/setup.py +--- Python-2.6-old/setup.py	2008-09-30 10:15:45.000000000 +1000 ++++ Python-2.6/setup.py	2008-12-07 16:04:01.000000000 +1000 +@@ -1013,7 +1013,7 @@ +                 if self.compiler.find_library_file(lib_dirs, 'ndbm'): +                     ndbm_libs = ['ndbm'] +                 else: +-                    ndbm_libs = [] ++                    ndbm_libs = ['gdbm', 'gdbm_compat'] +                 exts.append( Extension('dbm', ['dbmmodule.c'], +                                        define_macros=[('HAVE_NDBM_H',None)], +                                        libraries = ndbm_libs ) ) diff --git a/abs/core-testing/python/python-2.6-internal-expat.patch b/abs/core-testing/python/python-2.6-internal-expat.patch new file mode 100644 index 0000000..86252ab --- /dev/null +++ b/abs/core-testing/python/python-2.6-internal-expat.patch @@ -0,0 +1,33 @@ +--- setup.py    2008-04-22 12:12:24.613554757 +0300 ++++ setup.py    2008-04-22 12:13:09.276544063 +0300 +@@ -1035,18 +1035,15 @@ +         # +         # More information on Expat can be found at www.libexpat.org. +         # +-        expatinc = os.path.join(os.getcwd(), srcdir, 'Modules', 'expat') +-        define_macros = [ +-            ('HAVE_EXPAT_CONFIG_H', '1'), +-        ] ++        # Use system expat ++        expatinc = '/usr/include' ++        define_macros = [] + +         exts.append(Extension('pyexpat', +                               define_macros = define_macros, +                               include_dirs = [expatinc], ++                              libraries = ['expat'], +                               sources = ['pyexpat.c', +-                                         'expat/xmlparse.c', +-                                         'expat/xmlrole.c', +-                                         'expat/xmltok.c', +                                          ], +                               )) + +@@ -1058,6 +1055,7 @@ +             exts.append(Extension('_elementtree', +                                   define_macros = define_macros, +                                   include_dirs = [expatinc], ++                                  libraries = ['expat'], +                                   sources = ['_elementtree.c'], +                                   )) + diff --git a/abs/core-testing/rt2500/PKGBUILD b/abs/core-testing/rt2500/PKGBUILD index 67798b6..b0f442fa 100644 --- a/abs/core-testing/rt2500/PKGBUILD +++ b/abs/core-testing/rt2500/PKGBUILD @@ -1,27 +1,31 @@ -# $Id: PKGBUILD 5936 2008-07-21 20:24:16Z thomas $ +# $Id: PKGBUILD 14783 2008-10-10 15:36:02Z thomas $  # Maintainer: James Rayner <iphitus@gmail.com>  pkgname=rt2500 -_kernver=2.6.26-ARCH +_kernver=2.6.27-ARCH  pkgver=1.1.0_B4  _pkgver=1.1.0-b4 -pkgrel=24 +pkgrel=25  pkgdesc="Drivers for rt2500 chipset wireless cards"  url="http://rt2x00.serialmonkey.com/wiki/index.php/Main_Page"  license=('GPL2') -depends=('kernel26>=2.6.26-1' 'kernel26<2.6.27') +depends=('kernel26>=2.6.27' 'kernel26<2.6.28')  arch=('i686' 'x86_64')  install=rt2500.install  source=(http://downloads.sourceforge.net/sourceforge/rt2400/rt2500-${_pkgver}.tar.gz \ -	kernel-2.6.22.patch kernel-2.6.24.patch) +	kernel-2.6.22.patch  +	kernel-2.6.24.patch +	kernel-2.6.27.patch)  md5sums=('83b8b9a091705c08d99268479f3b3b6a'           'a74f8e9cbba7b29620f11fba8fd7c50d' -	 'ccf0da667cc6642dacf39dea1aac254f') +	 'ccf0da667cc6642dacf39dea1aac254f' +	 'ccb923f4ebf408e781544d7cf4074bf2')  build() {    cd $startdir/src/rt2500-$_pkgver/    patch -Np1 -i ../kernel-2.6.22.patch || return 1    patch -Np1 -i ../kernel-2.6.24.patch || return 1 +  patch -Np1 -i ../kernel-2.6.27.patch || return 1    cd $startdir/src/rt2500-$_pkgver/Module    make KERNDIR=/lib/modules/$_kernver/build || return 1    install -D -m 644 rt2500.ko $startdir/pkg/lib/modules/$_kernver/kernel/drivers/net/wireless/rt2500.ko diff --git a/abs/core-testing/rt2500/kernel-2.6.27.patch b/abs/core-testing/rt2500/kernel-2.6.27.patch new file mode 100644 index 0000000..22abd35 --- /dev/null +++ b/abs/core-testing/rt2500/kernel-2.6.27.patch @@ -0,0 +1,64 @@ +diff -Nur rt2500-1.1.0-b4.orig/Module/rtmp_info.c rt2500-1.1.0-b4/Module/rtmp_info.c +--- rt2500-1.1.0-b4.orig/Module/rtmp_info.c	2008-10-10 16:55:27.000000000 +0200 ++++ rt2500-1.1.0-b4/Module/rtmp_info.c	2008-10-10 16:57:27.000000000 +0200 +@@ -481,7 +481,7 @@ + 		iwe.cmd = SIOCGIWAP; + 		iwe.u.ap_addr.sa_family = ARPHRD_ETHER; + 				memcpy(iwe.u.ap_addr.sa_data, &pAdapter->PortCfg.BssTab.BssEntry[i].Bssid, ETH_ALEN); +-			current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_ADDR_LEN); ++			current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_ADDR_LEN); + 		//================================ + 		memset(&iwe, 0, sizeof(iwe)); + 		iwe.cmd = SIOCGIWMODE; +@@ -499,13 +499,13 @@ + 		} +  + 		iwe.len = IW_EV_UINT_LEN; +-		current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe,  IW_EV_UINT_LEN); ++		current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe,  IW_EV_UINT_LEN); + 		//================================ + 		memset(&iwe, 0, sizeof(iwe)); + 		iwe.cmd = SIOCGIWESSID; + 		iwe.u.data.length = pAdapter->PortCfg.BssTab.BssEntry[i].SsidLen; + 		iwe.u.data.flags = 1; +-		current_ev = iwe_stream_add_point(current_ev,end_buf, &iwe, pAdapter->PortCfg.BssTab.BssEntry[i].Ssid); ++		current_ev = iwe_stream_add_point(info, current_ev,end_buf, &iwe, pAdapter->PortCfg.BssTab.BssEntry[i].Ssid); + 		//================================ + 		memset(&iwe, 0, sizeof(iwe)); + 		iwe.cmd = SIOCGIWENCODE; +@@ -513,7 +513,7 @@ + 			iwe.u.data.flags =IW_ENCODE_ENABLED | IW_ENCODE_NOKEY; + 		else + 			iwe.u.data.flags = IW_ENCODE_DISABLED; +-		current_ev = iwe_stream_add_point(current_ev, end_buf,&iwe,  pAdapter->PortCfg.BssTab.BssEntry[i].Ssid); ++		current_ev = iwe_stream_add_point(info, current_ev, end_buf,&iwe,  pAdapter->PortCfg.BssTab.BssEntry[i].Ssid); +  + 		//================================ + 		memset(&iwe, 0, sizeof(iwe)); +@@ -524,7 +524,7 @@ + 		{ + 			iwe.u.bitrate.value = RateIdToMbps[pAdapter->PortCfg.BssTab.BssEntry[i].Rates[i]/2] * 1000000; + 			iwe.u.bitrate.disabled = 0; +-			current_val = iwe_stream_add_value(current_ev, ++			current_val = iwe_stream_add_value(info, current_ev, + 				current_val, end_buf, &iwe, + 				IW_EV_PARAM_LEN); + 		} +@@ -537,7 +537,7 @@ + 			iwe.u.freq.m = pAdapter->PortCfg.BssTab.BssEntry[i].Channel; + 		iwe.u.freq.e = 0; + 		iwe.u.freq.i = 0; +-		current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_FREQ_LEN); ++		current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_FREQ_LEN); + 		//================================ + 		memset(&iwe, 0, sizeof(iwe)); +                 iwe.cmd = IWEVQUAL; +@@ -549,7 +549,7 @@ + 		iwe.u.qual.noise = pAdapter->PortCfg.BssTab.BssEntry[i].Noise; +                 //iwe.u.qual.noise = (pAdapter->PortCfg.LastR17Value > BBP_R17_DYNAMIC_UP_BOUND) ? BBP_R17_DYNAMIC_UP_BOUND : ((ULONG) pAdapter->PortCfg.LastR17Value);           // // noise level (dBm) +  +-                current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_QUAL_LEN); ++                current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_QUAL_LEN); +  +  +                 //================================ diff --git a/abs/core-testing/rt2500/rt2500.install b/abs/core-testing/rt2500/rt2500.install index c242f1b..40f9aa9 100644 --- a/abs/core-testing/rt2500/rt2500.install +++ b/abs/core-testing/rt2500/rt2500.install @@ -1,7 +1,7 @@  # arg 1:  the new package version  post_install()  { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -v $KERNEL_VERSION > /dev/null 2>&1   } @@ -9,14 +9,14 @@ post_install()  # arg 2:  the old package version  post_upgrade()  { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -v $KERNEL_VERSION > /dev/null 2>&1   }  # arg 1:  the old package version  post_remove()  { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -v $KERNEL_VERSION > /dev/null 2>&1 	    } diff --git a/abs/core-testing/rt2x00-rt61-fw/PKGBUILD b/abs/core-testing/rt2x00-rt61-fw/PKGBUILD index ef65031..0224fcc 100644 --- a/abs/core-testing/rt2x00-rt61-fw/PKGBUILD +++ b/abs/core-testing/rt2x00-rt61-fw/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 15101 2008-10-12 16:24:41Z tpowa $  # Maintainer: Tom Killian <tom@archlinux.org>  pkgname=rt2x00-rt61-fw  pkgver=1.2 -pkgrel=2 +pkgrel=3  pkgdesc="Firmware for the rt2x00 wireless drivers"  arch=(i686 x86_64)  url="http://www.ralinktech.com/ralink/Home/Support/Linux.html" diff --git a/abs/core-testing/rt2x00-rt71w-fw/PKGBUILD b/abs/core-testing/rt2x00-rt71w-fw/PKGBUILD index 5736755..890d3a6 100644 --- a/abs/core-testing/rt2x00-rt71w-fw/PKGBUILD +++ b/abs/core-testing/rt2x00-rt71w-fw/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 15104 2008-10-12 16:35:52Z tpowa $  # Maintainer: Tom Killian <tom@archlinux.org>  pkgname=rt2x00-rt71w-fw  pkgver=1.8 -pkgrel=2 +pkgrel=3  pkgdesc="Firmware for the rt2x00 wireless drivers"  arch=(i686 x86_64)  url="http://www.ralinktech.com/ralink/Home/Support/Linux.html" diff --git a/abs/core-testing/samba/PKGBUILD b/abs/core-testing/samba/PKGBUILD index 599025e..67151b9 100644 --- a/abs/core-testing/samba/PKGBUILD +++ b/abs/core-testing/samba/PKGBUILD @@ -1,78 +1,85 @@ -# $Id: PKGBUILD 14140 2008-10-04 09:43:47Z tpowa $ +# $Id: PKGBUILD 22200 2008-12-22 22:24:26Z tpowa $  # Maintainer: judd <jvinet@zeroflux.org>  pkgname=samba -pkgver=3.2.4 +pkgver=3.2.6  # We use the 'A' to fake out pacman's version comparators.  Samba chooses  # to append 'a','b',etc to their subsequent releases, which pamcan  # misconstrues as alpha, beta, etc.  Bad samba! -_realver=3.2.4 -pkgrel=4 +_realver=3.2.6 +pkgrel=2  pkgdesc="Tools to access a server's filespace and printers via SMB"  arch=(i686 x86_64)  url="http://www.samba.org"  license=('GPL3')  backup=(etc/logrotate.d/samba etc/pam.d/samba etc/samba/smb.conf etc/xinetd.d/swat etc/conf.d/samba) -depends=('db>=4.7' 'popt' 'libcups' 'acl' 'libldap' 'smbclient=3.2.4' 'libcap' 'heimdal>=1.2-1' 'pam' 'gnutls>=2.4.1' 'tdb=3.2.4') +depends=('db>=4.7' 'popt' 'libcups' 'acl' 'libldap' 'smbclient=3.2.6' 'libcap' 'heimdal>=1.2-1' 'pam' 'fam' 'gnutls>=2.4.1' 'tdb=3.2.6')  options=(!makeflags)  source=(http://us1.samba.org/samba/ftp/stable/${pkgname}-${_realver}.tar.gz \          no-clients.patch samba samba.logrotate swat.xinetd samba.pam samba.conf.d)  build() { -  cd ${startdir}/src/${pkgname}-${_realver}/source -  patch -Np2 -i ${startdir}/src/no-clients.patch || return 1 +  cd ${srcdir}/${pkgname}-${_realver}/source +  patch -Np2 -i ${srcdir}/no-clients.patch || return 1    ./configure --prefix=/usr --with-configdir=/etc/samba \                --with-lockdir=/var/cache/samba \                --with-piddir=/var/run/samba \                --with-fhs --with-pam --with-ads --with-acl-support \                --without-cifsmount --without-libsmbclient \ -	      --disable-fam  +              --with-syslog --with-pam_smbpass \                --localstatedir=/var --disable-dnssd --libdir=/usr/lib/samba    make || return 1 -  mkdir -p $startdir/pkg/var/log/samba -  mkdir -p $startdir/pkg/etc/samba/private -  chmod 700 $startdir/pkg/etc/samba/private +  mkdir -p ${pkgdir}/var/log/samba +  mkdir -p ${pkgdir}/etc/samba/private +  chmod 700 ${pkgdir}/etc/samba/private    make DESTDIR=$startdir/pkg install -  chmod 644 $startdir/pkg/usr/include/*.h -  rm -rf $startdir/pkg/usr/var +  chmod 644 ${pkgdir}/usr/include/*.h +  rm -rf ${pkgdir}/usr/var    (cd script; cp installbin.sh i; cat i | sed 's/\/sbin\///' > installbin.sh) -  install -D -m755 ../../samba $startdir/pkg/etc/rc.d/samba -  install -D -m644 ../../samba.conf.d $startdir/pkg/etc/conf.d/samba -  mkdir -p $startdir/pkg/etc/samba +  install -D -m755 ../../samba ${pkgdir}/etc/rc.d/samba +  install -D -m644 ../../samba.conf.d ${pkgdir}/etc/conf.d/samba +  mkdir -p ${pkgdir}/etc/samba    cat ../examples/smb.conf.default | \ -    sed 's|log file = .*$|log file = /var/log/samba/log.%m|g' >$startdir/pkg/etc/samba/smb.conf.default -  install -D -m644 ../../samba.logrotate $startdir/pkg/etc/logrotate.d/samba -  install -D -m644 ../../swat.xinetd $startdir/pkg/etc/xinetd.d/swat -  install -D -m644 ../../samba.pam $startdir/pkg/etc/pam.d/samba +    sed 's|log file = .*$|log file = /var/log/samba/log.%m|g' >${pkgdir}/etc/samba/smb.conf.default +  install -D -m644 ../../samba.logrotate ${pkgdir}/etc/logrotate.d/samba +  install -D -m644 ../../swat.xinetd ${pkgdir}/etc/xinetd.d/swat +  install -D -m644 ../../samba.pam ${pkgdir}/etc/pam.d/samba    # symlink libs -  for i in ${startdir}/pkg/usr/lib/samba/libsmbshare*; do -	ln -sf samba/$(basename $i) ${startdir}/pkg/usr/lib/$(basename $i) +  for i in ${pkgdir}/usr/lib/samba/libsmbshare*; do +	ln -sf samba/$(basename $i) ${pkgdir}/usr/lib/$(basename $i)    done    # spool directory -  install -d -m1777 $startdir/pkg/var/spool/samba -  sed -i 's|/usr/spool/samba|/var/spool/samba|g' $startdir/pkg/etc/samba/smb.conf.default +  install -d -m1777 ${pkgdir}/var/spool/samba +  sed -i 's|/usr/spool/samba|/var/spool/samba|g' ${pkgdir}/etc/samba/smb.conf.default    # fix logrotate -  sed -i -e 's|log.%m|%m.log|g' $startdir/pkg/etc/samba/smb.conf.default +  sed -i -e 's|log.%m|%m.log|g' ${pkgdir}/etc/samba/smb.conf.default    # nsswitch libraries -  install -D -m755 nsswitch/libnss_wins.so $startdir/pkg/lib/libnss_wins.so -  ln -s libnss_wins.so $startdir/pkg/lib/libnss_wins.so.2 -  install -D -m755 nsswitch/libnss_winbind.so $startdir/pkg/lib/libnss_winbind.so -  install -D -m755 bin/pam_winbind.so $startdir/pkg/lib/security/pam_winbind.so +  install -D -m755 nsswitch/libnss_wins.so ${pkgdir}/lib/libnss_wins.so +  ln -s libnss_wins.so ${pkgdir}/lib/libnss_wins.so.2 +  install -D -m755 nsswitch/libnss_winbind.so ${pkgdir}/lib/libnss_winbind.so +  install -D -m755 bin/pam_winbind.so ${pkgdir}/lib/security/pam_winbind.so    # remove conflict files of smbclient and tdb    for man in libsmbclient smbspool \        umount.cifs mount.cifs net; do -    rm -f ${startdir}/pkg/usr/share/man/man8/${man}.8 +    rm -f ${pkgdir}/usr/share/man/man8/${man}.8    done    for i in libnetapi* libtdb* libtalloc* libwbclient*; do -	  rm -f ${startdir}/pkg/usr/lib/samba/$i +	  rm -f ${pkgdir}/usr/lib/samba/$i    done -  rm -f ${startdir}/pkg/usr/bin/tdbbackup -  rm -f ${startdir}/pkg/usr/include/{tdb.h,talloc.h,netapi.h} +  rm -f ${pkgdir}/usr/bin/tdbbackup +  rm -f ${pkgdir}/usr/include/{tdb.h,talloc.h,netapi.h}    for man in rpcclient smbcacls smbclient smbcquotas \        smbtree smbtar nmblookup smbget; do -    rm -f ${startdir}/pkg/usr/share/man/man1/${man}.1 +    rm -f ${pkgdir}/usr/share/man/man1/${man}.1    done -  rm -f ${startdir}/pkg/usr/share/man/man7/libsmbclient.7 +  rm -f ${pkgdir}/usr/share/man/man7/libsmbclient.7 -  rm -f ${startdir}/pkg/usr/include/libsmbclient.h +  rm -f ${pkgdir}/usr/include/libsmbclient.h  } +md5sums=('0cd27c7afbb8211616eea4010f32271c' +         'a676f0dde2c434aeb5125376b8797a64' +         'e93533fa2296c07c1f645dfdd373657f' +         '5697da77590ec092cc8a883bae06093c' +         'a4bbfa39fee95bba2e7ad6b535fae7e6' +         '96f82c38f3f540b53f3e5144900acf17' +         'f2f2e348acd1ccb566e95fa8a561b828') diff --git a/abs/core-testing/smbclient/PKGBUILD b/abs/core-testing/smbclient/PKGBUILD index 5e423ebe..c0034b3 100644 --- a/abs/core-testing/smbclient/PKGBUILD +++ b/abs/core-testing/smbclient/PKGBUILD @@ -1,56 +1,57 @@ -# $Id: PKGBUILD 14139 2008-10-04 09:13:09Z tpowa $ +# $Id: PKGBUILD 22197 2008-12-22 22:08:42Z tpowa $  # Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=smbclient -pkgver=3.2.4 +pkgver=3.2.6  # We use the 'A' to fake out pacman's version comparators.  Samba chooses -# to append 'a','b',etc to their subsequent releases, which pamcan +# to append 'a','b',etc to their subsequent releases, which pacman  # misconstrues as alpha, beta, etc.  Bad samba! -_realver=3.2.4 -pkgrel=3 +_realver=3.2.6 +pkgrel=2  pkgdesc="Tools to access a server's filespace and printers via SMB"  arch=(i686 x86_64)  url="http://www.samba.org"  license=('GPL3') -depends=('popt' 'libldap' 'libcap' 'heimdal>=1.2-1' 'db>=4.7' 'tdb=3.2.4') +depends=('popt' 'libldap' 'libcap' 'heimdal>=1.2-1' 'db>=4.7' 'tdb=3.2.6')  source=(http://us1.samba.org/samba/ftp/samba-${_realver}.tar.gz)  options=(!makeflags)  build() { -  cd ${startdir}/src/samba-${_realver}/source +  cd ${srcdir}/samba-${_realver}/source    ./configure --prefix=/usr --with-cifsmount --with-fhs --with-pam \                --with-datadir=/usr/share --with-configdir=/etc/samba \                --with-lockdir=/var/run/samba --with-ads --with-acl-support \ -	      --localstatedir=/var --disable-dnssd  --libdir=/usr/lib/samba +              --localstatedir=/var --with-syslog --with-pam_smbpass --disable-dnssd \ +              --libdir=/usr/lib/samba    make proto bin/smbclient libsmbclient \         bin/rpcclient bin/smbspool bin/smbtree \         bin/smbcacls bin/smbcquotas bin/smbget \         bin/net bin/nmblookup bin/mount.cifs bin/umount.cifs || return 1 -  mkdir -p ${startdir}/pkg/usr/bin ${startdir}/pkg/sbin ${startdir}/pkg/usr/lib/samba -  install -m755 bin/{smbclient,rpcclient,smbspool,smbtree,smbcacls,smbcquotas,smbget,net,nmblookup} ${startdir}/pkg/usr/bin/ -  install -m755 bin/{mount.cifs,umount.cifs} ${startdir}/pkg/sbin/ -  mv  bin/*.so* ${startdir}/pkg/usr/lib/samba -  install -m755 script/smbtar ${startdir}/pkg/usr/bin/ -  mkdir -p ${startdir}/pkg/usr/lib/cups/backend -  ln -sf /usr/bin/smbspool ${startdir}/pkg/usr/lib/cups/backend/smb -  for i in ${startdir}/pkg/usr/lib/samba/*; do -   	ln -sf samba/$(basename $i) ${startdir}/pkg/usr/lib/$(basename $i) +  mkdir -p ${pkgdir}/usr/bin ${pkgdir}/sbin ${pkgdir}/usr/lib/samba +  install -m755 bin/{smbclient,rpcclient,smbspool,smbtree,smbcacls,smbcquotas,smbget,net,nmblookup} ${pkgdir}/usr/bin/ +  install -m755 bin/{mount.cifs,umount.cifs} ${pkgdir}/sbin/ +  mv  bin/*.so* ${pkgdir}/usr/lib/samba +  install -m755 script/smbtar ${pkgdir}/usr/bin/ +  mkdir -p ${pkgdir}/usr/lib/cups/backend +  ln -sf /usr/bin/smbspool ${pkgdir}/usr/lib/cups/backend/smb +  for i in ${pkgdir}/usr/lib/samba/*; do +   	ln -sf samba/$(basename $i) ${pkgdir}/usr/lib/$(basename $i)    done -  rm -rf $startdir/pkg/usr/lib/libtdb* -  mkdir -p ${startdir}/pkg/usr/include -  install -m644 include/libsmbclient.h ${startdir}/pkg/usr/include/ -  install -m644 lib/talloc/talloc.h ${startdir}/pkg/usr/include/ -  install -m644 lib/netapi/netapi.h ${startdir}/pkg/usr/include/ -  mkdir -p ${startdir}/pkg/usr/share/man/man{1,7,8} +  rm -rf ${pkgdir}/usr/lib/libtdb* +  mkdir -p ${pkgdir}/usr/include +  install -m644 include/libsmbclient.h ${pkgdir}/usr/include/ +  install -m644 lib/talloc/talloc.h ${pkgdir}/usr/include/ +  install -m644 lib/netapi/netapi.h ${pkgdir}/usr/include/ +  mkdir -p ${pkgdir}/usr/share/man/man{1,7,8}    for man in smbspool \        umount.cifs mount.cifs net; do -    install -m644 ../docs/manpages/${man}.8 ${startdir}/pkg/usr/share/man/man8/ +    install -m644 ../docs/manpages/${man}.8 ${pkgdir}/usr/share/man/man8/    done    for man in rpcclient smbcacls smbclient smbcquotas smbget \        smbtree smbtar nmblookup; do -    install -m644 ../docs/manpages/${man}.1 ${startdir}/pkg/usr/share/man/man1/ +    install -m644 ../docs/manpages/${man}.1 ${pkgdir}/usr/share/man/man1/    done -  install -m644 ../docs/manpages/libsmbclient.7 ${startdir}/pkg/usr/share/man/man7/ +  install -m644 ../docs/manpages/libsmbclient.7 ${pkgdir}/usr/share/man/man7/  } -md5sums=('7870a6bb3a025c6081cd56688acd494a') +md5sums=('0cd27c7afbb8211616eea4010f32271c') diff --git a/abs/core-testing/sqlite3/PKGBUILD b/abs/core-testing/sqlite3/PKGBUILD index eb1dbc6..b40c3ee 100644 --- a/abs/core-testing/sqlite3/PKGBUILD +++ b/abs/core-testing/sqlite3/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 12988 2008-09-25 16:26:35Z andyrtr $ +# $Id: PKGBUILD 22976 2008-12-30 11:35:01Z andyrtr $  # Maintainer: Andreas Radke <andyrtr@archlinux.org>  # Contributor: Tom Newsom <Jeepster@gmx.co.uk>  pkgname=sqlite3 -pkgver=3.6.3 -pkgrel=1 +pkgver=3.6.7 +pkgrel=2  pkgdesc="A C library that implements an SQL database engine"  arch=('i686' 'x86_64')  license=('custom') @@ -14,19 +14,21 @@ makedepends=('tcl')  conflicts=('sqlite')  replaces=('sqlite')  source=(http://www.sqlite.org/sqlite-$pkgver.tar.gz -	sqlite-3.5.8-pkgconfig-version.patch  	license.txt)  options=(!libtool) -md5sums=('671d2715f33158abc47a7a2ddd6066c5' -         '025965a176173eaf21877f6daed088d4' +md5sums=('5223d1f459b608ed8c2c54f8847f8e1a'           'c1cdbc5544034d9012e421e75a5e4890')  build() {    cd ${srcdir}/sqlite-${pkgver} -  patch -Np1 -i ${srcdir}/sqlite-3.5.8-pkgconfig-version.patch || return 1 -  ./configure --prefix=/usr --enable-threadsafe  --disable-static || return 1 +  export LTLINK_EXTRAS="-ldl" +  export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1" +  ./configure --prefix=/usr \ +	--enable-threadsafe \ +	--disable-static \ +	--enable-load-extension || return 1    make || return 1 -  make DESTDIR=${pkgdir} install +  make DESTDIR=${pkgdir} install || return 1    install -Dm0644 sqlite3.1 ${pkgdir}/usr/share/man/man1/sqlite3.1    # license diff --git a/abs/core-testing/tcl/ChangeLog b/abs/core-testing/tcl/ChangeLog index 313bd98..0aeabc7 100644 --- a/abs/core-testing/tcl/ChangeLog +++ b/abs/core-testing/tcl/ChangeLog @@ -1,10 +1,16 @@ -2008-08-16 Allan McRae <allan@archlinux.org> +2008-12-24  Allan McRae <allan@archlinux.org> +	* 8.5.6-1 : +	new upstream release + +2008-10-16  Allan McRae <allan@archlinux.org> +	* 8.5.5-1 : +	new upstream release +2008-08-16  Allan McRae <allan@archlinux.org>  	* 8.5.4-1 :  	new upstream release  	FHS man directory -2008-07-01 Allan McRae <allan@archlinux.org> - +2008-07-01  Allan McRae <allan@archlinux.org>  	* 8.5.3-1 :  	new upstream release. diff --git a/abs/core-testing/tcl/PKGBUILD b/abs/core-testing/tcl/PKGBUILD index ec911bb..bcf3ab2 100644 --- a/abs/core-testing/tcl/PKGBUILD +++ b/abs/core-testing/tcl/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 8742 2008-08-16 05:01:49Z allan $ +# $Id: PKGBUILD 22246 2008-12-24 10:50:10Z allan $  # Maintainer: Allan McRae <allan@archlinux.org>  # Committer: Judd Vinet <jvinet@zeroflux.org>  pkgname=tcl -pkgver=8.5.4 +pkgver=8.5.6  pkgrel=1  pkgdesc="The Tcl scripting language"  arch=('i686' 'x86_64')  license=('custom') -depends=(glibc) +depends=('glibc')  source=(http://downloads.sourceforge.net/sourceforge/tcl/tcl${pkgver}-src.tar.gz)  url="http://tcl.sourceforge.net/" -md5sums=('15032a6a43f3bfbe9223b95186849472') +md5sums=('d0b0b3ff7600ff63135c710b575265cd')  build() {    cd ${srcdir}/tcl${pkgver}/unix diff --git a/abs/core-testing/tdb/PKGBUILD b/abs/core-testing/tdb/PKGBUILD index 1714862..88f37dc 100644 --- a/abs/core-testing/tdb/PKGBUILD +++ b/abs/core-testing/tdb/PKGBUILD @@ -1,29 +1,28 @@ -# $Id: PKGBUILD 14092 2008-10-03 15:43:08Z tpowa $ +# $Id: PKGBUILD 22194 2008-12-22 21:57:23Z tpowa $  # Maintainer: eric <eric@archlinux.org>  # Contributor: Tom Newsom <Jeepster@gmx.co.uk>  pkgname=tdb -pkgver=3.2.4 -pkgrel=1 +pkgver=3.2.6 +pkgrel=2  # We use the 'A' to fake out pacman's version comparators.  Samba chooses  # to append 'a','b',etc to their subsequent releases, which pamcan  # misconstrues as alpha, beta, etc.  Bad samba! -_realver=3.2.4 +_realver=3.2.6  pkgdesc="A Trivial Database similar to GDBM but allows simultaneous commits"  arch=(i686 x86_64)  license=('GPL3') -source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)  url="www.samba.org"  source=(http://us1.samba.org/samba/ftp/samba-${_realver}.tar.gz)  options=(!makeflags)  build() { -   cd ${startdir}/src/samba-${_realver}/source/lib/tdb +   cd ${srcdir}/samba-${_realver}/source/lib/tdb     ./autogen.sh     ./configure --prefix=/usr     make || return 1     make DESTDIR=$startdir/pkg install -   ln -sf /usr/lib/libtdb.so.1.1.1 $startdir/pkg/usr/lib/libtdb.so.1 -   ln -sf /usr/lib/libtdb.so.1.1.1 $startdir/pkg/usr/lib/libtdb.so +   ln -sf /usr/lib/libtdb.so.1.1.1 ${pkgdir}/usr/lib/libtdb.so.1 +   ln -sf /usr/lib/libtdb.so.1.1.1 ${pkgdir}/usr/lib/libtdb.so  } -md5sums=('7870a6bb3a025c6081cd56688acd494a') +md5sums=('0cd27c7afbb8211616eea4010f32271c') diff --git a/abs/core-testing/tiacx/PKGBUILD b/abs/core-testing/tiacx/PKGBUILD index d1bffc7..2e2e831 100644 --- a/abs/core-testing/tiacx/PKGBUILD +++ b/abs/core-testing/tiacx/PKGBUILD @@ -1,22 +1,25 @@ -# $Id: PKGBUILD 5944 2008-07-21 20:26:41Z thomas $ +# $Id: PKGBUILD 14786 2008-10-10 15:36:27Z thomas $  # Maintainer: James Rayner <iphitus@gmail.com>  pkgname=tiacx  pkgver=20080210 -pkgrel=6 +pkgrel=7  pkgdesc="OpenSource module for Texas Instruments ACX100/ACX111 wireless chips. For stock arch 2.6 kernel"  arch=(i686 x86_64)  url="http://acx100.sourceforge.net/"  license=('MPL') -depends=('wireless_tools' 'kernel26>=2.6.26-1' 'kernel26<2.6.27' 'tiacx-firmware') +depends=('wireless_tools' 'kernel26>=2.6.27' 'kernel26<2.6.28' 'tiacx-firmware')  install=acx.install -source=(http://downloads.sourceforge.net/sourceforge/acx100/acx-$pkgver.tar.bz2) -md5sums=('7d5ce3215708e4e9f95cf567a9ee3a12') +source=(http://downloads.sourceforge.net/sourceforge/acx100/acx-$pkgver.tar.bz2 +        kernel-2.6.27.patch) +md5sums=('7d5ce3215708e4e9f95cf567a9ee3a12' +         '9895f72f8d0c84956b0f6c3b16df0fe8') -_kernver=2.6.26-ARCH +_kernver=2.6.27-ARCH  build() {      cd $startdir/src/acx-$pkgver +    patch -Np1 -i ../kernel-2.6.27.patch || return 1      make -C /lib/modules/${_kernver}/build M=`pwd` || return 1      install -D acx.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/net/wireless/tiacx/acx.ko      sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install diff --git a/abs/core-testing/tiacx/acx.install b/abs/core-testing/tiacx/acx.install index 09a0d0d..e5bd1dc 100644 --- a/abs/core-testing/tiacx/acx.install +++ b/abs/core-testing/tiacx/acx.install @@ -1,20 +1,20 @@  # arg 1:  the new package version  post_install() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -v $KERNEL_VERSION > /dev/null 2>&1   }  # arg 1:  the new package version  # arg 2:  the old package version  post_upgrade() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -v $KERNEL_VERSION > /dev/null 2>&1	   }  # arg 1:  the old package version  post_remove() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -v $KERNEL_VERSION > /dev/null 2>&1	   } diff --git a/abs/core-testing/tiacx/kernel-2.6.27.patch b/abs/core-testing/tiacx/kernel-2.6.27.patch new file mode 100644 index 0000000..f0c114b --- /dev/null +++ b/abs/core-testing/tiacx/kernel-2.6.27.patch @@ -0,0 +1,82 @@ +diff -Nur acx-20080210.orig/ioctl.c acx-20080210/ioctl.c +--- acx-20080210.orig/ioctl.c	2008-02-10 21:06:42.000000000 +0100 ++++ acx-20080210/ioctl.c	2008-10-10 17:07:32.000000000 +0200 +@@ -489,6 +489,7 @@ + static char* + acx_s_scan_add_station( + 	acx_device_t *adev, ++	struct iw_request_info *info, + 	char *ptr, + 	char *end_buf, + 	struct client *bss) +@@ -503,14 +504,14 @@ + 	iwe.u.ap_addr.sa_family = ARPHRD_ETHER; + 	MAC_COPY(iwe.u.ap_addr.sa_data, bss->bssid); + 	acxlog_mac(L_IOCTL, "scan, station address: ", bss->bssid, "\n"); +-	ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_ADDR_LEN); ++	ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_ADDR_LEN); +  + 	/* Add ESSID */ + 	iwe.cmd = SIOCGIWESSID; + 	iwe.u.data.length = bss->essid_len; + 	iwe.u.data.flags = 1; + 	log(L_IOCTL, "scan, essid: %s\n", bss->essid); +-	ptr = iwe_stream_add_point(ptr, end_buf, &iwe, bss->essid); ++	ptr = iwe_stream_add_point(info, ptr, end_buf, &iwe, bss->essid); +  + 	/* Add mode */ + 	iwe.cmd = SIOCGIWMODE; +@@ -520,7 +521,7 @@ + 		else + 			iwe.u.mode = IW_MODE_ADHOC; + 		log(L_IOCTL, "scan, mode: %d\n", iwe.u.mode); +-		ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_UINT_LEN); ++		ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_UINT_LEN); + 	} +  + 	/* Add frequency */ +@@ -528,7 +529,7 @@ + 	iwe.u.freq.m = acx_channel_freq[bss->channel - 1] * 100000; + 	iwe.u.freq.e = 1; + 	log(L_IOCTL, "scan, frequency: %d\n", iwe.u.freq.m); +-	ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_FREQ_LEN); ++	ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_FREQ_LEN); +  + 	/* Add link quality */ + 	iwe.cmd = IWEVQUAL; +@@ -546,7 +547,7 @@ + 	iwe.u.qual.updated = 7; + 	log(L_IOCTL, "scan, link quality: %d/%d/%d\n", + 			iwe.u.qual.level, iwe.u.qual.noise, iwe.u.qual.qual); +-	ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_QUAL_LEN); ++	ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_QUAL_LEN); +  + 	/* Add encryption */ + 	iwe.cmd = SIOCGIWENCODE; +@@ -556,7 +557,7 @@ + 		iwe.u.data.flags = IW_ENCODE_DISABLED; + 	iwe.u.data.length = 0; + 	log(L_IOCTL, "scan, encryption flags: %X\n", iwe.u.data.flags); +-	ptr = iwe_stream_add_point(ptr, end_buf, &iwe, bss->essid); ++	ptr = iwe_stream_add_point(info, ptr, end_buf, &iwe, bss->essid); +  + 	/* add rates */ + 	iwe.cmd = SIOCGIWRATE; +@@ -570,7 +571,7 @@ + 		if (rate & 1) { + 			iwe.u.bitrate.value = *p * 500000; /* units of 500kb/s */ + 			log(L_IOCTL, "scan, rate: %d\n", iwe.u.bitrate.value); +-			ptr_rate = iwe_stream_add_value(ptr, ptr_rate, end_buf, ++			ptr_rate = iwe_stream_add_value(info, ptr, ptr_rate, end_buf, + 						&iwe, IW_EV_PARAM_LEN); + 		} + 		rate >>= 1; +@@ -625,7 +626,7 @@ + 	for (i = 0; i < ARRAY_SIZE(adev->sta_list); i++) { + 		struct client *bss = &adev->sta_list[i]; + 		if (!bss->used) continue; +-		ptr = acx_s_scan_add_station(adev, ptr, ++		ptr = acx_s_scan_add_station(adev, info, ptr, + 			extra + IW_SCAN_MAX_DATA, bss); + 	} + 	dwrq->length = ptr - extra; diff --git a/abs/core-testing/tk/ChangeLog b/abs/core-testing/tk/ChangeLog index 83abeb6..fc2998f 100644 --- a/abs/core-testing/tk/ChangeLog +++ b/abs/core-testing/tk/ChangeLog @@ -1,16 +1,21 @@ -2008-08-20 Allan McRae <allan@archlinux.org> +2008-12-24  Allan McRae <allan@archlinux.org> +	* 8.5.6-1 : +	new upstream release + +2008-10-16  Allan McRae <allan@archlinux.org> +	* 8.5.5-1 : +	new upstream release +2008-08-20  Allan McRae <allan@archlinux.org>  	* 8.5.4-2 :  	Remove xproto compatibility patch as no longer needed -2008-08-16 Allan McRae <allan@archlinux.org> - +2008-08-16  Allan McRae <allan@archlinux.org>  	* 8.5.4-1 :  	new upstream release  	FHS man pages -2008-07-01 Allan McRae <allan@archlinux.org> - +2008-07-01  Allan McRae <allan@archlinux.org>  	* 8.5.3-1 :  	new upstream release  	added patch for xproto-7.0.13 compatibility diff --git a/abs/core-testing/tk/PKGBUILD b/abs/core-testing/tk/PKGBUILD index 80299e6..3c75949 100644 --- a/abs/core-testing/tk/PKGBUILD +++ b/abs/core-testing/tk/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 9873 2008-08-20 08:29:04Z allan $ +# $Id: PKGBUILD 22248 2008-12-24 10:55:13Z allan $  # Maintainer: Allan McRae <allan@archlinux.org>  # Contributor: Judd Vinet <jvinet@zeroflux.org>  pkgname=tk -pkgver=8.5.4 -pkgrel=2 +pkgver=8.5.6 +pkgrel=1  pkgdesc="A windowing toolkit for use with tcl"  arch=('i686' 'x86_64')  url="http://tcl.sourceforge.net/"  license=('custom')  depends=("tcl=${pkgver}" 'libxss' 'libxft')  source=(http://downloads.sourceforge.net/sourceforge/tcl/tk${pkgver}-src.tar.gz) -md5sums=('a6aee7653566ec0b7c4b0f4c24a96f20') +md5sums=('7da2e00adddc7eed6080df904579d94e')  build() {    cd ${srcdir}/tk${pkgver}/unix   diff --git a/abs/core-testing/tmp/PKGBUILD b/abs/core-testing/tmp/PKGBUILD new file mode 100644 index 0000000..b96120c --- /dev/null +++ b/abs/core-testing/tmp/PKGBUILD @@ -0,0 +1,159 @@ +# $Id: PKGBUILD 10337 2008-08-26 21:10:56Z tpowa $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> +# Maintainer: Thomas Baechler <thomas@archlinux.org> +pkgname=kernel26 +_basekernel=2.6.26 +pkgver=2.6.26.3 +pkgrel=10 +#_patchname="patch-${pkgver}-${pkgrel}-ARCH" +_patchname="patch-${pkgver}-1-ARCH" +pkgdesc="The Linux Kernel and modules" +arch=(i686 x86_64) +license=('GPL2') +groups=('base') +url="http://www.kernel.org" +backup=(etc/mkinitcpio.d/${pkgname}.preset) +depends=('coreutils' 'module-init-tools' 'mkinitcpio>=0.5.18') +# pwc, ieee80211 and hostap-driver26 modules are included in kernel26 now +# nforce package support was abandoned by nvidia, kernel modules should cover everything now. +# kernel24 support is dropped since glibc24 +replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi' +          'alsa-driver' 'ieee80211' 'hostap-driver26' +          'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv' +	  'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs') +install=kernel26.install +source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2 +        ftp://ftp.archlinux.org/other/kernel26/${_patchname}.bz2 +        # the main kernel config files +        config config.x86_64 +        # standard config files for mkinitcpio ramdisk +        kernel26.preset +	logo_linux_clut224.ppm +	logo_linux_mono.pbm +	logo_linux_vga16.ppm) +md5sums=('5169d01c405bc3f866c59338e217968c' +         '003e89dd71b32ae9b93cd1601da3b1b0' +	 '4fd1071a8dc2ea993aed81d5920de18d' +         'd5ad1f296356d159a2616a49d98b3434' +	 '25584700a0a679542929c4bed31433b6' +	 '7bdfe2e1daedb324fdfdfa95ba4e2430' +	 'a88d90384e50bd061a81fcc6573fc3bb' +	 'f536292192a69d590b2ffd4700c14185') + +build() { +  KARCH=x86 + +  cd $startdir/src/linux-$_basekernel +  # Add -ARCH patches +  # See http://projects.archlinux.org/git/?p=linux-2.6-ARCH.git;a=summary +  patch -Np1 -i $startdir/src/${_patchname} || return 1 + +  if [ "$CARCH" = "x86_64" ]; then +    cat ../config.x86_64 >./.config +  else +    cat ../config >./.config +  fi +  cp ../logo_linux_clut224.ppm drivers/video/logo/ +  cp ../logo_linux_mono.ppm drivers/video/logo/ +  cp ../logo_linux_vga16.ppm drivers/video/logo/ +  # build the full kernel version to use in pathnames +  . ./.config +  ### next line is only needed for rc kernels +  #_kernver="2.6.25${CONFIG_LOCALVERSION}" +  _kernver="${_basekernel}${CONFIG_LOCALVERSION}" +  # load configuration +  yes "" | make config +  # build! +  #################### +  # stop here +  # this is useful to configure the kernel +  #msg "Stopping build" +  #return 1 +  #################### +  make bzImage modules || return 1 +  mkdir -p $startdir/pkg/{lib/modules,boot} +  make INSTALL_MOD_PATH=$startdir/pkg modules_install || return 1 +  cp System.map $startdir/pkg/boot/System.map26 +  cp arch/$KARCH/boot/bzImage $startdir/pkg/boot/vmlinuz26 +  install -D -m644 Makefile \ +    $startdir/pkg/usr/src/linux-${_kernver}/Makefile +  install -D -m644 kernel/Makefile \ +    $startdir/pkg/usr/src/linux-${_kernver}/kernel/Makefile +  install -D -m644 .config \ +    $startdir/pkg/usr/src/linux-${_kernver}/.config +  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include + +  for i in acpi asm-{generic,x86} config linux math-emu media net pcmcia scsi sound video; do +    cp -a include/$i $startdir/pkg/usr/src/linux-${_kernver}/include/ +  done + +  # copy files necessary for later builds, like nvidia and vmware +  cp Module.symvers $startdir/pkg/usr/src/linux-${_kernver} +  cp -a scripts $startdir/pkg/usr/src/linux-${_kernver} +  # fix permissions on scripts dir +  chmod og-w -R $startdir/pkg/usr/src/linux-${_kernver}/scripts +  #mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/.tmp_versions + +  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/kernel + +  cp arch/$KARCH/Makefile $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/ +  if [ "$CARCH" = "i686" ]; then +    cp arch/$KARCH/Makefile_32.cpu $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/ +  fi +  cp arch/$KARCH/kernel/asm-offsets.s $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/kernel/ + +  # add headers for lirc package +  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video +  cp drivers/media/video/*.h  $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/ +  for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 usbvideo zc0301; do +   mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/$i +   cp -a drivers/media/video/$i/*.h $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/$i +  done +  # add dm headers +  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/md +  cp drivers/md/*.h  $startdir/pkg/usr/src/linux-${_kernver}/drivers/md +  # add inotify.h +  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include/linux +  cp include/linux/inotify.h $startdir/pkg/usr/src/linux-${_kernver}/include/linux/ +  # add CLUSTERIP file for iptables +  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/net/ipv4/netfilter/ +  # add wireless headers +  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/net/mac80211/ +  cp net/mac80211/*.h $startdir/pkg/usr/src/linux-${_kernver}/net/mac80211/ +  # add dvb headers for external modules +  # in reference to: +  # http://bugs.archlinux.org/task/9912 +  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core +  cp drivers/media/dvb/dvb-core/*.h $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/ +  # add dvb headers for external modules +  # in reference to: +  # http://bugs.archlinux.org/task/11194 +  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include/config/dvb/ +  cp include/config/dvb/*.h $startdir/pkg/usr/src/linux-${_kernver}/include/config/dvb/ +  # add xfs and shmem for aufs building +  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/fs/xfs +  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/mm +  cp fs/xfs/xfs_sb.h $startdir/pkg/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h +  # add vmlinux +  cp vmlinux $startdir/pkg/usr/src/linux-${_kernver} +  # copy in Kconfig files +  for i in `find . -name "Kconfig*"`; do  +    mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'` +    cp $i $startdir/pkg/usr/src/linux-${_kernver}/$i +  done + +  cd $startdir/pkg/usr/src/linux-${_kernver}/include && ln -s asm-$KARCH asm + +  chown -R root.root $startdir/pkg/usr/src/linux-${_kernver} +  find $startdir/pkg/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \; +  cd $startdir/pkg/lib/modules/${_kernver} && \ +    (rm -f source build; ln -sf ../../../usr/src/linux-${_kernver} build) +  # install fallback mkinitcpio.conf file and preset file for kernel +  install -m644 -D $startdir/src/${pkgname}.preset $startdir/pkg/etc/mkinitcpio.d/${pkgname}.preset || return 1 +  # set correct depmod command for install +  sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/kernel26.install +  echo -e "# DO NOT EDIT THIS FILE\nALL_kver='${_kernver}'" > ${startdir}/pkg/etc/mkinitcpio.d/${pkgname}.kver +  # remove unneeded architectures +  rm -rf $startdir/pkg/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa} +} + diff --git a/abs/core-testing/tmp/logo_linux_clut224.ppm b/abs/core-testing/tmp/logo_linux_clut224.ppm new file mode 100644 index 0000000..c539d32 --- /dev/null +++ b/abs/core-testing/tmp/logo_linux_clut224.ppm @@ -0,0 +1,883 @@ +P3 +80 80 +255 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 24 24 24 95 95 95 143 148 147 219 219 219 224 224 224 224 224 224 221 221 221  +231 231 230 232 232 232 217 218 217 194 194 194 143 148 147 61 61 61 1 1 1 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 65 65 65  +179 180 180 224 224 224 141 142 141 85 85 85 25 25 26 2 2 2 0 0 0 0 0 0  +0 0 0 0 0 0 11 11 11 35 37 37 95 95 95 179 180 180 221 221 221 136 141 140  +28 28 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 24 24 191 191 191 194 194 194  +73 73 73 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 16 16 109 109 110  +224 223 222 104 104 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 73 73 73 234 234 234 104 104 104 1 1 1  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0  +20 20 20 204 204 204 119 120 120 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 35 35 36 228 228 227 56 56 56 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 28 28 28 69 69 69 45 47 47 7 7 7  +0 0 0 16 16 16 159 159 159 197 197 197 8 8 8 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 1 1 1 208 207 206 88 88 88 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 51 51 51 111 114 112 109 109 110 51 51 51  +2 2 2 0 0 0 1 1 1 146 149 148 167 167 166 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 81 79 75 197 202 202 1 1 1 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 61 61 61 104 104 104 81 79 75 43 43 43  +8 8 8 0 0 0 0 0 0 7 7 7 213 213 213 65 65 65 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 191 191 191 88 88 88 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 28 28 28 28 28 28 7 7 7 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 65 65 65 228 228 227 20 20 20 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 1 1 1 246 246 246 22 22 22 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 159 160 131 131 131 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 8 8 8 246 246 246 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 65 65 197 197 197 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 12 12 12 241 241 241 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 22 22 22 5 5 5 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 225 224 224 56 56 56  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 7 7 7 246 246 246 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0  +20 20 20 43 43 43 31 31 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 4 4 4 25 25 26 31 31 31 20 20 20 65 65 65 20 20 20  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 146 149 148 124 129 126  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 3 3 3 254 254 254 4 4 4 0 0 0 0 0 0 31 31 31 104 104 104  +119 120 120 51 51 51 28 28 28 20 20 20 0 0 0 0 0 0 0 0 0 0 0 0  +7 7 7 73 73 73 131 131 131 153 159 160 159 159 159 153 159 160 35 35 36 24 24 24  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 95 95 175 172 168  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 4 4 4 254 254 254 4 4 4 0 0 0 25 25 26 141 142 141 187 186 186  +197 197 197 167 167 166 65 65 65 4 4 4 0 0 0 0 0 0 0 0 0 9 9 9  +109 109 110 179 180 180 197 197 197 208 207 206 213 213 213 191 191 191 123 123 123 7 7 7  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 65 65 187 186 186  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 1 1 1 241 241 241 5 5 5 0 0 0 85 85 85 208 207 206 226 227 227  +235 235 235 246 246 246 221 221 221 22 22 22 0 0 0 0 0 0 0 0 0 85 85 85  +217 218 217 246 246 246 226 227 227 167 167 166 202 202 202 239 239 239 197 197 197 73 73 73  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 40 40 217 218 217  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 235 235 235 7 7 7 0 0 0 131 136 135 159 159 159 11 11 11  +69 69 69 131 136 135 246 246 246 104 104 104 0 0 0 0 0 0 0 0 0 123 123 123  +236 237 236 203 203 203 20 20 20 20 20 20 88 88 88 124 129 126 246 246 246 194 194 194  +7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 25 26 226 227 227  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 234 234 234 28 28 28 0 0 0 146 149 148 65 65 65 0 0 0  +109 109 110 51 51 51 234 234 234 131 136 135 0 0 0 35 35 36 22 22 22 123 123 123  +239 239 239 95 95 95 0 0 0 0 0 0 43 43 43 16 16 16 225 224 224 244 244 244  +45 47 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 16 16 241 241 241  +1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 217 218 217 51 51 51 1 1 1 131 131 131 85 85 85 0 0 0  +22 22 22 28 28 28 208 207 206 127 128 122 58 43 7 58 43 7 30 20 1 73 73 73  +231 230 229 65 65 65 0 0 0 0 0 0 0 0 0 0 0 0 202 202 202 246 246 246  +43 43 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 246 246 246  +24 24 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 172 176 175 85 85 85 0 0 0 73 73 73 187 186 186 5 5 5  +0 0 0 30 20 1 190 146 50 224 170 17 221 175 7 221 175 7 201 165 9 191 150 3  +220 185 82 91 70 38 8 6 3 1 1 0 0 0 0 43 43 43 239 239 239 228 228 227  +11 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 232 232 232  +35 35 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 172 176 175 95 95 95 0 0 0 9 9 9 204 204 204 131 136 135  +91 61 1 204 146 9 217 163 7 232 191 11 232 191 11 226 196 19 219 193 11 197 162 19  +226 196 19 219 193 11 201 165 9 130 96 8 107 93 64 228 228 227 248 248 248 112 118 114  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 235 235  +16 16 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 143 148 147 109 109 110 0 0 0 0 0 0 81 79 75 227 180 59  +204 146 9 234 184 12 239 191 15 237 191 8 238 196 12 238 196 12 226 196 19 231 199 39  +231 199 39 231 199 39 219 193 11 219 193 11 219 193 11 227 180 59 192 156 83 8 6 3  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 239 239  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 131 131 131 111 114 112 0 0 0 30 20 1 155 102 4 198 139 9  +230 172 11 238 184 11 237 191 8 238 196 12 238 196 12 226 196 19 231 199 39 220 185 82  +231 199 39 231 199 39 226 196 19 219 193 11 219 193 11 219 193 11 226 196 19 159 120 9  +4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +20 20 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 131 131 131 123 123 123 0 0 0 120 77 2 187 136 3 217 155 7  +229 171 7 238 184 8 238 184 8 238 196 12 238 196 12 231 199 39 231 199 39 231 199 39  +231 199 39 219 193 11 219 193 11 219 193 11 219 193 11 191 150 3 197 162 19 201 165 9  +30 20 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 202 202 202  +56 56 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 119 120 120 141 142 141 1 1 0 104 68 5 175 125 4 217 155 7  +229 171 7 238 184 8 238 196 12 238 196 12 226 196 19 231 199 39 231 199 39 226 196 19  +219 193 11 219 193 11 219 193 11 191 150 3 191 150 3 201 165 9 217 155 7 183 127 3  +4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 186 186  +73 73 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51 51 51  +143 148 147 224 223 222 225 224 224 146 149 148 4 4 4 8 6 3 130 96 8 175 125 4  +217 163 7 238 184 8 238 196 12 231 199 39 231 199 39 226 196 19 226 196 19 219 193 11  +201 165 9 191 150 3 175 125 4 191 150 3 216 159 5 206 148 3 198 139 9 91 70 38  +0 0 0 0 0 0 5 5 5 45 47 47 12 12 12 0 0 0 0 0 0 167 167 166  +88 88 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 20 20 159 159 159 226 227 227  +172 176 175 136 141 140 123 135 137 124 131 129 112 118 114 45 47 47 141 122 119 130 96 8  +155 102 4 191 150 3 219 193 11 219 193 11 201 165 9 191 150 3 191 150 3 175 125 4  +191 150 3 191 150 3 191 150 3 187 136 3 188 133 20 190 146 50 175 172 168 175 172 168  +25 25 26 0 0 0 1 1 1 56 56 56 94 100 97 56 56 56 2 2 2 95 95 95  +172 176 175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 159 160 217 218 217 144 156 160  +144 156 160 144 156 160 138 149 149 123 135 137 94 103 103 104 116 120 183 181 175 162 157 129  +148 102 14 155 102 4 175 125 4 191 150 3 191 150 3 191 150 3 191 150 3 191 150 3  +200 140 3 199 131 5 188 133 20 192 156 83 175 172 168 197 197 197 194 194 194 187 186 186  +109 109 110 0 0 0 0 0 0 8 8 8 95 95 95 111 114 112 31 31 31 18 18 18  +241 241 241 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 248 248 159 166 168 86 124 118  +144 156 160 138 149 149 123 135 137 144 156 160 94 103 103 124 131 129 159 159 159 191 191 191  +162 157 129 148 102 14 155 102 4 182 124 9 198 139 9 187 136 3 199 131 5 170 114 5  +170 114 5 190 146 50 163 157 151 187 186 186 197 197 197 231 230 229 241 240 237 221 221 221  +191 191 191 34 34 34 0 0 0 0 0 0 9 9 9 39 40 40 4 4 4 1 1 1  +228 228 227 25 25 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 248 248 138 149 149 123 135 137  +123 135 137 138 149 149 104 116 120 146 149 148 119 128 123 131 136 135 123 135 137 204 204 204  +192 192 192 175 172 168 145 135 65 148 102 14 148 102 14 148 102 14 148 102 14 145 135 65  +162 157 129 183 181 175 191 191 191 208 207 206 241 240 237 255 255 254 254 254 254 254 254 254  +236 237 236 119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +146 149 148 131 131 131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 204 204 159 166 168 144 156 160  +113 134 127 144 156 160 94 103 103 136 141 140 119 128 123 119 128 123 112 118 114 221 221 221  +194 194 194 187 186 186 187 186 186 172 176 175 175 172 168 179 180 180 187 186 186 187 186 186  +194 194 194 197 197 197 224 223 222 251 251 251 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 232 232 232 31 31 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +69 69 69 225 224 224 35 35 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 35 35 36 226 227 227 123 135 137 159 166 168  +86 124 118 138 149 149 113 134 127 112 118 114 131 136 135 104 104 104 124 131 129 204 204 204  +224 224 224 191 191 191 187 186 186 187 186 186 179 180 180 187 186 186 187 186 186 194 194 194  +213 213 213 241 240 237 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 146 149 148 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 81 79 75 226 227 227 81 79 75 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 39 40 40 231 230 229 73 73 73 25 25 26 153 159 160  +104 116 120 123 135 137 123 135 137 104 116 120 141 142 141 94 103 103 136 141 140 153 159 160  +253 252 251 225 224 224 197 197 197 189 189 189 189 189 189 191 191 191 208 207 206 233 231 230  +253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 246 246 246 34 34 34 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 34 34 34 197 197 197 167 167 166 9 9 9 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 25 25 26 221 221 221 69 69 69 0 0 0 2 2 2 123 135 137  +123 135 137 104 116 120 136 141 140 119 128 123 131 136 135 113 134 127 113 134 127 113 134 127  +254 254 254 254 254 254 244 244 244 228 228 227 228 228 227 239 239 239 251 251 251 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 131 136 135 1 1 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 2 2 2 167 167 166 146 149 148 1 1 1 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 3 3 3 202 202 202 104 104 104 0 0 0 0 0 0 0 0 0 77 85 86  +153 159 160 141 122 119 123 135 137 94 103 103 94 103 103 113 134 127 145 140 129 112 118 114  +231 233 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 239 239 239 16 16 16 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 31 31 31 219 219 219 81 79 75 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 143 148 147 179 180 180 1 1 1 0 0 0 0 0 0 0 0 0 35 37 37  +159 166 168 143 148 147 94 103 103 109 109 110 86 124 118 119 128 123 94 100 97 127 128 122  +179 180 180 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 255 255 255 95 95 95 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43 43 43 236 237 236 20 20 20  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +3 3 3 235 235 235 25 25 26 0 0 0 0 0 0 0 0 0 0 0 0 8 8 8  +138 149 149 123 135 137 77 85 86 112 118 114 94 103 103 104 116 120 111 114 112 145 140 129  +143 148 147 254 254 254 254 254 254 253 252 251 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +251 251 251 241 241 241 246 246 246 254 254 254 179 180 180 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141 167 167 166  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +111 114 112 172 176 175 16 16 16 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0  +94 100 97 159 166 168 113 134 127 104 104 104 94 103 103 104 116 120 113 134 127 113 134 127  +119 128 123 251 251 251 236 237 236 226 227 227 231 230 229 244 244 244 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 246 246 246 232 232 232 224 224 224 217 218 217 213 213 213  +203 203 203 204 204 204 203 203 203 221 221 221 251 251 251 56 56 56 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 16 16 236 237 236  +22 22 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1  +217 218 217 65 65 65 104 104 104 45 47 47 1 1 1 0 0 0 0 0 0 1 1 0  +43 43 43 153 159 160 162 157 129 136 141 140 113 134 127 119 128 123 124 131 129 104 116 120  +109 109 110 236 237 236 248 248 248 232 232 232 251 251 251 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 251 251 251 239 239 239 224 223 222 213 213 213 167 167 166  +123 123 123 94 100 97 192 192 192 194 194 194 224 223 222 189 189 189 3 3 3 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 35 37 37 11 11 11 131 131 131  +159 159 159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 47 47  +213 213 213 9 9 9 119 120 120 123 123 123 43 43 43 3 3 3 0 0 0 0 0 0  +35 37 37 138 149 149 113 134 127 111 114 112 119 128 123 94 103 103 124 129 126 94 103 103  +124 131 129 197 202 202 251 251 251 253 252 251 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 246 246 246 153 159 160  +73 73 73 4 4 4 189 189 189 197 197 197 197 197 197 235 235 235 85 85 85 0 0 0  +0 0 0 0 0 0 0 0 0 12 12 12 65 65 65 81 79 75 11 11 11 12 12 12  +251 251 251 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 123 123  +136 141 140 0 0 0 39 40 40 109 109 110 123 123 123 104 104 104 56 56 56 24 24 24  +131 136 135 167 167 166 131 136 135 112 118 114 124 131 129 112 118 114 124 131 129 112 118 114  +119 128 123 159 166 168 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 219 219 219 109 109 110  +16 16 16 1 1 0 172 176 175 231 231 230 208 207 206 203 203 203 213 213 213 18 18 18  +3 3 3 35 37 37 85 85 85 104 104 104 65 65 65 9 9 9 0 0 0 0 0 0  +240 240 239 12 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 186 186  +73 73 73 0 0 0 1 1 1 18 18 18 61 61 61 109 109 110 123 123 123 124 129 126  +136 141 140 153 159 160 153 159 160 138 149 149 146 149 148 138 149 149 146 149 148 138 149 149  +138 149 149 159 166 168 253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 192 192 192 88 88 88  +4 4 4 0 0 0 141 142 141 254 254 254 239 239 239 202 202 202 187 186 186 136 141 140  +112 118 114 95 95 95 61 61 61 22 22 22 2 2 2 0 0 0 0 0 0 0 0 0  +204 204 204 51 51 51 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 219 219  +39 40 40 0 0 0 0 0 0 0 0 0 1 1 1 16 16 16 56 56 56 95 95 95  +112 118 114 123 123 123 127 128 122 127 128 122 124 129 126 124 131 129 131 136 135 136 141 140  +136 141 140 141 142 141 159 159 159 159 159 159 112 118 114 104 104 104 232 232 232 254 254 254  +254 254 254 254 254 254 219 219 219 175 172 168 153 159 160 131 131 131 131 131 131 61 61 61  +2 2 2 0 0 0 51 51 51 131 131 131 123 123 123 111 114 112 95 95 95 56 56 56  +28 28 28 5 5 5 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +146 149 148 104 104 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 225 224 224  +35 35 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 11 11 11  +25 25 26 51 51 51 73 73 73 88 88 88 94 100 97 104 104 104 104 104 104 94 100 97  +104 104 104 95 95 95 88 88 88 65 65 65 12 12 12 1 1 1 69 69 69 254 254 254  +254 254 254 221 221 221 31 31 31 61 61 61 73 73 73 81 79 75 56 56 56 11 11 11  +0 0 0 0 0 0 5 5 5 24 24 24 24 24 24 12 12 12 4 4 4 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +141 142 141 104 104 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 227 227  +34 34 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 2 2 2 9 9 9 12 12 12 12 12 12 16 16 16 18 18 18  +12 12 12 7 7 7 4 4 4 1 1 1 0 0 0 0 0 0 1 1 1 234 234 234  +254 254 254 136 141 140 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1  +131 131 131 124 129 126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 213 213  +51 51 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 218 217  +254 254 254 112 118 114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +153 159 160 119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141  +131 131 131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 12 12 248 248 248  +255 255 255 146 149 148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34 34 34  +233 231 230 16 16 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 37 37  +239 239 239 31 31 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 104 104 254 254 254  +254 254 254 235 235 235 12 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 111 114 112  +159 159 159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +159 159 159 141 142 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 40 40 236 237 236 254 254 254  +254 254 254 254 254 254 159 159 159 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 241 241  +61 61 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +197 197 197 65 65 65 0 0 0 8 8 8 16 16 16 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 73 73 73 232 232 232 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 159 159 159 16 16 16 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 228 227  +35 37 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 5 5  +244 244 244 7 7 7 0 0 0 73 73 73 236 237 236 131 136 135 43 43 43 1 1 1  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 24 24 24 94 100 97 194 194 194 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 235 235 235 131 131 131 45 47 47 2 2 2  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 197 197  +65 65 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 47 47  +204 204 204 0 0 0 0 0 0 111 114 112 255 255 255 255 255 255 255 255 255 225 224 224  +167 167 166 131 131 131 104 104 104 88 88 88 88 88 88 104 104 104 131 131 131 167 167 166  +203 203 203 225 224 224 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 231 231 230  +172 176 175 131 131 131 94 100 97 81 79 75 69 69 69 73 73 73 95 95 95 123 123 123  +175 172 168 191 191 191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 176 175  +88 88 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  +175 172 168 0 0 0 1 1 0 131 136 135 255 255 255 255 255 255 255 255 255 255 255 255  +255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 254 254 254  +240 240 239 228 228 227 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  +255 255 255 219 219 219 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 131 136 135  +124 129 126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85  +179 180 180 0 0 0 0 0 0 141 142 141 255 255 255 255 255 255 255 255 255 255 255 255  +255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +240 240 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255  +255 255 255 219 219 219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141  +111 114 112 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 25 26 159 159 159 224 223 222  +167 167 166 0 0 0 1 1 1 141 142 141 255 255 255 255 255 255 255 255 255 255 255 255  +255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +240 240 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254  +255 255 255 204 204 204 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 141 142 141  +119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 2 2 2 131 131 131 240 235 222 231 198 127 231 199 39  +190 146 50 58 43 7 1 1 0 131 131 131 255 255 255 255 255 255 255 255 255 255 255 255  +255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +239 239 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254  +254 254 254 153 159 160 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 141 142 141  +111 114 112 2 2 2 16 16 16 34 34 34 35 35 36 16 16 16 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 1 1 0 163 157 151 218 210 190 233 177 11 239 191 15 239 191 15  +239 194 10 230 173 7 104 68 5 127 128 122 255 255 255 255 255 255 255 255 255 255 255 255  +255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +239 239 239 231 231 230 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 253 252 251 253 252 251  +237 229 207 141 122 119 5 4 2 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141  +244 244 244 240 235 222 240 235 222 237 229 207 237 229 207 237 229 207 208 207 206 51 51 51  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 95 95 95 237 229 207 224 170 17 233 177 11 237 185 13 239 191 15  +239 191 15 239 191 15 233 179 8 192 156 83 255 255 255 255 255 255 255 255 255 255 255 255  +255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +239 239 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 240 235 222 222 169 38  +215 152 18 219 157 11 204 146 9 188 133 20 148 102 14 130 96 8 148 102 14 188 133 20  +190 146 50 215 152 18 215 152 18 221 159 7 217 155 7 215 152 18 220 185 82 236 237 236  +25 25 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 28 28 28 233 231 230 227 180 59 215 152 18 223 162 13 233 177 11 238 184 11  +239 191 15 238 184 11 239 191 15 238 196 12 214 199 171 255 255 255 255 255 255 255 255 255  +255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +241 241 241 226 227 227 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 255 255 255 255 255 254 253 252 251 203 181 131 198 139 9  +204 146 9 219 157 11 219 157 11 215 152 18 219 157 11 215 152 18 215 152 18 215 152 18  +223 162 13 224 170 17 230 172 11 233 177 11 231 175 8 223 162 13 215 152 18 231 198 127  +141 142 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 11 11  +85 85 85 230 228 223 220 185 82 204 146 9 219 157 11 230 172 11 234 181 11 236 184 12  +237 185 13 237 185 13 238 184 11 239 194 10 239 191 15 249 244 230 253 252 251 255 255 255  +255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 251 251 251 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 255 255 255 254 254 254 240 235 222 182 124 9 199 131 5  +217 155 7 221 159 7 227 169 7 233 176 9 230 172 11 230 172 11 230 172 11 233 177 11  +233 177 11 235 179 10 235 179 10 236 183 11 234 181 11 230 172 11 224 170 17 227 180 59  +231 233 233 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 61 61 61 88 88 88 146 149 148 191 191 191 230 228 223  +237 229 207 190 146 50 215 152 18 219 157 11 230 172 11 233 177 11 234 182 11 236 185 13  +237 185 13 237 185 13 237 185 13 238 184 11 239 194 10 227 180 59 249 244 230 255 255 255  +255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 235 235 235 202 202 202 203 181 131 170 114 5 198 139 9  +216 159 5 227 169 7 234 178 8 236 182 10 234 181 11 234 181 11 234 181 11 234 182 11  +236 183 11 234 181 11 236 182 10 236 183 11 236 182 10 231 175 8 224 170 17 215 152 18  +244 244 244 34 34 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 131 131 131 240 235 222 231 198 127 231 198 127 227 180 59 188 133 20  +204 146 9 217 144 7 219 157 11 227 166 7 233 177 11 236 182 10 237 185 11 237 185 13  +237 185 13 237 185 13 239 191 15 238 184 11 238 184 8 232 191 11 220 185 82 255 255 255  +255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 248 248 248 197 197 197 192 192 192 192 156 83 170 114 5 204 146 9  +221 159 7 229 171 7 234 180 8 236 184 10 237 185 11 237 185 11 236 183 11 235 183 10  +235 183 10 236 184 11 237 185 11 237 183 10 237 181 9 235 179 10 227 169 7 198 139 9  +218 210 190 119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +1 1 0 111 114 112 237 229 207 222 169 38 223 162 13 227 166 7 224 170 17 230 172 11  +230 172 11 230 172 11 230 172 11 233 176 9 236 180 8 237 183 10 237 185 11 237 185 12  +237 185 13 237 185 13 237 185 13 236 186 12 238 184 8 236 186 12 232 191 11 214 199 171  +255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 248 248 248 197 197 197 187 186 186 192 156 83 182 124 9 198 139 9  +217 163 7 233 176 6 236 182 9 237 183 10 236 184 10 237 183 10 236 182 9 235 182 10  +235 183 10 235 184 12 236 186 12 235 183 9 237 181 9 235 179 10 227 169 7 217 155 7  +192 156 83 238 236 230 28 28 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 203 203 203 227 180 59 215 152 18 224 170 17 233 177 11 235 179 10 236 180 8  +236 180 8 236 180 8 234 180 8 235 179 10 235 181 9 236 183 11 236 184 11 236 185 13  +237 185 13 237 185 13 237 185 13 237 185 13 238 184 11 238 184 8 237 191 8 226 196 19  +240 235 222 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 248 248 248 197 197 197 192 192 192 192 156 83 175 125 4 204 146 9  +221 159 7 233 176 6 235 181 9 235 181 9 235 183 9 235 182 10 235 183 10 235 183 10  +235 183 10 235 184 11 236 184 12 235 183 9 236 180 8 234 178 8 230 172 11 217 155 7  +198 139 9 203 181 131 240 235 222 56 56 56 0 0 0 0 0 0 0 0 0 0 0 0  + +1 1 1 217 218 217 227 180 59 227 169 7 235 179 10 236 182 10 237 183 10 237 183 10  +236 182 9 236 182 9 235 183 9 235 183 9 235 183 10 236 184 11 236 184 11 236 184 11  +236 185 13 237 185 13 237 185 13 237 185 13 237 185 13 237 185 11 236 182 9 232 191 11  +227 180 59 248 248 248 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 208 207 206 189 189 189 192 156 83 183 127 3 217 155 7  +227 169 7 236 182 10 233 179 8 234 178 8 235 181 9 235 182 10 235 182 10 235 183 10  +235 183 10 235 183 10 236 184 10 235 183 9 234 180 8 234 180 8 229 171 7 223 162 13  +217 155 7 199 131 5 220 185 82 238 236 230 167 167 166 39 40 40 0 0 0 0 0 0  + +0 0 0 217 218 217 220 185 82 215 152 18 233 177 11 236 182 10 236 183 11 237 185 11  +236 185 13 236 184 12 236 184 10 236 184 10 236 183 11 236 184 11 236 183 11 236 184 11  +236 184 12 237 185 12 237 185 13 237 185 13 237 185 13 237 185 11 238 184 8 237 191 8  +222 189 8 231 198 127 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 219 219 219 179 180 180 107 93 64 198 139 9 206 148 3  +227 169 7 234 178 7 234 180 8 234 178 7 235 181 9 235 182 10 235 182 10 235 183 10  +235 183 10 235 183 10 236 184 10 235 183 9 234 180 8 234 178 8 233 176 9 229 171 7  +223 162 13 219 157 11 217 144 7 215 152 18 220 185 82 249 244 230 124 129 126 0 0 0  + +1 1 1 194 194 194 220 185 82 219 157 11 230 172 11 234 181 11 235 184 11 235 184 11  +235 184 11 235 183 10 235 183 10 235 183 10 235 182 10 236 183 11 236 183 11 236 184 12  +236 184 12 236 184 12 236 185 13 236 185 13 237 184 12 235 184 12 236 184 11 237 183 10  +238 196 12 221 175 7 237 229 207 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 197 197 197 39 40 40 104 68 5 187 136 3 206 148 3  +227 169 7 234 178 7 235 181 9 234 180 8 235 181 9 235 182 10 235 182 10 236 183 11  +235 182 10 235 183 10 235 183 10 235 183 10 235 183 9 235 181 9 235 181 9 235 179 10  +231 175 8 227 166 7 219 157 11 215 152 18 215 152 18 222 169 38 225 224 224 1 1 1  + +0 0 0 179 180 180 231 198 127 204 146 9 230 172 11 234 181 11 234 181 11 235 183 10  +235 183 10 235 183 10 235 183 10 235 183 10 235 183 10 236 183 11 236 183 11 236 183 11  +236 183 11 236 184 11 236 184 11 235 184 11 234 184 12 234 184 12 235 184 11 237 185 11  +238 184 8 237 191 8 222 169 38 249 244 230 253 252 251 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 194 194 194 25 25 26 1 1 0 104 68 5 187 136 3 217 155 7  +227 169 7 234 178 7 235 181 9 235 182 10 235 182 10 235 183 10 235 183 10 236 183 11  +236 183 11 236 183 11 236 183 11 236 184 11 236 184 11 236 184 10 236 184 10 237 183 10  +235 181 9 233 177 11 227 169 7 219 157 11 217 144 7 231 198 127 197 197 197 2 2 2  + +1 1 1 153 159 160 231 198 127 215 152 18 224 170 17 233 177 11 235 184 11 236 182 10  +236 182 10 235 182 10 235 182 10 235 182 10 235 184 11 236 183 11 236 183 11 236 183 11  +236 183 11 236 183 11 235 184 11 235 184 11 235 184 11 234 184 12 234 182 11 236 184 11  +238 184 8 234 187 8 232 191 11 220 185 82 253 252 251 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +241 241 241 119 120 120 4 4 4 0 0 0 0 0 0 130 96 8 187 136 3 216 159 5  +230 173 7 234 178 7 234 180 8 235 183 9 236 184 11 236 184 12 236 184 11 237 185 11  +237 185 11 236 183 11 236 183 11 236 184 11 236 184 11 236 184 11 236 185 13 237 185 12  +236 184 12 235 179 10 223 162 13 199 131 5 220 185 82 219 219 219 11 11 11 0 0 0  + +0 0 0 136 141 140 231 198 127 215 152 18 223 162 13 233 177 11 237 184 12 238 184 11  +236 182 10 235 182 10 235 182 10 235 182 10 235 182 10 236 183 11 236 183 11 236 184 11  +237 185 11 236 184 12 235 184 11 235 184 11 235 184 12 234 182 11 235 184 11 235 183 10  +236 182 9 233 181 8 222 189 8 221 175 7 231 198 127 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 251 251 251 159 159 159  +28 28 28 0 0 0 0 0 0 0 0 0 8 6 3 130 96 8 200 140 3 221 159 7  +229 171 7 233 176 6 234 178 7 234 187 8 237 185 13 237 185 13 237 185 13 237 185 12  +237 185 11 236 184 11 235 184 11 235 184 11 236 184 11 237 185 12 237 185 12 237 185 13  +237 185 13 230 172 11 199 131 5 215 152 18 246 246 246 31 31 31 2 2 2 1 1 1  + +0 0 0 159 159 159 231 198 127 215 152 18 227 166 7 235 179 10 236 183 11 237 185 11  +236 183 11 235 181 9 233 179 8 234 180 8 235 181 9 236 183 11 236 183 11 236 184 11  +236 184 11 236 185 13 236 185 13 236 185 13 236 185 13 234 184 12 234 182 11 235 183 9  +234 178 7 233 181 8 221 175 7 221 175 7 198 139 9 214 199 171 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 244 244 244 167 167 166 45 47 47 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 30 20 1 155 102 4 200 140 3 216 159 5  +229 171 7 233 176 6 235 183 9 234 184 12 235 184 12 237 185 13 236 186 12 236 186 12  +237 185 11 235 184 11 235 184 11 235 184 11 235 184 12 236 185 13 237 185 13 238 184 11  +233 177 11 217 144 7 222 169 38 246 246 246 109 109 110 2 2 2 0 0 0 0 0 0  + +0 0 0 213 213 213 227 180 59 217 144 7 227 166 7 233 176 9 234 180 8 236 182 10  +236 182 10 233 176 6 231 175 8 231 175 8 233 179 8 236 182 10 236 183 11 236 184 12  +236 184 12 236 185 13 236 185 13 236 185 13 235 184 12 234 184 12 235 184 11 235 183 9  +236 180 8 234 178 7 227 169 7 217 163 7 204 146 9 130 96 8 81 79 75 167 167 166  +232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 253 252 251  +239 239 239 204 204 204 146 149 148 85 85 85 16 16 16 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 30 20 1 155 102 4 206 148 3 217 163 7  +229 171 7 233 176 6 233 181 8 234 184 12 236 185 13 237 185 13 237 185 12 236 185 13  +235 184 11 235 184 11 235 184 11 234 182 11 234 182 11 233 176 9 230 172 11 229 171 7  +215 152 18 231 198 127 233 231 230 69 69 69 5 4 2 0 0 0 0 0 0 0 0 0  + +18 18 18 244 244 244 215 152 18 217 155 7 221 159 7 223 165 7 227 169 7 230 173 7  +231 175 8 230 173 7 231 175 8 231 175 8 233 176 6 234 180 8 236 182 10 237 184 12  +237 184 12 237 185 12 237 185 13 237 185 13 237 185 13 236 185 13 235 184 12 236 184 11  +236 182 9 237 183 8 229 171 7 217 163 7 204 146 9 170 114 5 91 61 1 1 1 0  +2 2 2 31 31 31 39 40 40 43 43 43 43 43 43 39 40 40 35 37 37 20 20 20  +3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 1 1 0 58 43 7 170 114 5 200 140 3 216 159 5  +229 171 7 233 176 6 234 178 7 235 183 9 235 184 11 237 185 12 237 185 12 235 181 9  +235 179 10 234 181 11 235 179 10 233 176 9 231 175 8 230 172 11 215 152 18 215 152 18  +240 235 222 141 142 141 16 16 16 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0  + +43 43 43 249 244 230 215 152 18 204 146 9 204 146 9 204 146 9 217 155 7 217 155 7  +216 159 5 216 159 5 223 165 7 223 165 7 227 169 7 229 171 7 231 175 8 233 176 9  +235 179 10 235 179 10 236 183 11 237 185 11 236 183 11 236 183 11 236 183 11 236 183 11  +236 183 11 234 180 8 227 169 7 216 159 5 187 136 3 170 114 5 104 68 5 15 12 7  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 91 61 1 155 102 4 200 140 3 217 155 7  +223 165 7 230 173 7 233 176 6 234 178 7 233 179 8 236 180 8 235 179 10 233 176 9  +233 176 9 230 173 7 227 166 7 223 165 7 215 152 18 190 146 50 231 198 127 241 240 237  +85 85 85 5 4 2 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0  + +4 4 4 202 202 202 237 229 207 192 156 83 188 133 20 182 124 9 182 124 9 183 127 3  +199 131 5 198 139 9 204 146 9 204 146 9 204 146 9 206 148 3 217 155 7 217 163 7  +223 165 7 223 165 7 230 173 7 233 179 8 234 178 8 234 178 8 234 178 8 233 176 9  +231 175 8 229 171 7 216 159 5 198 139 9 175 125 4 155 102 4 104 68 5 30 20 1  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 58 43 7 155 102 4 183 127 3 200 140 3  +216 159 5 223 165 7 229 171 7 233 176 6 231 175 8 231 175 8 229 171 7 227 166 7  +223 165 7 217 155 7 204 146 9 188 133 20 231 198 127 224 223 222 119 120 120 22 22 22  +1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 3 3 3 95 95 95 179 180 180 234 234 234 237 229 207 203 181 131 192 156 83  +188 133 20 159 120 9 170 114 5 182 124 9 182 124 9 182 124 9 183 127 3 187 136 3  +198 139 9 198 139 9 217 155 7 217 163 7 223 165 7 223 165 7 223 165 7 223 165 7  +216 159 5 204 146 9 198 139 9 175 125 4 155 102 4 120 77 2 91 61 1 15 12 7  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 58 43 7 120 77 2 170 114 5 183 127 3  +200 140 3 206 148 3 216 159 5 216 159 5 221 159 7 216 159 5 217 155 7 204 146 9  +198 139 9 182 124 9 190 146 50 218 210 190 146 149 148 7 7 7 0 0 0 1 1 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 45 47 47 109 109 110 159 166 168  +226 227 227 248 248 248 218 210 190 203 181 131 192 156 83 148 102 14 148 102 14 148 102 14  +155 102 4 170 114 5 182 124 9 183 127 3 187 136 3 198 139 9 198 139 9 198 139 9  +187 136 3 182 124 9 170 114 5 155 102 4 130 96 8 104 68 5 58 43 7 8 6 3  +73 73 73 141 142 141 179 180 180 203 203 203 208 207 206 213 213 213 213 213 213 219 219 219  +234 234 234 235 235 235 236 237 236 235 235 235 236 237 236 239 239 239 234 234 234 240 240 239  +224 224 224 225 224 224 217 218 217 131 131 131 58 43 7 120 77 2 155 102 4 170 114 5  +182 124 9 183 127 3 198 139 9 200 140 3 200 140 3 200 140 3 187 136 3 175 125 4  +155 102 4 192 156 83 230 228 223 85 85 85 1 1 1 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1  +1 1 1 35 35 36 81 79 75 104 104 104 146 149 148 208 207 206 233 231 230 214 199 171  +162 157 129 148 102 14 130 96 8 148 102 14 155 102 4 170 114 5 170 114 5 155 102 4  +155 102 4 155 102 4 130 96 8 120 77 2 104 68 5 91 61 1 167 167 166 233 231 230  +172 176 175 88 88 88 43 43 43 12 12 12 8 8 8 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 20 20 20 179 180 180 162 157 129 91 61 1 120 77 2 155 102 4  +170 114 5 170 114 5 175 125 4 182 124 9 182 124 9 170 114 5 155 102 4 130 96 8  +203 181 131 197 197 197 35 35 36 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 1 1 1 2 2 2 1 1 1 1 1 1 22 22 22 73 73 73  +131 136 135 192 192 192 230 228 223 162 157 129 107 93 64 104 68 5 120 77 2 130 96 8  +130 96 8 120 77 2 104 68 5 91 61 1 91 70 38 224 223 222 123 123 123 7 7 7  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 1 1 1 43 43 43 228 228 227 91 70 38 91 61 1 104 68 5  +120 77 2 130 96 8 155 102 4 155 102 4 155 102 4 120 77 2 107 93 64 214 199 171  +172 176 175 7 7 7 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +1 1 1 1 1 1 24 24 24 111 114 112 218 210 190 218 210 190 141 122 119 107 93 64  +107 93 64 91 70 38 107 93 64 175 172 168 249 244 230 109 109 110 1 1 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 1 1 1 88 88 88 246 246 246 175 172 168 145 135 65  +91 70 38 91 61 1 58 43 7 91 61 1 107 93 64 163 157 151 237 229 207 109 109 110  +4 4 4 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 65 65 65 145 140 129 163 157 151  +175 172 168 218 210 190 197 197 197 141 122 119 18 18 18 1 1 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 35 35 36 95 95 95 146 149 148  +197 197 197 221 221 221 231 230 229 235 235 235 187 186 186 123 123 123 12 12 12 1 1 1  +1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + diff --git a/abs/core-testing/tmp/logo_linux_mono.pbm b/abs/core-testing/tmp/logo_linux_mono.pbm new file mode 100644 index 0000000..6a5e007 --- /dev/null +++ b/abs/core-testing/tmp/logo_linux_mono.pbm @@ -0,0 +1,883 @@ +P3 +80 80 +255 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 0 0 0  +128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 0 0 0  +128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 0 0 0 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0  +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  + +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  + +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  + +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  + +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  + +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  + +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  + +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  + +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  + +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 0 0 0 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127  +0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 0 0 0 128 128 127  +0 0 0 128 128 127 0 0 0 128 128 127 0 0 0 128 128 127 0 0 0 128 128 127  +0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127  +128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127  +128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + diff --git a/abs/core-testing/tmp/logo_linux_vga16.ppm b/abs/core-testing/tmp/logo_linux_vga16.ppm new file mode 100644 index 0000000..8b2d1ea --- /dev/null +++ b/abs/core-testing/tmp/logo_linux_vga16.ppm @@ -0,0 +1,883 @@ +P3 +80 80 +255 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 36 26 8 102 124 121 157 146 143 232 232 232 232 232 232 232 232 232 232 232 232  +232 232 232 232 232 232 232 232 232 214 202 162 157 146 143 44 44 44 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +157 146 143 232 232 232 157 146 143 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 214 202 162 232 232 232 157 146 143  +36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 214 202 162 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121  +232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 102 124 121 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 44 44 44 44 44 44 0 0 0  +0 0 0 44 44 44 157 146 143 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 102 124 121 44 44 44  +0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 102 124 121 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 118 110 50 44 44 44  +0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 44 44 44 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 36 26 8 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 232 232 232 44 44 44  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +36 26 8 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 44 44 44 36 26 8 44 44 44 44 44 44 44 44 44  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 102 124 121  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121  +102 124 121 44 44 44 36 26 8 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 44 44 44 157 146 143 157 146 143 157 146 143 157 146 143 44 44 44 36 26 8  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 157 146 143  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 255 255 254 0 0 0 0 0 0 36 26 8 157 146 143 157 146 143  +232 232 232 157 146 143 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +102 124 121 214 202 162 214 202 162 232 232 232 232 232 232 214 202 162 102 124 121 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 214 202 162  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 250 246 233 0 0 0 0 0 0 102 124 121 214 202 162 232 232 232  +232 232 232 254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 102 124 121  +232 232 232 232 232 232 232 232 232 157 146 143 214 202 162 232 232 232 232 232 232 44 44 44  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 102 124 121 157 146 143 0 0 0  +44 44 44 157 146 143 232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 102 124 121  +232 232 232 214 202 162 44 44 44 0 0 0 102 124 121 102 124 121 232 232 232 232 232 232  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 157 146 143 44 44 44 44 44 44  +102 124 121 44 44 44 232 232 232 157 146 143 0 0 0 44 44 44 36 26 8 102 124 121  +232 232 232 102 124 121 0 0 0 0 0 0 44 44 44 0 0 0 232 232 232 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 157 146 143 102 124 121 0 0 0  +0 0 0 44 44 44 214 202 162 157 146 143 36 26 8 36 26 8 36 26 8 44 44 44  +232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 254 254 254  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254  +36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 44 44 44 214 202 162 0 0 0  +0 0 0 36 26 8 188 146 47 227 174 11 227 174 11 226 188 8 227 174 11 188 146 47  +226 177 55 118 110 50 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 232 232 232  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 232 232 232 157 146 143  +44 44 44 223 156 6 188 146 47 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8  +226 177 55 226 188 8 188 146 47 118 110 50 118 110 50 232 232 232 254 254 254 102 124 121  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 44 44 44 226 177 55  +223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55  +226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 157 146 143 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 102 124 121 102 124 121 0 0 0 36 26 8 118 110 50 223 156 6  +227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55  +226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 188 146 47  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 118 110 50 223 156 6 223 156 6  +223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55  +226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 223 156 6 223 156 6  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 102 124 121 157 146 143 36 26 8 36 26 8 188 146 47 223 156 6  +227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 226 188 8  +226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 223 156 6 223 156 6 188 146 47  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +157 146 143 232 232 232 232 232 232 157 146 143 0 0 0 36 26 8 118 110 50 188 146 47  +223 156 6 226 188 8 226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 226 188 8  +226 188 8 188 146 47 188 146 47 188 146 47 188 146 47 223 156 6 188 146 47 36 26 8  +36 26 8 0 0 0 0 0 0 44 44 44 36 26 8 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 157 146 143 232 232 232  +157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 44 44 44 118 110 50 118 110 50  +118 110 50 223 156 6 226 188 8 226 188 8 226 188 8 188 146 47 226 188 8 188 146 47  +188 146 47 188 146 47 188 146 47 188 146 47 188 146 47 188 146 47 157 146 143 214 202 162  +36 26 8 0 0 0 0 0 0 44 44 44 102 124 121 44 44 44 0 0 0 102 124 121  +157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 232 232 232 157 146 143  +157 146 143 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 214 202 162 157 146 143  +118 110 50 188 146 47 188 146 47 223 156 6 188 146 47 223 156 6 188 146 47 188 146 47  +188 146 47 188 146 47 188 146 47 188 146 47 157 146 143 214 202 162 214 202 162 214 202 162  +102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 102 124 121 44 44 44 0 0 0  +254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 157 146 143 102 124 121  +157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 157 146 143 214 202 162  +188 146 47 118 110 50 118 110 50 118 110 50 188 146 47 188 146 47 188 146 47 188 146 47  +118 110 50 188 146 47 157 146 143 214 202 162 214 202 162 232 232 232 232 232 232 232 232 232  +214 202 162 44 44 44 0 0 0 0 0 0 0 0 0 44 44 44 0 0 0 0 0 0  +232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 157 146 143 102 124 121  +102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 232 232 232  +157 146 143 214 202 162 188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 188 146 47  +188 146 47 214 202 162 157 146 143 232 232 232 232 232 232 232 232 232 254 254 254 232 232 232  +232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 157 146 143 157 146 143  +102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 232 232 232  +232 232 232 214 202 162 157 146 143 214 202 162 157 146 143 214 202 162 157 146 143 214 202 162  +157 146 143 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +44 44 44 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 102 124 121 232 232 232  +102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 102 124 121 214 202 162  +232 232 232 157 146 143 232 232 232 157 146 143 214 202 162 157 146 143 232 232 232 214 202 162  +232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 102 124 121 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 44 44 44 102 124 121  +102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 157 146 143  +232 232 232 232 232 232 157 146 143 232 232 232 157 146 143 232 232 232 214 202 162 232 232 232  +232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 36 26 8 232 232 232 214 202 162 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 36 26 8 232 232 232 44 44 44 0 0 0 0 0 0 157 146 143  +102 124 121 102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121  +254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 102 124 121  +157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121  +232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 232 232 232 36 26 8 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 157 146 143 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121  +214 202 162 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 102 124 121 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 254 254 254 36 26 8  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +157 146 143 157 146 143 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143  +157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 232 232 232 250 246 233 255 255 254 157 146 143 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +102 124 121 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 118 110 50 102 124 121 102 124 121  +102 124 121 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232  +214 202 162 232 232 232 214 202 162 232 232 232 254 254 254 44 44 44 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254  +36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +232 232 232 44 44 44 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0  +44 44 44 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121  +102 124 121 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 157 146 143  +102 124 121 102 124 121 214 202 162 214 202 162 232 232 232 214 202 162 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 0 0 0 157 146 143  +157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +232 232 232 0 0 0 102 124 121 157 146 143 44 44 44 0 0 0 0 0 0 0 0 0  +44 44 44 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121  +102 124 121 214 202 162 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 157 146 143  +44 44 44 0 0 0 214 202 162 232 232 232 157 146 143 232 232 232 102 124 121 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 0 0 0 0 0 0  +254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121  +157 146 143 0 0 0 44 44 44 102 124 121 102 124 121 102 124 121 44 44 44 44 44 44  +157 146 143 157 146 143 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121  +157 146 143 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 102 124 121  +44 44 44 0 0 0 157 146 143 232 232 232 232 232 232 214 202 162 232 232 232 36 26 8  +0 0 0 36 26 8 102 124 121 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0  +254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162  +44 44 44 0 0 0 0 0 0 36 26 8 44 44 44 102 124 121 102 124 121 102 124 121  +157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143  +157 146 143 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 214 202 162 102 124 121  +0 0 0 0 0 0 157 146 143 232 232 232 232 232 232 232 232 232 157 146 143 102 124 121  +102 124 121 102 124 121 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0  +232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 102 124 121  +102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121  +157 146 143 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 232 232 232 254 254 254  +254 254 254 254 254 254 232 232 232 157 146 143 157 146 143 157 146 143 102 124 121 44 44 44  +0 0 0 0 0 0 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 44 44 44  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +44 44 44 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121  +102 124 121 102 124 121 102 124 121 44 44 44 36 26 8 0 0 0 44 44 44 255 255 254  +254 254 254 232 232 232 36 26 8 44 44 44 102 124 121 44 44 44 44 44 44 44 44 44  +0 0 0 0 0 0 0 0 0 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +102 124 121 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +254 254 254 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 254 254 254  +254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121  +157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 254 254 254  +254 254 254 255 255 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +214 202 162 44 44 44 0 0 0 0 0 0 36 26 8 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 250 246 233 254 254 254 254 254 254  +254 254 254 254 254 254 255 255 254 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +254 254 254 0 0 0 0 0 0 102 124 121 232 232 232 157 146 143 44 44 44 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 36 26 8 102 124 121 214 202 162 255 255 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 157 146 143 44 44 44 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232  +44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +232 232 232 0 0 0 0 0 0 102 124 121 254 254 254 254 254 254 254 254 254 232 232 232  +157 146 143 157 146 143 102 124 121 118 110 50 102 124 121 102 124 121 102 124 121 157 146 143  +232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232  +214 202 162 102 124 121 102 124 121 44 44 44 102 124 121 44 44 44 102 124 121 102 124 121  +157 146 143 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121  +157 146 143 0 0 0 0 0 0 102 124 121 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 232 232 232 254 254 254 250 246 233 254 254 254 254 254 254  +232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44  +214 202 162 0 0 0 0 0 0 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 157 146 143 232 232 232  +157 146 143 0 0 0 0 0 0 157 146 143 254 254 254 254 254 254 255 255 254 255 255 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +250 246 233 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 232 232 232 214 202 162 226 177 55  +226 177 55 36 26 8 0 0 0 157 146 143 254 254 254 254 254 254 254 254 254 255 255 254  +255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +102 124 121 0 0 0 36 26 8 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 157 146 143 214 202 162 227 174 11 226 188 8 226 188 8  +226 188 8 223 156 6 118 110 50 102 124 121 254 254 254 254 254 254 255 255 254 255 255 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 250 246 233  +232 232 232 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143  +250 246 233 232 232 232 232 232 232 232 232 232 214 202 162 232 232 232 232 232 232 44 44 44  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 102 124 121 232 232 232 227 174 11 227 174 11 226 188 8 226 188 8  +226 188 8 226 188 8 227 174 11 188 146 47 255 255 254 255 255 254 255 255 254 255 255 254  +255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +250 246 233 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 250 246 233 188 146 47  +223 156 6 223 156 6 188 146 47 188 146 47 118 110 50 118 110 50 118 110 50 188 146 47  +223 156 6 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 226 177 55 232 232 232  +36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 36 26 8 232 232 232 226 177 55 223 156 6 227 174 11 227 174 11 226 188 8  +226 188 8 226 188 8 226 188 8 226 188 8 214 202 162 255 255 254 255 255 254 255 255 254  +255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 226 177 55 223 156 6  +223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6  +223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 214 202 162  +157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +102 124 121 232 232 232 226 177 55 188 146 47 223 156 6 227 174 11 227 174 11 226 188 8  +227 174 11 226 188 8 226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 255 255 254  +255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 255 255 254 254 254 254 232 232 232 188 146 47 188 146 47  +223 156 6 223 156 6 223 156 6 227 174 11 223 156 6 227 174 11 223 156 6 227 174 11  +227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 226 177 55  +232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 157 146 143 214 202 162 232 232 232  +214 202 162 188 146 47 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8  +226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 250 246 233 255 255 254  +255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 226 177 55 118 110 50 188 146 47  +223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11  +227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 188 146 47  +250 246 233 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 102 124 121 250 246 233 214 202 162 214 202 162 226 177 55 188 146 47  +223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 227 174 11 226 188 8 226 188 8  +226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 255 255 254  +255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 214 202 162 157 146 143 157 146 143 223 156 6 223 156 6  +223 156 6 223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8  +226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 227 174 11 227 174 11 223 156 6  +214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 102 124 121 232 232 232 223 156 6 223 156 6 223 156 6 223 156 6 227 174 11  +223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 227 174 11  +226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 214 202 162  +255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 232 232 232 232 232 232 214 202 162 188 146 47 118 110 50 188 146 47  +223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11  +227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 223 156 6 188 146 47  +226 177 55 232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 214 202 162 226 177 55 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11  +227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 177 55  +250 246 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 214 202 162 214 202 162 157 146 143 223 156 6 223 156 6  +223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8  +226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 223 156 6  +188 146 47 226 177 55 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 232 232 232 226 177 55 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8  +226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8  +226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8  +226 177 55 250 246 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 232 232 232 232 232 232 157 146 143 188 146 47 188 146 47 223 156 6  +223 156 6 226 188 8 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 227 174 11 227 174 11 223 156 6  +223 156 6 188 146 47 226 177 55 254 254 254 157 146 143 44 44 44 0 0 0 0 0 0  + +0 0 0 232 232 232 226 177 55 223 156 6 227 174 11 226 188 8 227 174 11 226 188 8  +227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8  +226 188 8 214 202 162 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 232 232 232 157 146 143 102 124 121 223 156 6 223 156 6  +223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11  +226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11  +223 156 6 223 156 6 188 146 47 223 156 6 214 202 162 250 246 233 102 124 121 0 0 0  + +0 0 0 214 202 162 214 202 162 223 156 6 227 174 11 226 188 8 227 174 11 226 188 8  +226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11  +226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8  +226 188 8 226 188 8 214 202 162 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 232 232 232 232 232 232 36 26 8 118 110 50 118 110 50 223 156 6  +223 156 6 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8  +226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11  +227 174 11 223 156 6 223 156 6 223 156 6 223 156 6 226 177 55 232 232 232 0 0 0  + +0 0 0 157 146 143 214 202 162 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8  +227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11  +226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11  +226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 214 202 162 0 0 0 0 0 0 118 110 50 223 156 6 223 156 6  +223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11  +226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8  +227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 214 202 162 214 202 162 0 0 0  + +0 0 0 157 146 143 214 202 162 223 156 6 227 174 11 227 174 11 226 188 8 227 174 11  +226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 227 174 11 226 188 8  +226 188 8 226 188 8 226 188 8 226 177 55 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 102 124 121 0 0 0 0 0 0 36 26 8 36 26 8 188 146 47 223 156 6  +227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8  +226 188 8 227 174 11 223 156 6 223 156 6 226 177 55 232 232 232 0 0 0 0 0 0  + +0 0 0 157 146 143 214 202 162 223 156 6 223 156 6 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8  +226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 226 188 8 226 188 8 214 202 162 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 157 146 143  +36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 188 146 47 223 156 6 223 156 6  +223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8  +226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11  +226 188 8 227 174 11 223 156 6 188 146 47 232 232 232 36 26 8 0 0 0 0 0 0  + +0 0 0 157 146 143 226 177 55 223 156 6 227 174 11 227 174 11 226 188 8 227 174 11  +226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8  +226 177 55 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11  +226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 214 202 162 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 157 146 143 44 44 44 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 110 50 223 156 6 223 156 6  +227 174 11 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8  +227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11  +227 174 11 223 156 6 226 177 55 232 232 232 102 124 121 0 0 0 0 0 0 0 0 0  + +0 0 0 232 232 232 226 177 55 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11  +226 188 8 227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8  +226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8  +227 174 11 226 188 8 227 174 11 223 156 6 223 156 6 118 110 50 118 110 50 157 146 143  +232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254  +232 232 232 232 232 232 157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 118 110 50 223 156 6 223 156 6  +223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8  +226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11  +223 156 6 214 202 162 232 232 232 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0  + +36 26 8 250 246 233 188 146 47 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11  +227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 226 188 8 226 188 8 226 177 55 227 174 11 226 188 8 226 188 8  +227 174 11 226 188 8 223 156 6 223 156 6 223 156 6 188 146 47 36 26 8 0 0 0  +0 0 0 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 36 26 8  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 36 26 8 36 26 8 118 110 50 223 156 6 223 156 6  +227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11  +227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 227 174 11 223 156 6 223 156 6  +232 232 232 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +44 44 44 250 246 233 223 156 6 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6  +223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11  +227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 227 174 11  +226 188 8 227 174 11 227 174 11 223 156 6 188 146 47 118 110 50 118 110 50 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 223 156 6 223 156 6 223 156 6  +223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 227 174 11 226 188 8  +227 174 11 227 174 11 227 174 11 227 174 11 223 156 6 188 146 47 214 202 162 250 246 233  +118 110 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 232 232 232 214 202 162 226 177 55 118 110 50 188 146 47 188 146 47 188 146 47  +223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 227 174 11  +227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11  +227 174 11 227 174 11 223 156 6 188 146 47 223 156 6 118 110 50 118 110 50 36 26 8  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 36 26 8 36 26 8 118 110 50 118 110 50 223 156 6  +223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11  +227 174 11 223 156 6 223 156 6 223 156 6 214 202 162 232 232 232 102 124 121 36 26 8  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 102 124 121 157 146 143 250 246 233 214 202 162 214 202 162 188 146 47  +118 110 50 188 146 47 118 110 50 223 156 6 118 110 50 223 156 6 188 146 47 223 156 6  +188 146 47 223 156 6 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11  +223 156 6 223 156 6 223 156 6 118 110 50 118 110 50 118 110 50 36 26 8 36 26 8  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 188 146 47 188 146 47 188 146 47  +223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6  +223 156 6 188 146 47 118 110 50 232 232 232 157 146 143 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 157 146 143  +232 232 232 250 246 233 214 202 162 157 146 143 188 146 47 118 110 50 118 110 50 118 110 50  +118 110 50 118 110 50 188 146 47 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6  +188 146 47 223 156 6 118 110 50 188 146 47 118 110 50 118 110 50 36 26 8 36 26 8  +44 44 44 157 146 143 157 146 143 232 232 232 214 202 162 232 232 232 214 202 162 232 232 232  +232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232  +232 232 232 232 232 232 232 232 232 157 146 143 36 26 8 36 26 8 118 110 50 118 110 50  +188 146 47 118 110 50 223 156 6 223 156 6 223 156 6 223 156 6 188 146 47 223 156 6  +118 110 50 188 146 47 232 232 232 118 110 50 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 36 26 8 118 110 50 102 124 121 157 146 143 214 202 162 232 232 232 214 202 162  +188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50  +118 110 50 118 110 50 118 110 50 118 110 50 36 26 8 118 110 50 157 146 143 232 232 232  +214 202 162 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 214 202 162 157 146 143 118 110 50 118 110 50 188 146 47  +118 110 50 223 156 6 118 110 50 188 146 47 118 110 50 188 146 47 118 110 50 118 110 50  +157 146 143 214 202 162 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44  +157 146 143 214 202 162 232 232 232 188 146 47 118 110 50 118 110 50 118 110 50 118 110 50  +118 110 50 118 110 50 118 110 50 36 26 8 118 110 50 214 202 162 157 146 143 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 118 110 50 36 26 8 36 26 8  +118 110 50 118 110 50 118 110 50 118 110 50 188 146 47 36 26 8 118 110 50 214 202 162  +214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8  +0 0 0 0 0 0 36 26 8 102 124 121 214 202 162 214 202 162 118 110 50 118 110 50  +118 110 50 118 110 50 118 110 50 157 146 143 232 232 232 102 124 121 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 232 232 232 214 202 162 188 146 47  +36 26 8 36 26 8 118 110 50 36 26 8 118 110 50 157 146 143 214 202 162 102 124 121  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 157 146 143 157 146 143  +157 146 143 214 202 162 214 202 162 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 118 110 50 157 146 143  +232 232 232 214 202 162 232 232 232 232 232 232 214 202 162 157 146 143 36 26 8 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  + diff --git a/abs/core-testing/ttf-dejavu/ChangeLog b/abs/core-testing/ttf-dejavu/ChangeLog index 5c02e9f..b3cf284 100644 --- a/abs/core-testing/ttf-dejavu/ChangeLog +++ b/abs/core-testing/ttf-dejavu/ChangeLog @@ -1,3 +1,13 @@ +2008-12-22  Alexander Fehr  <pizzapunk gmail com> + +  * ttf-dejavu-2.28-1: +  New upstream release. + +2008-11-26  Alexander Fehr  <pizzapunk gmail com> + +  * ttf-dejavu-2.27-1: +  New upstream release. +  2008-07-29  Alexander Fehr  <pizzapunk gmail com>    * ttf-dejavu-2.26-1: diff --git a/abs/core-testing/ttf-dejavu/PKGBUILD b/abs/core-testing/ttf-dejavu/PKGBUILD index 5cbbecc..93356a5 100644 --- a/abs/core-testing/ttf-dejavu/PKGBUILD +++ b/abs/core-testing/ttf-dejavu/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 7356 2008-07-31 01:07:11Z alexanderf $ +# $Id: PKGBUILD 22203 2008-12-22 23:29:26Z alexanderf $  # Maintainer: Alexander Fehr <pizzapunk gmail com>  # Contributor: Jan de Groot <jgc@archlinux.org>  # Contributor: Michal Krenek <mikos@sg1.cz>  pkgname=ttf-dejavu -pkgver=2.26 +pkgver=2.28  pkgrel=1  pkgdesc="Font family based on the Bitstream Vera Fonts with a wider range of characters"  arch=('i686' 'x86_64') @@ -13,7 +13,7 @@ license=('custom')  depends=('fontconfig' 'xorg-fonts-encodings')  install=ttf-dejavu.install  source=(http://downloads.sourceforge.net/dejavu/dejavu-fonts-ttf-$pkgver.tar.bz2) -md5sums=('bff450e8c1b3c9a3f38294ac44d81adc') +md5sums=('10002ae52fbad207641d1fd2bf9bf4b8')  build() {    cd "$srcdir/dejavu-fonts-ttf-$pkgver" diff --git a/abs/core-testing/udev/PKGBUILD b/abs/core-testing/udev/PKGBUILD index 53250cc..f24e308 100644 --- a/abs/core-testing/udev/PKGBUILD +++ b/abs/core-testing/udev/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 14541 2008-10-08 07:37:32Z tpowa $ +# $Id: PKGBUILD 22190 2008-12-22 18:25:11Z tpowa $  # Maintainer: Aaron Griffin <aaron@archlinux.org>  # Maintainer: Tobias Powalowski <tpowa@archlinux.org>  # Maintainer: Thomas Bächler <thomas@archlinux.org>  pkgname=udev -pkgver=130 +pkgver=135  pkgrel=1  pkgdesc="The userspace dev tools (udev)"  arch=(i686 x86_64) @@ -25,13 +25,13 @@ options=(!makeflags)  source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/$pkgname-$pkgver.tar.bz2          81-arch.rules load-modules.sh resolve-modalias.c cdsymlinks.sh root-link.sh          arch-udev-rules.patch readme-udev-arch.txt) -md5sums=('eaaac3c45b8c87d81a82fed254ecee25' +md5sums=('661b9df34e1304dad10f595d95b472bb'           '3a955ca8e2122a48a223f9d8adf87b70'           'f4951f61438d69894b728212dac7318b'           'fca04a608009069beb786e26338a783b'           '8424b78e9dd772e75b4ef90814807815'           '2d6dc6842464f107bccc68cd505a6c31' -         'beb8ebffc3652584363804e41445ba17' +         'ae216c26a6a5cae4a3ef9c0e1f7bfaa6'           '7fc6d33bb218e752302eef0a80ff0a89')  build() { diff --git a/abs/core-testing/udev/arch-udev-rules.patch b/abs/core-testing/udev/arch-udev-rules.patch index 22f9d1b..b672731 100644 --- a/abs/core-testing/udev/arch-udev-rules.patch +++ b/abs/core-testing/udev/arch-udev-rules.patch @@ -5,21 +5,19 @@ diff -Nur rules.d/60-persistent-storage.rules rules.d.arch/60-persistent-storage   SUBSYSTEM!="block", GOTO="persistent_storage_end"   # skip rules for inappropriate block devices --KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*", GOTO="persistent_storage_end" -+KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|md*", GOTO="persistent_storage_end" +-KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*|btibm*", GOTO="persistent_storage_end" ++KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|md*|btibm*", GOTO="persistent_storage_end"   # never access non-cdrom removable ide devices, the drivers are causing event loops on open()   KERNEL=="hd*[!0-9]", ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end"  diff -Nur rules.d/80-drivers.rules rules.d.arch/80-drivers.rules  --- rules.d/80-drivers.rules	2008-09-12 15:59:57.000000000 +0200  +++ rules.d.arch/80-drivers.rules	2008-09-12 16:01:56.000000000 +0200 -@@ -2,16 +2,17 @@ +@@ -2,14 +2,16 @@   ACTION!="add", GOTO="drivers_end"  -DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/sbin/modprobe $env{MODALIAS}" --SUBSYSTEM=="pnp", DRIVER!="?*", ENV{MODALIAS}!="?*", \ --  RUN{ignore_error}+="/bin/sh -c '/sbin/modprobe -a $$(while read id; do echo pnp:d$$id; done < /sys$devpath/id)'"  -SUBSYSTEM=="tifm", RUN+="/sbin/modprobe --all tifm_sd tifm_ms"  -SUBSYSTEM=="memstick", RUN+="/sbin/modprobe --all ms_block mspro_block"  -SUBSYSTEM=="mmc", RUN+="/sbin/modprobe mmc_block" @@ -28,7 +26,6 @@ diff -Nur rules.d/80-drivers.rules rules.d.arch/80-drivers.rules  -SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/sbin/modprobe sg"  -SUBSYSTEM=="module", KERNEL=="parport_pc", RUN+="/sbin/modprobe ppdev"  +DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/lib/udev/load-modules.sh $env{MODALIAS}" -+SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", DRIVER!="?*", RUN{ignore_error}+="/bin/sh -c 'while read id; do /lib/udev/load-modules.sh pnp:d$$id; /lib/udev/load-modules.sh pnp:c$$id ; done < /sys$devpath/id'"  +SUBSYSTEM=="tifm", RUN+="/lib/udev/load-modules.sh tifm_sd"  +SUBSYSTEM=="tifm", RUN+="/lib/udev/load-modules.sh tifm_ms"  +SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh ms_block" @@ -72,42 +69,33 @@ diff -Nur rules.d/50-udev-default.rules rules.d.arch/50-udev-default.rules   # input   KERNEL=="mouse*|mice|event*",	NAME="input/%k", MODE="0640" -@@ -29,20 +35,25 @@ -  - # video4linux +@@ -36,13 +36,18 @@ + KERNEL=="vtx*|vbi*",		GROUP="video" + KERNEL=="winradio*",		GROUP="video"   KERNEL=="vbi0",			SYMLINK+="vbi" -+KERNEL=="vbi[0-9]*",   NAME="v4l/vbi%n", SYMLINK+="%k", GROUP="video" - KERNEL=="radio0",		SYMLINK+="radio" +-KERNEL=="radio0",		SYMLINK+="radio" ++KERNEL=="vbi[0-9]*",   NAME="v4l/vbi%n", SYMLINK+="%k" ++KERNEL=="radio0",		SYMLINK+="video"  +KERNEL=="radio[0-9]*", NAME="v4l/radio%n", SYMLINK+="radio%n", GROUP="video"   KERNEL=="video0",		SYMLINK+="video" -+KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="%k", GROUP="video" ++KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="%k"  +KERNEL=="vtx0", SYMLINK+="vtx" -+KERNEL=="vtx[0-9]*",   NAME="v4l/vtx%n", SYMLINK+="%k", GROUP="video" ++KERNEL=="vtx[0-9]*",   NAME="v4l/vtx%n", SYMLINK+="%k"   # graphics --KERNEL=="agpgart",		MODE="0600" +-KERNEL=="agpgart",		MODE="0600", GROUP="video"  -KERNEL=="card[0-9]*",		NAME="dri/%k", MODE="0666"  -KERNEL=="fb0",			SYMLINK+="fb"  +KERNEL=="agpgart", NAME="misc/%k", SYMLINK+="%k", GROUP="video", MODE="0600"  +KERNEL=="card[0-9]*",		NAME="dri/%k", GROUP="video", MODE="0666"  +KERNEL=="fb[0-9]*", NAME="fb/%n", SYMLINK+="%k", GROUP="video" -  - # DVB video --SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c" -+SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="video" -  - # Firewire --KERNEL=="dv1394*",		SYMLINK+="dv1394/%n" --KERNEL=="video1394*",		NAME="video1394/%n" -+KERNEL=="dv1394*",		SYMLINK+="dv1394/%n", GROUP="video" -+KERNEL=="video1394*",		NAME="video1394/%n", GROUP="video" -  - # firmware class requests - SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh" + KERNEL=="pmu",			GROUP="video" + KERNEL=="nvidia*|nvidiactl*",	GROUP="video" + SUBSYSTEM=="graphics",		GROUP="video"  @@ -62,19 +73,19 @@ + # block, tapes, block-releated + SUBSYSTEM=="block", GROUP="disk"   SUBSYSTEM=="block", KERNEL=="sr[0-9]*", SYMLINK+="scd%n" - SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="0|7|14", ATTR{timeout}="60" - SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="1", ATTR{timeout}="900"  -KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitions"  +KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitions", GROUP="floppy"   KERNEL=="fd[0-9]",		GROUP="floppy" diff --git a/abs/core-testing/unichrome-dri/PKGBUILD b/abs/core-testing/unichrome-dri/PKGBUILD index c51bb2b..2870c39 100644 --- a/abs/core-testing/unichrome-dri/PKGBUILD +++ b/abs/core-testing/unichrome-dri/PKGBUILD @@ -1,40 +1,38 @@ -# $Id: PKGBUILD 1898 2008-05-22 18:05:23Z jgc $ +# $Id: PKGBUILD 13002 2008-09-25 18:36:29Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=unichrome-dri -pkgver=7.0.3 -_mesaver=7.0.3 +pkgver=7.2  pkgrel=1  pkgdesc="DRI drivers for Unichrome-based videochipsets"  arch=(i686 x86_64) -license=('GPL')  url="http://xorg.freedesktop.org/" -depends=('libdrm>=2.3.0' 'expat>=2.0') -makedepends=('imake' 'mesa>=7.0.3' 'glproto>=1.4.9') +depends=('libdrm>=2.3.1' 'expat>=2.0.1' 'libgl>=7.1-2') +makedepends=('dri2proto>=1.1' 'glproto>=1.4.9' 'pkgconfig' 'libxfixes' 'libxdamage' 'libxxf86vm' 'libxext')  options=('!libtool') -source=(http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2) +source=(http://downloads.sourceforge.net/mesa3d/MesaLib-${pkgver}.tar.bz2 +	mesa-7.1-link-shared.patch) +md5sums=('04d379292e023df0b0266825cb0dbde5' +         'f0baa948d9810f268413111ee439d24b')  build() { -  cd ${startdir}/src/Mesa-${_mesaver}/configs - -  CONFIG="linux-dri-x86" -  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64" -  echo "EXTRA_LIB_PATH =" >> ${CONFIG} -  echo "OPT_FLAGS = ${CFLAGS} -fno-strict-aliasing" >> ${CONFIG} -  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG} -  echo "USING_EGL = 0" >> ${CONFIG} -  echo "PROGRAM_DIRS =" >> ${CONFIG} -  echo "MKDEP = makedepend" >> ${CONFIG} -  echo "DRI_DIRS = unichrome" >> ${CONFIG} -  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG} -  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG} - -  ln -s ${CONFIG} current -  cd ${startdir}/src/Mesa-${_mesaver}/src/mesa -  make linux-solo || return 1 -  cd drivers/dri -  make DESTDIR=${startdir}/pkg install || return 1 +  cd ${srcdir}/Mesa-${pkgver} +  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch +  export CFLAGS="${CFLAGS} -ffast-math" +  ./configure --prefix=/usr \ +    --with-dri-driverdir=/usr/lib/xorg/modules/dri \ +    --with-dri-drivers=unichrome \ +    --enable-glx-tls \ +    --disable-ttm-api \ +    --with-driver=dri \ +    --enable-xcb \ +    --disable-glu \ +    --disable-glut \ +    --disable-glw || return 1 +  make || return 1 +  cd src/mesa/drivers/dri || return 1 +  make DESTDIR=${pkgdir} install || return 1 +  rm -rf ${pkgdir}/usr/lib/pkgconfig +  rm -rf ${pkgdir}/usr/include +  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so  } -md5sums=('e6e6379d7793af40a6bc3ce1bace572e') diff --git a/abs/core-testing/unichrome-dri/mesa-7.1-link-shared.patch b/abs/core-testing/unichrome-dri/mesa-7.1-link-shared.patch new file mode 100644 index 0000000..7fdbf14 --- /dev/null +++ b/abs/core-testing/unichrome-dri/mesa-7.1-link-shared.patch @@ -0,0 +1,102 @@ +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile +--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000 +@@ -6,12 +6,17 @@ include $(TOP)/configs/current +  +  +  +-default: $(TOP)/$(LIB_DIR) subdirs ++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs +  +  + $(TOP)/$(LIB_DIR): + 	-mkdir $(TOP)/$(LIB_DIR) +  ++libdricore.so: ++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so ++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR)  +  + subdirs: + 	@for dir in $(DRI_DIRS) ; do \ +@@ -31,12 +36,14 @@ dri.pc: dri.pc.in + 	$(pcedit) $< > $@ +  +  +-install: dri.pc ++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so + 	@for dir in $(DRI_DIRS) ; do \ + 		if [ -d $$dir ] ; then \ + 			(cd $$dir && $(MAKE) install) || exit 1 ; \ + 		fi \ + 	done ++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) + 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal + 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \ + 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal +@@ -52,5 +59,6 @@ clean: + 			(cd $$dir && $(MAKE) clean) ; \ + 		fi \ + 	done ++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so + 	-rm -f common/*.o + 	-rm -f *.pc +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template +--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000 +@@ -1,6 +1,6 @@ + # -*-makefile-*- +  +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so +  + COMMON_SOURCES = \ +         ../common/utils.c \ +@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO +  + $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template + 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ +-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) ++		$(OBJECTS) $(WINOBJ) \ ++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \ ++		$(DRI_LIB_DEPS) +  +  + $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME) +diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S +--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000 +@@ -77,7 +77,6 @@ +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX +-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX + 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + 	pushl	%ebx +@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + 	pushl	%esi +@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + 	pushl	%esi +@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + 	.globl	_generic_read_RGBA_span_RGB565_MMX +-        .hidden _generic_read_RGBA_span_RGB565_MMX + 	.type	_generic_read_RGBA_span_RGB565_MMX, @function +  + _generic_read_RGBA_span_RGB565_MMX: diff --git a/abs/core-testing/v4l-dvb/PKGBUILD b/abs/core-testing/v4l-dvb/PKGBUILD index 8db31a2..10ef694 100644 --- a/abs/core-testing/v4l-dvb/PKGBUILD +++ b/abs/core-testing/v4l-dvb/PKGBUILD @@ -2,9 +2,9 @@  # Maintainer: Cecil Watson<knoppmyth@gmail.com>  pkgname=v4l-dvb -_kernver=2.6.26-ARCH +_kernver=2.6.27-ARCH  pkgver=1 -pkgrel=1 +pkgrel=3  pkgdesc="V4L-DVB drivers from mercurial"  arch=('i686' 'x86_64')  license=('GPL2') diff --git a/abs/core-testing/v4l-dvb/v4l-dvb.install b/abs/core-testing/v4l-dvb/v4l-dvb.install index c87bb82..1c17557 100644 --- a/abs/core-testing/v4l-dvb/v4l-dvb.install +++ b/abs/core-testing/v4l-dvb/v4l-dvb.install @@ -1,20 +1,20 @@  # arg 1:  the new package version  post_install() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1                  }  # arg 1:  the new package version  # arg 2:  the old package version  post_upgrade() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1          }  # arg 1:  the old package version  post_remove() { -  KERNEL_VERSION='2.6.26-ARCH' +  KERNEL_VERSION='2.6.27-ARCH'    depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1          } diff --git a/abs/core-testing/wireless_tools/PKGBUILD b/abs/core-testing/wireless_tools/PKGBUILD new file mode 100644 index 0000000..cb68362 --- /dev/null +++ b/abs/core-testing/wireless_tools/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Judd Vinet <jvinet@zeroflux.org> +# Contributer: Jason Chu <jchu@xentac.net> +pkgname=wireless_tools +pkgver=29 +pkgrel=2 +pkgdesc="Wireless Tools" +arch=(i686 x86_64) +url="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html" +license=('GPL') +depends=('glibc') +backup=('etc/conf.d/wireless') +source=(http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz wireless.conf.d) +md5sums=('e06c222e186f7cc013fd272d023710cb' +         '027576534885b8d5dded9be546057b12') + +build() { +  cd $startdir/src/wireless_tools.29 +  make || return 1 +  mkdir -p $startdir/pkg/usr/sbin +  mkdir -p $startdir/pkg/usr/lib +  mkdir -p $startdir/pkg/usr/include +  mkdir -p $startdir/pkg/usr/man/man8 +#  make INSTALL_DIR=$startdir/pkg/usr/sbin/ INSTALL_LIB=$startdir/pkg/usr/lib/ INSTALL_INC=$startdir/pkg/usr/include/ INSTALL_MAN=$startdir/pkg/usr/man/ install +  make PREFIX=$startdir/pkg/usr install +  install -D -m644 ../wireless.conf.d $startdir/pkg/etc/conf.d/wireless +} diff --git a/abs/core-testing/wireless_tools/wireless.conf.d b/abs/core-testing/wireless_tools/wireless.conf.d new file mode 100644 index 0000000..47540ef --- /dev/null +++ b/abs/core-testing/wireless_tools/wireless.conf.d @@ -0,0 +1,12 @@ +# +# Settings for wireless cards +# +# For each wireless interface declared in INTERFACES (in rc.conf), declare +# a wlan_${IF} variable that contains the arguments to be passed to +# iwconfig(8).  Then list the original interface name in the +# WLAN_INTERFACES array. +# + +#wlan_eth0="eth0 mode managed essid default" +#WLAN_INTERFACES=(eth0) + diff --git a/abs/core-testing/wlan-ng26-utils/PKGBUILD b/abs/core-testing/wlan-ng26-utils/PKGBUILD index e842c99..ecd8f14 100644 --- a/abs/core-testing/wlan-ng26-utils/PKGBUILD +++ b/abs/core-testing/wlan-ng26-utils/PKGBUILD @@ -1,13 +1,13 @@  # $Id: PKGBUILD 7972 2008-08-05 11:03:19Z tpowa $  # Maintainer: Tom Killian <tom@archlinux.org> -pkgname=wlan-ng26-utils -pkgver=0.2.9 +pkgname=wlan-ng26-utils-svn +pkgver=r1870  pkgrel=1  pkgdesc="Wireless Lan userspace tools."  depends=('glibc' 'bash')  makedepends=('kernel26') -source=(ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/linux-wlan-ng-$pkgver.tar.bz2 \ +source=(ftp://ftp.knoppmyth.net/R6/sources/wlan-ng26-svn-$pkgver.tar.bz2 \  	wlan-ng.patch wlan kernel-2.6.26.patch)  url="ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/"  backup=(etc/wlan/wlan.conf) @@ -15,9 +15,9 @@ arch=('i686' 'x86_64')  license=('MPL')  build() { -   cd $startdir/src/linux-wlan-ng-$pkgver -   patch -Np0 -i ../kernel-2.6.26.patch || return 1 -   sed -i "s#TARGET_ROOT_ON_HOST=#TARGET_ROOT_ON_HOST=$startdir/pkg#;s#PRISM2_PLX=y#PRISM2_PLX=n#;s#PRISM2_PCI=y#PRISM2_PCI=n#" config.in +   cd $startdir/src/trunk +#   patch -Np0 -i ../kernel-2.6.26.patch || return 1 +   sed -i "s#TARGET_ROOT_ON_HOST=#TARGET_ROOT_ON_HOST=$startdir/pkg#;s#PRISM2_PLX=y#PRISM2_PLX=n#;s#PRISM2_PCI=y#PRISM2_PCI=n#;s#PRISM2_USB=n#PRISM2_USB=y#;s#PRISM2_PCMCIA=y#PRISM2_PCMCIA=n#" config.in     patch -p1 < ../wlan-ng.patch     make auto_config     make all || return 1 @@ -26,7 +26,7 @@ build() {     rm -r $startdir/pkg/{init.d,lib,etc/pcmcia}     install -m 755 $startdir/src/wlan $startdir/pkg/etc/rc.d/wlan  } -md5sums=('96130b36f9674521b08fb3e2a6ac0382' +md5sums=('86af583059976c2f340e27911af49059'           '706464f9e6e127558aed25b9f454f905'           '1056365bdbe7102b1a668c84926ecb17'           '6ed5a5fefc2c149e0e0a98de211ba147') diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/dir-prop-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/dir-prop-base new file mode 100644 index 0000000..f699813 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/dir-prop-base @@ -0,0 +1,9 @@ +K 10 +svn:ignore +V 31 +config.mk +config.out +TAGS +tags + +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/entries new file mode 100644 index 0000000..2e39e94 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/entries @@ -0,0 +1,420 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk +svn://svn.shaftnet.org/linux-wlan-ng + + + +2008-08-17T16:54:15.152218Z +1870 +pizza +has-props + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +Configure +file + + + + +2009-01-07T08:13:02.000000Z +2d4b0dd69f0bfbef124e6844c426788d +2008-08-12T13:33:16.679039Z +1869 +pizza +has-props + + + + + + + + + + + + + + + + + + + + +13544 + +LICENSE +file + + + + +2009-01-07T08:13:02.000000Z +b9e6db20793ea189ccb1c5b7d94a5916 +2000-02-07T19:26:25.000000Z +295 +mark +has-props + + + + + + + + + + + + + + + + + + + + +30901 + +add-ons +dir + +scripts +dir + +src +dir + +THANKS +file + + + + +2009-01-07T08:13:02.000000Z +b7d5630c54bfef2b65788e13beafd89e +2008-01-31T14:39:57.917675Z +1846 +pizza +has-props + + + + + + + + + + + + + + + + + + + + +5618 + +scm-moved-to-git +file + + + + +2009-01-07T08:13:02.000000Z +f913530834b8f4ffe87185b8461f39d8 +2008-08-17T16:54:15.152218Z +1870 +pizza + + + + + + + + + + + + + + + + + + + + + +265 + +README +file + + + + +2009-01-07T08:13:02.000000Z +a546ece8522ec3bf4e5bc864647dbde3 +2004-01-30T15:47:49.000000Z +1560 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +14061 + +TODO +file + + + + +2009-01-07T08:13:02.000000Z +863e87fb1a04163b6131e8a42e0845fd +2003-08-28T14:00:14.000000Z +1505 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +2925 + +doc +dir + +FAQ +file + + + + +2009-01-07T08:13:02.000000Z +2c44215bd548d3e96cb838c558efaeed +2006-08-31T23:49:31.511061Z +1798 +pizza +has-props + + + + + + + + + + + + + + + + + + + + +18346 + +COPYING +file + + + + +2009-01-07T08:13:02.000000Z +d84599f48052fc213dfe049d2b0b81ea +2000-07-05T04:57:04.000000Z +510 +joellen +has-props + + + + + + + + + + + + + + + + + + + + +2495 + +CHANGES +file + + + + +2009-01-07T08:13:02.000000Z +5f6a0f0322efc787d53c857188a857d1 +2008-08-12T12:52:10.542131Z +1867 +pizza +has-props + + + + + + + + + + + + + + + + + + + + +67660 + +config.in +file + + + + +2009-01-07T08:13:02.000000Z +46402ad71b7dd5427f1b8337a4f28ee6 +2008-08-12T13:17:35.118175Z +1868 +pizza +has-props + + + + + + + + + + + + + + + + + + + + +331 + +man +dir + +etc +dir + +Makefile +file + + + + +2009-01-07T08:13:02.000000Z +cba0590bf9634eac124a01bbf541a964 +2007-10-16T14:43:56.892846Z +1837 +pizza +has-props + + + + + + + + + + + + + + + + + + + + +4621 + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/CHANGES.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/CHANGES.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/CHANGES.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/COPYING.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/COPYING.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/COPYING.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Configure.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Configure.svn-base new file mode 100644 index 0000000..5336d10 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Configure.svn-base @@ -0,0 +1,13 @@ +K 13 +svn:eol-style +V 6 +native +K 14 +svn:executable +V 1 +* +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/FAQ.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/FAQ.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/FAQ.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/LICENSE.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/LICENSE.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/LICENSE.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Makefile.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Makefile.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/README.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/README.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/README.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/THANKS.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/THANKS.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/THANKS.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/TODO.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/TODO.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/TODO.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/config.in.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/config.in.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/config.in.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/CHANGES.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/CHANGES.svn-base new file mode 100644 index 0000000..f286bf6 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/CHANGES.svn-base @@ -0,0 +1,1267 @@ +* CHANGES +* +* Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- + - Fix compiles with 2.6.26 (Pavel Roskin) + - Add compatibility with 2.6.27+ WEXT API (Pavel Roskin) + - Fix misplaced variable in PCMCIA code (Pavel Roskin) + - Add compatibility for gfp_t and mutex APIs (Pavel Roskin) + - Fix non-posix find arguments in script (Mark Mathews) +0.2.9 + - Reduce stack usage in prism2mib_priv (Richard Kennedy) + - WEXT functions should return -EBUSY when the hardware is still +   being initialized (Richard Kennedy) + - Use round_jiffies wherever possible (Richard Kennedy) + - Disallow ioctls from running until the hardware probe function has  +   finished.   (Richard Kennedy) + - Fix userspace scripts to work on Fedora 8 (Chris Rankin) + - Perform the hardware reset/init sequence *before* we register +   the netdevice.  (Karl Renton) + - Always do an ifstate_disable before a firmware load cycle. + - Default to wireless extension mode. + - Make the SIWENCODE behaivor more closely match the spec. (Tormod Volden) + - Apply a patch from Karl Relton that improves USB reliability. + - When in wlan_wext_write=1 mode, auto-transition to ifstate_enable  +   and bypass userspace firmware load altogether. + - Fix bug in the GIWENCODE handler (Richard Kennedy & Tormod Volden) + - Support 2.6.24 kernels (modified patch from Tormod Volden) + - Support 2.6.23 kernels. (With apologies to Martin Dauskardt for a  +   misapplied patch) + - Support "Intersil Americas USB 802.11b WLAN DEVICE" (Peter Levart) + - Tweaks to support Fedora 7 (Dan Williams) + - Support 2.6.22 kernels +0.2.8 + - Fix up a pile of sparse warnings (Pavel Roskin) + - Support 2.6.20 kernels (Pavel Roskin) + - Tweaks to the udev rules (Richard Kennedy) + - Silence a large pile of warnings with GCC4.1 + - pt_regs is gone for USB as well on 2.6.19+ (Chris Rankin) + - Large WEXT patch that allows use of NetworkManager. (Richard Kennedy) +0.2.7 + - Fix license text in prism2dl.c (it is in fact MPL/GPL) + - Fix oops in wext_autojoin (Richard Kennedy) + - Report use of dBm for WEXT requests (Richard Kennedy) + - Configure script better handles PREEMPT kernels (Chris Rankin) + - 2.6.19+ uses a different IRQ handler function prototype. + - linux/config.h is no more on 2.6.19+ kernels. +0.2.6 + - Fix another error that affected <2.6.15 builds on some compilers + - Fix a cut-n-paste error that broke 2.6.18 builds. +0.2.5 + - 2.6.18-rc fixes. + - A few tweaks for Wireless-Extensions-21 + - Fix an interrupt-related race that could lead to a crash on shutdown. + - Tweaks to the prism2_usb code to improve suspendability on 2.6.15+ + - Silence many warnings under GCC 4.1 + - prism2_cs support for 2.6.16+ (untested) + - Makefile fixes for 2.6.17+  + - udev support for USB targets (Richard Kennedy) + - semaphores are deprecated as of 2.6.16 (Chris Rankin) + - prism2_usb build fix for 2.6.16 + - Patches from Debian (via Victor Seva) +   - Fix bugs in /etc/wlan/shared, including a security hole +   - Fix build on 2.4.27 kernel +   - Added man page for prism2dl + - Generate a WEXT Event when we gain/lose association. + - Make prism2_defer query ssid and bssid, as IBSS mode has this change. + - Clean up prism2_defer_timer a bit. + - Propogate linkstatus into p80211, and make ethtool aware of it. + - Eliminate wland and entire indication infrastructure.  If you want to +   play with it, use 0.2.4.  We can put it back in if necessary. +0.2.4 + - USB Build fix from Chris Rankin. + - Add ability to install prism2 firmware seperately. (Petteri Raty) + - Theoretically the per-frame signal/noise figures are now in dBm. +0.2.3 + - WEXT 16+ fixes, which came to a head with v2.6.14+ kernels. + - Fix a circular symbol dependency glitch + - Fix a potential panic when receiving unknown CONTROL frames. + - get rid of p80211frm.c entirely; it's all unused code. + - Fix prototype for pci_suspend functions to match 2.6.11+ APIs. + - Build fixes for 2.6.14+ + - Change the type of 'request_pending' to take care of warnings. + - Fixes for warnings generated by the 'sparse' tool (Richard Kennedy) + - Add an explicit README.firmware containing copyright information  +   on the firmware images. + - Compile fixes for 2.6.8 (Victor Seva Lopez) +0.2.2 + - Fix an array overflow in the hotplug helper function. +0.2.1-final + - Added in-kernel devicetable for 2.6.13+ pcmcia  + - Updates to bring prism2_cs into the newer 2.6 kernel APIs.  + - Fixes in the hotplug invocation with WEXT (Pavel Roskin) + - Experimentally try using usb_reset_device on 2.4 kernels too + - use usb_reset_device() on 2.6 kernels (Andreas Schulte) + - Included kludged 1.8.4 PCI/PCMCIA firmware (Pavel Roskin) + - PCMCIA card Ident fixes to coexist with orinioco driver (Pavel Roskin) + - Ignore unexpected ctlx responses. (Chris Rankin) + - Fix an off-by-one in scan results. + - Change some log priorities + - [usb] Fix a memory leak (Chris Rankin * Eroc Koenders) + - [usb] clean up the PDA Read function a bit. (Chris Rankin) + - [usb] Don't overwrite current CTLX URB before we're done with it.  +   (Eric Koenders & Chris Rankin) + - Fix a byte-order problem when parsing scan results (Eroc Koenders) + - Added a mib item (lnxRSNAIE) to get/set the WPA/RSNA IE. + - Applied a patch from Chris Rankin which should solve the hangs with  +   kernel preemption turned on. + - Cleaned up some compile warnings with GCC 3.4.x + - Add a background thread to fetch comms quality from hardware. + - Fixed a series of bad memsets in prism2dl + - Added id for Viewsonic USB widget (Ekin Meroglu) + - Eliminate the extra frame copy in the usb rx path. + - When issuing a start/join, set MACMODE to none as to disable  +   transmits through the hardware. + - Get rid of the prism2_pci/plx 2.2.x compatibility code (Pavel Roskin) + - Change default behaivor of top-level Makefile (Pavel Roskin) + - Get rid of the #ifndef DECLARE_TASKLET cases; 2.4+ supports it. + - Fetch the BSSID when we get an AP_CHANGE event + - netif_carrier_off/netif_carrier_on at appropriate times + - Hook up the dot11CurrentTxPowerLevel MIB in the prism2 code. + - Add a default TMPDIR in case it isn't set. + - Removed some 2.2.x cruft + - CommsQuality now does the right thing with dBm values. + - More makefile work from Pavel Roskin + - A major USB patch from Chris Rankin.  This rewrites the  +   command-queueing code to something considerably more sane. + - A few more Makefile tweaks + - Further compile warning fixes on 64-bit targets (Pavel Roskin) + - Fix prism2_cs on 64-bit targets (Pavel Roskin) + - Fix the 2.4 build (whoops) +-pre26 + - Fix the "no hardware found" bug in 2.6.10+ kernels + - Cleanups in the Makefiles and build system + - Fix a typo in the shared.prism2 script (Chris Rankin) + - Clean up build warnings with gcc 3.3 (and possibly older too) + - Fix a nice race condition on device registration.  + - Don't stop the netdev when we hit ifstate_disable. + - hw->state wasn't being set properly on drvr_stop, nor were we  +   clearing the port status in all cases. + - Fix the "Debug: sleeping function called from invalid context" +   under 2.6 with prism2_usb (Chris Rankin) + - Wireless extension SCAN support (Dan Williams) + - 2.6 sysfs support in the form of SET_NETDEV_DEV (Dan Willimas) +-pre25 + - Fix a brown-paper bag bug in the register_wlandev code. (Giacomo Lozito) + - Patch for the Sitecom WL-022 widget (Armijn Hemel) + - Build fix for ancient ETHTOOL versions + - build fix for old 2.4.x kernels +-pre24 + - Fix build on 2.6.10-rc + - Fix USB build on 2.6.x (x < 7) + - Suspend the USB driver cleanly (Colin Leroy) + - Fix more USB badness (Colin Leroy) + - scan_timeout WAY too long. (Wolfram Gloger) + - dev_get is no more, as of 2.6.10-rc2 -- switch to dev_alloc_name  +   instead, which is present in older kernels. (reported by Colin Leroy) +-pre23 + - Fix badness in 2.6.10-rc1 (Colin Leroy) + - Compile fix for 2.6.9-rc4+ (Jeff Chua) +-pre22 + - Add support for x86-64 (and possibly other 64-bit targets) (J.D. Cole) + - Fix linkstate if driver reset without unloading. (Shiro Ninomiya) + - Rename the man pages to have a .1 extension + - Tweak the Configure script; change the default kernel build directory + - put a 'sleep 1' in the firmware load sequence to improve reliability. +   (Arnold Liu) + - Add Linksys WUSB11 card ident +-pre21 + - Add a per frame rx structure for OOB data to be passed to p80211 +	This is a step in the right direction for a major overhaul of  +	internal frame representation.  The prism2 driver shouldn't care  +	about sniff headers or any of that crap; it should always pass +	everything to p80211  (via this metadata) and the p80211conv_*  +	functions should do that work.  It's also needed to eventually +	support different encryption types. + - Added in beginnings of IWSPY support via patch from Josef Kriegl + - Install modules to $MOD_DIR/linux-wlan-ng instead of $MOD_DIR/kernel + - Primary/Secondary firmware (finally) bundled with the driver. + - Convert to newer 2.6 module parameter code. + - Fix an inverted test in GIWENCODE wireless extension (Shiro Ninomiya) + - Minor script fix for SSF cards (Pavel Roskin) + - Card idents. + - Fixes for SSF PCI cards; default to x16 SRAM as that's more common. +   (download script now automatically detects hardware type) + - Fix script problems that result in a failed init returning success. + - Fix an endian-ness buglet in prism2sta.c (Federico Pellegrin) + - Compile fixes for 2.2.x kernels. (no tasklets or spin_lock_bh) + - Fix up pci resources on card init failure on plx card. +-pre20 + - Fix up pci resources on card init failure + - Ident for "ROPEX FreeLan 802.11b USB Adapter" (Francesco Bochicchio) + - ETHTOOL support now optional, fixes build on older kernels. + - Fix prism2dl to not use kernel headers to fix 2.6.3 build (Pavel Roskin)  +-pre19 + - Add a 'lnxind_roam' indication. + - minor typo in the nwepgen makefile (Pavel Roskin) + - More makefile fixes (Pavel Roskin) +-pre18a + - brown-paper-bag fix for the 2.4 build.  And it no longer builds on  +   2.2 thanks to an accidental makefile commit. +-pre18 +  - Fix broken makefiles so that prism2dl and the rc script install +  - Get rid of the txfid lock, it's not necessary. +  - Tasklet-driven RX handlers. +  - Further work towards a Wireless Extension-enabled future. +    - SIWFRAG, SIWRETRY, SIWFREQ, SIWRTS implemented +    - SIWENCODE, SIWESSID taken from zdsta-1.0.3 (needs work) +    - SIWCOMMIT Implemented ala autojoin. +    - write support defaults to disabled, override via module parameter +  - fix a warning in the wireless extension code. +  - hfa384x.h header updates +  - Fix prism2dl to handle the S7 record being elsewhere in the image. +    (Pavel Roskin) +  - Fix up brown paper bag script error for SSF hardware. +-pre17 +  - Spruce up the GIWNAME wireless extension ioctl. (Natsakis Konstantinos) +  - Added in basic ethtool support; for link status reflection. +  - Fixed a double-locked spinlock which deadlocked on SMP boxes. +  - /proc/net/p80211/wlanX/nsd now has useful information about the +    prism2 hardware/firmware revisions. +  - eliminate the unused 'collptr' from the mib structures. +  - Fix a bug with the pcmcia script and scanning (Dan Noe) +  - Fix a crash on a VCC mismatch. +  - Split out most pci/plx/pcmcia/usb specific code into their own .c files. +  - Make prism2_cs build on 2.6.2-rc +  - Changes to support SSF hardware. +  - Card ident for D-Link DWL-650P1 +  - Move the prism2 link notification handler operate in scheduler  +    context to avoid a hang in softirq context. +  - Melco WLI-USB-KB11 USB widget added (Bela Fenyvessy) +  - Add in x86-64 support, plus other cleanups in wlan_compat.h +  - Support the Netgear MA311 PCI card.  (Steve Berry) +-pre16 +  - Implement wireless extension SETCHANNEL. (SIOCSIWFREQ) +    - Currently broken.  :) +  - Fix several sniffing-related bugs: +    - disable when we're already disabled +    - no longer perform a full h/w reset when we're already enabled +    - Vastly reduce CPU usage on channel hop. +  - Fix a crash on unload for pci/plx widgets (Pavel Roskin) +-pre15 +  - Minor fix for the shared script (Jeff Chua) +  - fix "bad: schedule while atomic" bug introduced by recent 2.6.0-test  +    kernels and wireless extensions. +  - Switch to using spin_[un]lock_bh for the cmdlock; this way we  +    disable the transmit bh from running while issuing a card command. +    Also have the txframe function obtain the lock. +  - Hawking HighDB USB Widget (Allan Claghorn) +  - Fix a double-lock in hfa384x_cmd_notify +  - Identity for "T-Sinus 111 USB WlAN Adapter" (Roman Koutny) +  - Fix up alignment problems on frame rx. (Ranjit Deshpande) +-pre14 +  - Update the HAS_HOTPLUG test to something considerably more foolproof +  - Add ids for the Airvast Prism3 USB widget +  - bap locking was broken when illegal parameters were passed. (Andre McCurdy) +  - Don't use jiffies for timeouts when interrupts are disabled. (Andre McCurdy) +  - Make the Configure script a little saner. +  - Remove the Zydas 1201 USB widget.  Use the Zydas modified  +    linux-wlan-ng release instead (we hope to merge it in eventually) +-pre13 +  - Fix two big-endian bugs in the scan code. +  - Hotplug agent executes '/sbin/ifup INTERFACE' if possible. +  - Planex GW-US11H USB adaptor (Henry Ip) +  - Averatec USB Wlan Adapter (Stephan Miller) +  - D-Link DWL-122 USB widget (Andrew Beresford) +  - ASUS-WL140 Wireless USB widget +  - Fix the WLAN_LOG_NOTICE macro for gcc 2.95.x +-pre12 +  - Fix up endian bugs in lnxerq_commsquality. +  - Get rid of the pcmcia release timer for >2.6.0-test5 +  - Card ident for 'ZyDAS ZD1201 Wireless USB Adapter' (Albert Pauw) +  - More tweaks for 2.6.0-test4 +  - fix some bash-isms in /etc/wlan/shared (Daniel Song) +  - Collapsed the BOUNDEDINT and INT types into one. +  - Eliminated the WLAN_LOG_***0() macros at long last thanks to CPP  +    trickery.  Also eliminated more cruft from wlan_compat.h +  - Card ident for the Samsung SWL-2210P PCI card +  - Try not to schedule a USB endpoint reset if there's one already  +    pending. (Chris Rankin) +  - Fix pci/plx operation on architechures with >32bit physical address  +    sizes. (namely mips64 & some mips32) +  - get rid of save_flags/cli/restore_flags in prism2_cs on >2.2 builds +    (tweaked from patch by Pavel Roskin) +  - pci_device_id tables should not be marked __devinitdata +-pre11 +  - support genesis mode for RAM download of primary fimware +  - prism2_usb now builds on 2.5/2.6.   +    - endpoint numeration removed. +    - hfa384x_usb_corereset unimplemented for 2.5/2.6 +  - hfa384x.h updates. +  - p80211conv_* functions should work with netdev->mtu, not MAX_ETHFRM. +  - Simply erase the bogus '3rdparty' drivers on Mandrake systems. +  - Card idents for Adaptec AWN-8030/AWN-8020, and Netgear MA111 +  - Strip out all 2.2.x stuff from prism2_usb, it doesn't work. +  - add proper __devinit/__devexit/etc tags to prism2sta.c +  - Minor USB janitorial patch from Chris Rankin. +  - Make most card commands require superuser access (exception is  +    mibget)  (Original patch by Pavel Roskin) +-pre10 +  - Make the wakeup flag in the usbctlx structure volatile, as well as  +    other wait condition variables. +  - Make the rx_urb buffer dynamically allocated so we can re-post the  +    URB as soon as possible. +  - Get rid of completion.h +  - More wlan_compat updates. +  - Disable TXEX reporting on USB as well as TXOK.  should improve +    stability a tad. +  - Further 2.5 USB work.  Not quite there yet. +-pre9  +  - Properly initialize the prism2_cs release timer (Pavel Roskin) +  - Eliminate the CONFIG_ISA requirement for prism2_cs (Pavel Roskin) +  - netlink build fixes for 2.5.71 +  - Hopefully fix the 2.2.x build. +  - More USB fixes (Chris Rankin) +  - Compile fixes for < 2.4.20 +-pre8 +  - Fix the pcmcia breakage introduced in -pre2.   +  - On USB widgets, only signal txcomplete if there was a tx error. +  - Minor cleanups in the PCMCIA code. +-pre7 +  - Add in the 'JVC MP-XP7250" USB Widget. +  - Don't call ev_alloc on tx_complete event; only the tx urb completion. +  - Minor tweaks to tx_timeout code +  - More USB updates; primarily with error-handling.  (Chris Rankin)  +-pre6 +  - On USB transmits, don't return 'success' if the tx_urb is still +    pending.  Also don't wake the netdev queue if the tx fails. +  - Hook up the tx watchdog timer and add a p80211-level handler. +  - Fix compilation with older (<= 2.4.18) kernels. +  - Another massive USB+other patch from Chris Rankin: +    - a separate list for "finished" CTLX objects. +    - correct (hopefully!) handling of -EPIPE errors, shamelessly copied +      from^W^Winspired by David Brownell's usbnet driver. +    - finished support for asynchronous commands, with proper tracking  +      through the CTLX lifecycle, clean-up etc. Each asynchronous command now  +      completes in its own tasklet. +    - CTLX cancellation and error handling. +    - further work on the timers and spin locks. +    - clean up setconfig16() and setconfig32() functions so that they  +      take appropriate value parameters, even if the underlying  +      setconfig() commands don't. +    - use an asynchronous command in setmulticast(). (CS, PCI and PLX  +      are still synchronous; they just pretend not to be.) +    - further clean up in the disconnect() handler. However, it's still  +      not a good idea to remove the adapter while the  +      prism2sta_inf_hostscanresults() function is sleeping, and the wlandevice +      struct could easily have been freed before the p80211req_dorequest()  +      function manages to clear the request_pending bit. It would be  +      nice if we could cancel both of these operations when we call  +      prism2sta_ifstate(P80211ENUM_ifstate_disable).  +    - extra support for Linux 2.5 (task queue -> work queue). +    - reset the link status when we stop the driver. +  - Some work on module locking.  Not there yet, but getting better. +  - Remove magic numbers from USB endpoint probe (Chris Rankin) +  - Eliminate useless timer in p80211do_request, as all calls are  +    synchronous.  Also clena up more function pointers, and a few other  +    doodads. (Modified from patch by Chris Rankin) +  - Track the current SSID in the wlandev; Make the WEXT stuff key from  +    this.  Update the SSID when we get a linkstatus_connect notification. +  - A couple of misc cleanups from Chris Wilson +  - Cleanups in the 2.5 makefile code. (Pavel Roskin) +  - Add in another PCI device ID, to handle Sony VAIO PCG-V505AP +  - Make sure CONFIG_ISA is enabled for the prism2_cs build. (x86 only) +-pre5   +  - Get rid of generic manfids in  /etc/pcmcia/wlan.conf (Pavel Roskin) +  - Fix the 'make install' target. +  - only call flush_scheduled_tasks() if DECLARE_TASKLET not defined. +    (fixes 2.5.x compile) +-pre4 +  - More script work; mostly cleanups and other enhancements.  +  - Substantial prism2_usb patch from Chris Rankin. +    - using 2 Linux lists for CTLXs +    - remove race condition and double-free with CTLXs in disconnect() +    - initialise URBs correctly (vital for Linux 2.5+) +    - separate callbacks for data/CTLX OUT URBs +    - flush task queue on shutdown +    - more thorough use of spinlocks with CTLXs +    - set the ASYNC_UNLINK flag when it is time to unlink an URB  +      asynchronously, and not before. +    - ensure we stop submitting URBs once the disconnect function  +      is called. +  - More USB idents (Jeff Chua) +  - Scan now uses active scans only; should speed things up a bit. +  - Proper module init/cleanup in prism2sta.c, plus more work for 2.5.69 +  - Added in descriptions for module parameters. +  - Major overhaul of the hotplug stuff.  Now we use our own hotplug +    event class, and use that to kick off configuration and whatnot. +    All device types (pci/plx/pcmcia/usb) now use this mechanism. +    Also brings us things like unified power management (suspend/resume) +  - Supress spurious output when setting WEP parameters. +  - Only query PrivacyOptionImplemented if wep was enabled in the config +    Works around an apparent firmware bug, see http://bugs.debian.org/190851 +  - Eliminate hw->name.   +  - Card ident for NL-2511CD Plus pcmcia card. +  - Minor tweak on pcmcia removal. +  - Fix the USB compile on <2.4.20 +-pre3 +  - get rid of wlandev_get_index and whatnot. +  - URB cleanup in the USB code.  (Chris Rankin) +  - Moved host auth sequence out of interrupt context. +  - USB paranoia checks (Chris Rankin) +  - Partial rewrite of the USB shutdown sequence +  - eliminate wlandev->hwremovedfn(). +  - Minor tweaks to the mib. +  - Get rid of the horridly outdated skeleton driver. +-pre2   +  - Fix a crash-on-unload affecting pci and plx adapters +  - have the init script load the module if needed. +  - Handle the new 2.5.69+ irq handler semantics +  - Fix 2.5 with pcmcia (Pavel Roskin) +  - Massive cleanup of the prism2/driver/Makefile (Pavel Roskin) +  - Don't wrap the [un]register_netdevice() calls in rtnl_[un]lock() +    And use the [un]register_netdev() calls instead. +  - Call the hwremoved() functions on pci/plx_remove +  - Eliminate the prism2sta_priv_t structure. +  - Fix a memory leak on ifstate_disable +  - Minor changes to the USB driver +  - Widget id for "Melco WLI-USB-KS11G" (Ichiro Doi) +  - Function pointer syntax cleanup (Chris Rankin) +  - Push the multicast/promisc set into the prism2 driver. +  - Move type/multicast filtering into the p80211 layer. +  - Format fix for p802addr_to_str (Pavel Roskin) +  - Add a check for non-Intersil firmware. +  - Fix a infinite recursion in the usb lowlevel code. (Chris Rankin) +-pre1 +  - Header updates. +  - Add a card ident for the USR 1120 USB widget (Juan Conde) +  - Cleaner shutdown; fixed a possible leak and a race condition. +  - Another rearrangement of the command locks, to eliminate use of the +    spin_is_locked() call. +  - Fix a rare deadlock with cmd_initialize (Pavel Roskin) +  - Add a Lucent-compatible key-generator in add-ons/lwepgen +  - Fix a stack overflow problem. (Pavel Roskin) +  - Further monitor mode fix for control frames (Pavel Roskin) +  - Cleanups in the dependency generation code +  - Initial 2.5 support.  USB currently broken. +  - Minor build system cleanups. +0.2.0 +  - Use PSUEDOIBSS mode for monitor mode; this should eliminate spurious +    beacon generation.  (Ryan Veety) +  - Don't drop "unrecognized" frame types in monitor mode. +  - Added ident for the Linksys WUSB12 (Brad Davidson) +  - Eliminated most of the WLAN_LOG_???n macros. +  - Minor fixups in /etc/wlan/shared +  - Cleaned up some of the error messages in the conversion code. +  - changed the "Host de-WEP failed" error to a debug message, as the  +    /proc/net/wireless stats are updated to reflect undecryptable frames +-pre10 +  - Added the p2TxPowerMax MIB item to specify the TxPower level. +    0-30 dBm.  Needs STA>=1.7.0 or AP>=1.4.0. +  - Clean up some spurious warnings in prism2sta.c (Pavel Roskin) +  - A series of patches from Pavel Kankovsky, somewhat tweaked.  :) +    - Properly set skb->mac.raw in non-monitor mode +    - Enhancments to the p80211 frame conversion code +    - Handle A4 frames. +    - Don't issue linkstatus notifications in monitor mode +    - Supress Linkstatus messages in monitor mode +  - hfa384x.h updates for latest firmware. +-pre9 +  - ZyXEL ZyAir B200 Wireless USB widget ID added (Paul Lacatus) +  - Only enable interrupts in one place (hfa384x_drvr_start) +  - Fix the startup scripts to disable WEP completely if not enabled. +  - ALLNET 0193 USB widget ID (Kurt Huwig) +  - Disable the hfa384x port before issuing the autojoin stuff. +  - Fixed a subtle flaw in the 802.11->802.3 conversion code. +  - Updates to hfa384x.h +  - Add productinfo for dlink DRC650 from Petr Slansky. +  - Minor changes to the rfmon code. +  - Only notify us on linkstatus changes if it actually changes. +  - Fixed the path the manpages were installed to. +-pre8 +  - Properly reset the hardware state after a flash/ram download. +  - Patch to allow escaped characters in the scan list (Derek Atkins) +  - Re-added the txfid queue locking which somehow got dropped. +  - Added DellTrueMobile 1180 USB ident. (Michael Hackett) +  - Changed linkstatus messages to INFO level reporting. +  - Ident info for the Intel Anypoint II 802.11b PCMCIA card. +  - Added support for the SH architechure and many changes necessary for +    2.5 support.  Modified from the patches by Ryan Veety. +  - Compile fixes for 2.2.x introduced as part of the new hotplug support. +  - Added man pages contributed by Joey Hess +  - Add ident info for the Z-Com 725/726 USB Widgets. +  - Fixes to silence GCC 3.2 warnings. (Pavel Roskin) +-pre7 +  - Patch to fix int array mib manipulation.  (Pavel Roskin) +  - Minor improvements to the build system. +  - Moved RX processing to a bottom half instead of hard irq context. +  - Further script improvements:  signal strength filtering, and some  +    space handling stuff.  The latter is not complete yet. +  - lnxreq_commsquality wasn't setting the status field properly on the +    response messages.   +  - Workaround for spurious interrupts generated before initialization +    is complete. (Clay Jones) +  - hotplug script now invokes 'ifup $DEVICE' if present. +  - Minor cleanups (Pavel Roskin) +  - Tenative SPARC support. (Olivier Bornet) +  - After leaving monitor mode, disable the port if we had to enable it. +  - Updates to hfa384x.h +-pre6 +  - Further script enhancements; automatically use scan mode on hardware +    that is known to support it properly. +  - Fixed errors in the hotplug script, and other misc fixes. +  - 2.2.x fixes for the new proc stuff and deferred processing stuff. +  - Add support for the new sniff frame capture. (doc/capturefrm.txt) +  - Get rid of some bitrot with the sniffing code. +  - Populate the tx dropped frames statistics. +-pre5 +  - Fixes for host scan when not currently joined. +  - /proc support; some informational stuff is kept in /proc/wlandev/wlanX +  - Complete rewrite of the configuration files and startup scripts. +     hotplug(pci+usb), pcmcia, rc, everything uses same config file(s). +     per-network configuration +     supports scanning and automatically choosing a network from a set. +  - Fix the TMD7160/ncp130 support so it acually works.  :) +  - Make the BUG() call in cmd_access enabled only in debug builds. +  - Minor makefile fixes. +  - Microsoft MN520 PCMCIA ident info added. +  - p2cnfShortPreamble is not a boolean value.  (Clay Jones) +-pre4 +  - BAP access fixes for PCI platforms.  This mostly affects SMP  +    arrangements. +  - Back out W200 USB ident info; it's not prism-based. +  - Patch from Tom Prado to make 'keygen' more user-friendly. +  - bap_timeout parameter only valid on non-usb platforms +-pre3 +  - Added Ident info for the USB Compaq/Intel W200 widget +  - dot11req_scan requires firmware >=1.3.2. +  - Added the "Acer Warplink USB Adapter" id. +  - Rework the prism2sta_inf_linkstatus call to defer processing of +    results until outside interrupt context.  Should fix the SMP +    deadlocks seen on some machines. +  - Rework the usb_disconnect code to hopefully alleviate the occasional +    crash-on-disconnect some people see.  Solution is not SMP-safe yet. +  - Add the D-Link DCF-660W ident info. +-pre2 +  - New parameter, 'prism2_bap_timeout' to specify the timeout on +    bap setup.  timeout*10 == timeout in microseconds.  Note that this +    timeout occurs in spinlock context, so increasing it arbitrarily is +    BAD!  Defaults to 1000, ie 10000us.   +  - compile fix for prism2sta in debug mode. +  - Only prompt for pcmcia sources if we're using non-kernel pcmcia. +    (original patch by Beat Bolli, rewritten a bit..) +  - Add the Linksys WCF12 CF ident info. +  - A bunch of compile fixes for older versions of wireless extensions. +  - Added implementations of GIWTXPOWER and GIWRETRY +  - Some fixes to the wireless extension code (thanks to Jean Tourrilhes) +-pre1 +  - wland was incorrectly using kernel headers in its compile.  +  - Adhoc mode was auto-roaming onto "any" SSID.  Fixed. +  - Implemented the dot11req_scan & dot11req_scan_results functions. +      This, combined with more intelligent startup scripts, will allow +      you per-network profiles.   Scripts are unwritten as yet.  :) +  - hfa384x.h and MIB updates. +  - Rewrote the wireless extension support code; moved to p80211 layer. +      Now we're compatible with at least v6-v14, and everything +      inbetween.   We hook up to the new iw_request structure, which +      makes further wireless extension support much easier to add. +  - Add the Microsoft MN510 USB device ID. +  - Finally fix the 'crash on unload' problem for 2.2.x kernels with PCI. +    Turns out the kcompat24 code wasn't quite complete.  (Matthew Rush) +  - Cleaned up our usage of __FUNCTION__ to make gcc 3.x happy. +  - Fix a typo in the prism2 makefile.   +0.1.15 +  - Fix an obscure PCMCIA build problem. (modversions disabled but +    header present, and using non-kernel pcmcia) +-pre8 +  - Added code to optionally truncate packets in monitor mode. (Clay Jones) +  - Fix a polarity problem with the stripfcs argument to monitor mode. +  - Add a test to make sure wireless.h is included. +  - Netgear MA401A card ident. +  - Further cleanups of the build system (Makefiles) +-pre7 +  - Include wireless.h so wireless extensions work again.  :) +  - Work around the braindead RedHat kernel build system. +  - Fix a class of unaligned accesses in the message structures  +    (kernel driver) and user space parsers (wlanctl-ng, etc) +  - Fix an unpacked struct problem that affected ARM platforms +    (thanks to Clay Jones for spotting this one) +-pre6 +  - Support the new auto-unknown mode present in firmware >1.3.3 +    When issuing an autojoin, we try to join a BSS, then an IBSS, and if +    all fails, we create a new IBSS with the given parameters.  + 	*note*  currently disabled. +  - Updates to hfa384x.h to reflect latest documentation +  - Build system mini-enema.  Automagically detect kernel version, +    pcmcia status, and modversions.  Pick up the kernel compile flags. +  - Hopefully fixed the 'crash on unload' for 2.2.x kernels and PCI. +  - 'p2req_join' command, see doc/wlanctl-ng.p2req_join.txt  +    This lets you join a specific SSID.  Thanks to Clay Jones. +  - A couple more pcmcia/cf card idents +  - More deletions/fixes in wlan_compat.h +-pre5 +  - Due to new hotplug code, atmel device detection removed +  - Further cleanups in wlan_compat.h and non-kernel makefiles +  - Debian package stuff yanked in favor of the "official" deb packages +  - Rearranged the wireless extension support code a bit +  - A fix for the promisc/allmulti stuff on USB devices +-pre4 +  - Hotplug support for PCI/PLX/USB widgets +  - A compile fix for 2.2.x (x < 18) kernels and PCI adapters +  - Support for TMD7160-based "almost but not quite PLX" boards +  - HP-PA support.  In theory.  Anyone care to test? +  - pcmcia script cleanups +  - Add ident info for the "Intel PRO/Wireless 2011B LAN USB Device" +  - Include an almost-sane fix to the modversion madness +  - Tweak the init order of the PCI driver structs +-pre3 +  - Added ident info for ASUS WL-110/WL-100 cards +  - Support for PCI power managment +  - Fixed a wep hang on the transmit side +  - Compile fixes; mainly for 2.2 kernels +  - Add support for the SIOCGIWRATE wireless extension +-pre2 +  - Restructured the driver locking.  SMP should be MUCH better now. +  - Stripped out more dead code. (mainly FID_STACK) +  - Fix an skb access after we call netif_rx +  - Fixes for XScale CPUs. +  - Added added a MiniUSB ident info +  - Restructure of the docmd_* functions +-pre1 +  - Host-based WEP decryption and encryption +  - Partial rewrite of copy_to_bap. +  - Debian package metadata updated to 3.0-STABLE. (David Everley) +  - Stripped out a lot of crap from wlan_compat.h +  - More atmel adapters added to the USB exclude list. +  - James Goodwin's patch to fix a bug in the 80211conv code. +  - The 3COM AirConnect board is a PLX adapter.  +0.1.14 +  - Added PCI ident info for the 3Com AirConnect PCI. +  - FCS toggle now (really) defaults to false. +  - Added PCMCIA ident info for the 3Com AirConnect 3CRW737A/3CRW777A +  - David Everly's patch to kernel detection in the Configure script +  - David Everly's patch to add better debian packaging bits. +-pre7 +  - Added kernel tags stuff. +  - Added PCMCIA ident info for the Actiontec 802CI2 card. +  - Added PCMCIA ident info for the Proxim RangeLAN-DS/LAN card. +  - Endian "fixes" for PCI PowerMacs.  This fix may be relevant for other +    BigEndian/PCI (and PLX) platforms. +  - FCS in monitor mode now optional; defaults to off. +  - Populate the monitor channel in the prismheader. +-pre6 +  - monitor mode now works on USB widgets. +  - Fix an alignment bug in the rx path. +  - Fix a brown-paper-bag bug in the usb flash code. +  - Explicitly enumerate the USB widget endpoints, and use 'em. +  - REALLY fix the wlan.conf overwriting. +  - More minor cleanups in the PCI/PLX init code. +  - endian-ness fixes in the monitor code +  - Applied a patch from David Everly to fix another 2.2.x compile problem. +-pre5 +  - Add USB entries for the "Melco WLI-USB-S11 11Mbps WLAN Adapter" +  - Don't overwrite /etc/wlan.conf if it already exists. +  - Compile sniffing code if packet socket is modularized. +  - Fix a typo with the init script. +  - Fix a compile problem with 2.2.x kernels +-pre4 +  - First bits of the SMP/locking fixes. +  - Partial rewrite of the PCI/PLX/USB driver internals. +  - Added a makefile for the 'addons/keygen' tool. +  - Fixed a race condition in the USB code. +  - Applied Godmar Back's "SSIDs with spaces" patch. +-pre3 +  - Applied pizza's patch to remove the pb_t structure and make all  +    802.11<->ether conversions happen in-place.  Noticeably reduces +    cpu load.  Also includes a few misc bugfixes to the conversion code. +  - Workaround for the kernel panic on bringing up a USB interface +  - Applied Mike Klar's USB patch that adds support for the MIPS +    target and should, among other things, fix WEP under USB. +  - Added Remy Cool's patch to add the Dynalink prism2 card ids. +  - Tim Miller's pcmcia script install path patch +  - Applied Tim Fletcher's patch to allow compilation against +    the newest versions of the wireless extensions. (V13) +  - Added jwyatt's patch for the Compaq Evo N600C USB adapter thing. +  - Per mwelk's suggestion, changed the displaystring totext to single +    quote the strings.  Hopefully this will take care of some of the  +    "SSID w/ space" problems. +-pre2 +  - tseward's ID code patch for Siemens SpeedStream USB adapters. +  - pizza's patch for dropping/ignoring frames in promisc and allmulti +    modes. +  - crankin's new Actiontec USB IDs. +  - crankin's fix for wext /proc zero vs. garbage problem. +-pre1 +  - pizza's chkconfig comment in rc.wlan. +  - pizza's patch to add true promiscious support to 0.1.13. Also includes +    Experimental ALLMULTI support. +  - pizza's patch to add PF_PACKET capture and raw transmit to 0.1.13-pre2,  +    (with toggles for WEP in sniffing and prism header) +    NOTE: this patch _removes_ the old netlink monitor mode (sniff) interface. +    If you're sniffing, you need to use the latest libpcap (v7.2-pre..from CVS), +    you'll also need to build your own ethereal (0.9.0 or greater) using the +    latest libpcap. +  - bhuang's fix for the hfa384x_test_command() function. +0.1.13 +-pre4 +  - crankin's revised USB ID patch. +  - Fixed a little buggage in the p80211knetdev_set_mac_address() function.   +-pre3 +  - crankin's patch for a bug in usb rrid, DBFENTER/EXIT, and Actiontec +    USB IDs. +  - hmuurimaa's ID patch for the Omnibook500 integrated USB adapter +  - proskin's patch for MODULE_LICENSE conditional +  - dstates (JediElite) submission (others submitted it too) for the +    NDC PLX card. +  - crankin's patch for src/prism2/driver/Makefile. PCI and USB were +    linking with PLX's prism2wext.o file.  DOH! +-pre2 +  - Synch'd the etc/pcmcia/wlan-ng scripts with the etc/wlan* scripts. +    This should help PCI/PLX/USB Adhoc users. +  - Added cmulliner's patch for set_mac_address(). Also changed it to +    use dot11StationID instead of the prism2 specific mib item...Oh +    Yeah, I also changed to comments to /*...*/  ;-) +  - Fixed PDA reads and PDA validation. +  - KNOWNBUG: prism2_usb + linux-2.4.17 + uhci.o : Very slow performance. +    We need to look into having multiple posted tx and rx urbs (this is +    also a TODO). +  - KNOWNBUG: prism2_usb + linux-2.2.20 + uhci.o : Physically  +    disconnecting the device causes a Panic.  The logs look like the +    usbdev is still holding some buffers (urbs?) associated with the +    device despite the fact that I've explicitly unlinked them.  This +    problem does not occur on 2.4.17 and, unfortunately, I don't have +    time to debug 2.2.20 this time around. +  - Made all corereset() calls dependent on the prism2_doreset module +    argument. +  - Added corereset() support for all device types. +  - Added the lnxreq_ifstate request message.  This request is used +    to bring the device up to an operable state _after_ the +    [hostbus]_probe() function is finished.  It can also be used to +    shutdown and/or restart the driver+device.  This takes the place +    of the "activate hardware on ifconfig up" code that was introduced +    in 0.1.11.  This is the change that should fix most of our dhcp +    client problems. +  - Massive changes/cleanups to the driver init/shutdown code for all +    device types (pcmcia|pci|plx|usb). +  - Removed the add-ons/mibedit application from the linux-wlan-ng package. +    We'll be re-releasing it as a separate tarball. +  - Modified hfa384x_usb.c per dbrownell's suggestion to mark the request +    urb's with the USB_ASYNC_UNLINK flag.  This because we're calling +    unlink_urb() from the timer callback (intterupt context). +  - Added arichter's patch for the RRID framelength.  It's a good catch +    to make things truly correct.  Unfortunately, I don't think it will +    have any effect.  Because of the 64-byte minimum, the actual RID value +    is being transferred regardless.  Also, I don't think the RRID handler +    in the MAC even looks at the framelen field of RRID frames. +  - Added mwelwarsky's patch for the tx path that may fix some of the +    "queue empty" errors.  Had to update it for 0.1.13. +  - Added new PLX device IDs from cyokoyama's patch, but deferred the rest  +    until we can get a clean patch against the latest release. +  - Added pizza's v2.1 NETLINK enable/disable patch.  Note that this whole +    NETLINK enable/disable thing is only barely tested by me.  I _always_ +    have netlink available so maintaining a separate kernel setup just to +    test this feature is a pain. +  - Added jdiedrich's pcmcia card ids for the Compaq ipaq PCMCIA card. +  - Added crankin's patch fixing some more wext induced problems and adding +    the Actiontec USB ids. +  - Added abridgett's patch for PRIV_GENSTRING handling. +  - Added emckee's malloc.h -> slab.h patch and made the mods to the usb +    and wext files he missed. Some kind list soul told me +    that the change to slab.h goes way back in the 2.2.x history, so we +    should be OK.  If this change proves to be a problem for someone with +    an old kernel, please submit a patch with ifdefs for the version where +    things changed (not just the version you're using....thanks). +  - Added jtourrhiles patch for wext reporting level and noise in dbm. +    To enable the reporting in dbm, you must add "#define WEXT_IN_DB" +    to the top of src/prism2/driver/prism2wext.c. +  - Added support for the dbm-normalized RID for CommsQuality in prep +    for working with Jean's patch.  The mibs are called p2dbmCommsQuality*.   +    Note that this will only work for secondary firmware versions 1.2.0  +    and higher. Earlier versions will return with a  +    'resultcode=implementation_failure'.  Note also: The values returned +    are signed 16-bit integers that have been stuffed into unsigned 32-bit +    integers for the trip up to userland.  The following shell expression +    will convert them back to the signed quantity you want: +       if [ $val -lt 32767 ]; then +           echo $1 +       else +           echo $[ $1 | 0xffff0000 ] +       fi +  - Added mkershaw's suggestion to lengthen the wait interval for  +    commands in hfa384x.c. +  - Added a note to the README about dleffler's observation regarding +    netlink troubles and using 'make mrproper'. +  - Added gback's patch to initialize wireless extensions for non-pcmcia +    targets. +-pre1 +  - Fixed a patch induced (not sure which patch) Makefile syntax error. +  - Added rfloeter's cool Wireless Extensions patch which was kindly  +    updated to 0.1.12 by pizza.  Note that my own testing of this patch has +    been minimal but I've had reports of folks who are using it successfully. +    NOTE: The addition of this patch adds the requirement that Wireless +    Extensions (version >= 10) be compiled into one's kernel. +  - DOH! some somewhat kind soul on the lists pointed out that the keygen +    program wasn't in the distributed tarball.  Basically, I forgot to  +    check it into CVS, therefore the distribution build script couldn't +    find it.  Ahem...it's now in CVS and should be included in the tarballs. +  - Added pizza's patch fixing the "netlink disable" patch.  The  +    p80211ind_* functions need to be handled individually instead of two +    giant #if's, but that's a task for another day. +  - Added theBS's patch for making the /etc stuff installation relative and +    installing the FIXINST scripts for USB. +  - Added crankin's SMP deadlock fix patch. +0.1.12 +  - Added dlyddy's string.h includes and comma fix.  Changing all malloc.h's +    to slab.h's will have to wait until I figure which kernel version marks +    the switch so we can ifdef it. +  - Added bgertfield's Corega support patch. +  - I added a check to Configure so we add the CONFIG_NETLINK symbol +    on the compile command line if necessary. +  - proskin's patches for netlink disable when not configured in kernel, +    mkprintstr fix, and turn off skeleton install.  The netlink patch +    pointed out something that might be the root cause of some problems +    with the _cs driver.  pcmcia_cs now strips the kernel CONFIG items +    it cares about and puts them in it's own include/linux/config.h  +    (which is symlinked to include/pcmcia/config.h). +  - Added mtaylor's suggested close() to do_ioctl() in wlanctl. +  - Added mkarmak's suggested change for the GL24110P device ID as +    PCI_DEVICE_GL24110P_ALT and an additional item in the device table +    for PLX devices. +  - Added crankin's suggested MODULE_LICENSE statements.  Had to figure +    out the version ifdefs myself though.  ;-) +  - Added vragor's patch for arm updates to the Makefiles and Configure. +  - Added jsuhr's patch of the PLX9052 irq enable code from the orinoco +    driver.  Note: PLX contributions are highly valued here because we rarely +    use these devices ourselves. +  - Added cfang's PCMCIA ident info for AirEZY card. +  - Made USB port reset in open() an option, DEFAULT IS OFF. +  - Cleaned up the top edge of hfa384x*.c (needs some more). +  - Added the notion of CMD vs. AUX format MAC chip addresses. +  - Modified isgoodpdr() to accept anything less than 0x1000. +  - Updated the wlan-ng scripts for the new open/close behavior. +  - Fixed a bunch of issues that caused bad breakage for hot-plugging +    the USB module. +  - Added a module argument to enable/disable the MAC (or usbport) reset +    performed in prism2sta_open(). +  - Moved the port reset corereset() and the call to the open(). This +    gets the port reset out of the probe_usb() context and appears to +    solve the recursive probe problem in some cases. +  - Cleaned up the overlength usb packet problems +  - Added rmemreq/resp and wmemreq/resp support +  - Fixed some of the 64-byte packet problems in a few commands. +0.1.11-usbonly +  - Note: hfa384x*.c are currently undergoing some changes.  I believe +    these changes have broken some things for pcmcia/pci/plx support.  I'm +    not certain since I haven't tested them.  As such, this is a USB ONLY +    release. +  - Cleaned up the use of hfa384x_drvr_*() vs. hfa384x_cmd_*() a little. +    This is a work in progress. +  - Rewrote the USB request/response machine again. +  - Added tnewsham's keygen program to the add-ons directory.  I don't +    include it in the overall build because I'm not comfortable with making +    this package dependent on openssl right now.  It is supposed to generate +    keys in a manner identical to the windows software.  I have not personally +    verified this.  If someone wants to contribute more complete build +    instructions for this program, please do. +  - IMPORTANT! Note that we've changed the up/down behavior.  You now +    must 'up' the linux netdevice interface (e.g. ifconfig wlan0 up) prior +    to using wlanctl-ng.  Also, wlanctl commands aren't available after +    "ifconfig down".  From a low-level perspective, this is how most +    linux netdevices work.  We originally started trying to create a  +    setup where "ifconfig up" on an interface that wasn't associated would +    fail.  With PCI and even more so with USB, that has proven unworkable. +    The idea now is: +      Step 1: ifconfig wlan0 up  +               Enables the hardware so it's ready to handle wlanctl-ng commands. +      Step 2: wlanctl-ng <various commands>, repeat  +               Set up the dot11 configuration and get yourself associated or +               whatever. +      Step 3: ifconfig wlan0 <address>   +               After getting a "real" 802.11 connection, assign the address +               to the interface (via static numbers, dhcp or whatever). + +      Note that it is very important that you do _not_ down the interface +      between the initial 'ifconfig up' and the later ifconfig that assigns +      the address.  'ifconfig down' will shut down and reset the hardware. +      If you down the interface, all that good work in step 2 will be lost. +  - Rewrote the USB request/response machine +  - Moved all memmapped/irq interface elements from prism2*.c to hfa384x.c +    in preparation for adding USB support. +  - Fixed 'make clean' so it doesn't generate .depend files. +  - Removed some leftover pcmcia-cs dependencies for non-pcmcia targets. +0.1.10 +  - Added module param "prism2_ignorevcc".  If set to non-zero, we just +    accept the Voltage we get from pcmcia-cs without checking.  USE WITH +    CAUTION!!!! +  - Changed the voltage setting code such that we never try to change it. +  - Added NETGEAR PCI info. +  - Fixed a problem with the interrrupt enable in mlme_start(). +  - Fixed the netdevice_t problem. +  - Added some new CIS entries. +  - Fixed some byte order things re: dblythe's patch.  The problem went +    a little farther than the patch so I had to change some things. +  - Added lye's fix for the netdevice_t problem on various targets. +  - Added an Ad-Hoc support patch from ????? (please identify yourself, +    it's a nice bit of code and stays within the spirit of things).  Adhoc +    still needs work though.  Remember, only the _first_ STA in an IBSS +    should issue an MLME-Start.request.  All the rest should scan/join +  - Re-added the monitor mode stuff.  At this point I guess Intersil won't  +    be taking it out.  Many thanks to those who maintained the patches and +    my apologies for the hassle. +0.1.9 +  - As part of the PCI stuff, rewrote the scripts for 'fixed' (i.e. non- +    hotswappable) cards like the ISL3874 and PLX based PCI adapters. +  - Added support for the dot11req_reset command.  It should perform a +    complete reset of the MAC and driver.  Note that the MAC needs to be +    completely reconfigured from userland after the reset has occurred. +    Also added an internal call to the reset function when unloading a +    PCI or PLX driver.  We need this reset to make sure that the card is +    no longer generating interrupts.  Fixed this problem:  If the driver +    is unloaded, the card is still generating interrupts, and another active +    device+driver is using the same interrupt....system locks up.  DDT. +  - Rewrote the PCI support for PLX and ISL3874.  The rewrite was targeted +    at 2.4.7 with additional code to provide backward compatibility for +    2.2.x.  NOTE:  the PCI code still doesn't support the PCI power +    management stuff.  It will probably need more work when laptops w/ +    the ISL3874 based mini-PCI cards show up. +  - Whoops, forgot to put this in the original 0.1.9 release +0.1.9-pre1 +  - Added support for the ISL3874 based mini-pci card.  Also cleaned  +    up some of the PLX stuff (needs more work though). +0.1.8 +  - Fixed some script bugs relating to WEP and generated keys. +  - Fixed the autojoin auth type control +  - Added/Changed some PDR numbers (thanks to BroMax for supplying hardware) +  - Received a large patch from bjames of Rebel Computing.  Here's a  +    summary in his words: + +     > Minor bugs (not already found in 0.1.8-pre10): +     >  +     > 1. p80211metamsg.c: +     > - Wrong conversion functions for "p2req_mmi_read" (value).  enumint ==> +     > int +     >  +     > 2. prism2sta.c: +     > - "dot11_desired_bss_type" in "priv" structure left at 0 (i.e. an +     > invalid value) after initialization so mibget could not retrieve a value +     > unless the network was started.  Initialized to 1. +     >  +     > 3. prism2mgmt.c: +     > - "prism2mgmt_channel_info()" uses HFA384x_RID_SCANREQUEST_LEN instead +     > of ...CHANNELINFOREQUEST...  (However, they're the same size.) +     >  +     > 4. prism2mgmt.c: +     > - "prism2mgmt_auxport_read()" did not set the resultcode to "success" if +     > the read succeeded. +     >  +     > 5. p80211types.c: +     > - "p80211_fromtext_displaystr()" tests for length < maxlen.  This +     > probably should have been <= maxlen (i.e. excluding the \0), based on +     > the maxlen values in "p80211metamib.c" and based in what +     > "p80211_isvalid_displaystr()" checks.  Also, +     > "p80211_isvalid_displaystr()" assumes that "pstr->len" includes the \0 +     > when it does the minlen check.  It probably shouldn't do this. +     >  +     > 6. p80211metamsg.c: +     > - dot11_reassociate command has a "dot11req_reassociatefailuretimeout" +     > argument which should probably be "reassociatefailuretimeout". +     >  +     > 7. prism2sta.c: +     > - WLAN_PCI ==> WLAN_PLX in "init_module()". +     >  +     > Enhancements: +     >  +     > 1. All Prism2 RIDs are now accessible.  Unfortunately, rather a lot was +     > changed to do this: +     > - Rather than cut and paste many more cases into the monster +     > "prism2mib.c" switch statement, "prism2mib.c" was completely reworked to +     > be table-driven with a bunch of semi-generic processing functions.  That +     > made it a lot easier to add new DIDs.  Several RID lengths in hfa384x.h +     > had to be changed from 0 to their actual value since more of the lengths +     > get used, now.  (Changed: prism2mib.c, hfa384x.h) +     > - 2 new data types were added to "p80211types.c".  One to handle integer +     > arrays (i.e. multi-word RID records...so that a DID didn't need to be +     > added for each element) and bit arrays (just to make them easier to deal +     > with).  However, there wasn't enough room in the packed DID to add new +     > types, so the type was removed from the DID (and from P80211DID_MKID) +     > and a function written to determine the type based on the conversion +     > functions.  (Changed: p80211meta.h, p80211types.h, p80211meta.c, +     > p80211types.c, mkmetastruct.c, p80211metamib.c p80211metamsg.c, +     > wlanctl/help.c) +     > Integer arrays look like: p2PRIIdentity=21,0,0,3 +     > "meta->maxlen" specifies the number of integers. +     > Bit arrays look like: p2ChannelList=0,1,2,3,4,5,6,7,8,9,10 +     > for bits 0-10.  "meta->min" and "meta->max" give the range of bits +     > allowed. +     > - The "p2Table" DIDs were split into p2Static, p2Dynamic, p2Behavior, +     > etc., in order to correspond with the Prism Driver Programmer's Manual. +     > A few of the names were also changed in order to correspond to the +     > manual.  (Changed: p80211metamib.c, prism2mib.c)  The changed names (of +     > the supported DIDs) are: +     > p2SystemScale ==> p2CnfSystemScale +     > p2MaxDataLen ==> p2CnfMaxDataLength +     > p2EnhancePowerSaveMode ==> p2CnfPMEPS +     > p2MaxSleepDurection ==> p2CnfMaxSleepDuration +     > p2PMHoldoverDuration ==> p2CnfPMHoldoverDuration +     > p2OwnName ==> p2CnfOwnName +     > p2McastPMBuffer ==> p2CnfMulticastPMBuffering +     > p2TxControlDepth ==>p2CnfTxControl +     > p2RoamingMode ==> p2CnfRoamingMode +     > p2MMLife ==> p2CnfMMLife +     > p2AltRetryCount ==> p2CnfAltRetryCount +     > p2ReserveDuration ==> p2CnfAPPCFInfo (bit 1) +     > p2ExcludeLongPreamble ==> p2CnfExcludeLongPreamble +     > - Added new RIDS from the Prism Driver Programmer's Manual 1.70 +     > (2000-11-29).  Added p2CnfPriorityQUsage, p2CnfTimCtrl, +     > p2CnfThirty2Tally, p2CnfEnhSecurity.  Added "algorithm" to AuthRequest. +     >  +     > 2. A user utility program was written to do such things as query all +     > read-able MIBs, query all write-able MIBs, set all write-able MIBs, +     > etc.  A "p2req_enable" command was added (similar to the +     > "dot11req_start" command but without requiring all the 802.11 +     > arguments).  This allows the driver to be started in a straight forward +     > manner, simply by setting all write-able MIBs and then enabling it. +     > (Changed: p80211metamsg.c, prism2sta.c, prism2mgmt.c, prism2mgmt.h) +     >  +     > 3. Support added for Prism2 CommTallies and a DID added to query the +     > values.  The values will come back as an array of integers.  Support +     > also added for 32-bit tallies (i.e. p2CnfThirty2Tally).  (Changed: +     > prism2mib.c, prism2sta.c, prism2mgmt.h, p80211metamib.c, hfa384x.h) +     >  +     > 4. Access Point support: +     > - Added support for maintaining a list of authenticated/associated +     > stations and a DID added to query the list.  (Changed: prism2mib.c, +     > prism2sta.c, prism2mgmt.h, p80211metamib.c) +     > - Added support for host control of authentications (allowed and denied +     > lists) and a DID added to set and query the lists.  Support for Prism2 +     > AuthenticationRequest information frames.  Not tested yet.  (Changed: +     > prism2mib.c, prism2sta.c, prism2mgmt.h, p80211metamib.c) +     > - Added support for Prism2 PowerSaveUserCount information frames and a +     > DID added to query the value.  (Changed: prism2mib.c, prism2sta.c, +     > prism2mgmt.h, p80211metamib.c) +     > - Added a new data type to "p80211types.c" to handle arrays of MAC +     > address (used to set/query the above lists).  (Changed: p80211types.h, +     > p80211types.c, mkmetastruct.c, wlanctl/help.c) +     > Address arrays look like: +     > p2Authenticated=00:50:51:52:53:54,00:60:61:62:63:64,00:70:71:72:73:74 +     > "meta->maxlen" specifies the maximum number of addresses. +     > - Unforetunately, all these lists are limited in length by the length of +     > the mibattribute parameter in mibget/mibset.  This is not very nice but +     > it was the quickest/easiest way to implement it. +     >  +     > 5. Changed maximum mibattribute length from 256 to 384 to support +     > querying commtallies and MAC address arrays.  (Changed: p80211types.h) +     >  +     > 6. 128-bit WEP key support: +     > - Rather than creating different MIB's for 64-bit and 128-bit WEP keys, +     > the "octetstr" definition for dot11WEPDefaultKey0, etc., was changed to +     > allow for a range of lengths (e.g. from 5 to 13).  The +     > dot11WEP128DefaultKey0, etc., MIBs were removed.  (Changed: +     > p80211meta.c, p80211types.c, p80211metamib.c, p80211metamsg.c, +     > mkmetastruct.c, wlanctl/help.c) +     > - WLAN_WEP_KEYLEN changed to WLAN_WEP_MAXKEYLEN and set to 13. +     > (Changed: p80211hdr.h) +     > - Optional "length" argument added to "nwepgen.c" so that either 5 or 13 +     > byte keys can be handled.  (Changed: nwepgen.c) +     > - 128-bit-specific parts of "etc/pcmcia/wlan-ng" are no longer +     > necessary.  Genstr changes to handle generation of 13-byte keys using +     > nwepgen.  (Changed: etc/pcmcia/wlan-ng) +     > - WEPDefaultKey's were made write-only.  A new +     > "P80211ENUM_resultcode_cant_get_writeonly_mib" was added.  (Changed: +     > p80211types.h, p80211types.c, p80211metamib.c, prism2mib.c) +     >  +     > 7. Access code in DID: +     > - This was changed from a single bit flag (P80211DID_ACCESS_READONLY and +     > P80211DID_ACCESS_READWRITE) to a pair of flags (P80211DID_ACCESS_READ +     > and P80211DID_ACCESS_WRITE) since some MIBs are read/write, some are +     > read-only, and some are write-only (e.g. WEP keys).  This makes it +     > easier to determine which MIBs are read-able and write-able without +     > having to go all the way to the driver and then interpret a failure +     > error code.  (Changed: p80211types.h, p80211metamib.c) +     >  +     > 8. It was a bit of a hassle switching between the station driver and the +     > AP driver...which we seemed to be doing a lot.  The additional cost was +     > not particulary high to simply compile in both station functionality and +     > AP functionality.    A change was made so that "prism2sta_initmac()" set +     > an "ap" flag when it detected AP firmware.  "prism2mgmt.c" then uses the +     > flag to determine whether or not to allow station-only or AP-only +     > commands to be executed.  "prism2mib.c" also uses this to handle the +     > mode-specific MIBs.  This made it possible for the same module to +     > support either stations or APs, thereby simplifying the "make", the +     > install, and switching between stations and APs.  The only thing that +     > needs to change, is the value of "IS_AP" in "wlan-ng.opts". +     >  +     > 9. Miscellaneous small additions: +     > - Network state (stopped, started) added and a DID to query it. +     > - User-settable comment string added and a DID to set/query it. +     > - Some event logging (authentications, associations, etc.) can be +     > enabled/disabled at run time rather than only at compile time.  A DID +     > was added to set/query it. +     > - A "p2req_readcis" command (similar to "p2req_readpda") was added. +     >  +     > 10. Small changes: +     > - Added bounds checking to "p80211item_fromtext_boundedint".  This was +     > the only "fromtext" function that did not already do complete +     > validation.  It should no longer be necessary to call the "isvalid" +     > function if "fromtext" has just been called.  The call to "isvalid" was +     > removed from "wlanctl".  (Changed: p80211types.c, wlanctl.c) +     > - "p80211item_maxitemlen()" wasn't really adding much of value so it was +     > amalgamated into "p80211item_getoffset()".  The DID type is now only +     > checked once instead of three times.  (Changed: p80211meta.h, +     > p80211meta.c) +     > - "hfa384x_drvr_setconfig16()" and "hfa384x_drvr_setconfig32()" changed +     > their input parameters when converting to hf384x byte order.  Potential +     > source of bugs.  Changed to use a local variable.  (Changed: hfa384x.c) +     > - ScanRequest, JoinRequest, etc., moved from the "Information Record" +     > section to the "Configuration Record" section.  (Changed: hfa384x.h) +     > - Re-worked "p80211_fromtext_setmibattribute()" to make it a little +     > easier to follow the logic.  (Changed: p80211types.c) +     > - Type of "channellist" argument in "p2req_channel_info" command changed +     > from "octetstr" to "bitarray" to make it easier to deal with (can +     > specify a variable number of channels and don't need to use hex +     > values).  (Changed: p80211metamsg.c, prism2mgmt.c) +     > - "auxctl" parameter set to HFA384x_AUX_CTL_EXTDS in +     > "prism2mgmt_auxport_read()" and "prism2mgmt_auxport_write()" so that +     > they are still compatible with 0.1.7.  (Changed: prism2mgmt.c) +     > - Re-worked "prism2mgmt_set_grpaddr()" and added comments so that it's +     > more obvious what is going on.  Also, deleted the check which produced +     > an error if an attempt was made to delete an address from an empty +     > list.  This makes things more consistent and predictable (i.e. the same +     > as attempting to delete an address which is above the last group +     > address...the attempt is simply ignored).  Replaced the "memcpy()" call +     > with "memmove()" since "memcpy()" is not guaranteed to work with +     > overlapping ranges.  (Changed: prism2mib.c) +     > - Minimum length of "dot11OperationRateSet" changed from 126 to 1 to +     > match the 802.11 standard.  (Changed: p80211metamib.c) + +  - Fixed some ci/co related problems pointed out by wbinjie. +  - Added ygalayda's startup scripts for PCI in the directory  +    ./etc/wlan_pci.  They aren't installed, that will have to be done +    by hand.  I have not tested these scripts myself. +  - Added sbaer's 'NULL check' fix in p80211_indicate_shutdown(). +  - Added ctedrow's 'alloc not checked' fix in prism2sta_int_rx(). +  - Added pkundrat's auth mib changes. +  - fgrau's conf.modules/modules.conf fix. +  - Added ygalayda's submission for the Global Sun GL24110P PLX based +    adapter.  Also included a Makefile fix. +  - Fixed some script bugs relating to 128-bit WEP based on smmclusky's +    observations.  These changes have not yet been tested by me. +  - Added rlazarev's additions to the pcmcia startup scripts +  - Added pkundrat's wlandev-name fix for 2.3.99+ kernels +  - Fixed some type/(to|from)text mismatches per note from pkundrat +  - Fixed some missing MKITEMNAMEs per note from pkundrat +  - Added D-LINK and SMC to the linux-wlan-ng.conf file +  - Added Zoom, Linksys and Addtron to the linux-wlan-ng.conf file +  - Added pkundrat's meta-item minlen stuff. +  - Added conditionals for PLX vs. PCMCIA build +  - Changed _pci driver filename to _plx +  - Fixed undconditional MOD_INC in prismt2sta_open() +  - Removed identification of old PCF firmware. +  - Fixed version.h generation bug from pre5 +  - Added dhsu's (Eumitcom) code for supporting the PLX based PCI cards. +  - pkundrat's (whoops, sorry peter) PDA display program in ./scripts.   +    I haven't used it because my perl setup is messed up and I'm perl  +    challenged. +  - bcarr's patches for alpha boxes. +  - wwoods's patches for 2.2.18 and adding bytes received to the  +    statistics. +  - proskin's patch adding 'network stop' +  - Most of proskin's patch containing Configure fixes, adding file +    existence checks, and making sure directories are present. +  - tgriffin's patch for mrproper/memleak/nullcheck/freeonsuccess.   +    conf.modules change is already there. +  - Added most of jhicks ARM related patches.  I had to leave out the  +    HOST vs. TARGET compile variables in the Makefiles though.  Some folks +    are using that stuff. +  - Added script changes and new mib items to support 128-bit WEP per hong's +    suggestion. +  - Added conf.modules alias instead of symlink +  - Added a compat macro for kfree_s to wlan_compat.h per the suggestion +    from rbraun. +  - Added pkundrat's 'chinfo' patch +  - Added pkundrat's 'small fixes' patch +  - Added some contributed patches supporting a fix to our 'reassoc +    under load' problem +  - Added wlannoenable pcmcia scheme support to prevent card initialization. +  - Removed a PDR patch requirement. +0.1.7 +  - Fixed the "converting eth in unknown mode" bug +  - Added APM/ACPI suspend/resume handling +  - Added PPC support +  - Added Prism test command support +  - Integrated patch to fix some structure alignment problems for ARM +  - Added multi-transmit buffer support +  - And much, much more..... +0.1.6 +  - Fixed usage of pcmcia scheme file so we're not stomping on the user's +    scheme setting. +  - Updated the wlan-ng script for the new config variable names and added +    configurable download utility and a set of user MIB settings. +  - Added support for the Samsung and Z-Com cards. +  - Changed the name of the module (from pcmcia's point of view). +  - Fixed the "echo \c" problem in Configure +  - Added new and rearranged existing wlan-ng.opts configuration variables. +  - Created a scheme for "addon software" in the ./src/Makefile +  - Made some changes to the target detection conditionals in wlan_compat.h +    to better support LinuxPPC (port isn't finished yet). +  - Finally fixed the byteorder stuff to use (duh) byteorder.h +  - Fixed a bad free of the TX skb when we signal an error to higher layers. +  - Moved some code around and added rules to the prism2/driver (new directory +    too) Makefile.  This is so we build two separate drivers; one for STA, +    one for AP.  Both drivers are built from the same source files with +    the code conditional on the WLAN_AP and WLAN_STA defines. +  - Fixed the plugging in prism2dl so it reports ALL missing PDRs. +  - Added an anonymously contributed patch that adds support for the -m +    and -s cmdline options for prism2dl.  Thanks! You know who you are.@-) +  - Added some fixes to the dependency file generation. +  - Fixed a flash programming timeout miscalculation...and fixed it again  +    when I introduced an integer promotion problem. +  - Added the STA vs. AP conditionals to prism2mgmt.  Note that this causes +    a few compile time warnings.  They're harmless and will go away in the +    next release. +  - Created the file prism2mib.c to hold all the MIB get/set stuff which is +    getting a little out of hand. +  - Added pcmcia config support for the Z-Com (supposedly) dual voltage card. +    Unfortunately the engineering sample I have doesn't seem to work at 5v, +    or it might be the code.....not sure yet.  We're still a little +    bleeding edge with that card. +  - Cleaned up the version, compatibility range, and serial number  +    log messages. +  - Added a loop limit to the interrupt handler. (duh) +  - Changed the names of the driver modules for STA and AP.  make install +    then creates a softlink depending on the make config selection.  One +    note, both drivers report the same dev_info string to pcmcia-cs.  Trying +    to load both of them simultaneously would be bad (I have no idea what  +    would happen, I just thought of it). +  - Changed a bunch of types and constants for hfa384x. +  - Added functions for a couple of new commands in the hfa384x. +  - Began adding support for the Prism2 unique MIB items. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/COPYING.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/COPYING.svn-base new file mode 100644 index 0000000..66801bd --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/COPYING.svn-base @@ -0,0 +1,57 @@ +* COPYING +* +* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- + +Unless otherwise indicated, this code is distributed under version 1.1 +of the Mozilla Public License ("MPL"), included in the LICENSE file. + +Where this software is combined with software released under the terms +of the GNU Public License ("GPL") and the terms of the GPL would +require the combined work to also be released under the terms of the +GPL, the terms and conditions of the MPL will apply in addition to +those of the GPL with the exception of any terms or conditions of the +MPL that conflict with, or are expressly prohibited by, the GPL. + +        -- AbsoluteValue Systems, Inc. + +Note: This file is derived from a copyrighted work of David Hinds. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Configure.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Configure.svn-base new file mode 100644 index 0000000..7b62dd2 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Configure.svn-base @@ -0,0 +1,486 @@ +#!/bin/bash +# +# Configure +# +# linux-wlan Open Sourc Project +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# ------------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source Project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# ------------------------------------------------------------------------- +# TODO: Since we're dependent on configured pcmcia source, we should change  +#       this such that it will ask for the pcmcia source dir and then read +#       all our stuff from pcmcia/config.mk.  Would simplify alot of things. +# ------------------------------------------------------------------------- +# +# This script adapted from the pcmcia-cs/Configure file, license statement below: +# +# pcmcia-cs/Configure 1.110 1999/06/24 17:37:36 +# +# The contents of this file are subject to the Mozilla Public License +# Version 1.0 (the "License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and +# limitations under the License. +# +# The initial developer of the Configure code is David A. Hinds +# <dhinds@hyper.stanford.edu>.  Portions created by David A. Hinds +# are Copyright (C) 1998 David A. Hinds.  All Rights Reserved. +#------------------------------------------------------------------------- + +ECHO="/bin/echo -e " +fail () +{ +	$ECHO "" +	$ECHO "Configuration failed" +	$ECHO "" +	exit 1 +} + +usage () { +    $ECHO "usage: Configure [-h|help|-d [filename]|-f <filename>]" +    $ECHO "" +    $ECHO "  -h|help       - display usage info" +    $ECHO "  -d [filename] - automated configuration with option to specify input file" +    $ECHO "  -f <filename> - read configuration data from file and prompt user" +    exit 1 +} + +if [ ! -r config.in ]; then +    $ECHO "config.in does not exist!" +    fail +fi + +. ./config.in + +if [ -r config.out ]; then +    . ./config.out 2>/dev/null +fi + +PROMPT=y +if [ $# -gt 0 ] ; then +	if [ "$1" = "-h" -o "$1" = "help" ] ; then  +		usage +	fi +	if [ "$1" = "-d" -o "$1" = "-f" ] ; then  +		if [ $# -gt 1 ] ; then +			if [ -r $2 ]; then +				. $2 +			else +				$ECHO "$2 does not exist" +				fail +			fi +		else +			if [ "$1" = "-f" ] ; then  +				usage +			fi +		fi +		if [ "$1" = "-d" ] ; then  +			PROMPT=n +		fi +	fi +fi + +#======================================================================= + +CONFIG=config.new +CONFIG_MK=config.mk +rm -f $CONFIG $CONFIG_MK $MODVER + +cat << 'EOF' > $CONFIG +# +# Automatically generated by 'make config' -- don't edit! +# +EOF + +write_bool() { +    value=`eval $ECHO '$'$1` +    if [ "$value" = "y" ] ; then +	$ECHO "$1=y" >> $CONFIG +	$ECHO "$1=y" >> $CONFIG_MK +    else +	$ECHO "$1=n" >> $CONFIG +	$ECHO "# $1 is not defined" >> $CONFIG_MK +    fi +} + +write_str () { +    value=`eval $ECHO '$'$1` +    $ECHO "$1"=\"$value\" >> $CONFIG +    $ECHO "$1=$value" >> $CONFIG_MK +} + + +dump_str () { +    $ECHO "$1" >> $CONFIG +    $ECHO "$1" >> $CONFIG_MK +} + +prompt () { +    eval $3=\"$2\" +    if [ "$PROMPT" = "y" ] ; then +	$ECHO "$1 [$2]: \c" +	read tmp +	if [ -n "$tmp" ] ; then eval $3=\"$tmp\" ; fi +    else +	$ECHO "$1 [$2]" +    fi +} + +ask_bool () { +    default=`eval $ECHO '$'$2` +    if [ ! "$default" ] ; then default=n ; fi +    answer="" +    while [ "$answer" != "n" -a "$answer" != "y" ] ; do +	prompt "$1 (y/n)" "$default" answer +    done +    eval "$2=$answer" +    write_bool $2 +} + +ask_str () { +    default=`eval $ECHO '$'$2` +    prompt "$1" "`$ECHO $default`" answer +    eval $2=\"$answer\" +    write_str $2 +} + +mkversionh () { +versionh=src/include/wlan/version.h  +cp src/version.h.in $versionh + +DATE=`date` + +printf '#define WLAN_RELEASE\t"%d.%d.%d%s"\n' \ +        ${WLAN_VERSION} \ +        ${WLAN_PATCHLEVEL} \ +        ${WLAN_SUBLEVEL} \ +        ${WLAN_EXTRAVERSION} >> $versionh +printf '#define WLAN_RELEASE_CODE 0x%02x%02x%02x\n' \ +        ${WLAN_VERSION} \ +        ${WLAN_PATCHLEVEL} \ +        ${WLAN_SUBLEVEL} >> $versionh +echo   "#define WLAN_BUILD_DATE \"$DATE\" " >> $versionh + +printf '\n' >> $versionh +printf '#endif\n' >> $versionh + +} + +#======================================================================= + +# If the src/include/wlan/version.h file needs a touchup, fix or create it +if [ -r src/include/wlan/version.h ]; then +	WLAN_RELEASE="${WLAN_VERSION}.${WLAN_PATCHLEVEL}.${WLAN_SUBLEVEL}${WLAN_EXTRAVERSION}" +	OLD_RELEASE=`sed --quiet -e '/#define.*WLAN_RELEASE[^_].*\"\(.*\)\"/s//\1/p' < src/include/wlan/version.h` +	if [ "${WLAN_RELEASE}" != "${OLD_RELEASE}" ]; then +		# Overwrite the file +		mkversionh +	fi +else +	# File doesn't exist, create it +	mkversionh +fi + +$ECHO "" +$ECHO "-------------- Linux WLAN Configuration Script -------------" +$ECHO "" +$ECHO "The default responses are correct for most users." +$ECHO "" + +#======================================================================= +# Should we build for PCMCIA Card Services? + +ask_bool "Build Prism2.x PCMCIA Card Services (_cs) driver?" PRISM2_PCMCIA + +#======================================================================= +# Should we build for PLX9052 based PCI adapters? + +ask_bool "Build Prism2 PLX9052 based PCI (_plx) adapter driver?" PRISM2_PLX +#======================================================================= +# Should we build for Prism2 native PCI? + +ask_bool "Build Prism2.5 native PCI (_pci) driver?" PRISM2_PCI + +#======================================================================= +# Should we build for Prism2.5 USB? + +ask_bool "Build Prism2.5 USB (_usb) driver?" PRISM2_USB + +$ECHO "" + +#======================================================================= +# Collect the kernel source tree and test for sanity + +CUR_RELEASE=`uname -r` + +if [ "$LINUX_SRC" = "" ] ; then +    LINUX_SRC=/lib/modules/$CUR_RELEASE/build +fi + +ask_str "Linux source directory" LINUX_SRC + +if [ ! -f $LINUX_SRC/include/linux/version.h ] ; then +	$ECHO "Linux source tree $LINUX_SRC is incomplete or missing!" +	if [ -d $LINUX_SRC/include/linux ] ; then +	$ECHO "    The kernel header files are present, but not " \ +		"the full source code." +	fi +	$ECHO "    See the HOWTO for a list of FTP sites for current" \ +	 "kernel sources." +	fail +fi + +KERNEL_SOURCE=$LINUX_SRC make -Cscripts 2>&1 > /dev/null +. scripts/make.opts + +# What kernel are we compiling for? + +version () { +	expr $1 \* 65536 + $2 \* 256 + $3 +} + +$ECHO "" + +SRC_RELEASE="$KERNEL_RELEASE" + +VERSION_CODE=`grep LINUX_VERSION_CODE $LINUX_SRC/include/linux/version.h | \ +    sed -e 's/[^0-9]//g'` + +$ECHO "The kernel source tree is version $SRC_RELEASE." +if [ $VERSION_CODE -lt `version 2 4 0` ] ; then +	$ECHO "This package requires at least a 2.4.x series kernel." +	fail +fi + +if [ $VERSION_CODE -gt `version 2 5 0` ] ; then +        KERN_25=y +        write_bool KERN_25 +fi +if [ $VERSION_CODE -ge `version 2 6 5` ] ; then +    KERN_2_6_5=y +fi +write_bool KERN_2_6_5 +if [ $VERSION_CODE -ge `version 2 6 17` ] ; then +    KERN_2_6_17=y +fi +write_bool KERN_2_6_17 + +if [ $VERSION_CODE -gt `version 2 6 26` ] ; then +    $ECHO "******* WARNING WARNING WARNING *******" +    $ECHO "Kernels newer than 2.6.26.x are not supported." +    $ECHO "******* WARNING WARNING WARNING *******" +fi + +if [ "$SRC_RELEASE" != "$CUR_RELEASE" ] ; then +	$ECHO "WARNING: the current running kernel is actually version $CUR_RELEASE." +fi + +if [ ! -f $LINUX_SRC/.config ] ; then +    $ECHO "WARNING: .config not present in kernel source tree.  This will" +    $ECHO "         screw up modversions detection and build optimizations." +    $ECHO "         Is this a RedHat kernel? Workarounds enabled."  +    if [ -f $LINUX_SRC/include/linux/modversions.h ] ; then +	KERNEL_MODFLAGS="-DMODULE -DMODVERSIONS -include $LINUX_SRC/include/linux/modversions.h" +    fi +    $ECHO "         For an optimized build, copy over the relevent file from" +    $ECHO "         $LINUX_SRC/configs/ to $LINUX_SRC/.config" +fi + +# Check for consistent kernel build dates +CUR_D=`uname -v | sed -e 's/^#[0-9]* //;s/SMP //;s/PREEMPT //;'` +CUR_D=`$ECHO $CUR_D | sed -e 's/\(:[0-9][0-9]\) .* \([12][90]\)/\1 \2/'` +$ECHO "The current kernel build date is $CUR_D." +UTS_VERSION="unknown"; +if [ -f $LINUX_SRC/include/linux/compile.h ] ; then +	UTS_VERSION=`grep UTS_VERSION $LINUX_SRC/include/linux/compile.h | +	sed -e 's/.*"\(.*\)"/\1/'` +	SRC_D=`$ECHO $UTS_VERSION | sed -e 's/^#[0-9]* //;s/SMP //;s/PREEMPT //;'` +	SRC_D=`$ECHO $SRC_D | sed -e 's/\(:[0-9][0-9]\) .* \([12][90]\)/\1 \2/'` +	if [ $SRC_RELEASE = $CUR_RELEASE -a "$SRC_D" != "$CUR_D" ] ; then +	$ECHO "WARNING: the source tree has a build date of $SRC_D." +	if [ `date -d "$SRC_D" +%s` -gt `date -d "$CUR_D" +%s` ] ; then +		$ECHO "   Did you forget to install your new kernel?!?" +	fi +	fi +fi +$ECHO "" + +	# Test for netlink availability in the kernel +	if grep -sq "#define.*CONFIG_NETLINK.*1" ${LINUX_SRC}/include/linux/autoconf.h; then +		CONFIG_NETLINK=y +	else +		CONFIG_NETLINK=n +	fi +	write_bool CONFIG_NETLINK + + +	# Test for pf_packet availability in the kernel +	if grep -sq "#define.*CONFIG_PACKET.*1" ${LINUX_SRC}/include/linux/autoconf.h; then +		CONFIG_PACKET=y +	else +		CONFIG_PACKET=n +	fi +	write_bool CONFIG_PACKET + + +	# Test for pf_packet availability in the kernel +	if grep -sq "#define.*CONFIG_HOTPLUG.*1" ${LINUX_SRC}/include/linux/autoconf.h; then +		CONFIG_HOTPLUG=y +	else +		CONFIG_HOTPLUG=n +	fi +	write_bool CONFIG_HOTPLUG + +#======================================================================= +# Alternate target install root dir - the value of this variable +# will prefix other variables, such as modules and pcmcia directories +ask_str "Alternate target install root directory on host" TARGET_ROOT_ON_HOST + +if [ $PRISM2_PCMCIA = "y" ] ; then +	# PCMCIA script dir +	ask_str "PCMCIA script directory" PCMCIA_DIR +	TARGET_PCMCIA_DIR=$TARGET_ROOT_ON_HOST$PCMCIA_DIR +	write_str TARGET_PCMCIA_DIR +fi + +MODDIR=/lib/modules/$SRC_RELEASE +ask_str "  Module install directory" MODDIR +TARGET_MODDIR=$TARGET_ROOT_ON_HOST$MODDIR/linux-wlan-ng +write_str TARGET_MODDIR +$ECHO "" + + +# Just write some out (we're not prompting right now) +write_str INST_EXEDIR +TARGET_INST_EXEDIR=$TARGET_ROOT_ON_HOST$INST_EXEDIR +write_str TARGET_INST_EXEDIR + +#======================================================================= + +# How should the startup scripts be configured? + +SYSV_INIT=n +if [ "$PREFIX" = "" ] ; then +	if [ -d /etc/rc.d/init.d -o -d /etc/init.d -o -d /sbin/init.d ] ; then +	$ECHO "It looks like you have a System V init file setup." +	SYSV_INIT=y +	if [ -d /etc/rc.d/init.d ] ; then +		$ECHO "RC_DIR=/etc/rc.d" >> $CONFIG +		$ECHO "RC_DIR=/etc/rc.d" >> $CONFIG_MK +	elif [ -d /sbin/init.d ] ; then +		$ECHO "RC_DIR=/sbin" >> $CONFIG +		$ECHO "RC_DIR=/sbin" >> $CONFIG_MK +	else +		$ECHO "RC_DIR=/etc" >> $CONFIG +		$ECHO "RC_DIR=/etc" >> $CONFIG_MK +	fi +	else +	$ECHO "It looks like you have a BSD-ish init file setup." +	if ! grep rc.wlan /etc/rc.d/rc.S >/dev/null ; then +		$ECHO "    You'll need to edit /etc/rc.d/rc.S to invoke" \ +		 "/etc/rc.d/rc.wlan (for ISA/PCMCIA cards)" +		$ECHO "    so that wlan cards will be started at boot time." +	fi +	SYSV_INIT=n +	fi +	write_bool SYSV_INIT +else +	ask_bool "System V init script layout" SYSV_INIT +	if [ "$SYSV_INIT" = "y" ] ; then +	ask_str "Top-level directory for RC scripts" RC_DIR +	fi +fi + +if [ ! -x $TARGET_ROOT_ON_HOST/sbin/depmod ] ; then INSTALL_DEPMOD=n ; fi +write_bool INSTALL_DEPMOD + +$ECHO "" + +#======================================================================= +# Make sure our target architecture is correct + +$ECHO "" + +ask_str "Prefix for build host compiler? (rarely needed)" HOST_COMPILE +dump_str "HOST_CFLAGS=$HOST_CFLAGS" + +$ECHO "" + +dump_str 'HOST_AS=$(HOST_COMPILE)as' +dump_str 'HOST_LD=$(HOST_COMPILE)ld' +dump_str 'HOST_CC=$(HOST_COMPILE)gcc' +dump_str 'HOST_CPP=$(HOST_CC) -E' +dump_str 'HOST_AR=$(HOST_COMPILE)ar' +dump_str 'HOST_NM=$(HOST_COMPILE)nm' +dump_str 'HOST_STRIP=$(HOST_COMPILE)strip' +dump_str 'HOST_OBJCOPY=$(HOST_COMPILE)objcopy' +dump_str 'HOST_OBJDUMP=$(HOST_COMPILE)objdump' +dump_str 'HOST_RANLIB=$(HOST_COMPILE)ranlib' +dump_str 'HOST_MAKE=make' + +CROSS_COMPILE_ENABLED=y +if [ "_$CROSS_COMPILE" = "_" ] ; then +CROSS_COMPILE_ENABLED=n +fi + +write_str CROSS_COMPILE +write_bool CROSS_COMPILE_ENABLED +#dump_str 'CFLAGS=-O2 -Wall -Wstrict-prototypes -pipe' + +if [ "_$CROSS_COMPILE" = "_" ] ; then +dump_str 'AS=$(HOST_COMPILE)as' +dump_str 'LD=$(HOST_COMPILE)ld' +dump_str 'CC=$(HOST_COMPILE)gcc' +dump_str 'CPP=$(HOST_CC) -E' +dump_str 'AR=$(HOST_COMPILE)ar' +dump_str 'NM=$(HOST_COMPILE)nm' +dump_str 'STRIP=$(HOST_COMPILE)strip' +dump_str 'OBJCOPY=$(HOST_COMPILE)objcopy' +dump_str 'OBJDUMP=$(HOST_COMPILE)objdump' +dump_str 'RANLIB=$(HOST_COMPILE)ranlib' +dump_str 'MAKE=make' +else +dump_str "AS=$CROSS_COMPILE"as +dump_str "LD=$CROSS_COMPILE"ld +dump_str "CC=$CROSS_COMPILE"gcc +CC="$CROSS_COMPILE"gcc +dump_str "CPP=$CC -E" +dump_str "AR=$CROSS_COMPILE"ar +dump_str "NM=$CROSS_COMPILE"nm +dump_str "STRIP=$CROSS_COMPILE"strip +dump_str "OBJCOPY=$CROSS_COMPILE"objcopy +dump_str "OBJDUMP=$CROSS_COMPILE"objdump +dump_str "RANLIB=$CROSS_COMPILE"ranlib +dump_str "MAKE=make" +fi + +#======================================================================= +# Should we build for debugging? + +ask_bool "Build for debugging (see doc/config.debug)" WLAN_DEBUG + +$ECHO "" + +FIRMWARE_DIR="/etc/wlan/" +write_str FIRMWARE_DIR + +WLAN_SRC=`pwd`/src/ +write_str WLAN_SRC + +mv $CONFIG config.out + +$ECHO "" +$ECHO "Configuration successful.  Now type 'make' and pray." +$ECHO "" diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/FAQ.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/FAQ.svn-base new file mode 100644 index 0000000..83358fd --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/FAQ.svn-base @@ -0,0 +1,468 @@ +********************** Linux-wlan-ng FAQ ************************** +For additions, corrections, and clarifications, send mail to +solomon@linux-wlan.com with FAQ in the subject. +******************************************************************* + +Q: When will linux-wlan-ng be merged into the mainline kernel? + +	Short answer:  Never. + +	First, the linux-netdev people will soundly reject this driver.   +	I don't begrudge them for this; indeed in their position I'd do  +	exactly the same.  It's a sound engineering decision. + +	linux-wlan-ng is obselete, and effort spent fixing it is better  +	spent elsewhere.  You can't even buy the hardware any longer. + +	The original design for linux-wlan-ng was to separate the 802.11  +	stack from the actual hardware driver.  This added a lot of  +	complexity, but would greatly ease the pain of supporitng  +	multiple hardware types.  Unfortunately, the implementation was  +	turned out to be somewhat flawed, and hardware manufaturers went  +	away from the thick-mac model, leaving linux-wlan-ng overly  +	complex for what it did.   + +	(Ironically, the linux kernel is adopting a similar  +	 separation model, but it is a long way off from being ready) + +	So why not rewrite linux-wlan-ng to be more suitable, the  +	enterprising reader may ask? + +	The kernel already has two drivers for prism2 (cs/pci/plx)  +	hardware -- hostap and orinoco. linux-wlan-ng basically  +	has three features not present in kernel drivers: +	 +		1) USB support +		2) nearly complete implemettion of the 802.11 MIB/MLME +		3) Firmware-based AP support +	 +	(3) requires an expensive license that isn't even available any  +	longer, as the hostap mode works far better -- and is already  +	supported by in-kernel drivers. + +	(2) would need to be removed or completely rewritten in order to  +	be merged, as it does not fit within existing kernel APIs, and  +	it would be effectively merging new kernel APIs. + +	(1) Is the only truly unique thing that linux-wlan-ng does that  +	is generally needed any more. + +	To merge it into the kernel, we'd need to strip out (2), which  +	would necessitate a complete rewrite -- to the point where  +	writing a new driver from scratch is easier.   + +	Basically, it would take far less effort to add USB  +	support to the in-kernel drivers than it would to make  +	linux-wlan-ng acceptable to be merged.  + +	In other words, the short answer is:  Never. + +Q: It doesn't work/compile/sing/dance! + +	First, make sure you're using the latest linux-wlan-ng release +	from http://www.linux-wlan-ng.org.  New releases are infrequent, +	but tthey happen for a reason. + +	If you are using the latest release, you may want to obtain the  +	latest development sources via subversion: + +		svn co svn://svn.shaftnet.org/linux-wlan-ng/trunk + +	Questions and problems with the developement code should be sent  +	to the development mailing list, at: + +		linux-wlan-devel@lists.linux-wlan.com + +Q: What devices does the linux-wlan-ng driver support? + +	Currently, the linux-wlan-ng driver supports the Intersil +	Prism2/2.5/3 chipsets.  These chipsets are used in a wide +	variety of PCMCIA, PCI, and USB products.  If it has a Prism +	chip in it, linux-wlan-ng should support it. + +Q: Will linux-wlan-ng support some feature or funkiness in +   the <pick one> Linux distribution? +  +	Our development target always consists of stock kernels from +	kernel.org and stock pcmcia_cs.  If a given distribution +	chooses to do something funky, we rely on users of that +	distribution to contribute patches to deal with their +	funkiness. + +	The quickest way to get some action on this kind of item is to +	communicate with any users of the same distribution that you +	can find on the linux-wlan-[devel|user] lists about working up +	a patch.  If it's reasonably sane and doesn't break things for +	our development environment or for other distributions, we'll +	be more than happy to roll that patch into the next release.   + +Q: What does "resultcode=implementation_failure" mean? + +	Complicated Answer:  +	Each command that can be issued with wlanctl-ng returns a status +	called "resultcode".  Resultcode is something that we picked up +	from the 802.11 MLME definition.  In the standard, resultcode +	is an enumeration with a fixed set of values.  To be able to +	report failures that a driver detects that are outside the +	context of the 802.11 standard set of resultcode values, we  +	invented the "implementation_failure" value. + +	Simple Answer: +	Go look in your kernel log for more detailed error information. + +Q: I'm trying to use the HostAP/orinoco/aironet/wvlan driver and it +   won't work! + +	That has nothing to do with the linux-wlan-ng driver.  Go ask +	those responsible for those drivers. + +Q: Can I get Debian packages of linux-wlan-ng? +  +A: Packages of linux-wlan-ng are now available in the Debian stable +   tree. + +Q: Where do I find some RPMS for linux-wlan-ng? The ones on +    the ftp are dreadfully out of date! + +	http://prism2.unixguru.raleigh.nc.us/ + +	(Maintained by Tim Miller) + +Q: I installed the RPMs/compiled the driver and installed it and it +   won't work when I try to run 'ifup wlan0' or whatnot. + +	First, ensure you're running the most up-to-date version of +	the driver.  Many problems have been fixed in newer releases. + +	802.11 wireless networks are much more complex than wired +	ethernet networks.  They require much more configuration than +        an ip address.   If you are using pcmcia, edit the file  +        /etc/pcmcia/wlan-ng.opts to set the network parameters.  For +        PCI, PLX, or USB adapters, you need to edit /etc/wlan.conf. +	 +	You also need to make sure you have the correct settings in +	/etc/modules.conf (alias wlan0 prism2_usb).  + +	Might we suggest you read the README file? + +Q: When I try to load the driver, I get a whole bunch of errors about +   unresolved symbols. + +	The running kernel does not match the kernel the driver was +	compiled for.  If you downloaded a RPM, make sure you +        downloaded the correct version for your kernel.  This should not +        happen if you compiled the driver from source -- if it does, the +        kernel configuration you compiled against does not match the +        running kernel.  Probably a screwed-up distro kernel. + +Q: I have a DWL-520 and it won't work! + +	The DWL-520 claims to require a PCI 2.2 compliant motherboard. +        Only fairly new machines support this.  Yes, the box lies.  :) +        Check the documentation for your system and/or motherboard to see if  +	it is PCI 2.2 compliant.   + +	NOTE:  We have some reports of the DWL-520 working on PCI 2.1 +	motherboards; your mileage may vary.  See the following URL: + +		http://www.personaltelco.net/index.cgi/DlinkDwl520 + +        NOTE:  The Linksys WMP11 v2.7 is NOT prism-based, and +	thus not supported by this driver.  The Actiontec PCI board is +	still known to be prism based; you may want to try that instead. + +Q: All I see is "Tx attempt prior to association, frame dropped" + +	You are not associated with an access point.  Double-check the +        settings in /etc/wlan.conf (USB, PCI, PLX) or /etc/pcmcia/wlan-ng.opts +        (for PCMCIA users).    If all of these settings are correct (you +        did check with your admin, right?) make sure the access point +        doesn't have a MAC filter installed or has different WEP settings. + +	If all of this is verified correct, and are using a PCMCIA +	card, try setting the "irq_mode=0" option.  See the +	documentaiton in the pcmcia-cs sources. + +Q: I installed the modules, performed a 'wlanctl-ng wlan0 lnxreq_autojoin' +   command, and it still won't work! + +	You did read the README, didn't you?  You need to perform a  +	"wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable" in order to +        torn on the radio.  The pcmcia scripts and the /etc/init.d/wlan +        script do this for you. + +Q: I have a XXX USB 802.11b device, will it work with this driver? + +	Most 802.11b USB devices use the ATMEL AT76C503A chipset, which +        is not supported by the linux-wlan-ng project.  However, there +	are some prism2.5-based USB adapters, most notably the Linksys +	WUSB v2.5.  The other versions (1.0, 2.6, 3.0) are based on +        ATMEL chipsets.  Another supported USB device is the Actiontec +	802UI3. + +Q: My prism2.5-based USB adapter won't work! + +	An excellent guide can be found at: + +	http://www.fuw.edu.pl/~pliszka/hints/prism2.html +	 +Q: My prism2.5-based USB adapter won't come up if it's plugged in at boot!  + +	Thanks to buggy firmware, it is often necessary to perform a +        device reset on initialization.  You can perform this by adding +        "options prism2_usb prism2_doreset=1" in your /etc/modules.conf + +	Intersil has released Primary firmware 1.1.2, which seems to +	have resolved this problem, at least on our test machines. + +Q: My PC crashes when the USB device is plugged in! + +	This is a result of the port reset necessitated by buggy firmware. + +	You are probably using the 'usb-uhci' driver with an intel +        chipset.  Unfortunately, the crashes happen deep within the USB +        core, so there's nothing the linux-wlan-ng driver can do. + +	In the mean time, try using the 'uhci' host controller driver +        instead ("alias usb-controller uhci" in /etc/modules.conf), or +        plug the USB device into a hub. + +	Linux kernel 2.4.19 is known to improve the situation somewhat, +	but the right way to fix it is to turn off the port reset +	(options prism2_usb prism2_doreset=0).  The current firmware +	from Intersil alleviates the need to perform the reset. + +	UPDATE:  if you're using linux-wlan-ng 0.2.1-pre6 or newer and  +        kernel < 2.4.22-pre, the 'uhci' driver will NOT work without a  +        kernel patch! See: + +	http://lists.linux-wlan.com/pipermail/linux-wlan-devel/2003-May/002369.html + +Q: How come I can't transmit when in monitor mode? + +	You can't.  It's a fundamental "feature" of the hardware. + +Q: How come the /proc/net/wireless info isn't updated when in monitor mode? + +	The definition of "signal quality" refers to the quality of the +	link to the associated access point.  When you're in monitor +	mode, you're not associated, so this information is by defintion  +	irrelevant. + +	And regardless, the hardware doesn't update the registers we poll to +	obtain this information while in monitor mode. + +Q: What do the various monitor mode options do? + +	enable=[true/false]           Turn it on and off.  required. +	channel=[1-14]                Sniff channel.  required. +	prismheader=[true/false]      Optionally preppend a special +                                      radio header on the packet. +				      Defaults to off. +	keepwepflags=[true/false]     If you had WEP configured correctly +				      the card will perform WEP decoding. +				      Defaults to off. +	stripfcs=[true/false]         When true, the 802.11 FCS is not +				      stripped from incoming packets. +				      Defaults off. +	truncate=[number]             Truncates the captured frame.   + +Q: How come iwconfig/iwspy/[random other wireless tool] doesn't work? +	 +	linux-wlan-ng only supports a subset of the wireless +	extensions; generally read-only things.  However, you won't +	need any of those tools as wlan-ng comes with its own set of +	tools that closely mirror the 802.11 spec.  Have a look +	through the documentation and supplied scripts. + +	That said, if more complete (ie read/write) wireless extension +	support is really important to you, you're more than welcome to +	implement it and submit a patch.   + +	As of 0.1.16-pre1, the wireless extension plumbing has been +	re-written, and further support is much easier now.  And many +	more bits are hooked up now than before. + +Q: How do I know exactly what prism variant is on my card? + +	When you load the driver, you see a line which reads like: + +		ident: nic h/w id=0x8008 1.0.0 +                                          +	1.0.0 is the hardware revision.  Below is a (partial) list of IDs. + +		0x8003, 0x8008 :  Prism2 PCMCIA + +		0x800b, 0x800c :  Prism2.5 PCMCIA +		0x8012, 0x8013 :  Prism2.5 PCI +		0x801a, 0x801b :  Prism3 PCMCIA +		0x8021, 0x8022 :  Prism3 PCI +		 +		0x800f, 0x8010 :  Prism2.5 USB  (3863) +		0x801e, 0x801f :  Prism2.5 USB  (3861B) +		0x8025, 0x8026 :  Prism3 USB + +Q: How do I know what firmware my card has? + +	After the driver is loaded and brought into ifstate=enable, you +	will see the following lines in the kernel log: (eg dmesg |grep ident) + +	ident: pri f/w: id=0x15 0.3.0 +	ident: sta f/w: id=0x1f 1.7.1 + +	In this case, the card has primary firmware 0.3.0 and secondary +	firmware 1.7.1.   +	 +	Or, if you are using 0.2.1-pre17 or newer: +	'cat /proc/net/p80211/wlan0/nsd' with the card running. + +Q: How can I update my firmware under Linux? + +	Use the 'prism2dl' utility.  While it does its utmost to ensure  +	you don't fry your card, use it at your own risk.  Even the  +	Intersil-supplied tools fail occasionally. + +Q: Where can I download updated firmware for my Prism2/2.5/3-based card? + +	As of linux-wlan-ng 0.2.1-pre21, the ram download firmware for  +	all supported card types is bundled with the driver.  These  +	images cannot be flashed. + +	A general FAQ on firmware updating is here: +		http://linux.junsun.net/intersil-prism + +	It includes links to some sites with firmware images. + +	We strongly recommend against flashing a new image, instead one  +	should use the ram-download images that are loaded when the +	driver starts, much like the Windows drivers do. + +	See the instructions below for getting this to work. + +Q: What's this about "ram downloading"? + +	This means the driver loads up a firmware images directly into +	card RAM, instead of using the firmware stored in the card's  +	flash ROM.  This lets us ensure we are using the lastest available +	code without risking ruining the hardware due to a bad flashing. + +	linux-wlan-ng will automatically perform a RAM download if you have +	the necessary firmware images. + +Q: Okay, I have new ram download firmware images, where do I put them? + +	copy the *hex files into linux-wlan-ng-XXXX/src/prism2/ +	then build and install the driver per usual. + +Q: Can I use my 802.11b card as an AP under Linux? + +	Yes, and in the true free software fashion, there are several +	ways: + +	a) linux-wlan-ng supports AP operation by using special tertiary +	   firmware on prism devices.  This firmware is not generally +	   available, however.   Contact Intersil for licensing terms. + +	b) The Prism2 HostAP driver uses the special HostAP mode of the +           prism chipsets.            http://people.ssh.com/jkm/Prism2/ + +Q: I have a PCI adapter, and upon resuming from a suspend, the device is not +   responsive.   + +	Much like you need to run some commands to bring the card to life  +	when the PC is first booted, you also need to perform similar  +	steps when the card comes out of suspend.   Run '/etc/init.d/wlan start' +	and all should be well. + +	You'll need to be running 0.1.15-pre3 or newer for this to work +        properly. + +	The prism2.5/3 chipsets do not support PCI power management, so +	this is the best we can realistically do. + +Q: I have a Linksys WMP11, and under moderate to heavy traffic, I get +   errors like "unknown port number" and "invalid frame type" + +	Make sure you're using the latest firmware avaliable from +	Linksys's web site.  According to the firmware release notes: +	 +	 "Changes were made to prevent erroneous data from being  +          transferred over the PCI bus" + +	Note that this problem has also beeen confirmed on the D-Link +	DWL-520.  You will need firmware 1.3.5 or newer to resolve this. + +Q:  I have a D-Link DWL-650/650+/520+ card, why doesn't it work with +    this driver? + +	The DWL-650 comes in at least three flavors; older ones have grey +	antennae, with no revision number on the back.   +	Second-generation  has a black antenna and the back reads  +	"H/W J3 F/W 1.x.x". Both of these will work.  The third- +	generation, with a grey antenna, has "H/W A1, F/W x.x", and +	will NOT work;  It has the same hardware as the "plus" series +	of cards. + +	The "plus" series of cards from D-Link use the Texas Instruments  +	ACX100/TNETW1100 chipset.  TI has not been forthcoming with  +	programming information.  Politely ask TI and D-Link for Linux +	drivers and/or docs. + +	We've been told that TI will be releasing binary-only Linux +	drivers sometime in December.  In the mean time, return the +	card and buy one that works with Linux. +	 +Q: I have a Linksys WMP11 v2.7 card; why doesn't it work with this driver? + +	Linksys, in their grand tradition, likes to introduce completely +	new cards but re-use the model number.  The WMP11 v2.7 utilizes the +	Broadcomm chipset, and is not supported by linux-wlan-ng.  Politely +	ask Linksys and/or Broadcomm for Linux drivers and/or docs. + +Q: What other resources are there for Wireless LANs under Linux? + +	http://www.fuw.edu.pl/~pliszka/hints/wireless.html + +	http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.drivers.html + +Q: I'm using RedHat 8.x+ (or Fedora Core), and I get this error when  +   trying to ifup wlan0: + +	Error for wireless request "Set Encode" (8B2A) : +	    SET failed on device wlan0 ; Function not implemented. +	Error for wireless request "Set ESSID" (8B1A) : +	    SET failed on device wlan0 ; Function not implemented. + +	 +	You can safely ignore this; it is there because linux-wlan-ng +	does not currently use the wireless extension commands for +	configuration. + +Q: When the prism2_cs module loads, I see the message "RequestIRQ: +   Resource in use" and the load fails! What's going on? + +   Is your card a 16-bit PCMCIA card? If it is, you may need to +   recompile your kernel with ISA bus support enabled (CONFIG_ISA=y). +   The PCMCIA core uses ISA bus support to help determine what IRQs +   are available for the card. Without it, the PCMCIA core may not be +   able to select an IRQ. + +Q: After installing linux-wlan-ng on my RedHat 9 system, pcmcia no  +   longer works! + +	This is due to a bug in the RedHat 9 pcmcia startup scripts. +	On or about line 105 in /etc/init.d/pcmcia, remove all of the +	'.o' suffixes on the modprobe command lines.  It should read  +	something like this: + +            if [ -d $PC ] ; then +                echo -n " modules" +                /sbin/modprobe pcmcia_core $CORE_OPTS +                /sbin/modprobe $PCIC $PCIC_OPTS +                /sbin/modprobe ds +            elif [ -d $KD ] ; then +                /sbin/modprobe pcmcia_core +                /sbin/modprobe $PCIC +                /sbin/modprobe ds +            else + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/LICENSE.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/LICENSE.svn-base new file mode 100644 index 0000000..8d23a4c --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/LICENSE.svn-base @@ -0,0 +1,563 @@ +                           MOZILLA PUBLIC LICENSE +                                Version 1.1 + +                              ---------------- + +1. Definitions. + +     1.0.1. "Commercial Use" means distribution or otherwise making the +     Covered Code available to a third party. + +     1.1. ''Contributor'' means each entity that creates or contributes to +     the creation of Modifications. + +     1.2. ''Contributor Version'' means the combination of the Original +     Code, prior Modifications used by a Contributor, and the Modifications +     made by that particular Contributor. + +     1.3. ''Covered Code'' means the Original Code or Modifications or the +     combination of the Original Code and Modifications, in each case +     including portions thereof. + +     1.4. ''Electronic Distribution Mechanism'' means a mechanism generally +     accepted in the software development community for the electronic +     transfer of data. + +     1.5. ''Executable'' means Covered Code in any form other than Source +     Code. + +     1.6. ''Initial Developer'' means the individual or entity identified as +     the Initial Developer in the Source Code notice required by Exhibit A. + +     1.7. ''Larger Work'' means a work which combines Covered Code or +     portions thereof with code not governed by the terms of this License. + +     1.8. ''License'' means this document. + +     1.8.1. "Licensable" means having the right to grant, to the maximum +     extent possible, whether at the time of the initial grant or +     subsequently acquired, any and all of the rights conveyed herein. + +     1.9. ''Modifications'' means any addition to or deletion from the +     substance or structure of either the Original Code or any previous +     Modifications. When Covered Code is released as a series of files, a +     Modification is: +      +          A. Any addition to or deletion from the contents of a file +          containing Original Code or previous Modifications. + +          B. Any new file that contains any part of the Original Code or +          previous Modifications. + +     1.10. ''Original Code'' means Source Code of computer software code +     which is described in the Source Code notice required by Exhibit A as +     Original Code, and which, at the time of its release under this License +     is not already Covered Code governed by this License. + +     1.10.1. "Patent Claims" means any patent claim(s), now owned or +     hereafter acquired, including without limitation,  method, process, and +     apparatus claims, in any patent Licensable by grantor. + +     1.11. ''Source Code'' means the preferred form of the Covered Code for +     making modifications to it, including all modules it contains, plus any +     associated interface definition files, scripts used to control +     compilation and installation of an Executable, or source code +     differential comparisons against either the Original Code or another +     well known, available Covered Code of the Contributor's choice. The +     Source Code can be in a compressed or archival form, provided the +     appropriate decompression or de-archiving software is widely available +     for no charge. + +     1.12. "You'' (or "Your")  means an individual or a legal entity +     exercising rights under, and complying with all of the terms of, this +     License or a future version of this License issued under Section 6.1. +     For legal entities, "You'' includes any entity which controls, is +     controlled by, or is under common control with You. For purposes of +     this definition, "control'' means (a) the power, direct or indirect, to +     cause the direction or management of such entity, whether by contract +     or otherwise, or (b) ownership of more than fifty percent (50%) of the +     outstanding shares or beneficial ownership of such entity. + +2. Source Code License. + +     2.1. The Initial Developer Grant. +     The Initial Developer hereby grants You a world-wide, royalty-free, +     non-exclusive license, subject to third party intellectual property +     claims: +      +          (a)  under intellectual property rights (other than patent or +          trademark) Licensable by Initial Developer to use, reproduce, +          modify, display, perform, sublicense and distribute the Original +          Code (or portions thereof) with or without Modifications, and/or +          as part of a Larger Work; and + +          (b) under Patents Claims infringed by the making, using or selling +          of Original Code, to make, have made, use, practice, sell, and +          offer for sale, and/or otherwise dispose of the Original Code (or +          portions thereof). + +          (c) the licenses granted in this Section 2.1(a) and (b) are +          effective on the date Initial Developer first distributes Original +          Code under the terms of this License. + +          (d) Notwithstanding Section 2.1(b) above, no patent license is +          granted: 1) for code that You delete from the Original Code; 2) +          separate from the Original Code;  or 3) for infringements caused +          by: i) the modification of the Original Code or ii) the +          combination of the Original Code with other software or devices. + +     2.2. Contributor Grant. +     Subject to third party intellectual property claims, each Contributor +     hereby grants You a world-wide, royalty-free, non-exclusive license + +          (a)  under intellectual property rights (other than patent or +          trademark) Licensable by Contributor, to use, reproduce, modify, +          display, perform, sublicense and distribute the Modifications +          created by such Contributor (or portions thereof) either on an +          unmodified basis, with other Modifications, as Covered Code and/or +          as part of a Larger Work; and + +          (b) under Patent Claims infringed by the making, using, or selling +          of  Modifications made by that Contributor either alone and/or in +          combination with its Contributor Version (or portions of such +          combination), to make, use, sell, offer for sale, have made, +          and/or otherwise dispose of: 1) Modifications made by that +          Contributor (or portions thereof); and 2) the combination of +          Modifications made by that Contributor with its Contributor +          Version (or portions of such combination). + +          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are +          effective on the date Contributor first makes Commercial Use of +          the Covered Code. + +          (d)    Notwithstanding Section 2.2(b) above, no patent license is +          granted: 1) for any code that Contributor has deleted from the +          Contributor Version; 2)  separate from the Contributor Version; +          3)  for infringements caused by: i) third party modifications of +          Contributor Version or ii)  the combination of Modifications made +          by that Contributor with other software  (except as part of the +          Contributor Version) or other devices; or 4) under Patent Claims +          infringed by Covered Code in the absence of Modifications made by +          that Contributor. + +3. Distribution Obligations. + +     3.1. Application of License. +     The Modifications which You create or to which You contribute are +     governed by the terms of this License, including without limitation +     Section 2.2. The Source Code version of Covered Code may be distributed +     only under the terms of this License or a future version of this +     License released under Section 6.1, and You must include a copy of this +     License with every copy of the Source Code You distribute. You may not +     offer or impose any terms on any Source Code version that alters or +     restricts the applicable version of this License or the recipients' +     rights hereunder. However, You may include an additional document +     offering the additional rights described in Section 3.5. + +     3.2. Availability of Source Code. +     Any Modification which You create or to which You contribute must be +     made available in Source Code form under the terms of this License +     either on the same media as an Executable version or via an accepted +     Electronic Distribution Mechanism to anyone to whom you made an +     Executable version available; and if made available via Electronic +     Distribution Mechanism, must remain available for at least twelve (12) +     months after the date it initially became available, or at least six +     (6) months after a subsequent version of that particular Modification +     has been made available to such recipients. You are responsible for +     ensuring that the Source Code version remains available even if the +     Electronic Distribution Mechanism is maintained by a third party. + +     3.3. Description of Modifications. +     You must cause all Covered Code to which You contribute to contain a +     file documenting the changes You made to create that Covered Code and +     the date of any change. You must include a prominent statement that the +     Modification is derived, directly or indirectly, from Original Code +     provided by the Initial Developer and including the name of the Initial +     Developer in (a) the Source Code, and (b) in any notice in an +     Executable version or related documentation in which You describe the +     origin or ownership of the Covered Code. + +     3.4. Intellectual Property Matters +      +          (a) Third Party Claims. +          If Contributor has knowledge that a license under a third party's +          intellectual property rights is required to exercise the rights +          granted by such Contributor under Sections 2.1 or 2.2, Contributor +          must include a text file with the Source Code distribution titled +          "LEGAL'' which describes the claim and the party making the claim +          in sufficient detail that a recipient will know whom to contact. +          If Contributor obtains such knowledge after the Modification is +          made available as described in Section 3.2, Contributor shall +          promptly modify the LEGAL file in all copies Contributor makes +          available thereafter and shall take other steps (such as notifying +          appropriate mailing lists or newsgroups) reasonably calculated to +          inform those who received the Covered Code that new knowledge has +          been obtained. + +          (b) Contributor APIs. +          If Contributor's Modifications include an application programming +          interface and Contributor has knowledge of patent licenses which +          are reasonably necessary to implement that API, Contributor must +          also include this information in the LEGAL file. + +          (c) Representations. +          Contributor represents that, except as disclosed pursuant to +          Section 3.4(a) above, Contributor believes that Contributor's +          Modifications are Contributor's original creation(s) and/or +          Contributor has sufficient rights to grant the rights conveyed by +          this License. + +     3.5. Required Notices. +     You must duplicate the notice in Exhibit A in each file of the Source +     Code.  If it is not possible to put such notice in a particular Source +     Code file due to its structure, then You must include such notice in a +     location (such as a relevant directory) where a user would be likely to +     look for such a notice.  If You created one or more Modification(s) You +     may add your name as a Contributor to the notice described in Exhibit +     A.  You must also duplicate this License in any documentation for the +     Source Code where You describe recipients' rights or ownership rights +     relating to Covered Code.  You may choose to offer, and to charge a fee +     for, warranty, support, indemnity or liability obligations to one or +     more recipients of Covered Code. However, You may do so only on Your +     own behalf, and not on behalf of the Initial Developer or any +     Contributor. You must make it absolutely clear than any such warranty, +     support, indemnity or liability obligation is offered by You alone, and +     You hereby agree to indemnify the Initial Developer and every +     Contributor for any liability incurred by the Initial Developer or such +     Contributor as a result of warranty, support, indemnity or liability +     terms You offer. + +     3.6. Distribution of Executable Versions. +     You may distribute Covered Code in Executable form only if the +     requirements of Section 3.1-3.5 have been met for that Covered Code, +     and if You include a notice stating that the Source Code version of the +     Covered Code is available under the terms of this License, including a +     description of how and where You have fulfilled the obligations of +     Section 3.2. The notice must be conspicuously included in any notice in +     an Executable version, related documentation or collateral in which You +     describe recipients' rights relating to the Covered Code. You may +     distribute the Executable version of Covered Code or ownership rights +     under a license of Your choice, which may contain terms different from +     this License, provided that You are in compliance with the terms of +     this License and that the license for the Executable version does not +     attempt to limit or alter the recipient's rights in the Source Code +     version from the rights set forth in this License. If You distribute +     the Executable version under a different license You must make it +     absolutely clear that any terms which differ from this License are +     offered by You alone, not by the Initial Developer or any Contributor. +     You hereby agree to indemnify the Initial Developer and every +     Contributor for any liability incurred by the Initial Developer or such +     Contributor as a result of any such terms You offer. + +     3.7. Larger Works. +     You may create a Larger Work by combining Covered Code with other code +     not governed by the terms of this License and distribute the Larger +     Work as a single product. In such a case, You must make sure the +     requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + +     If it is impossible for You to comply with any of the terms of this +     License with respect to some or all of the Covered Code due to statute, +     judicial order, or regulation then You must: (a) comply with the terms +     of this License to the maximum extent possible; and (b) describe the +     limitations and the code they affect. Such description must be included +     in the LEGAL file described in Section 3.4 and must be included with +     all distributions of the Source Code. Except to the extent prohibited +     by statute or regulation, such description must be sufficiently +     detailed for a recipient of ordinary skill to be able to understand it. + +5. Application of this License. + +     This License applies to code to which the Initial Developer has +     attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + +     6.1. New Versions. +     Netscape Communications Corporation (''Netscape'') may publish revised +     and/or new versions of the License from time to time. Each version will +     be given a distinguishing version number. + +     6.2. Effect of New Versions. +     Once Covered Code has been published under a particular version of the +     License, You may always continue to use it under the terms of that +     version. You may also choose to use such Covered Code under the terms +     of any subsequent version of the License published by Netscape. No one +     other than Netscape has the right to modify the terms applicable to +     Covered Code created under this License. + +     6.3. Derivative Works. +     If You create or use a modified version of this License (which you may +     only do in order to apply it to code which is not already Covered Code +     governed by this License), You must (a) rename Your license so that the +     phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", +     ''NPL'' or any confusingly similar phrase do not appear in your license +     (except to note that your license differs from this License) and (b) +     otherwise make it clear that Your version of the license contains terms +     which differ from the Mozilla Public License and Netscape Public +     License. (Filling in the name of the Initial Developer, Original Code +     or Contributor in the notice described in Exhibit A shall not of +     themselves be deemed to be modifications of this License.) + +7. DISCLAIMER OF WARRANTY. + +     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, +     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, +     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF +     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. +     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE +     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, +     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE +     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER +     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF +     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + +     8.1.  This License and the rights granted hereunder will terminate +     automatically if You fail to comply with terms herein and fail to cure +     such breach within 30 days of becoming aware of the breach. All +     sublicenses to the Covered Code which are properly granted shall +     survive any termination of this License. Provisions which, by their +     nature, must remain in effect beyond the termination of this License +     shall survive. + +     8.2.  If You initiate litigation by asserting a patent infringement +     claim (excluding declatory judgment actions) against Initial Developer +     or a Contributor (the Initial Developer or Contributor against whom You +     file such action is referred to as "Participant")  alleging that: + +     (a)  such Participant's Contributor Version directly or indirectly +     infringes any patent, then any and all rights granted by such +     Participant to You under Sections 2.1 and/or 2.2 of this License shall, +     upon 60 days notice from Participant terminate prospectively, unless if +     within 60 days after receipt of notice You either: (i)  agree in +     writing to pay Participant a mutually agreeable reasonable royalty for +     Your past and future use of Modifications made by such Participant, or +     (ii) withdraw Your litigation claim with respect to the Contributor +     Version against such Participant.  If within 60 days of notice, a +     reasonable royalty and payment arrangement are not mutually agreed upon +     in writing by the parties or the litigation claim is not withdrawn, the +     rights granted by Participant to You under Sections 2.1 and/or 2.2 +     automatically terminate at the expiration of the 60 day notice period +     specified above. + +     (b)  any software, hardware, or device, other than such Participant's +     Contributor Version, directly or indirectly infringes any patent, then +     any rights granted to You by such Participant under Sections 2.1(b) and +     2.2(b) are revoked effective as of the date You first made, used, sold, +     distributed, or had made, Modifications made by that Participant. + +     8.3.  If You assert a patent infringement claim against Participant +     alleging that such Participant's Contributor Version directly or +     indirectly infringes any patent where such claim is resolved (such as +     by license or settlement) prior to the initiation of patent +     infringement litigation, then the reasonable value of the licenses +     granted by such Participant under Sections 2.1 or 2.2 shall be taken +     into account in determining the amount or value of any payment or +     license. + +     8.4.  In the event of termination under Sections 8.1 or 8.2 above,  all +     end user license agreements (excluding distributors and resellers) +     which have been validly granted by You or any distributor hereunder +     prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + +     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT +     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL +     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, +     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY +     INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY +     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, +     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER +     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN +     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF +     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY +     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW +     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE +     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS +     EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + +     The Covered Code is a ''commercial item,'' as that term is defined in +     48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer +     software'' and ''commercial computer software documentation,'' as such +     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 +     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), +     all U.S. Government End Users acquire Covered Code with only those +     rights set forth herein. + +11. MISCELLANEOUS. + +     This License represents the complete agreement concerning subject +     matter hereof. If any provision of this License is held to be +     unenforceable, such provision shall be reformed only to the extent +     necessary to make it enforceable. This License shall be governed by +     California law provisions (except to the extent applicable law, if any, +     provides otherwise), excluding its conflict-of-law provisions. With +     respect to disputes in which at least one party is a citizen of, or an +     entity chartered or registered to do business in the United States of +     America, any litigation relating to this License shall be subject to +     the jurisdiction of the Federal Courts of the Northern District of +     California, with venue lying in Santa Clara County, California, with +     the losing party responsible for costs, including without limitation, +     court costs and reasonable attorneys' fees and expenses. The +     application of the United Nations Convention on Contracts for the +     International Sale of Goods is expressly excluded. Any law or +     regulation which provides that the language of a contract shall be +     construed against the drafter shall not apply to this License. + +12. RESPONSIBILITY FOR CLAIMS. + +     As between Initial Developer and the Contributors, each party is +     responsible for claims and damages arising, directly or indirectly, out +     of its utilization of rights under this License and You agree to work +     with Initial Developer and Contributors to distribute such +     responsibility on an equitable basis. Nothing herein is intended or +     shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + +     Initial Developer may designate portions of the Covered Code as +     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial +     Developer permits you to utilize portions of the Covered Code under +     Your choice of the NPL or the alternative licenses, if any, specified +     by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. + +     ``The contents of this file are subject to the Mozilla Public License +     Version 1.1 (the "License"); you may not use this file except in +     compliance with the License. You may obtain a copy of the License at +     http://www.mozilla.org/MPL/ + +     Software distributed under the License is distributed on an "AS IS" +     basis, WITHOUT WARRANTY OF +     ANY KIND, either express or implied. See the License for the specific +     language governing rights and +     limitations under the License. + +     The Original Code is ______________________________________. + +     The Initial Developer of the Original Code is ________________________. +     Portions created by ______________________ are Copyright (C) ______ +     _______________________. All Rights Reserved. + +     Contributor(s): ______________________________________. + +     Alternatively, the contents of this file may be used under the terms of +     the _____ license (the "[___] License"), in which case the provisions +     of [______] License are applicable  instead of those above.  If you +     wish to allow use of your version of this file only under the terms of +     the [____] License and not to allow others to use your version of this +     file under the MPL, indicate your decision by deleting  the provisions +     above and replace  them with the notice and other provisions required +     by the [___] License.  If you do not delete the provisions above, a +     recipient may use your version of this file under either the MPL or the +     [___] License." + +     [NOTE: The text of this Exhibit A may differ slightly from the text of +     the notices in the Source Code files of the Original Code. You should +     use the text of this Exhibit A rather than the text found in the +     Original Code Source Code for Your Modifications.] + +     ----------------------------------------------------------------------- + +     AMENDMENTS + +     The Netscape Public License Version 1.1 ("NPL") consists of the Mozilla +     Public License Version 1.1 with the following Amendments, including +     Exhibit A-Netscape Public License.  Files identified with "Exhibit +     A-Netscape Public License" are governed by the Netscape Public License +     Version 1.1. + +     Additional Terms applicable to the Netscape Public License. +          I. Effect. +          These additional terms described in this Netscape Public +          License -- Amendments shall apply to the Mozilla Communicator +          client code and to all Covered Code under this License. + +          II. ''Netscape's Branded Code'' means Covered Code that Netscape +          distributes and/or permits others to distribute under one or more +          trademark(s) which are controlled by Netscape but which are not +          licensed for use under this License. + +          III. Netscape and logo. +          This License does not grant any rights to use the trademarks +          "Netscape'', the "Netscape N and horizon'' logo or the "Netscape +          lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript", +          "Smart Browsing" even if such marks are included in the Original +          Code or Modifications. + +          IV. Inability to Comply Due to Contractual Obligation. +          Prior to licensing the Original Code under this License, Netscape +          has licensed third party code for use in Netscape's Branded Code. +          To the extent that Netscape is limited contractually from making +          such third party code available under this License, Netscape may +          choose to reintegrate such code into Covered Code without being +          required to distribute such code in Source Code form, even if such +          code would otherwise be considered ''Modifications'' under this +          License. + +          V. Use of Modifications and Covered Code by Initial Developer. +               V.1. In General. +               The obligations of Section 3 apply to Netscape, except to the +               extent specified in this Amendment, Section V.2 and V.3. + +               V.2. Other Products. +               Netscape may include Covered Code in products other than the +               Netscape's Branded Code which are released by Netscape during +               the two (2) years following the release date of the Original +               Code, without such additional products becoming subject to +               the terms of this License, and may license such additional +               products on different terms from those contained in this +               License. + +               V.3. Alternative Licensing. +               Netscape may license the Source Code of Netscape's Branded +               Code, including Modifications incorporated therein, without +               such Netscape Branded Code becoming subject to the terms of +               this License, and may license such Netscape Branded Code on +               different terms from those contained in this License. + +          VI. Litigation. +          Notwithstanding the limitations of Section 11 above, the +          provisions regarding litigation in Section 11(a), (b) and (c) of +          the License shall apply to all disputes relating to this License. + +     EXHIBIT A-Netscape Public License. + +          ''The contents of this file are subject to the Netscape Public +          License Version 1.1 (the "License"); you may not use this file +          except in compliance with the License. You may obtain a copy of +          the License at http://www.mozilla.org/NPL/ + +          Software distributed under the License is distributed on an "AS +          IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +          implied. See the License for the specific language governing +          rights and limitations under the License. + +          The Original Code is Mozilla Communicator client code, released +          March 31, 1998. + +          The Initial Developer of the Original Code is Netscape +          Communications Corporation. Portions created by Netscape are +          Copyright (C) 1998-1999 Netscape Communications Corporation. All +          Rights Reserved. + +          Contributor(s): ______________________________________. + +          Alternatively, the contents of this file may be used under the +          terms of the _____ license (the "[___] License"), in which case +          the provisions of [______] License are applicable  instead of +          those above.  If you wish to allow use of your version of this +          file only under the terms of the [____] License and not to allow +          others to use your version of this file under the NPL, indicate +          your decision by deleting  the provisions above and replace  them +          with the notice and other provisions required by the [___] +          License.  If you do not delete the provisions above, a recipient +          may use your version of this file under either the NPL or the +          [___] License." diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Makefile.svn-base new file mode 100644 index 0000000..1364886 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Makefile.svn-base @@ -0,0 +1,148 @@ +# Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + + +DIRS = src doc man etc + +CTAGOPTS = --totals -I '__initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS' +ETAGS=etags +ETAGSOPTS=-a + + +default: all + +help: +	@echo "Pick one of the following targets:" +	@echo -e "\tmake config\t\t- interactive configure" +	@echo -e "\tmake auto_config\t- automated configure" +	@echo -e "\tmake default_config\t- automated configure using default config file" +	@echo -e "\tmake all\t\t- build modules and programs" +	@echo -e "\tmake install\t\t- install modules and programs" +	@echo -e "\tmake clean\t\t- remove old binaries and dependency files" +	@echo -e "\tmake mrproper\t\t- 'make clean' + remove config file" +	@echo -e "\tmake tags\t\t- generate ctag files for source code" +	@echo -e "\tmake TAGS\t\t- generate etag files for source code" +	@echo " " + +help_noconfig: +	@echo "You need to configure the source first" +	@echo "Pick one of the following targets:" +	@echo -e "\tmake config\t\t- interactive configure" +	@echo -e "\tmake auto_config\t- automated configure" +	@echo -e "\tmake default_config\t- automated configure using default config file" +	@echo -e "\tmake help\t\t- show information about other targets" + +all:    config.mk +	set -e; for d in $(DIRS); do $(MAKE) -C $$d ; done + +distclean: mrproper + +mrproper: clean +	rm -f config.out +	rm -f tags.linux tags TAGS + +clean: +	set -e; for d in $(DIRS); do $(MAKE) -C $$d clean ; done +	rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags  +	for i in *_obj; do if [ -d $$i ]; then rm -fr $$i; fi; done +	rm -f config.mk config.new +	rm -f src/include/wlan/version.h + +install: +	find . -name .depend -exec rm {} \; +	set -e; for d in $(DIRS); do $(MAKE) -C $$d install ; done + +auto_config: +	@touch config.mk config.new +	@rm -f config.mk config.new +	@./Configure -d + +default_config: +	@touch config.mk config.new +	@rm -f config.mk config.new +	@./Configure -d ./default.config + +config: +	@touch config.mk +	@./Configure + +config.mk: config.out +	$(MAKE) auto_config + +config.out: +	@$(MAKE) help_noconfig +	@exit 1 + +tags: tags.linux dummy +	if [ -r tags.linux ]; then cp tags.linux tags; fi  +	find . \ +		-name '*.[ch]' -o \ +		-name '*.mk' -o \ +		-iname 'Makefile' | \ +		xargs ctags -a $(CTAGOPTS) + +tags.linux: +	if [ -h linux ]; then \ +		find linux/include \ +			-type d \( -name 'asm-*' -o -name config \) \ +			-prune -o \ +			-name '*.h' -print | \ +			xargs ctags -a -f $@ $(CTAGOPTS) && \ +		find linux/kernel linux/drivers linux/mm linux/fs \ +			linux/net linux/ipc linux/lib linux/init \ +			-name '*.[ch]' | \ +			xargs ctags -a -f $@ $(CTAGOPTS); \ +	fi + +TAGS: dummy +	rm -f TAGS +#	if [ -h linux ]; then cp linux/TAGS TAGS; fi  +	{ find . -name '*.[ch]' -print ; \ +	  find . -name '*.[ch]' -print ; \ +	  find . -name '*.mk' -print ; \ +	  find . -iname 'Makefile' -print ; } | $(ETAGS) - $(ETAGSOPTS) + +dummy: + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/README.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/README.svn-base new file mode 100644 index 0000000..f81303c --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/README.svn-base @@ -0,0 +1,321 @@ +* README +* +* Copyright (C) 2001 AbsoluteValue Systems, Inc.  All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- + +======================================================================= +Description: +The linux-wlan package is a linux device driver and subsystem +package that is intended to provide the full range of IEEE 802.11 MAC +management capabilities for use in user-mode utilities and scripts. +The package currently supports the Intersil 802.11b Prism2, Prism2.5,  +and Prism3 reference designs for PCMCIA, PCI, and USB.  Additionally, +the package includes support for PLX9052 based PCI to PCMCIA adapter +with a few different PCMCIA cards. + +For a list of elements that are still undone, see the TODO file in  +this directory + +======================================================================= +License: +See the COPYING and LICENSE files. + +======================================================================= +Top level directory for linux-wlan-ng: +./add-ons	- additional programs that are not build from the  +                  top level make file +./doc		- source distribution documentation +./etc		- scripts used at run-time +./man		- man pages +./scripts	- contributed scripts that may do useful things +./src		- source code for various components + +======================================================================= +Build Instructions: + +NOTE: You may not need to build at all.  Binary packages are +available for various distributions.  See the FAQ for where to go. + +NOTE: This release supports building four different drivers: + +   prism2_cs	Driver for Prism2.x & Prism3  PCMCIA cards. +   prism2_pci	Driver for Prism2.5 (ISL3874) based _native_ PCI cards. +   prism2_plx	Driver for Prism2.x PCMCIA cards when used with  +		a PLX9052 PCI/PCMCIA adapter. +   prism2_usb   Driver for Prism2.x USB adapters. + + +Prerequisites: + +To build linux-wlan-ng you will need: +   - Configured kernel source code for the kernel you are running.   +     Ideally, this will be the resulting tree after building your own  +     kernel.  Configured means that you have at least run 'make config', +     'make menuconfig', or 'make xconfig'.  If you are trying to build +     linux-wlan-ng for a previously existing kernel binary (one you did  +     not build yourself), look for help on the mailing lists because it  +     can be tricky.  I always run against kernels I've built myself, so I'm  +     not much help in this area. +   - The good David Leffler identified that if you are having difficulty +     with *_netlink_* symbols, you may have a problem with 'make clean' in +     the kernel tree.  Do a 'make mrproper' followed by 'make config'  +     and the rest of the kernel build process.  'make mrproper' does +     a more thorough cleaning of the kernel tree.  For more info, look +     for David's comments in the linux-wlan-user mailing list. +   - If you are building a driver for a PCMCIA card, you will also need +     the configured PCMCIA source code for the pcmcia_cs subsystem you +     are currently running. + +Building linux-wlan-ng: + +1)  untar the package using the command: + +    tar zxvf linux-wlan-ng-X.Y.Z.tar.gz + +2)  Make sure you have configured kernel and (optionally) pcmcia sources on  +    your system.  Note that if you are _only_ building the prism2_pci, +    prism2_plx, or prism2_usb drivers you don't need the pcmcia-cs  +    source tree. + +3)  To configure the linux-wlan-ng package, run 'make config'.  The  +    following set of questions will be asked. The default answer is in +    braces (e.g. []).  Just press <Enter> to select the default answer: + +   - "Build Prism2.x PCMCIA Card Services (_cs) driver? (y/n) [y]: " +        Select "y" if you want to build the Prism PCMCIA driver. +        If you select "n", the PCMCIA related questions below +        will not be asked. + +   - Build Prism2 PLX9052 based PCI (_plx) adapter driver? (y/n) [y]:  +        Select "y" if you want to build the Prism driver for  +        PLX PCI9052 PCI/PCMCIA adapter based solutions. + +   - Build Prism2.5 native PCI (_pci) driver? (y/n) [y]:  +        Select "y" if you want to build the Prism driver for  +        Prism2.5 ISL3874 based native PCI cards.  This includes +        PCI add-in cards and the mini-pci modules included in some +        notebook computers (but not all, some use internal USB modules). + +   - Build Prism2.5 USB (_usb) driver? (y/n) [y]:  +        Select "y" if you want to build the Prism driver for  +        Prism2.5 ISL3873 based USB adapters.  This includes +        USB add-on modules and the internal modules included in some +        notebook computers. + +   - Linux source directory [/usr/src/linux]:  +        The config script will attempt to automagically find your kernel +        source directory.  If found, the kernel source source directory +        will be presented as the default selection.  If the default +        selection is wrong, you may correct it here. + +   - pcmcia-cs source dir [/usr/src/pcmcia-cs-3.1.29]:  +        If the "_cs" driver is selected above, the configure script will +        attempt to present a reasonable default for the pcmcia source +        directory.  If the presented directory is incorrect, you may +        change it here.  If the "_cs" driver is not selected, this +        prompt will not appear. + +   - PCMCIA script directory [/etc/pcmcia]:  +        If the "_cs" driver is selected, this prompt allows you to  +        change the location where the pcmcia scripts will be installed. +        Only do this if you have installed the rest of the pcmcia_cs +        scripts to a non-default location. + +   - Alternate target install root directory on host []:    +        This prompt allows you to specify an alternative root directory +        for the install process. + +   - Module install directory [/lib/modules/2.2.20]:  +        Select where you want the driver modules to be installed.  The +        script constructs a default location using the output of uname. +        If you have not yet installed the kernel you will run linux-wlan +        with, and the new kernel has a different version string, you will +        need to change this value. + +   - Prefix for build host compiler? (rarely needed) []:  +        When cross-compiling or using different compilers for kernel and +        user-mode software, it is sometimes (but rarely) necessary to  +        specify a different compiler prefix to use when compiling the  +        _tools_ that are built to run on the build host during the  +        linux-wlan-ng build process. + +   - Build for debugging (see doc/config.debug) (y/n) [y]:  +        This option enables the inclusion of debug output generating +        statements in the driver code.  Note that enabling those statements +        requires the inclusion of insmod/modprobe command line arguments +        when loading the modules.  See the document doc/config.debug +        for more information. + + +5)  To build the package, run 'make all' + +6)  To install the package, run 'make install' (as root). + +======================================================================= +Configuring: + +NOTE:  linux-wlan-ng does not fully implement the wireless extensions +       interface.  This means that you can't use iwconfig and its kin to  +       set things up.  Instead, read on! + +As of linux-wlan-ng 0.1.16-pre5, the configuration and launch scripts have +been largely re-written.  pcmcia/rc/hotplug now all use a common library  +of routines and use the same set of configuration files. + +Now, everything relevant exists in /etc/wlan/* + +/etc/wlan/wlan.conf: + +	This file maps between wlan devices and network IDs, and contains +	the names of all devices that should be initialized by the hotplug +	and rc scripts. + +/etc/wlan/wlancfg-* + +	These files are per-network configurations.  This makes it easy to  +	switch between different SSIDs and the various settings they may +	require, like WEP keys and whatnot. + +The bare minimum you need to do to configure your system after a fresh driver +install: + +0)  Nothing whatsoever.  out-of-the-box, the driver will attempt to associate +    with any access point within range. + +However, we highly recommend setting up a configuration specifically for +your network, using the following method: + +0)  This example assumes your network name/SSID is "MyHomeNetwork" +1)  cp /etc/wlan/wlancfg-DEFAULT /etc/wlan/wlancfg-MyHomeNetwork +2)  edit /etc/wlan/wlan.conf and change the SSID_wlan0 line to: +	SSID_wlan0="MyHomeNetwork" +3)  edit /etc/wlan/wlancfg-MyHomeNetwork, and make any necessary changes  +    necessary to support your network, such as WEP and whatnot. + +------------------------------ +FOR PCMCIA USERS: +A)  Edit /etc/pcmcia/network.opts file to set up your IP settings.  +    Note: for a station, the SSID you're connecting to will be appended to the  +    current pcmcia scheme name.  You can use this to have different +    IP setups for different wireless LANs you connect to (e.g. home vs. work). + +    Note2:  This only applies if you are using a stock pcmcia-cs  +    package.  Most (if not all) distros use their own mechanisms for  +    configuring pcmcia network interfaces, and thus  +    /etc/pcmcia/network.opts may not even be present. + +B)  Restart pcmcia-cs with the command: + +    /etc/rc.d/init.d/pcmcia restart + +C) Insert the card.  For most cards, a solid LED indicates that the  +    SSID you specified was found, a bss was joined, and the firmware  +    completed the authenticate and associate processes. + +D) Run ifconfig and route to determine if your IP and route settings are +    listed as you wanted them.  It's also a good idea to look at the file +    /etc/resolv.conf to see if your nameserver address has been set up  +    correctly. + +------------------------------ +FOR PCI, PLX, OR USB USERS: +A) You must make sure that the drivers get loaded at boot time and that the  +   necessary initialization takes place.  The simplest way to do this is +   to add the following commands to your rc.local file: + +     modprobe prism2_pci   [or prism2_usb/prism2_plx] +     wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable +     wlanctl-ng wlan0 lnxreq_autojoin ssid=<your APs SSID> authtype=opensystem +     ifconfig wlan0 <yourIP> netmask <yourNetmask> broadcast <yourBroadcast> +     route add default gw <yourGateway> + +   Also, don't forget to set up your resolv.conf to point at your DNS server. + +B) Alternatively, you can use the rc.wlan script, which ties into the  +   /etc/wlan/* configuration files mentioned above. + +   We currently don't create the softlink from the runlevel directories to +   the wlan startup script due to differences in distributions, but the +   scripts are redhat-aware, and can be extended to hook into other tools +   easily.  (patches welcome!)  Just make sure it is brought up early in  +   the process, namely, before the the network interfaces are brought up.  + +C) Add an alias for wlan0 in /etc/modules.conf.  For example, a usb  +   interface on wlan0 would be set up as: + +   alias wlan0 prism2_usb + +   Substitute prism2_plx or prism2_pci as appropriate. + +------------------------------ +FOR USB USERS: + +A) Make sure your kernel usb support is running +B) Plug in the Prism2.x USB device +C) Run 'modprobe prism2_usb prism2_doreset=1' to load the driver into memory. +D) Run 'wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable' to initialize the +   driver+MAC functions. +E) Run 'wlanctl-ng wlan0 lnxreq_autojoin ssid=<your ssid> authtype=opensystem' +   to enable the MAC in Infrastructure Station mode. +F) Run 'ifconfig wlan0 <your IP address>' + +Or, you can use the provided hotplug scripts, if your distribution has +hotplug support.  :)  + +IMPORTANT: Due to an issue with some versions of the Prism USB firmware, +the driver usually needs to perform a port reset.   + +Some combinations of usb low-level drivers, kernel releases, and +hardware don't like this, and usually end up generating a kernel OOPS. +newer kernels are much better in this regard.  In particular, Intel usb +controllers are the most trouble-prone. + +The OOPS is due to bugs in the linux USB core, and newer kernels +(2.4.19 and later) behave much better in this regard. + +However, the good news is that primary firmware 1.1.2 seems to resolve +the need for the port reset to begin with.  Contact your vendor to +request this update. + +Also, using the 'Alt. UHCI' controller driver (uhci.o) is broken with  +kernels older than 2.4.22 due to a bug in the controller driver. + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/THANKS.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/THANKS.svn-base new file mode 100644 index 0000000..b32691f --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/THANKS.svn-base @@ -0,0 +1,147 @@ +Linux WLAN package + +CONTRIBUTORS +This project was initially developed for personal interest and use. +It has since evolved into it's current state through the support and +contributions of many individuals who have taken an interest in this +project.  We appreciate the source code contributions and bug fixes +from those who didn't want to wait on us and fearlessly dived into +the source code to either add a feature or fix a bug.   + +Contributions to the project are not limited to source code +and bug fixes.  Addtitional contributions include (but not limited to) +reporting bugs, documentation, test results, helpful and enlightening +dicussions on the project's mailing lists, kind words and feedback +from users as well as commercial support for the project. + +Additionally, we'd like to thank the vendors who have contributed +wireless network cards for testing the driver.  To see a listing of +supported wireless cards, visit the Linux WLAN Project page at our +web site.   http://www.linux-wlan.com + +Below are some of the contributors to the project.  Contributions are +made often.  Therefore, the list is never "current" even in the  +most recent release of the project.  ;-) + +This list includes contributors to the original linux-wlan Prism1  +driver as well as contributors to this package. + +deadparrot - an anonymous contributor who's been an enormous help. +             You know who you are. +Robert Coie <irac@intrigue.com> +Geoff Hibble <ghibble@adevice.com> +Yoshimura Haba <haba@melcoinc.co.jp> +Dries Buytaert <s965424@uia.ua.ac.be> +Derrick Brashear <shadow@dementia.org> +Tony Awtrey <tony@awtrey.com> +Peter Teuben <teuben@astro.umd.edu> +hong <u4830467@ug.ee.tku.edu.tw> +Greg Smith <gsmith@westnet.com> +Peter Kundrat <kundrat@pkx.sk> +James Hicks <jamey@crl.dec.com> +Erik Kunze <Erik.Kunze@fantasy.muc.de> +Larrick, Douglas <Doug.Larrick@compaq.com> +Cagle, John <John.Cagle@compaq.com> +Rob Braun <bbraun@synack.net> +Terry Griffin <griffint@pobox.com> +Ken Gordon <ken@magneticscrolls.com> +Pavel Roskin <proski@frontpath.com> +Scott Franzyshen <sfranzyshen@lazerlink.net> +Will Woods <Will.Woods@compaq.com> +Bill Carr <Bill.Carr@compaq.com> +David Hsu <davidhsu@ficnet.net> +Alessandro <acevirgil@inwind.it> +Jouni Malinen <jkmaline@cc.hut.fi> +Bob James<bob.james@rebel.com> +Calvin Fang <cfang@otcwireless.com> +Jim Suhr <jimrsuhr@earthlink.net> +Vragor <vragor@home.com> +Chris Rankin <rankinc@pacbell.net> +Michael Carmack <karmak@karmak.org> +Mark Taylor <mt@mp3dev.org> +Ben Gertzfield <che@debian.org> +Daniel Lyddy <sprocket@path.berkeley.edu> +Bryan Smith <b.j.smith@ieee.org> +Stuffed Crust <pizza@shaftnet.org> (aka Solomon Peachy) +Reyk Floeter <reyk@synack.de> +Adam Richter <adam@yggdrasil.com> +Collin Mulliner <wlan@betaversion.net> +Mike Kershaw <dragorn@nerv-un.net> +David Leffler <dleffler@lynku.net> +Godmar Back <gback@stanford.edu> +Jean Tourrilhes <jt@hpl.hp.com> +Erik McKee <camhanaich99@yahoo.com> +Jack Diedrich <jackdied@yahoo.com> +Caz Yokoyama <caz@caztech.com> +Matthias Welwarsky <matze@stud.fbi.fh-darmstadt.de> +David Brownell <david-b@pacbell.net> +Henri Muurimaa <hezamu@tuug.fi> +Bryan Huang <bryan.huang@bromax.com.tw> +Tony Seward <anthony.seward@ieee.org> +Matthias Welk <welk@fokus.gmd.de> +Josh Wyatt <Josh.Wyatt@hcssystems.com> +Tim Fletcher <tim@parrswood.manchester.sch.uk> +Tim Miller <tim.miller@vanderbilt.edu> +Remy Cool <remy.cool@smartology.nl> +Mike Klar <mfklar@tivo.com> +Tony Likhite <tony@likhite.net> +David Everly <deckrider@yahoo.com> +Nick Jafa <jafa@silicondust.com> +James Goodwin <jamesg@Filanet.com> +Derek Atkins <warlord@mit.edu> +Michael Beattie <mjb@debian.org> +Joey Hess <joey@kitenet.net> +Clay Jones <cjones1@email.com> +Matthew Rush <matthew@42.co.nz> +Tom Prado <tprado@charter.net> +Olivier Bornet <Olivier.Bornet@puck.ch> +Ryan Veety <ryan@ryanspc.com> +Michael Hackett <mhackett@kanayo.com> +Pavel Kankovsky <kan@dcit.cz> +Brad Davidson <kiloman@oatmail.org> +Ralf Miunske <miunske@users.sourceforge.net> +Juan Conde <juan.conde@juntadeandalucia.es> +Ichiro Doi <ichiro@d-o-i.net> +Jeff Chua <jchua@fedex.com> +Chris Wilson <chris@qwirx.com> +Daniel Jiseok Song <jssong@wooritg.com> +Albert Pauw <apauw@chello.nl> +Andrew Beresford <beezly@beezly.org.uk> +Stephan Müller <smueller@chronox.de> +Henry Ip <henryiphk@hotmail.com> +Andre McCurdy <armcc2000@yahoo.com> +Allan Claghorn <aclag@sdk.ath.cx> +Steve Berry <vze4tzdm@verizon.net> +Dan Noe <dpn@isomerica.net> +Natsakis Konstantinos <cyfex@wthess.net> +Greg Weeks <greg.weeks@timesys.com> +Francesco Bochicchio <bockman@virgilio.it> +Federico Pellegrin <fede.evol@virgilio.it> +Nemanja Jakovljevic <nemanjaj@sezampro.yu> +Shiro Ninomiya <shiro@margi.com> +Josef Kriegl <jkriegl@sensoria.com> +Arnold Liu <asliu23@yahoo.com> +Alain Chehikian <alain.chehikian@cegetel.net> +Ashish <thermalvoid@yahoo.com> +J.D. Cole <listguy@transientresearch.com> +Wolfram Gloger <wmglo@dent.med.uni-muenchen.de> +Colin Leroy <colin@colino.net> +Giacomo Lozito <city_hunter@noway.it> +Armijn Hemel <armijn@uulug.nl> +Dan Williams <dcbw@redhat.com> +Andrzej Turowski <andrzej@turowski_NOSPAM_.com> +Tim Huck <duceusmeus@yahoo.com> +Ekin Meroglu <ekin@fisek.com.tr> +Eric Koenders <Eric.Koenders@peekglobal.com> +Andreas Schultes <flirt@hold-clan.de> +Victor Seva Lopez <linuxmaniac@torreviejawireless.org> +Richard Kennedy <richard@rsk.demon.co.uk> +Tormod Volden <lists.tormod@gmail.com> +Karl Relton <karllinuxtest.relton@ntlworld.com> + +[Many, many more.  If I've overlooked you and you want to be listed here,  +send me e-mail and I'll fix it.  I _know_ a bunch of linux-wlan contributors +are missing.] + +-- Our Sincerest Thanks to all contributors, users and vendors +	AbsoluteValue Systems, Inc. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/TODO.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/TODO.svn-base new file mode 100644 index 0000000..57ac976 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/TODO.svn-base @@ -0,0 +1,86 @@ +* TODO +* +* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- + +Linux WLAN NG TODO +- Make the command-completion interrupt driven vs busywaiting. +- Possibly hook up DMA on the Rx side for PCI devices +- [USB] Remove driver's port-reset when new primary firmware becomes +  available. +- Review changes necessary for static linking to kernel +- Display the MAC and BBP partnum & revision at initialization time +- Perform a more effective I/O access test and an irq test at  +  initialization time +- Detect dead card and perform reset and reinitialization +- Finish the prism2 request responses for STA and AP +  Station: +	powermgmt +	join +	authenticate +	deauthenticate +	associate (currently only partially functional) +	disassociate +	reassociate +	start +	reset +  Access Point +  	deauthenticate +	disassociate +	reset + +- Finish the mibget/mibset +  PHY MIBS +  Prism2 specific mibs (represent all RIDs) + +- Add event detection and notification of daemon +  Station: +  	deauthenticate +	disassociate +	rxpwer_l2 +	rxpwer_l1 +  Access Point: +  	associate +	authenticate +	reassociate +- Add event handling scripts for the events above +- Add AP support for power managing stations diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/config.in.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/config.in.svn-base new file mode 100644 index 0000000..0f8d182 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/config.in.svn-base @@ -0,0 +1,20 @@ +WLAN_VERSION=0 +WLAN_PATCHLEVEL=2 +WLAN_SUBLEVEL=9 +WLAN_EXTRAVERSION= +#LINUX_SRC=/usr/src/linux +PREFIX= +INST_EXEDIR=/sbin +TARGET_ROOT_ON_HOST= +RC_DIR=/etc/rc.d +PCMCIA_DIR=/etc/pcmcia +SYSV_INIT=y +INSTALL_DEPMOD=y +WLAN_DEBUG=n +CROSS_COMPILE_ENABLED=n +CROSS_COMPILE= +HOST_COMPILE= +PRISM2_PLX=y +PRISM2_PCMCIA=y +PRISM2_PCI=y +PRISM2_USB=y diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/scm-moved-to-git.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/scm-moved-to-git.svn-base new file mode 100644 index 0000000..70c7573 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/scm-moved-to-git.svn-base @@ -0,0 +1,11 @@ +On August 17, 2008 linux-wlan-ng moved to using git as its SCM. + +Read-only access can be obtained via: + +	git clone git://git.shaftnet.org/linux-wlan-ng.git + +gitweb access can be obtained via: + +	http://git.shaftnet.org/git/gitweb.cgi?p=linux-wlan-ng.git;a=summary + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/CHANGES b/abs/core-testing/wlan-ng26-utils/tmp/trunk/CHANGES new file mode 100644 index 0000000..f286bf6 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/CHANGES @@ -0,0 +1,1267 @@ +* CHANGES +* +* Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- + - Fix compiles with 2.6.26 (Pavel Roskin) + - Add compatibility with 2.6.27+ WEXT API (Pavel Roskin) + - Fix misplaced variable in PCMCIA code (Pavel Roskin) + - Add compatibility for gfp_t and mutex APIs (Pavel Roskin) + - Fix non-posix find arguments in script (Mark Mathews) +0.2.9 + - Reduce stack usage in prism2mib_priv (Richard Kennedy) + - WEXT functions should return -EBUSY when the hardware is still +   being initialized (Richard Kennedy) + - Use round_jiffies wherever possible (Richard Kennedy) + - Disallow ioctls from running until the hardware probe function has  +   finished.   (Richard Kennedy) + - Fix userspace scripts to work on Fedora 8 (Chris Rankin) + - Perform the hardware reset/init sequence *before* we register +   the netdevice.  (Karl Renton) + - Always do an ifstate_disable before a firmware load cycle. + - Default to wireless extension mode. + - Make the SIWENCODE behaivor more closely match the spec. (Tormod Volden) + - Apply a patch from Karl Relton that improves USB reliability. + - When in wlan_wext_write=1 mode, auto-transition to ifstate_enable  +   and bypass userspace firmware load altogether. + - Fix bug in the GIWENCODE handler (Richard Kennedy & Tormod Volden) + - Support 2.6.24 kernels (modified patch from Tormod Volden) + - Support 2.6.23 kernels. (With apologies to Martin Dauskardt for a  +   misapplied patch) + - Support "Intersil Americas USB 802.11b WLAN DEVICE" (Peter Levart) + - Tweaks to support Fedora 7 (Dan Williams) + - Support 2.6.22 kernels +0.2.8 + - Fix up a pile of sparse warnings (Pavel Roskin) + - Support 2.6.20 kernels (Pavel Roskin) + - Tweaks to the udev rules (Richard Kennedy) + - Silence a large pile of warnings with GCC4.1 + - pt_regs is gone for USB as well on 2.6.19+ (Chris Rankin) + - Large WEXT patch that allows use of NetworkManager. (Richard Kennedy) +0.2.7 + - Fix license text in prism2dl.c (it is in fact MPL/GPL) + - Fix oops in wext_autojoin (Richard Kennedy) + - Report use of dBm for WEXT requests (Richard Kennedy) + - Configure script better handles PREEMPT kernels (Chris Rankin) + - 2.6.19+ uses a different IRQ handler function prototype. + - linux/config.h is no more on 2.6.19+ kernels. +0.2.6 + - Fix another error that affected <2.6.15 builds on some compilers + - Fix a cut-n-paste error that broke 2.6.18 builds. +0.2.5 + - 2.6.18-rc fixes. + - A few tweaks for Wireless-Extensions-21 + - Fix an interrupt-related race that could lead to a crash on shutdown. + - Tweaks to the prism2_usb code to improve suspendability on 2.6.15+ + - Silence many warnings under GCC 4.1 + - prism2_cs support for 2.6.16+ (untested) + - Makefile fixes for 2.6.17+  + - udev support for USB targets (Richard Kennedy) + - semaphores are deprecated as of 2.6.16 (Chris Rankin) + - prism2_usb build fix for 2.6.16 + - Patches from Debian (via Victor Seva) +   - Fix bugs in /etc/wlan/shared, including a security hole +   - Fix build on 2.4.27 kernel +   - Added man page for prism2dl + - Generate a WEXT Event when we gain/lose association. + - Make prism2_defer query ssid and bssid, as IBSS mode has this change. + - Clean up prism2_defer_timer a bit. + - Propogate linkstatus into p80211, and make ethtool aware of it. + - Eliminate wland and entire indication infrastructure.  If you want to +   play with it, use 0.2.4.  We can put it back in if necessary. +0.2.4 + - USB Build fix from Chris Rankin. + - Add ability to install prism2 firmware seperately. (Petteri Raty) + - Theoretically the per-frame signal/noise figures are now in dBm. +0.2.3 + - WEXT 16+ fixes, which came to a head with v2.6.14+ kernels. + - Fix a circular symbol dependency glitch + - Fix a potential panic when receiving unknown CONTROL frames. + - get rid of p80211frm.c entirely; it's all unused code. + - Fix prototype for pci_suspend functions to match 2.6.11+ APIs. + - Build fixes for 2.6.14+ + - Change the type of 'request_pending' to take care of warnings. + - Fixes for warnings generated by the 'sparse' tool (Richard Kennedy) + - Add an explicit README.firmware containing copyright information  +   on the firmware images. + - Compile fixes for 2.6.8 (Victor Seva Lopez) +0.2.2 + - Fix an array overflow in the hotplug helper function. +0.2.1-final + - Added in-kernel devicetable for 2.6.13+ pcmcia  + - Updates to bring prism2_cs into the newer 2.6 kernel APIs.  + - Fixes in the hotplug invocation with WEXT (Pavel Roskin) + - Experimentally try using usb_reset_device on 2.4 kernels too + - use usb_reset_device() on 2.6 kernels (Andreas Schulte) + - Included kludged 1.8.4 PCI/PCMCIA firmware (Pavel Roskin) + - PCMCIA card Ident fixes to coexist with orinioco driver (Pavel Roskin) + - Ignore unexpected ctlx responses. (Chris Rankin) + - Fix an off-by-one in scan results. + - Change some log priorities + - [usb] Fix a memory leak (Chris Rankin * Eroc Koenders) + - [usb] clean up the PDA Read function a bit. (Chris Rankin) + - [usb] Don't overwrite current CTLX URB before we're done with it.  +   (Eric Koenders & Chris Rankin) + - Fix a byte-order problem when parsing scan results (Eroc Koenders) + - Added a mib item (lnxRSNAIE) to get/set the WPA/RSNA IE. + - Applied a patch from Chris Rankin which should solve the hangs with  +   kernel preemption turned on. + - Cleaned up some compile warnings with GCC 3.4.x + - Add a background thread to fetch comms quality from hardware. + - Fixed a series of bad memsets in prism2dl + - Added id for Viewsonic USB widget (Ekin Meroglu) + - Eliminate the extra frame copy in the usb rx path. + - When issuing a start/join, set MACMODE to none as to disable  +   transmits through the hardware. + - Get rid of the prism2_pci/plx 2.2.x compatibility code (Pavel Roskin) + - Change default behaivor of top-level Makefile (Pavel Roskin) + - Get rid of the #ifndef DECLARE_TASKLET cases; 2.4+ supports it. + - Fetch the BSSID when we get an AP_CHANGE event + - netif_carrier_off/netif_carrier_on at appropriate times + - Hook up the dot11CurrentTxPowerLevel MIB in the prism2 code. + - Add a default TMPDIR in case it isn't set. + - Removed some 2.2.x cruft + - CommsQuality now does the right thing with dBm values. + - More makefile work from Pavel Roskin + - A major USB patch from Chris Rankin.  This rewrites the  +   command-queueing code to something considerably more sane. + - A few more Makefile tweaks + - Further compile warning fixes on 64-bit targets (Pavel Roskin) + - Fix prism2_cs on 64-bit targets (Pavel Roskin) + - Fix the 2.4 build (whoops) +-pre26 + - Fix the "no hardware found" bug in 2.6.10+ kernels + - Cleanups in the Makefiles and build system + - Fix a typo in the shared.prism2 script (Chris Rankin) + - Clean up build warnings with gcc 3.3 (and possibly older too) + - Fix a nice race condition on device registration.  + - Don't stop the netdev when we hit ifstate_disable. + - hw->state wasn't being set properly on drvr_stop, nor were we  +   clearing the port status in all cases. + - Fix the "Debug: sleeping function called from invalid context" +   under 2.6 with prism2_usb (Chris Rankin) + - Wireless extension SCAN support (Dan Williams) + - 2.6 sysfs support in the form of SET_NETDEV_DEV (Dan Willimas) +-pre25 + - Fix a brown-paper bag bug in the register_wlandev code. (Giacomo Lozito) + - Patch for the Sitecom WL-022 widget (Armijn Hemel) + - Build fix for ancient ETHTOOL versions + - build fix for old 2.4.x kernels +-pre24 + - Fix build on 2.6.10-rc + - Fix USB build on 2.6.x (x < 7) + - Suspend the USB driver cleanly (Colin Leroy) + - Fix more USB badness (Colin Leroy) + - scan_timeout WAY too long. (Wolfram Gloger) + - dev_get is no more, as of 2.6.10-rc2 -- switch to dev_alloc_name  +   instead, which is present in older kernels. (reported by Colin Leroy) +-pre23 + - Fix badness in 2.6.10-rc1 (Colin Leroy) + - Compile fix for 2.6.9-rc4+ (Jeff Chua) +-pre22 + - Add support for x86-64 (and possibly other 64-bit targets) (J.D. Cole) + - Fix linkstate if driver reset without unloading. (Shiro Ninomiya) + - Rename the man pages to have a .1 extension + - Tweak the Configure script; change the default kernel build directory + - put a 'sleep 1' in the firmware load sequence to improve reliability. +   (Arnold Liu) + - Add Linksys WUSB11 card ident +-pre21 + - Add a per frame rx structure for OOB data to be passed to p80211 +	This is a step in the right direction for a major overhaul of  +	internal frame representation.  The prism2 driver shouldn't care  +	about sniff headers or any of that crap; it should always pass +	everything to p80211  (via this metadata) and the p80211conv_*  +	functions should do that work.  It's also needed to eventually +	support different encryption types. + - Added in beginnings of IWSPY support via patch from Josef Kriegl + - Install modules to $MOD_DIR/linux-wlan-ng instead of $MOD_DIR/kernel + - Primary/Secondary firmware (finally) bundled with the driver. + - Convert to newer 2.6 module parameter code. + - Fix an inverted test in GIWENCODE wireless extension (Shiro Ninomiya) + - Minor script fix for SSF cards (Pavel Roskin) + - Card idents. + - Fixes for SSF PCI cards; default to x16 SRAM as that's more common. +   (download script now automatically detects hardware type) + - Fix script problems that result in a failed init returning success. + - Fix an endian-ness buglet in prism2sta.c (Federico Pellegrin) + - Compile fixes for 2.2.x kernels. (no tasklets or spin_lock_bh) + - Fix up pci resources on card init failure on plx card. +-pre20 + - Fix up pci resources on card init failure + - Ident for "ROPEX FreeLan 802.11b USB Adapter" (Francesco Bochicchio) + - ETHTOOL support now optional, fixes build on older kernels. + - Fix prism2dl to not use kernel headers to fix 2.6.3 build (Pavel Roskin)  +-pre19 + - Add a 'lnxind_roam' indication. + - minor typo in the nwepgen makefile (Pavel Roskin) + - More makefile fixes (Pavel Roskin) +-pre18a + - brown-paper-bag fix for the 2.4 build.  And it no longer builds on  +   2.2 thanks to an accidental makefile commit. +-pre18 +  - Fix broken makefiles so that prism2dl and the rc script install +  - Get rid of the txfid lock, it's not necessary. +  - Tasklet-driven RX handlers. +  - Further work towards a Wireless Extension-enabled future. +    - SIWFRAG, SIWRETRY, SIWFREQ, SIWRTS implemented +    - SIWENCODE, SIWESSID taken from zdsta-1.0.3 (needs work) +    - SIWCOMMIT Implemented ala autojoin. +    - write support defaults to disabled, override via module parameter +  - fix a warning in the wireless extension code. +  - hfa384x.h header updates +  - Fix prism2dl to handle the S7 record being elsewhere in the image. +    (Pavel Roskin) +  - Fix up brown paper bag script error for SSF hardware. +-pre17 +  - Spruce up the GIWNAME wireless extension ioctl. (Natsakis Konstantinos) +  - Added in basic ethtool support; for link status reflection. +  - Fixed a double-locked spinlock which deadlocked on SMP boxes. +  - /proc/net/p80211/wlanX/nsd now has useful information about the +    prism2 hardware/firmware revisions. +  - eliminate the unused 'collptr' from the mib structures. +  - Fix a bug with the pcmcia script and scanning (Dan Noe) +  - Fix a crash on a VCC mismatch. +  - Split out most pci/plx/pcmcia/usb specific code into their own .c files. +  - Make prism2_cs build on 2.6.2-rc +  - Changes to support SSF hardware. +  - Card ident for D-Link DWL-650P1 +  - Move the prism2 link notification handler operate in scheduler  +    context to avoid a hang in softirq context. +  - Melco WLI-USB-KB11 USB widget added (Bela Fenyvessy) +  - Add in x86-64 support, plus other cleanups in wlan_compat.h +  - Support the Netgear MA311 PCI card.  (Steve Berry) +-pre16 +  - Implement wireless extension SETCHANNEL. (SIOCSIWFREQ) +    - Currently broken.  :) +  - Fix several sniffing-related bugs: +    - disable when we're already disabled +    - no longer perform a full h/w reset when we're already enabled +    - Vastly reduce CPU usage on channel hop. +  - Fix a crash on unload for pci/plx widgets (Pavel Roskin) +-pre15 +  - Minor fix for the shared script (Jeff Chua) +  - fix "bad: schedule while atomic" bug introduced by recent 2.6.0-test  +    kernels and wireless extensions. +  - Switch to using spin_[un]lock_bh for the cmdlock; this way we  +    disable the transmit bh from running while issuing a card command. +    Also have the txframe function obtain the lock. +  - Hawking HighDB USB Widget (Allan Claghorn) +  - Fix a double-lock in hfa384x_cmd_notify +  - Identity for "T-Sinus 111 USB WlAN Adapter" (Roman Koutny) +  - Fix up alignment problems on frame rx. (Ranjit Deshpande) +-pre14 +  - Update the HAS_HOTPLUG test to something considerably more foolproof +  - Add ids for the Airvast Prism3 USB widget +  - bap locking was broken when illegal parameters were passed. (Andre McCurdy) +  - Don't use jiffies for timeouts when interrupts are disabled. (Andre McCurdy) +  - Make the Configure script a little saner. +  - Remove the Zydas 1201 USB widget.  Use the Zydas modified  +    linux-wlan-ng release instead (we hope to merge it in eventually) +-pre13 +  - Fix two big-endian bugs in the scan code. +  - Hotplug agent executes '/sbin/ifup INTERFACE' if possible. +  - Planex GW-US11H USB adaptor (Henry Ip) +  - Averatec USB Wlan Adapter (Stephan Miller) +  - D-Link DWL-122 USB widget (Andrew Beresford) +  - ASUS-WL140 Wireless USB widget +  - Fix the WLAN_LOG_NOTICE macro for gcc 2.95.x +-pre12 +  - Fix up endian bugs in lnxerq_commsquality. +  - Get rid of the pcmcia release timer for >2.6.0-test5 +  - Card ident for 'ZyDAS ZD1201 Wireless USB Adapter' (Albert Pauw) +  - More tweaks for 2.6.0-test4 +  - fix some bash-isms in /etc/wlan/shared (Daniel Song) +  - Collapsed the BOUNDEDINT and INT types into one. +  - Eliminated the WLAN_LOG_***0() macros at long last thanks to CPP  +    trickery.  Also eliminated more cruft from wlan_compat.h +  - Card ident for the Samsung SWL-2210P PCI card +  - Try not to schedule a USB endpoint reset if there's one already  +    pending. (Chris Rankin) +  - Fix pci/plx operation on architechures with >32bit physical address  +    sizes. (namely mips64 & some mips32) +  - get rid of save_flags/cli/restore_flags in prism2_cs on >2.2 builds +    (tweaked from patch by Pavel Roskin) +  - pci_device_id tables should not be marked __devinitdata +-pre11 +  - support genesis mode for RAM download of primary fimware +  - prism2_usb now builds on 2.5/2.6.   +    - endpoint numeration removed. +    - hfa384x_usb_corereset unimplemented for 2.5/2.6 +  - hfa384x.h updates. +  - p80211conv_* functions should work with netdev->mtu, not MAX_ETHFRM. +  - Simply erase the bogus '3rdparty' drivers on Mandrake systems. +  - Card idents for Adaptec AWN-8030/AWN-8020, and Netgear MA111 +  - Strip out all 2.2.x stuff from prism2_usb, it doesn't work. +  - add proper __devinit/__devexit/etc tags to prism2sta.c +  - Minor USB janitorial patch from Chris Rankin. +  - Make most card commands require superuser access (exception is  +    mibget)  (Original patch by Pavel Roskin) +-pre10 +  - Make the wakeup flag in the usbctlx structure volatile, as well as  +    other wait condition variables. +  - Make the rx_urb buffer dynamically allocated so we can re-post the  +    URB as soon as possible. +  - Get rid of completion.h +  - More wlan_compat updates. +  - Disable TXEX reporting on USB as well as TXOK.  should improve +    stability a tad. +  - Further 2.5 USB work.  Not quite there yet. +-pre9  +  - Properly initialize the prism2_cs release timer (Pavel Roskin) +  - Eliminate the CONFIG_ISA requirement for prism2_cs (Pavel Roskin) +  - netlink build fixes for 2.5.71 +  - Hopefully fix the 2.2.x build. +  - More USB fixes (Chris Rankin) +  - Compile fixes for < 2.4.20 +-pre8 +  - Fix the pcmcia breakage introduced in -pre2.   +  - On USB widgets, only signal txcomplete if there was a tx error. +  - Minor cleanups in the PCMCIA code. +-pre7 +  - Add in the 'JVC MP-XP7250" USB Widget. +  - Don't call ev_alloc on tx_complete event; only the tx urb completion. +  - Minor tweaks to tx_timeout code +  - More USB updates; primarily with error-handling.  (Chris Rankin)  +-pre6 +  - On USB transmits, don't return 'success' if the tx_urb is still +    pending.  Also don't wake the netdev queue if the tx fails. +  - Hook up the tx watchdog timer and add a p80211-level handler. +  - Fix compilation with older (<= 2.4.18) kernels. +  - Another massive USB+other patch from Chris Rankin: +    - a separate list for "finished" CTLX objects. +    - correct (hopefully!) handling of -EPIPE errors, shamelessly copied +      from^W^Winspired by David Brownell's usbnet driver. +    - finished support for asynchronous commands, with proper tracking  +      through the CTLX lifecycle, clean-up etc. Each asynchronous command now  +      completes in its own tasklet. +    - CTLX cancellation and error handling. +    - further work on the timers and spin locks. +    - clean up setconfig16() and setconfig32() functions so that they  +      take appropriate value parameters, even if the underlying  +      setconfig() commands don't. +    - use an asynchronous command in setmulticast(). (CS, PCI and PLX  +      are still synchronous; they just pretend not to be.) +    - further clean up in the disconnect() handler. However, it's still  +      not a good idea to remove the adapter while the  +      prism2sta_inf_hostscanresults() function is sleeping, and the wlandevice +      struct could easily have been freed before the p80211req_dorequest()  +      function manages to clear the request_pending bit. It would be  +      nice if we could cancel both of these operations when we call  +      prism2sta_ifstate(P80211ENUM_ifstate_disable).  +    - extra support for Linux 2.5 (task queue -> work queue). +    - reset the link status when we stop the driver. +  - Some work on module locking.  Not there yet, but getting better. +  - Remove magic numbers from USB endpoint probe (Chris Rankin) +  - Eliminate useless timer in p80211do_request, as all calls are  +    synchronous.  Also clena up more function pointers, and a few other  +    doodads. (Modified from patch by Chris Rankin) +  - Track the current SSID in the wlandev; Make the WEXT stuff key from  +    this.  Update the SSID when we get a linkstatus_connect notification. +  - A couple of misc cleanups from Chris Wilson +  - Cleanups in the 2.5 makefile code. (Pavel Roskin) +  - Add in another PCI device ID, to handle Sony VAIO PCG-V505AP +  - Make sure CONFIG_ISA is enabled for the prism2_cs build. (x86 only) +-pre5   +  - Get rid of generic manfids in  /etc/pcmcia/wlan.conf (Pavel Roskin) +  - Fix the 'make install' target. +  - only call flush_scheduled_tasks() if DECLARE_TASKLET not defined. +    (fixes 2.5.x compile) +-pre4 +  - More script work; mostly cleanups and other enhancements.  +  - Substantial prism2_usb patch from Chris Rankin. +    - using 2 Linux lists for CTLXs +    - remove race condition and double-free with CTLXs in disconnect() +    - initialise URBs correctly (vital for Linux 2.5+) +    - separate callbacks for data/CTLX OUT URBs +    - flush task queue on shutdown +    - more thorough use of spinlocks with CTLXs +    - set the ASYNC_UNLINK flag when it is time to unlink an URB  +      asynchronously, and not before. +    - ensure we stop submitting URBs once the disconnect function  +      is called. +  - More USB idents (Jeff Chua) +  - Scan now uses active scans only; should speed things up a bit. +  - Proper module init/cleanup in prism2sta.c, plus more work for 2.5.69 +  - Added in descriptions for module parameters. +  - Major overhaul of the hotplug stuff.  Now we use our own hotplug +    event class, and use that to kick off configuration and whatnot. +    All device types (pci/plx/pcmcia/usb) now use this mechanism. +    Also brings us things like unified power management (suspend/resume) +  - Supress spurious output when setting WEP parameters. +  - Only query PrivacyOptionImplemented if wep was enabled in the config +    Works around an apparent firmware bug, see http://bugs.debian.org/190851 +  - Eliminate hw->name.   +  - Card ident for NL-2511CD Plus pcmcia card. +  - Minor tweak on pcmcia removal. +  - Fix the USB compile on <2.4.20 +-pre3 +  - get rid of wlandev_get_index and whatnot. +  - URB cleanup in the USB code.  (Chris Rankin) +  - Moved host auth sequence out of interrupt context. +  - USB paranoia checks (Chris Rankin) +  - Partial rewrite of the USB shutdown sequence +  - eliminate wlandev->hwremovedfn(). +  - Minor tweaks to the mib. +  - Get rid of the horridly outdated skeleton driver. +-pre2   +  - Fix a crash-on-unload affecting pci and plx adapters +  - have the init script load the module if needed. +  - Handle the new 2.5.69+ irq handler semantics +  - Fix 2.5 with pcmcia (Pavel Roskin) +  - Massive cleanup of the prism2/driver/Makefile (Pavel Roskin) +  - Don't wrap the [un]register_netdevice() calls in rtnl_[un]lock() +    And use the [un]register_netdev() calls instead. +  - Call the hwremoved() functions on pci/plx_remove +  - Eliminate the prism2sta_priv_t structure. +  - Fix a memory leak on ifstate_disable +  - Minor changes to the USB driver +  - Widget id for "Melco WLI-USB-KS11G" (Ichiro Doi) +  - Function pointer syntax cleanup (Chris Rankin) +  - Push the multicast/promisc set into the prism2 driver. +  - Move type/multicast filtering into the p80211 layer. +  - Format fix for p802addr_to_str (Pavel Roskin) +  - Add a check for non-Intersil firmware. +  - Fix a infinite recursion in the usb lowlevel code. (Chris Rankin) +-pre1 +  - Header updates. +  - Add a card ident for the USR 1120 USB widget (Juan Conde) +  - Cleaner shutdown; fixed a possible leak and a race condition. +  - Another rearrangement of the command locks, to eliminate use of the +    spin_is_locked() call. +  - Fix a rare deadlock with cmd_initialize (Pavel Roskin) +  - Add a Lucent-compatible key-generator in add-ons/lwepgen +  - Fix a stack overflow problem. (Pavel Roskin) +  - Further monitor mode fix for control frames (Pavel Roskin) +  - Cleanups in the dependency generation code +  - Initial 2.5 support.  USB currently broken. +  - Minor build system cleanups. +0.2.0 +  - Use PSUEDOIBSS mode for monitor mode; this should eliminate spurious +    beacon generation.  (Ryan Veety) +  - Don't drop "unrecognized" frame types in monitor mode. +  - Added ident for the Linksys WUSB12 (Brad Davidson) +  - Eliminated most of the WLAN_LOG_???n macros. +  - Minor fixups in /etc/wlan/shared +  - Cleaned up some of the error messages in the conversion code. +  - changed the "Host de-WEP failed" error to a debug message, as the  +    /proc/net/wireless stats are updated to reflect undecryptable frames +-pre10 +  - Added the p2TxPowerMax MIB item to specify the TxPower level. +    0-30 dBm.  Needs STA>=1.7.0 or AP>=1.4.0. +  - Clean up some spurious warnings in prism2sta.c (Pavel Roskin) +  - A series of patches from Pavel Kankovsky, somewhat tweaked.  :) +    - Properly set skb->mac.raw in non-monitor mode +    - Enhancments to the p80211 frame conversion code +    - Handle A4 frames. +    - Don't issue linkstatus notifications in monitor mode +    - Supress Linkstatus messages in monitor mode +  - hfa384x.h updates for latest firmware. +-pre9 +  - ZyXEL ZyAir B200 Wireless USB widget ID added (Paul Lacatus) +  - Only enable interrupts in one place (hfa384x_drvr_start) +  - Fix the startup scripts to disable WEP completely if not enabled. +  - ALLNET 0193 USB widget ID (Kurt Huwig) +  - Disable the hfa384x port before issuing the autojoin stuff. +  - Fixed a subtle flaw in the 802.11->802.3 conversion code. +  - Updates to hfa384x.h +  - Add productinfo for dlink DRC650 from Petr Slansky. +  - Minor changes to the rfmon code. +  - Only notify us on linkstatus changes if it actually changes. +  - Fixed the path the manpages were installed to. +-pre8 +  - Properly reset the hardware state after a flash/ram download. +  - Patch to allow escaped characters in the scan list (Derek Atkins) +  - Re-added the txfid queue locking which somehow got dropped. +  - Added DellTrueMobile 1180 USB ident. (Michael Hackett) +  - Changed linkstatus messages to INFO level reporting. +  - Ident info for the Intel Anypoint II 802.11b PCMCIA card. +  - Added support for the SH architechure and many changes necessary for +    2.5 support.  Modified from the patches by Ryan Veety. +  - Compile fixes for 2.2.x introduced as part of the new hotplug support. +  - Added man pages contributed by Joey Hess +  - Add ident info for the Z-Com 725/726 USB Widgets. +  - Fixes to silence GCC 3.2 warnings. (Pavel Roskin) +-pre7 +  - Patch to fix int array mib manipulation.  (Pavel Roskin) +  - Minor improvements to the build system. +  - Moved RX processing to a bottom half instead of hard irq context. +  - Further script improvements:  signal strength filtering, and some  +    space handling stuff.  The latter is not complete yet. +  - lnxreq_commsquality wasn't setting the status field properly on the +    response messages.   +  - Workaround for spurious interrupts generated before initialization +    is complete. (Clay Jones) +  - hotplug script now invokes 'ifup $DEVICE' if present. +  - Minor cleanups (Pavel Roskin) +  - Tenative SPARC support. (Olivier Bornet) +  - After leaving monitor mode, disable the port if we had to enable it. +  - Updates to hfa384x.h +-pre6 +  - Further script enhancements; automatically use scan mode on hardware +    that is known to support it properly. +  - Fixed errors in the hotplug script, and other misc fixes. +  - 2.2.x fixes for the new proc stuff and deferred processing stuff. +  - Add support for the new sniff frame capture. (doc/capturefrm.txt) +  - Get rid of some bitrot with the sniffing code. +  - Populate the tx dropped frames statistics. +-pre5 +  - Fixes for host scan when not currently joined. +  - /proc support; some informational stuff is kept in /proc/wlandev/wlanX +  - Complete rewrite of the configuration files and startup scripts. +     hotplug(pci+usb), pcmcia, rc, everything uses same config file(s). +     per-network configuration +     supports scanning and automatically choosing a network from a set. +  - Fix the TMD7160/ncp130 support so it acually works.  :) +  - Make the BUG() call in cmd_access enabled only in debug builds. +  - Minor makefile fixes. +  - Microsoft MN520 PCMCIA ident info added. +  - p2cnfShortPreamble is not a boolean value.  (Clay Jones) +-pre4 +  - BAP access fixes for PCI platforms.  This mostly affects SMP  +    arrangements. +  - Back out W200 USB ident info; it's not prism-based. +  - Patch from Tom Prado to make 'keygen' more user-friendly. +  - bap_timeout parameter only valid on non-usb platforms +-pre3 +  - Added Ident info for the USB Compaq/Intel W200 widget +  - dot11req_scan requires firmware >=1.3.2. +  - Added the "Acer Warplink USB Adapter" id. +  - Rework the prism2sta_inf_linkstatus call to defer processing of +    results until outside interrupt context.  Should fix the SMP +    deadlocks seen on some machines. +  - Rework the usb_disconnect code to hopefully alleviate the occasional +    crash-on-disconnect some people see.  Solution is not SMP-safe yet. +  - Add the D-Link DCF-660W ident info. +-pre2 +  - New parameter, 'prism2_bap_timeout' to specify the timeout on +    bap setup.  timeout*10 == timeout in microseconds.  Note that this +    timeout occurs in spinlock context, so increasing it arbitrarily is +    BAD!  Defaults to 1000, ie 10000us.   +  - compile fix for prism2sta in debug mode. +  - Only prompt for pcmcia sources if we're using non-kernel pcmcia. +    (original patch by Beat Bolli, rewritten a bit..) +  - Add the Linksys WCF12 CF ident info. +  - A bunch of compile fixes for older versions of wireless extensions. +  - Added implementations of GIWTXPOWER and GIWRETRY +  - Some fixes to the wireless extension code (thanks to Jean Tourrilhes) +-pre1 +  - wland was incorrectly using kernel headers in its compile.  +  - Adhoc mode was auto-roaming onto "any" SSID.  Fixed. +  - Implemented the dot11req_scan & dot11req_scan_results functions. +      This, combined with more intelligent startup scripts, will allow +      you per-network profiles.   Scripts are unwritten as yet.  :) +  - hfa384x.h and MIB updates. +  - Rewrote the wireless extension support code; moved to p80211 layer. +      Now we're compatible with at least v6-v14, and everything +      inbetween.   We hook up to the new iw_request structure, which +      makes further wireless extension support much easier to add. +  - Add the Microsoft MN510 USB device ID. +  - Finally fix the 'crash on unload' problem for 2.2.x kernels with PCI. +    Turns out the kcompat24 code wasn't quite complete.  (Matthew Rush) +  - Cleaned up our usage of __FUNCTION__ to make gcc 3.x happy. +  - Fix a typo in the prism2 makefile.   +0.1.15 +  - Fix an obscure PCMCIA build problem. (modversions disabled but +    header present, and using non-kernel pcmcia) +-pre8 +  - Added code to optionally truncate packets in monitor mode. (Clay Jones) +  - Fix a polarity problem with the stripfcs argument to monitor mode. +  - Add a test to make sure wireless.h is included. +  - Netgear MA401A card ident. +  - Further cleanups of the build system (Makefiles) +-pre7 +  - Include wireless.h so wireless extensions work again.  :) +  - Work around the braindead RedHat kernel build system. +  - Fix a class of unaligned accesses in the message structures  +    (kernel driver) and user space parsers (wlanctl-ng, etc) +  - Fix an unpacked struct problem that affected ARM platforms +    (thanks to Clay Jones for spotting this one) +-pre6 +  - Support the new auto-unknown mode present in firmware >1.3.3 +    When issuing an autojoin, we try to join a BSS, then an IBSS, and if +    all fails, we create a new IBSS with the given parameters.  + 	*note*  currently disabled. +  - Updates to hfa384x.h to reflect latest documentation +  - Build system mini-enema.  Automagically detect kernel version, +    pcmcia status, and modversions.  Pick up the kernel compile flags. +  - Hopefully fixed the 'crash on unload' for 2.2.x kernels and PCI. +  - 'p2req_join' command, see doc/wlanctl-ng.p2req_join.txt  +    This lets you join a specific SSID.  Thanks to Clay Jones. +  - A couple more pcmcia/cf card idents +  - More deletions/fixes in wlan_compat.h +-pre5 +  - Due to new hotplug code, atmel device detection removed +  - Further cleanups in wlan_compat.h and non-kernel makefiles +  - Debian package stuff yanked in favor of the "official" deb packages +  - Rearranged the wireless extension support code a bit +  - A fix for the promisc/allmulti stuff on USB devices +-pre4 +  - Hotplug support for PCI/PLX/USB widgets +  - A compile fix for 2.2.x (x < 18) kernels and PCI adapters +  - Support for TMD7160-based "almost but not quite PLX" boards +  - HP-PA support.  In theory.  Anyone care to test? +  - pcmcia script cleanups +  - Add ident info for the "Intel PRO/Wireless 2011B LAN USB Device" +  - Include an almost-sane fix to the modversion madness +  - Tweak the init order of the PCI driver structs +-pre3 +  - Added ident info for ASUS WL-110/WL-100 cards +  - Support for PCI power managment +  - Fixed a wep hang on the transmit side +  - Compile fixes; mainly for 2.2 kernels +  - Add support for the SIOCGIWRATE wireless extension +-pre2 +  - Restructured the driver locking.  SMP should be MUCH better now. +  - Stripped out more dead code. (mainly FID_STACK) +  - Fix an skb access after we call netif_rx +  - Fixes for XScale CPUs. +  - Added added a MiniUSB ident info +  - Restructure of the docmd_* functions +-pre1 +  - Host-based WEP decryption and encryption +  - Partial rewrite of copy_to_bap. +  - Debian package metadata updated to 3.0-STABLE. (David Everley) +  - Stripped out a lot of crap from wlan_compat.h +  - More atmel adapters added to the USB exclude list. +  - James Goodwin's patch to fix a bug in the 80211conv code. +  - The 3COM AirConnect board is a PLX adapter.  +0.1.14 +  - Added PCI ident info for the 3Com AirConnect PCI. +  - FCS toggle now (really) defaults to false. +  - Added PCMCIA ident info for the 3Com AirConnect 3CRW737A/3CRW777A +  - David Everly's patch to kernel detection in the Configure script +  - David Everly's patch to add better debian packaging bits. +-pre7 +  - Added kernel tags stuff. +  - Added PCMCIA ident info for the Actiontec 802CI2 card. +  - Added PCMCIA ident info for the Proxim RangeLAN-DS/LAN card. +  - Endian "fixes" for PCI PowerMacs.  This fix may be relevant for other +    BigEndian/PCI (and PLX) platforms. +  - FCS in monitor mode now optional; defaults to off. +  - Populate the monitor channel in the prismheader. +-pre6 +  - monitor mode now works on USB widgets. +  - Fix an alignment bug in the rx path. +  - Fix a brown-paper-bag bug in the usb flash code. +  - Explicitly enumerate the USB widget endpoints, and use 'em. +  - REALLY fix the wlan.conf overwriting. +  - More minor cleanups in the PCI/PLX init code. +  - endian-ness fixes in the monitor code +  - Applied a patch from David Everly to fix another 2.2.x compile problem. +-pre5 +  - Add USB entries for the "Melco WLI-USB-S11 11Mbps WLAN Adapter" +  - Don't overwrite /etc/wlan.conf if it already exists. +  - Compile sniffing code if packet socket is modularized. +  - Fix a typo with the init script. +  - Fix a compile problem with 2.2.x kernels +-pre4 +  - First bits of the SMP/locking fixes. +  - Partial rewrite of the PCI/PLX/USB driver internals. +  - Added a makefile for the 'addons/keygen' tool. +  - Fixed a race condition in the USB code. +  - Applied Godmar Back's "SSIDs with spaces" patch. +-pre3 +  - Applied pizza's patch to remove the pb_t structure and make all  +    802.11<->ether conversions happen in-place.  Noticeably reduces +    cpu load.  Also includes a few misc bugfixes to the conversion code. +  - Workaround for the kernel panic on bringing up a USB interface +  - Applied Mike Klar's USB patch that adds support for the MIPS +    target and should, among other things, fix WEP under USB. +  - Added Remy Cool's patch to add the Dynalink prism2 card ids. +  - Tim Miller's pcmcia script install path patch +  - Applied Tim Fletcher's patch to allow compilation against +    the newest versions of the wireless extensions. (V13) +  - Added jwyatt's patch for the Compaq Evo N600C USB adapter thing. +  - Per mwelk's suggestion, changed the displaystring totext to single +    quote the strings.  Hopefully this will take care of some of the  +    "SSID w/ space" problems. +-pre2 +  - tseward's ID code patch for Siemens SpeedStream USB adapters. +  - pizza's patch for dropping/ignoring frames in promisc and allmulti +    modes. +  - crankin's new Actiontec USB IDs. +  - crankin's fix for wext /proc zero vs. garbage problem. +-pre1 +  - pizza's chkconfig comment in rc.wlan. +  - pizza's patch to add true promiscious support to 0.1.13. Also includes +    Experimental ALLMULTI support. +  - pizza's patch to add PF_PACKET capture and raw transmit to 0.1.13-pre2,  +    (with toggles for WEP in sniffing and prism header) +    NOTE: this patch _removes_ the old netlink monitor mode (sniff) interface. +    If you're sniffing, you need to use the latest libpcap (v7.2-pre..from CVS), +    you'll also need to build your own ethereal (0.9.0 or greater) using the +    latest libpcap. +  - bhuang's fix for the hfa384x_test_command() function. +0.1.13 +-pre4 +  - crankin's revised USB ID patch. +  - Fixed a little buggage in the p80211knetdev_set_mac_address() function.   +-pre3 +  - crankin's patch for a bug in usb rrid, DBFENTER/EXIT, and Actiontec +    USB IDs. +  - hmuurimaa's ID patch for the Omnibook500 integrated USB adapter +  - proskin's patch for MODULE_LICENSE conditional +  - dstates (JediElite) submission (others submitted it too) for the +    NDC PLX card. +  - crankin's patch for src/prism2/driver/Makefile. PCI and USB were +    linking with PLX's prism2wext.o file.  DOH! +-pre2 +  - Synch'd the etc/pcmcia/wlan-ng scripts with the etc/wlan* scripts. +    This should help PCI/PLX/USB Adhoc users. +  - Added cmulliner's patch for set_mac_address(). Also changed it to +    use dot11StationID instead of the prism2 specific mib item...Oh +    Yeah, I also changed to comments to /*...*/  ;-) +  - Fixed PDA reads and PDA validation. +  - KNOWNBUG: prism2_usb + linux-2.4.17 + uhci.o : Very slow performance. +    We need to look into having multiple posted tx and rx urbs (this is +    also a TODO). +  - KNOWNBUG: prism2_usb + linux-2.2.20 + uhci.o : Physically  +    disconnecting the device causes a Panic.  The logs look like the +    usbdev is still holding some buffers (urbs?) associated with the +    device despite the fact that I've explicitly unlinked them.  This +    problem does not occur on 2.4.17 and, unfortunately, I don't have +    time to debug 2.2.20 this time around. +  - Made all corereset() calls dependent on the prism2_doreset module +    argument. +  - Added corereset() support for all device types. +  - Added the lnxreq_ifstate request message.  This request is used +    to bring the device up to an operable state _after_ the +    [hostbus]_probe() function is finished.  It can also be used to +    shutdown and/or restart the driver+device.  This takes the place +    of the "activate hardware on ifconfig up" code that was introduced +    in 0.1.11.  This is the change that should fix most of our dhcp +    client problems. +  - Massive changes/cleanups to the driver init/shutdown code for all +    device types (pcmcia|pci|plx|usb). +  - Removed the add-ons/mibedit application from the linux-wlan-ng package. +    We'll be re-releasing it as a separate tarball. +  - Modified hfa384x_usb.c per dbrownell's suggestion to mark the request +    urb's with the USB_ASYNC_UNLINK flag.  This because we're calling +    unlink_urb() from the timer callback (intterupt context). +  - Added arichter's patch for the RRID framelength.  It's a good catch +    to make things truly correct.  Unfortunately, I don't think it will +    have any effect.  Because of the 64-byte minimum, the actual RID value +    is being transferred regardless.  Also, I don't think the RRID handler +    in the MAC even looks at the framelen field of RRID frames. +  - Added mwelwarsky's patch for the tx path that may fix some of the +    "queue empty" errors.  Had to update it for 0.1.13. +  - Added new PLX device IDs from cyokoyama's patch, but deferred the rest  +    until we can get a clean patch against the latest release. +  - Added pizza's v2.1 NETLINK enable/disable patch.  Note that this whole +    NETLINK enable/disable thing is only barely tested by me.  I _always_ +    have netlink available so maintaining a separate kernel setup just to +    test this feature is a pain. +  - Added jdiedrich's pcmcia card ids for the Compaq ipaq PCMCIA card. +  - Added crankin's patch fixing some more wext induced problems and adding +    the Actiontec USB ids. +  - Added abridgett's patch for PRIV_GENSTRING handling. +  - Added emckee's malloc.h -> slab.h patch and made the mods to the usb +    and wext files he missed. Some kind list soul told me +    that the change to slab.h goes way back in the 2.2.x history, so we +    should be OK.  If this change proves to be a problem for someone with +    an old kernel, please submit a patch with ifdefs for the version where +    things changed (not just the version you're using....thanks). +  - Added jtourrhiles patch for wext reporting level and noise in dbm. +    To enable the reporting in dbm, you must add "#define WEXT_IN_DB" +    to the top of src/prism2/driver/prism2wext.c. +  - Added support for the dbm-normalized RID for CommsQuality in prep +    for working with Jean's patch.  The mibs are called p2dbmCommsQuality*.   +    Note that this will only work for secondary firmware versions 1.2.0  +    and higher. Earlier versions will return with a  +    'resultcode=implementation_failure'.  Note also: The values returned +    are signed 16-bit integers that have been stuffed into unsigned 32-bit +    integers for the trip up to userland.  The following shell expression +    will convert them back to the signed quantity you want: +       if [ $val -lt 32767 ]; then +           echo $1 +       else +           echo $[ $1 | 0xffff0000 ] +       fi +  - Added mkershaw's suggestion to lengthen the wait interval for  +    commands in hfa384x.c. +  - Added a note to the README about dleffler's observation regarding +    netlink troubles and using 'make mrproper'. +  - Added gback's patch to initialize wireless extensions for non-pcmcia +    targets. +-pre1 +  - Fixed a patch induced (not sure which patch) Makefile syntax error. +  - Added rfloeter's cool Wireless Extensions patch which was kindly  +    updated to 0.1.12 by pizza.  Note that my own testing of this patch has +    been minimal but I've had reports of folks who are using it successfully. +    NOTE: The addition of this patch adds the requirement that Wireless +    Extensions (version >= 10) be compiled into one's kernel. +  - DOH! some somewhat kind soul on the lists pointed out that the keygen +    program wasn't in the distributed tarball.  Basically, I forgot to  +    check it into CVS, therefore the distribution build script couldn't +    find it.  Ahem...it's now in CVS and should be included in the tarballs. +  - Added pizza's patch fixing the "netlink disable" patch.  The  +    p80211ind_* functions need to be handled individually instead of two +    giant #if's, but that's a task for another day. +  - Added theBS's patch for making the /etc stuff installation relative and +    installing the FIXINST scripts for USB. +  - Added crankin's SMP deadlock fix patch. +0.1.12 +  - Added dlyddy's string.h includes and comma fix.  Changing all malloc.h's +    to slab.h's will have to wait until I figure which kernel version marks +    the switch so we can ifdef it. +  - Added bgertfield's Corega support patch. +  - I added a check to Configure so we add the CONFIG_NETLINK symbol +    on the compile command line if necessary. +  - proskin's patches for netlink disable when not configured in kernel, +    mkprintstr fix, and turn off skeleton install.  The netlink patch +    pointed out something that might be the root cause of some problems +    with the _cs driver.  pcmcia_cs now strips the kernel CONFIG items +    it cares about and puts them in it's own include/linux/config.h  +    (which is symlinked to include/pcmcia/config.h). +  - Added mtaylor's suggested close() to do_ioctl() in wlanctl. +  - Added mkarmak's suggested change for the GL24110P device ID as +    PCI_DEVICE_GL24110P_ALT and an additional item in the device table +    for PLX devices. +  - Added crankin's suggested MODULE_LICENSE statements.  Had to figure +    out the version ifdefs myself though.  ;-) +  - Added vragor's patch for arm updates to the Makefiles and Configure. +  - Added jsuhr's patch of the PLX9052 irq enable code from the orinoco +    driver.  Note: PLX contributions are highly valued here because we rarely +    use these devices ourselves. +  - Added cfang's PCMCIA ident info for AirEZY card. +  - Made USB port reset in open() an option, DEFAULT IS OFF. +  - Cleaned up the top edge of hfa384x*.c (needs some more). +  - Added the notion of CMD vs. AUX format MAC chip addresses. +  - Modified isgoodpdr() to accept anything less than 0x1000. +  - Updated the wlan-ng scripts for the new open/close behavior. +  - Fixed a bunch of issues that caused bad breakage for hot-plugging +    the USB module. +  - Added a module argument to enable/disable the MAC (or usbport) reset +    performed in prism2sta_open(). +  - Moved the port reset corereset() and the call to the open(). This +    gets the port reset out of the probe_usb() context and appears to +    solve the recursive probe problem in some cases. +  - Cleaned up the overlength usb packet problems +  - Added rmemreq/resp and wmemreq/resp support +  - Fixed some of the 64-byte packet problems in a few commands. +0.1.11-usbonly +  - Note: hfa384x*.c are currently undergoing some changes.  I believe +    these changes have broken some things for pcmcia/pci/plx support.  I'm +    not certain since I haven't tested them.  As such, this is a USB ONLY +    release. +  - Cleaned up the use of hfa384x_drvr_*() vs. hfa384x_cmd_*() a little. +    This is a work in progress. +  - Rewrote the USB request/response machine again. +  - Added tnewsham's keygen program to the add-ons directory.  I don't +    include it in the overall build because I'm not comfortable with making +    this package dependent on openssl right now.  It is supposed to generate +    keys in a manner identical to the windows software.  I have not personally +    verified this.  If someone wants to contribute more complete build +    instructions for this program, please do. +  - IMPORTANT! Note that we've changed the up/down behavior.  You now +    must 'up' the linux netdevice interface (e.g. ifconfig wlan0 up) prior +    to using wlanctl-ng.  Also, wlanctl commands aren't available after +    "ifconfig down".  From a low-level perspective, this is how most +    linux netdevices work.  We originally started trying to create a  +    setup where "ifconfig up" on an interface that wasn't associated would +    fail.  With PCI and even more so with USB, that has proven unworkable. +    The idea now is: +      Step 1: ifconfig wlan0 up  +               Enables the hardware so it's ready to handle wlanctl-ng commands. +      Step 2: wlanctl-ng <various commands>, repeat  +               Set up the dot11 configuration and get yourself associated or +               whatever. +      Step 3: ifconfig wlan0 <address>   +               After getting a "real" 802.11 connection, assign the address +               to the interface (via static numbers, dhcp or whatever). + +      Note that it is very important that you do _not_ down the interface +      between the initial 'ifconfig up' and the later ifconfig that assigns +      the address.  'ifconfig down' will shut down and reset the hardware. +      If you down the interface, all that good work in step 2 will be lost. +  - Rewrote the USB request/response machine +  - Moved all memmapped/irq interface elements from prism2*.c to hfa384x.c +    in preparation for adding USB support. +  - Fixed 'make clean' so it doesn't generate .depend files. +  - Removed some leftover pcmcia-cs dependencies for non-pcmcia targets. +0.1.10 +  - Added module param "prism2_ignorevcc".  If set to non-zero, we just +    accept the Voltage we get from pcmcia-cs without checking.  USE WITH +    CAUTION!!!! +  - Changed the voltage setting code such that we never try to change it. +  - Added NETGEAR PCI info. +  - Fixed a problem with the interrrupt enable in mlme_start(). +  - Fixed the netdevice_t problem. +  - Added some new CIS entries. +  - Fixed some byte order things re: dblythe's patch.  The problem went +    a little farther than the patch so I had to change some things. +  - Added lye's fix for the netdevice_t problem on various targets. +  - Added an Ad-Hoc support patch from ????? (please identify yourself, +    it's a nice bit of code and stays within the spirit of things).  Adhoc +    still needs work though.  Remember, only the _first_ STA in an IBSS +    should issue an MLME-Start.request.  All the rest should scan/join +  - Re-added the monitor mode stuff.  At this point I guess Intersil won't  +    be taking it out.  Many thanks to those who maintained the patches and +    my apologies for the hassle. +0.1.9 +  - As part of the PCI stuff, rewrote the scripts for 'fixed' (i.e. non- +    hotswappable) cards like the ISL3874 and PLX based PCI adapters. +  - Added support for the dot11req_reset command.  It should perform a +    complete reset of the MAC and driver.  Note that the MAC needs to be +    completely reconfigured from userland after the reset has occurred. +    Also added an internal call to the reset function when unloading a +    PCI or PLX driver.  We need this reset to make sure that the card is +    no longer generating interrupts.  Fixed this problem:  If the driver +    is unloaded, the card is still generating interrupts, and another active +    device+driver is using the same interrupt....system locks up.  DDT. +  - Rewrote the PCI support for PLX and ISL3874.  The rewrite was targeted +    at 2.4.7 with additional code to provide backward compatibility for +    2.2.x.  NOTE:  the PCI code still doesn't support the PCI power +    management stuff.  It will probably need more work when laptops w/ +    the ISL3874 based mini-PCI cards show up. +  - Whoops, forgot to put this in the original 0.1.9 release +0.1.9-pre1 +  - Added support for the ISL3874 based mini-pci card.  Also cleaned  +    up some of the PLX stuff (needs more work though). +0.1.8 +  - Fixed some script bugs relating to WEP and generated keys. +  - Fixed the autojoin auth type control +  - Added/Changed some PDR numbers (thanks to BroMax for supplying hardware) +  - Received a large patch from bjames of Rebel Computing.  Here's a  +    summary in his words: + +     > Minor bugs (not already found in 0.1.8-pre10): +     >  +     > 1. p80211metamsg.c: +     > - Wrong conversion functions for "p2req_mmi_read" (value).  enumint ==> +     > int +     >  +     > 2. prism2sta.c: +     > - "dot11_desired_bss_type" in "priv" structure left at 0 (i.e. an +     > invalid value) after initialization so mibget could not retrieve a value +     > unless the network was started.  Initialized to 1. +     >  +     > 3. prism2mgmt.c: +     > - "prism2mgmt_channel_info()" uses HFA384x_RID_SCANREQUEST_LEN instead +     > of ...CHANNELINFOREQUEST...  (However, they're the same size.) +     >  +     > 4. prism2mgmt.c: +     > - "prism2mgmt_auxport_read()" did not set the resultcode to "success" if +     > the read succeeded. +     >  +     > 5. p80211types.c: +     > - "p80211_fromtext_displaystr()" tests for length < maxlen.  This +     > probably should have been <= maxlen (i.e. excluding the \0), based on +     > the maxlen values in "p80211metamib.c" and based in what +     > "p80211_isvalid_displaystr()" checks.  Also, +     > "p80211_isvalid_displaystr()" assumes that "pstr->len" includes the \0 +     > when it does the minlen check.  It probably shouldn't do this. +     >  +     > 6. p80211metamsg.c: +     > - dot11_reassociate command has a "dot11req_reassociatefailuretimeout" +     > argument which should probably be "reassociatefailuretimeout". +     >  +     > 7. prism2sta.c: +     > - WLAN_PCI ==> WLAN_PLX in "init_module()". +     >  +     > Enhancements: +     >  +     > 1. All Prism2 RIDs are now accessible.  Unfortunately, rather a lot was +     > changed to do this: +     > - Rather than cut and paste many more cases into the monster +     > "prism2mib.c" switch statement, "prism2mib.c" was completely reworked to +     > be table-driven with a bunch of semi-generic processing functions.  That +     > made it a lot easier to add new DIDs.  Several RID lengths in hfa384x.h +     > had to be changed from 0 to their actual value since more of the lengths +     > get used, now.  (Changed: prism2mib.c, hfa384x.h) +     > - 2 new data types were added to "p80211types.c".  One to handle integer +     > arrays (i.e. multi-word RID records...so that a DID didn't need to be +     > added for each element) and bit arrays (just to make them easier to deal +     > with).  However, there wasn't enough room in the packed DID to add new +     > types, so the type was removed from the DID (and from P80211DID_MKID) +     > and a function written to determine the type based on the conversion +     > functions.  (Changed: p80211meta.h, p80211types.h, p80211meta.c, +     > p80211types.c, mkmetastruct.c, p80211metamib.c p80211metamsg.c, +     > wlanctl/help.c) +     > Integer arrays look like: p2PRIIdentity=21,0,0,3 +     > "meta->maxlen" specifies the number of integers. +     > Bit arrays look like: p2ChannelList=0,1,2,3,4,5,6,7,8,9,10 +     > for bits 0-10.  "meta->min" and "meta->max" give the range of bits +     > allowed. +     > - The "p2Table" DIDs were split into p2Static, p2Dynamic, p2Behavior, +     > etc., in order to correspond with the Prism Driver Programmer's Manual. +     > A few of the names were also changed in order to correspond to the +     > manual.  (Changed: p80211metamib.c, prism2mib.c)  The changed names (of +     > the supported DIDs) are: +     > p2SystemScale ==> p2CnfSystemScale +     > p2MaxDataLen ==> p2CnfMaxDataLength +     > p2EnhancePowerSaveMode ==> p2CnfPMEPS +     > p2MaxSleepDurection ==> p2CnfMaxSleepDuration +     > p2PMHoldoverDuration ==> p2CnfPMHoldoverDuration +     > p2OwnName ==> p2CnfOwnName +     > p2McastPMBuffer ==> p2CnfMulticastPMBuffering +     > p2TxControlDepth ==>p2CnfTxControl +     > p2RoamingMode ==> p2CnfRoamingMode +     > p2MMLife ==> p2CnfMMLife +     > p2AltRetryCount ==> p2CnfAltRetryCount +     > p2ReserveDuration ==> p2CnfAPPCFInfo (bit 1) +     > p2ExcludeLongPreamble ==> p2CnfExcludeLongPreamble +     > - Added new RIDS from the Prism Driver Programmer's Manual 1.70 +     > (2000-11-29).  Added p2CnfPriorityQUsage, p2CnfTimCtrl, +     > p2CnfThirty2Tally, p2CnfEnhSecurity.  Added "algorithm" to AuthRequest. +     >  +     > 2. A user utility program was written to do such things as query all +     > read-able MIBs, query all write-able MIBs, set all write-able MIBs, +     > etc.  A "p2req_enable" command was added (similar to the +     > "dot11req_start" command but without requiring all the 802.11 +     > arguments).  This allows the driver to be started in a straight forward +     > manner, simply by setting all write-able MIBs and then enabling it. +     > (Changed: p80211metamsg.c, prism2sta.c, prism2mgmt.c, prism2mgmt.h) +     >  +     > 3. Support added for Prism2 CommTallies and a DID added to query the +     > values.  The values will come back as an array of integers.  Support +     > also added for 32-bit tallies (i.e. p2CnfThirty2Tally).  (Changed: +     > prism2mib.c, prism2sta.c, prism2mgmt.h, p80211metamib.c, hfa384x.h) +     >  +     > 4. Access Point support: +     > - Added support for maintaining a list of authenticated/associated +     > stations and a DID added to query the list.  (Changed: prism2mib.c, +     > prism2sta.c, prism2mgmt.h, p80211metamib.c) +     > - Added support for host control of authentications (allowed and denied +     > lists) and a DID added to set and query the lists.  Support for Prism2 +     > AuthenticationRequest information frames.  Not tested yet.  (Changed: +     > prism2mib.c, prism2sta.c, prism2mgmt.h, p80211metamib.c) +     > - Added support for Prism2 PowerSaveUserCount information frames and a +     > DID added to query the value.  (Changed: prism2mib.c, prism2sta.c, +     > prism2mgmt.h, p80211metamib.c) +     > - Added a new data type to "p80211types.c" to handle arrays of MAC +     > address (used to set/query the above lists).  (Changed: p80211types.h, +     > p80211types.c, mkmetastruct.c, wlanctl/help.c) +     > Address arrays look like: +     > p2Authenticated=00:50:51:52:53:54,00:60:61:62:63:64,00:70:71:72:73:74 +     > "meta->maxlen" specifies the maximum number of addresses. +     > - Unforetunately, all these lists are limited in length by the length of +     > the mibattribute parameter in mibget/mibset.  This is not very nice but +     > it was the quickest/easiest way to implement it. +     >  +     > 5. Changed maximum mibattribute length from 256 to 384 to support +     > querying commtallies and MAC address arrays.  (Changed: p80211types.h) +     >  +     > 6. 128-bit WEP key support: +     > - Rather than creating different MIB's for 64-bit and 128-bit WEP keys, +     > the "octetstr" definition for dot11WEPDefaultKey0, etc., was changed to +     > allow for a range of lengths (e.g. from 5 to 13).  The +     > dot11WEP128DefaultKey0, etc., MIBs were removed.  (Changed: +     > p80211meta.c, p80211types.c, p80211metamib.c, p80211metamsg.c, +     > mkmetastruct.c, wlanctl/help.c) +     > - WLAN_WEP_KEYLEN changed to WLAN_WEP_MAXKEYLEN and set to 13. +     > (Changed: p80211hdr.h) +     > - Optional "length" argument added to "nwepgen.c" so that either 5 or 13 +     > byte keys can be handled.  (Changed: nwepgen.c) +     > - 128-bit-specific parts of "etc/pcmcia/wlan-ng" are no longer +     > necessary.  Genstr changes to handle generation of 13-byte keys using +     > nwepgen.  (Changed: etc/pcmcia/wlan-ng) +     > - WEPDefaultKey's were made write-only.  A new +     > "P80211ENUM_resultcode_cant_get_writeonly_mib" was added.  (Changed: +     > p80211types.h, p80211types.c, p80211metamib.c, prism2mib.c) +     >  +     > 7. Access code in DID: +     > - This was changed from a single bit flag (P80211DID_ACCESS_READONLY and +     > P80211DID_ACCESS_READWRITE) to a pair of flags (P80211DID_ACCESS_READ +     > and P80211DID_ACCESS_WRITE) since some MIBs are read/write, some are +     > read-only, and some are write-only (e.g. WEP keys).  This makes it +     > easier to determine which MIBs are read-able and write-able without +     > having to go all the way to the driver and then interpret a failure +     > error code.  (Changed: p80211types.h, p80211metamib.c) +     >  +     > 8. It was a bit of a hassle switching between the station driver and the +     > AP driver...which we seemed to be doing a lot.  The additional cost was +     > not particulary high to simply compile in both station functionality and +     > AP functionality.    A change was made so that "prism2sta_initmac()" set +     > an "ap" flag when it detected AP firmware.  "prism2mgmt.c" then uses the +     > flag to determine whether or not to allow station-only or AP-only +     > commands to be executed.  "prism2mib.c" also uses this to handle the +     > mode-specific MIBs.  This made it possible for the same module to +     > support either stations or APs, thereby simplifying the "make", the +     > install, and switching between stations and APs.  The only thing that +     > needs to change, is the value of "IS_AP" in "wlan-ng.opts". +     >  +     > 9. Miscellaneous small additions: +     > - Network state (stopped, started) added and a DID to query it. +     > - User-settable comment string added and a DID to set/query it. +     > - Some event logging (authentications, associations, etc.) can be +     > enabled/disabled at run time rather than only at compile time.  A DID +     > was added to set/query it. +     > - A "p2req_readcis" command (similar to "p2req_readpda") was added. +     >  +     > 10. Small changes: +     > - Added bounds checking to "p80211item_fromtext_boundedint".  This was +     > the only "fromtext" function that did not already do complete +     > validation.  It should no longer be necessary to call the "isvalid" +     > function if "fromtext" has just been called.  The call to "isvalid" was +     > removed from "wlanctl".  (Changed: p80211types.c, wlanctl.c) +     > - "p80211item_maxitemlen()" wasn't really adding much of value so it was +     > amalgamated into "p80211item_getoffset()".  The DID type is now only +     > checked once instead of three times.  (Changed: p80211meta.h, +     > p80211meta.c) +     > - "hfa384x_drvr_setconfig16()" and "hfa384x_drvr_setconfig32()" changed +     > their input parameters when converting to hf384x byte order.  Potential +     > source of bugs.  Changed to use a local variable.  (Changed: hfa384x.c) +     > - ScanRequest, JoinRequest, etc., moved from the "Information Record" +     > section to the "Configuration Record" section.  (Changed: hfa384x.h) +     > - Re-worked "p80211_fromtext_setmibattribute()" to make it a little +     > easier to follow the logic.  (Changed: p80211types.c) +     > - Type of "channellist" argument in "p2req_channel_info" command changed +     > from "octetstr" to "bitarray" to make it easier to deal with (can +     > specify a variable number of channels and don't need to use hex +     > values).  (Changed: p80211metamsg.c, prism2mgmt.c) +     > - "auxctl" parameter set to HFA384x_AUX_CTL_EXTDS in +     > "prism2mgmt_auxport_read()" and "prism2mgmt_auxport_write()" so that +     > they are still compatible with 0.1.7.  (Changed: prism2mgmt.c) +     > - Re-worked "prism2mgmt_set_grpaddr()" and added comments so that it's +     > more obvious what is going on.  Also, deleted the check which produced +     > an error if an attempt was made to delete an address from an empty +     > list.  This makes things more consistent and predictable (i.e. the same +     > as attempting to delete an address which is above the last group +     > address...the attempt is simply ignored).  Replaced the "memcpy()" call +     > with "memmove()" since "memcpy()" is not guaranteed to work with +     > overlapping ranges.  (Changed: prism2mib.c) +     > - Minimum length of "dot11OperationRateSet" changed from 126 to 1 to +     > match the 802.11 standard.  (Changed: p80211metamib.c) + +  - Fixed some ci/co related problems pointed out by wbinjie. +  - Added ygalayda's startup scripts for PCI in the directory  +    ./etc/wlan_pci.  They aren't installed, that will have to be done +    by hand.  I have not tested these scripts myself. +  - Added sbaer's 'NULL check' fix in p80211_indicate_shutdown(). +  - Added ctedrow's 'alloc not checked' fix in prism2sta_int_rx(). +  - Added pkundrat's auth mib changes. +  - fgrau's conf.modules/modules.conf fix. +  - Added ygalayda's submission for the Global Sun GL24110P PLX based +    adapter.  Also included a Makefile fix. +  - Fixed some script bugs relating to 128-bit WEP based on smmclusky's +    observations.  These changes have not yet been tested by me. +  - Added rlazarev's additions to the pcmcia startup scripts +  - Added pkundrat's wlandev-name fix for 2.3.99+ kernels +  - Fixed some type/(to|from)text mismatches per note from pkundrat +  - Fixed some missing MKITEMNAMEs per note from pkundrat +  - Added D-LINK and SMC to the linux-wlan-ng.conf file +  - Added Zoom, Linksys and Addtron to the linux-wlan-ng.conf file +  - Added pkundrat's meta-item minlen stuff. +  - Added conditionals for PLX vs. PCMCIA build +  - Changed _pci driver filename to _plx +  - Fixed undconditional MOD_INC in prismt2sta_open() +  - Removed identification of old PCF firmware. +  - Fixed version.h generation bug from pre5 +  - Added dhsu's (Eumitcom) code for supporting the PLX based PCI cards. +  - pkundrat's (whoops, sorry peter) PDA display program in ./scripts.   +    I haven't used it because my perl setup is messed up and I'm perl  +    challenged. +  - bcarr's patches for alpha boxes. +  - wwoods's patches for 2.2.18 and adding bytes received to the  +    statistics. +  - proskin's patch adding 'network stop' +  - Most of proskin's patch containing Configure fixes, adding file +    existence checks, and making sure directories are present. +  - tgriffin's patch for mrproper/memleak/nullcheck/freeonsuccess.   +    conf.modules change is already there. +  - Added most of jhicks ARM related patches.  I had to leave out the  +    HOST vs. TARGET compile variables in the Makefiles though.  Some folks +    are using that stuff. +  - Added script changes and new mib items to support 128-bit WEP per hong's +    suggestion. +  - Added conf.modules alias instead of symlink +  - Added a compat macro for kfree_s to wlan_compat.h per the suggestion +    from rbraun. +  - Added pkundrat's 'chinfo' patch +  - Added pkundrat's 'small fixes' patch +  - Added some contributed patches supporting a fix to our 'reassoc +    under load' problem +  - Added wlannoenable pcmcia scheme support to prevent card initialization. +  - Removed a PDR patch requirement. +0.1.7 +  - Fixed the "converting eth in unknown mode" bug +  - Added APM/ACPI suspend/resume handling +  - Added PPC support +  - Added Prism test command support +  - Integrated patch to fix some structure alignment problems for ARM +  - Added multi-transmit buffer support +  - And much, much more..... +0.1.6 +  - Fixed usage of pcmcia scheme file so we're not stomping on the user's +    scheme setting. +  - Updated the wlan-ng script for the new config variable names and added +    configurable download utility and a set of user MIB settings. +  - Added support for the Samsung and Z-Com cards. +  - Changed the name of the module (from pcmcia's point of view). +  - Fixed the "echo \c" problem in Configure +  - Added new and rearranged existing wlan-ng.opts configuration variables. +  - Created a scheme for "addon software" in the ./src/Makefile +  - Made some changes to the target detection conditionals in wlan_compat.h +    to better support LinuxPPC (port isn't finished yet). +  - Finally fixed the byteorder stuff to use (duh) byteorder.h +  - Fixed a bad free of the TX skb when we signal an error to higher layers. +  - Moved some code around and added rules to the prism2/driver (new directory +    too) Makefile.  This is so we build two separate drivers; one for STA, +    one for AP.  Both drivers are built from the same source files with +    the code conditional on the WLAN_AP and WLAN_STA defines. +  - Fixed the plugging in prism2dl so it reports ALL missing PDRs. +  - Added an anonymously contributed patch that adds support for the -m +    and -s cmdline options for prism2dl.  Thanks! You know who you are.@-) +  - Added some fixes to the dependency file generation. +  - Fixed a flash programming timeout miscalculation...and fixed it again  +    when I introduced an integer promotion problem. +  - Added the STA vs. AP conditionals to prism2mgmt.  Note that this causes +    a few compile time warnings.  They're harmless and will go away in the +    next release. +  - Created the file prism2mib.c to hold all the MIB get/set stuff which is +    getting a little out of hand. +  - Added pcmcia config support for the Z-Com (supposedly) dual voltage card. +    Unfortunately the engineering sample I have doesn't seem to work at 5v, +    or it might be the code.....not sure yet.  We're still a little +    bleeding edge with that card. +  - Cleaned up the version, compatibility range, and serial number  +    log messages. +  - Added a loop limit to the interrupt handler. (duh) +  - Changed the names of the driver modules for STA and AP.  make install +    then creates a softlink depending on the make config selection.  One +    note, both drivers report the same dev_info string to pcmcia-cs.  Trying +    to load both of them simultaneously would be bad (I have no idea what  +    would happen, I just thought of it). +  - Changed a bunch of types and constants for hfa384x. +  - Added functions for a couple of new commands in the hfa384x. +  - Began adding support for the Prism2 unique MIB items. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/COPYING b/abs/core-testing/wlan-ng26-utils/tmp/trunk/COPYING new file mode 100644 index 0000000..66801bd --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/COPYING @@ -0,0 +1,57 @@ +* COPYING +* +* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- + +Unless otherwise indicated, this code is distributed under version 1.1 +of the Mozilla Public License ("MPL"), included in the LICENSE file. + +Where this software is combined with software released under the terms +of the GNU Public License ("GPL") and the terms of the GPL would +require the combined work to also be released under the terms of the +GPL, the terms and conditions of the MPL will apply in addition to +those of the GPL with the exception of any terms or conditions of the +MPL that conflict with, or are expressly prohibited by, the GPL. + +        -- AbsoluteValue Systems, Inc. + +Note: This file is derived from a copyrighted work of David Hinds. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/Configure b/abs/core-testing/wlan-ng26-utils/tmp/trunk/Configure new file mode 100755 index 0000000..7b62dd2 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/Configure @@ -0,0 +1,486 @@ +#!/bin/bash +# +# Configure +# +# linux-wlan Open Sourc Project +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# ------------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source Project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# ------------------------------------------------------------------------- +# TODO: Since we're dependent on configured pcmcia source, we should change  +#       this such that it will ask for the pcmcia source dir and then read +#       all our stuff from pcmcia/config.mk.  Would simplify alot of things. +# ------------------------------------------------------------------------- +# +# This script adapted from the pcmcia-cs/Configure file, license statement below: +# +# pcmcia-cs/Configure 1.110 1999/06/24 17:37:36 +# +# The contents of this file are subject to the Mozilla Public License +# Version 1.0 (the "License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and +# limitations under the License. +# +# The initial developer of the Configure code is David A. Hinds +# <dhinds@hyper.stanford.edu>.  Portions created by David A. Hinds +# are Copyright (C) 1998 David A. Hinds.  All Rights Reserved. +#------------------------------------------------------------------------- + +ECHO="/bin/echo -e " +fail () +{ +	$ECHO "" +	$ECHO "Configuration failed" +	$ECHO "" +	exit 1 +} + +usage () { +    $ECHO "usage: Configure [-h|help|-d [filename]|-f <filename>]" +    $ECHO "" +    $ECHO "  -h|help       - display usage info" +    $ECHO "  -d [filename] - automated configuration with option to specify input file" +    $ECHO "  -f <filename> - read configuration data from file and prompt user" +    exit 1 +} + +if [ ! -r config.in ]; then +    $ECHO "config.in does not exist!" +    fail +fi + +. ./config.in + +if [ -r config.out ]; then +    . ./config.out 2>/dev/null +fi + +PROMPT=y +if [ $# -gt 0 ] ; then +	if [ "$1" = "-h" -o "$1" = "help" ] ; then  +		usage +	fi +	if [ "$1" = "-d" -o "$1" = "-f" ] ; then  +		if [ $# -gt 1 ] ; then +			if [ -r $2 ]; then +				. $2 +			else +				$ECHO "$2 does not exist" +				fail +			fi +		else +			if [ "$1" = "-f" ] ; then  +				usage +			fi +		fi +		if [ "$1" = "-d" ] ; then  +			PROMPT=n +		fi +	fi +fi + +#======================================================================= + +CONFIG=config.new +CONFIG_MK=config.mk +rm -f $CONFIG $CONFIG_MK $MODVER + +cat << 'EOF' > $CONFIG +# +# Automatically generated by 'make config' -- don't edit! +# +EOF + +write_bool() { +    value=`eval $ECHO '$'$1` +    if [ "$value" = "y" ] ; then +	$ECHO "$1=y" >> $CONFIG +	$ECHO "$1=y" >> $CONFIG_MK +    else +	$ECHO "$1=n" >> $CONFIG +	$ECHO "# $1 is not defined" >> $CONFIG_MK +    fi +} + +write_str () { +    value=`eval $ECHO '$'$1` +    $ECHO "$1"=\"$value\" >> $CONFIG +    $ECHO "$1=$value" >> $CONFIG_MK +} + + +dump_str () { +    $ECHO "$1" >> $CONFIG +    $ECHO "$1" >> $CONFIG_MK +} + +prompt () { +    eval $3=\"$2\" +    if [ "$PROMPT" = "y" ] ; then +	$ECHO "$1 [$2]: \c" +	read tmp +	if [ -n "$tmp" ] ; then eval $3=\"$tmp\" ; fi +    else +	$ECHO "$1 [$2]" +    fi +} + +ask_bool () { +    default=`eval $ECHO '$'$2` +    if [ ! "$default" ] ; then default=n ; fi +    answer="" +    while [ "$answer" != "n" -a "$answer" != "y" ] ; do +	prompt "$1 (y/n)" "$default" answer +    done +    eval "$2=$answer" +    write_bool $2 +} + +ask_str () { +    default=`eval $ECHO '$'$2` +    prompt "$1" "`$ECHO $default`" answer +    eval $2=\"$answer\" +    write_str $2 +} + +mkversionh () { +versionh=src/include/wlan/version.h  +cp src/version.h.in $versionh + +DATE=`date` + +printf '#define WLAN_RELEASE\t"%d.%d.%d%s"\n' \ +        ${WLAN_VERSION} \ +        ${WLAN_PATCHLEVEL} \ +        ${WLAN_SUBLEVEL} \ +        ${WLAN_EXTRAVERSION} >> $versionh +printf '#define WLAN_RELEASE_CODE 0x%02x%02x%02x\n' \ +        ${WLAN_VERSION} \ +        ${WLAN_PATCHLEVEL} \ +        ${WLAN_SUBLEVEL} >> $versionh +echo   "#define WLAN_BUILD_DATE \"$DATE\" " >> $versionh + +printf '\n' >> $versionh +printf '#endif\n' >> $versionh + +} + +#======================================================================= + +# If the src/include/wlan/version.h file needs a touchup, fix or create it +if [ -r src/include/wlan/version.h ]; then +	WLAN_RELEASE="${WLAN_VERSION}.${WLAN_PATCHLEVEL}.${WLAN_SUBLEVEL}${WLAN_EXTRAVERSION}" +	OLD_RELEASE=`sed --quiet -e '/#define.*WLAN_RELEASE[^_].*\"\(.*\)\"/s//\1/p' < src/include/wlan/version.h` +	if [ "${WLAN_RELEASE}" != "${OLD_RELEASE}" ]; then +		# Overwrite the file +		mkversionh +	fi +else +	# File doesn't exist, create it +	mkversionh +fi + +$ECHO "" +$ECHO "-------------- Linux WLAN Configuration Script -------------" +$ECHO "" +$ECHO "The default responses are correct for most users." +$ECHO "" + +#======================================================================= +# Should we build for PCMCIA Card Services? + +ask_bool "Build Prism2.x PCMCIA Card Services (_cs) driver?" PRISM2_PCMCIA + +#======================================================================= +# Should we build for PLX9052 based PCI adapters? + +ask_bool "Build Prism2 PLX9052 based PCI (_plx) adapter driver?" PRISM2_PLX +#======================================================================= +# Should we build for Prism2 native PCI? + +ask_bool "Build Prism2.5 native PCI (_pci) driver?" PRISM2_PCI + +#======================================================================= +# Should we build for Prism2.5 USB? + +ask_bool "Build Prism2.5 USB (_usb) driver?" PRISM2_USB + +$ECHO "" + +#======================================================================= +# Collect the kernel source tree and test for sanity + +CUR_RELEASE=`uname -r` + +if [ "$LINUX_SRC" = "" ] ; then +    LINUX_SRC=/lib/modules/$CUR_RELEASE/build +fi + +ask_str "Linux source directory" LINUX_SRC + +if [ ! -f $LINUX_SRC/include/linux/version.h ] ; then +	$ECHO "Linux source tree $LINUX_SRC is incomplete or missing!" +	if [ -d $LINUX_SRC/include/linux ] ; then +	$ECHO "    The kernel header files are present, but not " \ +		"the full source code." +	fi +	$ECHO "    See the HOWTO for a list of FTP sites for current" \ +	 "kernel sources." +	fail +fi + +KERNEL_SOURCE=$LINUX_SRC make -Cscripts 2>&1 > /dev/null +. scripts/make.opts + +# What kernel are we compiling for? + +version () { +	expr $1 \* 65536 + $2 \* 256 + $3 +} + +$ECHO "" + +SRC_RELEASE="$KERNEL_RELEASE" + +VERSION_CODE=`grep LINUX_VERSION_CODE $LINUX_SRC/include/linux/version.h | \ +    sed -e 's/[^0-9]//g'` + +$ECHO "The kernel source tree is version $SRC_RELEASE." +if [ $VERSION_CODE -lt `version 2 4 0` ] ; then +	$ECHO "This package requires at least a 2.4.x series kernel." +	fail +fi + +if [ $VERSION_CODE -gt `version 2 5 0` ] ; then +        KERN_25=y +        write_bool KERN_25 +fi +if [ $VERSION_CODE -ge `version 2 6 5` ] ; then +    KERN_2_6_5=y +fi +write_bool KERN_2_6_5 +if [ $VERSION_CODE -ge `version 2 6 17` ] ; then +    KERN_2_6_17=y +fi +write_bool KERN_2_6_17 + +if [ $VERSION_CODE -gt `version 2 6 26` ] ; then +    $ECHO "******* WARNING WARNING WARNING *******" +    $ECHO "Kernels newer than 2.6.26.x are not supported." +    $ECHO "******* WARNING WARNING WARNING *******" +fi + +if [ "$SRC_RELEASE" != "$CUR_RELEASE" ] ; then +	$ECHO "WARNING: the current running kernel is actually version $CUR_RELEASE." +fi + +if [ ! -f $LINUX_SRC/.config ] ; then +    $ECHO "WARNING: .config not present in kernel source tree.  This will" +    $ECHO "         screw up modversions detection and build optimizations." +    $ECHO "         Is this a RedHat kernel? Workarounds enabled."  +    if [ -f $LINUX_SRC/include/linux/modversions.h ] ; then +	KERNEL_MODFLAGS="-DMODULE -DMODVERSIONS -include $LINUX_SRC/include/linux/modversions.h" +    fi +    $ECHO "         For an optimized build, copy over the relevent file from" +    $ECHO "         $LINUX_SRC/configs/ to $LINUX_SRC/.config" +fi + +# Check for consistent kernel build dates +CUR_D=`uname -v | sed -e 's/^#[0-9]* //;s/SMP //;s/PREEMPT //;'` +CUR_D=`$ECHO $CUR_D | sed -e 's/\(:[0-9][0-9]\) .* \([12][90]\)/\1 \2/'` +$ECHO "The current kernel build date is $CUR_D." +UTS_VERSION="unknown"; +if [ -f $LINUX_SRC/include/linux/compile.h ] ; then +	UTS_VERSION=`grep UTS_VERSION $LINUX_SRC/include/linux/compile.h | +	sed -e 's/.*"\(.*\)"/\1/'` +	SRC_D=`$ECHO $UTS_VERSION | sed -e 's/^#[0-9]* //;s/SMP //;s/PREEMPT //;'` +	SRC_D=`$ECHO $SRC_D | sed -e 's/\(:[0-9][0-9]\) .* \([12][90]\)/\1 \2/'` +	if [ $SRC_RELEASE = $CUR_RELEASE -a "$SRC_D" != "$CUR_D" ] ; then +	$ECHO "WARNING: the source tree has a build date of $SRC_D." +	if [ `date -d "$SRC_D" +%s` -gt `date -d "$CUR_D" +%s` ] ; then +		$ECHO "   Did you forget to install your new kernel?!?" +	fi +	fi +fi +$ECHO "" + +	# Test for netlink availability in the kernel +	if grep -sq "#define.*CONFIG_NETLINK.*1" ${LINUX_SRC}/include/linux/autoconf.h; then +		CONFIG_NETLINK=y +	else +		CONFIG_NETLINK=n +	fi +	write_bool CONFIG_NETLINK + + +	# Test for pf_packet availability in the kernel +	if grep -sq "#define.*CONFIG_PACKET.*1" ${LINUX_SRC}/include/linux/autoconf.h; then +		CONFIG_PACKET=y +	else +		CONFIG_PACKET=n +	fi +	write_bool CONFIG_PACKET + + +	# Test for pf_packet availability in the kernel +	if grep -sq "#define.*CONFIG_HOTPLUG.*1" ${LINUX_SRC}/include/linux/autoconf.h; then +		CONFIG_HOTPLUG=y +	else +		CONFIG_HOTPLUG=n +	fi +	write_bool CONFIG_HOTPLUG + +#======================================================================= +# Alternate target install root dir - the value of this variable +# will prefix other variables, such as modules and pcmcia directories +ask_str "Alternate target install root directory on host" TARGET_ROOT_ON_HOST + +if [ $PRISM2_PCMCIA = "y" ] ; then +	# PCMCIA script dir +	ask_str "PCMCIA script directory" PCMCIA_DIR +	TARGET_PCMCIA_DIR=$TARGET_ROOT_ON_HOST$PCMCIA_DIR +	write_str TARGET_PCMCIA_DIR +fi + +MODDIR=/lib/modules/$SRC_RELEASE +ask_str "  Module install directory" MODDIR +TARGET_MODDIR=$TARGET_ROOT_ON_HOST$MODDIR/linux-wlan-ng +write_str TARGET_MODDIR +$ECHO "" + + +# Just write some out (we're not prompting right now) +write_str INST_EXEDIR +TARGET_INST_EXEDIR=$TARGET_ROOT_ON_HOST$INST_EXEDIR +write_str TARGET_INST_EXEDIR + +#======================================================================= + +# How should the startup scripts be configured? + +SYSV_INIT=n +if [ "$PREFIX" = "" ] ; then +	if [ -d /etc/rc.d/init.d -o -d /etc/init.d -o -d /sbin/init.d ] ; then +	$ECHO "It looks like you have a System V init file setup." +	SYSV_INIT=y +	if [ -d /etc/rc.d/init.d ] ; then +		$ECHO "RC_DIR=/etc/rc.d" >> $CONFIG +		$ECHO "RC_DIR=/etc/rc.d" >> $CONFIG_MK +	elif [ -d /sbin/init.d ] ; then +		$ECHO "RC_DIR=/sbin" >> $CONFIG +		$ECHO "RC_DIR=/sbin" >> $CONFIG_MK +	else +		$ECHO "RC_DIR=/etc" >> $CONFIG +		$ECHO "RC_DIR=/etc" >> $CONFIG_MK +	fi +	else +	$ECHO "It looks like you have a BSD-ish init file setup." +	if ! grep rc.wlan /etc/rc.d/rc.S >/dev/null ; then +		$ECHO "    You'll need to edit /etc/rc.d/rc.S to invoke" \ +		 "/etc/rc.d/rc.wlan (for ISA/PCMCIA cards)" +		$ECHO "    so that wlan cards will be started at boot time." +	fi +	SYSV_INIT=n +	fi +	write_bool SYSV_INIT +else +	ask_bool "System V init script layout" SYSV_INIT +	if [ "$SYSV_INIT" = "y" ] ; then +	ask_str "Top-level directory for RC scripts" RC_DIR +	fi +fi + +if [ ! -x $TARGET_ROOT_ON_HOST/sbin/depmod ] ; then INSTALL_DEPMOD=n ; fi +write_bool INSTALL_DEPMOD + +$ECHO "" + +#======================================================================= +# Make sure our target architecture is correct + +$ECHO "" + +ask_str "Prefix for build host compiler? (rarely needed)" HOST_COMPILE +dump_str "HOST_CFLAGS=$HOST_CFLAGS" + +$ECHO "" + +dump_str 'HOST_AS=$(HOST_COMPILE)as' +dump_str 'HOST_LD=$(HOST_COMPILE)ld' +dump_str 'HOST_CC=$(HOST_COMPILE)gcc' +dump_str 'HOST_CPP=$(HOST_CC) -E' +dump_str 'HOST_AR=$(HOST_COMPILE)ar' +dump_str 'HOST_NM=$(HOST_COMPILE)nm' +dump_str 'HOST_STRIP=$(HOST_COMPILE)strip' +dump_str 'HOST_OBJCOPY=$(HOST_COMPILE)objcopy' +dump_str 'HOST_OBJDUMP=$(HOST_COMPILE)objdump' +dump_str 'HOST_RANLIB=$(HOST_COMPILE)ranlib' +dump_str 'HOST_MAKE=make' + +CROSS_COMPILE_ENABLED=y +if [ "_$CROSS_COMPILE" = "_" ] ; then +CROSS_COMPILE_ENABLED=n +fi + +write_str CROSS_COMPILE +write_bool CROSS_COMPILE_ENABLED +#dump_str 'CFLAGS=-O2 -Wall -Wstrict-prototypes -pipe' + +if [ "_$CROSS_COMPILE" = "_" ] ; then +dump_str 'AS=$(HOST_COMPILE)as' +dump_str 'LD=$(HOST_COMPILE)ld' +dump_str 'CC=$(HOST_COMPILE)gcc' +dump_str 'CPP=$(HOST_CC) -E' +dump_str 'AR=$(HOST_COMPILE)ar' +dump_str 'NM=$(HOST_COMPILE)nm' +dump_str 'STRIP=$(HOST_COMPILE)strip' +dump_str 'OBJCOPY=$(HOST_COMPILE)objcopy' +dump_str 'OBJDUMP=$(HOST_COMPILE)objdump' +dump_str 'RANLIB=$(HOST_COMPILE)ranlib' +dump_str 'MAKE=make' +else +dump_str "AS=$CROSS_COMPILE"as +dump_str "LD=$CROSS_COMPILE"ld +dump_str "CC=$CROSS_COMPILE"gcc +CC="$CROSS_COMPILE"gcc +dump_str "CPP=$CC -E" +dump_str "AR=$CROSS_COMPILE"ar +dump_str "NM=$CROSS_COMPILE"nm +dump_str "STRIP=$CROSS_COMPILE"strip +dump_str "OBJCOPY=$CROSS_COMPILE"objcopy +dump_str "OBJDUMP=$CROSS_COMPILE"objdump +dump_str "RANLIB=$CROSS_COMPILE"ranlib +dump_str "MAKE=make" +fi + +#======================================================================= +# Should we build for debugging? + +ask_bool "Build for debugging (see doc/config.debug)" WLAN_DEBUG + +$ECHO "" + +FIRMWARE_DIR="/etc/wlan/" +write_str FIRMWARE_DIR + +WLAN_SRC=`pwd`/src/ +write_str WLAN_SRC + +mv $CONFIG config.out + +$ECHO "" +$ECHO "Configuration successful.  Now type 'make' and pray." +$ECHO "" diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/FAQ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/FAQ new file mode 100644 index 0000000..83358fd --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/FAQ @@ -0,0 +1,468 @@ +********************** Linux-wlan-ng FAQ ************************** +For additions, corrections, and clarifications, send mail to +solomon@linux-wlan.com with FAQ in the subject. +******************************************************************* + +Q: When will linux-wlan-ng be merged into the mainline kernel? + +	Short answer:  Never. + +	First, the linux-netdev people will soundly reject this driver.   +	I don't begrudge them for this; indeed in their position I'd do  +	exactly the same.  It's a sound engineering decision. + +	linux-wlan-ng is obselete, and effort spent fixing it is better  +	spent elsewhere.  You can't even buy the hardware any longer. + +	The original design for linux-wlan-ng was to separate the 802.11  +	stack from the actual hardware driver.  This added a lot of  +	complexity, but would greatly ease the pain of supporitng  +	multiple hardware types.  Unfortunately, the implementation was  +	turned out to be somewhat flawed, and hardware manufaturers went  +	away from the thick-mac model, leaving linux-wlan-ng overly  +	complex for what it did.   + +	(Ironically, the linux kernel is adopting a similar  +	 separation model, but it is a long way off from being ready) + +	So why not rewrite linux-wlan-ng to be more suitable, the  +	enterprising reader may ask? + +	The kernel already has two drivers for prism2 (cs/pci/plx)  +	hardware -- hostap and orinoco. linux-wlan-ng basically  +	has three features not present in kernel drivers: +	 +		1) USB support +		2) nearly complete implemettion of the 802.11 MIB/MLME +		3) Firmware-based AP support +	 +	(3) requires an expensive license that isn't even available any  +	longer, as the hostap mode works far better -- and is already  +	supported by in-kernel drivers. + +	(2) would need to be removed or completely rewritten in order to  +	be merged, as it does not fit within existing kernel APIs, and  +	it would be effectively merging new kernel APIs. + +	(1) Is the only truly unique thing that linux-wlan-ng does that  +	is generally needed any more. + +	To merge it into the kernel, we'd need to strip out (2), which  +	would necessitate a complete rewrite -- to the point where  +	writing a new driver from scratch is easier.   + +	Basically, it would take far less effort to add USB  +	support to the in-kernel drivers than it would to make  +	linux-wlan-ng acceptable to be merged.  + +	In other words, the short answer is:  Never. + +Q: It doesn't work/compile/sing/dance! + +	First, make sure you're using the latest linux-wlan-ng release +	from http://www.linux-wlan-ng.org.  New releases are infrequent, +	but tthey happen for a reason. + +	If you are using the latest release, you may want to obtain the  +	latest development sources via subversion: + +		svn co svn://svn.shaftnet.org/linux-wlan-ng/trunk + +	Questions and problems with the developement code should be sent  +	to the development mailing list, at: + +		linux-wlan-devel@lists.linux-wlan.com + +Q: What devices does the linux-wlan-ng driver support? + +	Currently, the linux-wlan-ng driver supports the Intersil +	Prism2/2.5/3 chipsets.  These chipsets are used in a wide +	variety of PCMCIA, PCI, and USB products.  If it has a Prism +	chip in it, linux-wlan-ng should support it. + +Q: Will linux-wlan-ng support some feature or funkiness in +   the <pick one> Linux distribution? +  +	Our development target always consists of stock kernels from +	kernel.org and stock pcmcia_cs.  If a given distribution +	chooses to do something funky, we rely on users of that +	distribution to contribute patches to deal with their +	funkiness. + +	The quickest way to get some action on this kind of item is to +	communicate with any users of the same distribution that you +	can find on the linux-wlan-[devel|user] lists about working up +	a patch.  If it's reasonably sane and doesn't break things for +	our development environment or for other distributions, we'll +	be more than happy to roll that patch into the next release.   + +Q: What does "resultcode=implementation_failure" mean? + +	Complicated Answer:  +	Each command that can be issued with wlanctl-ng returns a status +	called "resultcode".  Resultcode is something that we picked up +	from the 802.11 MLME definition.  In the standard, resultcode +	is an enumeration with a fixed set of values.  To be able to +	report failures that a driver detects that are outside the +	context of the 802.11 standard set of resultcode values, we  +	invented the "implementation_failure" value. + +	Simple Answer: +	Go look in your kernel log for more detailed error information. + +Q: I'm trying to use the HostAP/orinoco/aironet/wvlan driver and it +   won't work! + +	That has nothing to do with the linux-wlan-ng driver.  Go ask +	those responsible for those drivers. + +Q: Can I get Debian packages of linux-wlan-ng? +  +A: Packages of linux-wlan-ng are now available in the Debian stable +   tree. + +Q: Where do I find some RPMS for linux-wlan-ng? The ones on +    the ftp are dreadfully out of date! + +	http://prism2.unixguru.raleigh.nc.us/ + +	(Maintained by Tim Miller) + +Q: I installed the RPMs/compiled the driver and installed it and it +   won't work when I try to run 'ifup wlan0' or whatnot. + +	First, ensure you're running the most up-to-date version of +	the driver.  Many problems have been fixed in newer releases. + +	802.11 wireless networks are much more complex than wired +	ethernet networks.  They require much more configuration than +        an ip address.   If you are using pcmcia, edit the file  +        /etc/pcmcia/wlan-ng.opts to set the network parameters.  For +        PCI, PLX, or USB adapters, you need to edit /etc/wlan.conf. +	 +	You also need to make sure you have the correct settings in +	/etc/modules.conf (alias wlan0 prism2_usb).  + +	Might we suggest you read the README file? + +Q: When I try to load the driver, I get a whole bunch of errors about +   unresolved symbols. + +	The running kernel does not match the kernel the driver was +	compiled for.  If you downloaded a RPM, make sure you +        downloaded the correct version for your kernel.  This should not +        happen if you compiled the driver from source -- if it does, the +        kernel configuration you compiled against does not match the +        running kernel.  Probably a screwed-up distro kernel. + +Q: I have a DWL-520 and it won't work! + +	The DWL-520 claims to require a PCI 2.2 compliant motherboard. +        Only fairly new machines support this.  Yes, the box lies.  :) +        Check the documentation for your system and/or motherboard to see if  +	it is PCI 2.2 compliant.   + +	NOTE:  We have some reports of the DWL-520 working on PCI 2.1 +	motherboards; your mileage may vary.  See the following URL: + +		http://www.personaltelco.net/index.cgi/DlinkDwl520 + +        NOTE:  The Linksys WMP11 v2.7 is NOT prism-based, and +	thus not supported by this driver.  The Actiontec PCI board is +	still known to be prism based; you may want to try that instead. + +Q: All I see is "Tx attempt prior to association, frame dropped" + +	You are not associated with an access point.  Double-check the +        settings in /etc/wlan.conf (USB, PCI, PLX) or /etc/pcmcia/wlan-ng.opts +        (for PCMCIA users).    If all of these settings are correct (you +        did check with your admin, right?) make sure the access point +        doesn't have a MAC filter installed or has different WEP settings. + +	If all of this is verified correct, and are using a PCMCIA +	card, try setting the "irq_mode=0" option.  See the +	documentaiton in the pcmcia-cs sources. + +Q: I installed the modules, performed a 'wlanctl-ng wlan0 lnxreq_autojoin' +   command, and it still won't work! + +	You did read the README, didn't you?  You need to perform a  +	"wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable" in order to +        torn on the radio.  The pcmcia scripts and the /etc/init.d/wlan +        script do this for you. + +Q: I have a XXX USB 802.11b device, will it work with this driver? + +	Most 802.11b USB devices use the ATMEL AT76C503A chipset, which +        is not supported by the linux-wlan-ng project.  However, there +	are some prism2.5-based USB adapters, most notably the Linksys +	WUSB v2.5.  The other versions (1.0, 2.6, 3.0) are based on +        ATMEL chipsets.  Another supported USB device is the Actiontec +	802UI3. + +Q: My prism2.5-based USB adapter won't work! + +	An excellent guide can be found at: + +	http://www.fuw.edu.pl/~pliszka/hints/prism2.html +	 +Q: My prism2.5-based USB adapter won't come up if it's plugged in at boot!  + +	Thanks to buggy firmware, it is often necessary to perform a +        device reset on initialization.  You can perform this by adding +        "options prism2_usb prism2_doreset=1" in your /etc/modules.conf + +	Intersil has released Primary firmware 1.1.2, which seems to +	have resolved this problem, at least on our test machines. + +Q: My PC crashes when the USB device is plugged in! + +	This is a result of the port reset necessitated by buggy firmware. + +	You are probably using the 'usb-uhci' driver with an intel +        chipset.  Unfortunately, the crashes happen deep within the USB +        core, so there's nothing the linux-wlan-ng driver can do. + +	In the mean time, try using the 'uhci' host controller driver +        instead ("alias usb-controller uhci" in /etc/modules.conf), or +        plug the USB device into a hub. + +	Linux kernel 2.4.19 is known to improve the situation somewhat, +	but the right way to fix it is to turn off the port reset +	(options prism2_usb prism2_doreset=0).  The current firmware +	from Intersil alleviates the need to perform the reset. + +	UPDATE:  if you're using linux-wlan-ng 0.2.1-pre6 or newer and  +        kernel < 2.4.22-pre, the 'uhci' driver will NOT work without a  +        kernel patch! See: + +	http://lists.linux-wlan.com/pipermail/linux-wlan-devel/2003-May/002369.html + +Q: How come I can't transmit when in monitor mode? + +	You can't.  It's a fundamental "feature" of the hardware. + +Q: How come the /proc/net/wireless info isn't updated when in monitor mode? + +	The definition of "signal quality" refers to the quality of the +	link to the associated access point.  When you're in monitor +	mode, you're not associated, so this information is by defintion  +	irrelevant. + +	And regardless, the hardware doesn't update the registers we poll to +	obtain this information while in monitor mode. + +Q: What do the various monitor mode options do? + +	enable=[true/false]           Turn it on and off.  required. +	channel=[1-14]                Sniff channel.  required. +	prismheader=[true/false]      Optionally preppend a special +                                      radio header on the packet. +				      Defaults to off. +	keepwepflags=[true/false]     If you had WEP configured correctly +				      the card will perform WEP decoding. +				      Defaults to off. +	stripfcs=[true/false]         When true, the 802.11 FCS is not +				      stripped from incoming packets. +				      Defaults off. +	truncate=[number]             Truncates the captured frame.   + +Q: How come iwconfig/iwspy/[random other wireless tool] doesn't work? +	 +	linux-wlan-ng only supports a subset of the wireless +	extensions; generally read-only things.  However, you won't +	need any of those tools as wlan-ng comes with its own set of +	tools that closely mirror the 802.11 spec.  Have a look +	through the documentation and supplied scripts. + +	That said, if more complete (ie read/write) wireless extension +	support is really important to you, you're more than welcome to +	implement it and submit a patch.   + +	As of 0.1.16-pre1, the wireless extension plumbing has been +	re-written, and further support is much easier now.  And many +	more bits are hooked up now than before. + +Q: How do I know exactly what prism variant is on my card? + +	When you load the driver, you see a line which reads like: + +		ident: nic h/w id=0x8008 1.0.0 +                                          +	1.0.0 is the hardware revision.  Below is a (partial) list of IDs. + +		0x8003, 0x8008 :  Prism2 PCMCIA + +		0x800b, 0x800c :  Prism2.5 PCMCIA +		0x8012, 0x8013 :  Prism2.5 PCI +		0x801a, 0x801b :  Prism3 PCMCIA +		0x8021, 0x8022 :  Prism3 PCI +		 +		0x800f, 0x8010 :  Prism2.5 USB  (3863) +		0x801e, 0x801f :  Prism2.5 USB  (3861B) +		0x8025, 0x8026 :  Prism3 USB + +Q: How do I know what firmware my card has? + +	After the driver is loaded and brought into ifstate=enable, you +	will see the following lines in the kernel log: (eg dmesg |grep ident) + +	ident: pri f/w: id=0x15 0.3.0 +	ident: sta f/w: id=0x1f 1.7.1 + +	In this case, the card has primary firmware 0.3.0 and secondary +	firmware 1.7.1.   +	 +	Or, if you are using 0.2.1-pre17 or newer: +	'cat /proc/net/p80211/wlan0/nsd' with the card running. + +Q: How can I update my firmware under Linux? + +	Use the 'prism2dl' utility.  While it does its utmost to ensure  +	you don't fry your card, use it at your own risk.  Even the  +	Intersil-supplied tools fail occasionally. + +Q: Where can I download updated firmware for my Prism2/2.5/3-based card? + +	As of linux-wlan-ng 0.2.1-pre21, the ram download firmware for  +	all supported card types is bundled with the driver.  These  +	images cannot be flashed. + +	A general FAQ on firmware updating is here: +		http://linux.junsun.net/intersil-prism + +	It includes links to some sites with firmware images. + +	We strongly recommend against flashing a new image, instead one  +	should use the ram-download images that are loaded when the +	driver starts, much like the Windows drivers do. + +	See the instructions below for getting this to work. + +Q: What's this about "ram downloading"? + +	This means the driver loads up a firmware images directly into +	card RAM, instead of using the firmware stored in the card's  +	flash ROM.  This lets us ensure we are using the lastest available +	code without risking ruining the hardware due to a bad flashing. + +	linux-wlan-ng will automatically perform a RAM download if you have +	the necessary firmware images. + +Q: Okay, I have new ram download firmware images, where do I put them? + +	copy the *hex files into linux-wlan-ng-XXXX/src/prism2/ +	then build and install the driver per usual. + +Q: Can I use my 802.11b card as an AP under Linux? + +	Yes, and in the true free software fashion, there are several +	ways: + +	a) linux-wlan-ng supports AP operation by using special tertiary +	   firmware on prism devices.  This firmware is not generally +	   available, however.   Contact Intersil for licensing terms. + +	b) The Prism2 HostAP driver uses the special HostAP mode of the +           prism chipsets.            http://people.ssh.com/jkm/Prism2/ + +Q: I have a PCI adapter, and upon resuming from a suspend, the device is not +   responsive.   + +	Much like you need to run some commands to bring the card to life  +	when the PC is first booted, you also need to perform similar  +	steps when the card comes out of suspend.   Run '/etc/init.d/wlan start' +	and all should be well. + +	You'll need to be running 0.1.15-pre3 or newer for this to work +        properly. + +	The prism2.5/3 chipsets do not support PCI power management, so +	this is the best we can realistically do. + +Q: I have a Linksys WMP11, and under moderate to heavy traffic, I get +   errors like "unknown port number" and "invalid frame type" + +	Make sure you're using the latest firmware avaliable from +	Linksys's web site.  According to the firmware release notes: +	 +	 "Changes were made to prevent erroneous data from being  +          transferred over the PCI bus" + +	Note that this problem has also beeen confirmed on the D-Link +	DWL-520.  You will need firmware 1.3.5 or newer to resolve this. + +Q:  I have a D-Link DWL-650/650+/520+ card, why doesn't it work with +    this driver? + +	The DWL-650 comes in at least three flavors; older ones have grey +	antennae, with no revision number on the back.   +	Second-generation  has a black antenna and the back reads  +	"H/W J3 F/W 1.x.x". Both of these will work.  The third- +	generation, with a grey antenna, has "H/W A1, F/W x.x", and +	will NOT work;  It has the same hardware as the "plus" series +	of cards. + +	The "plus" series of cards from D-Link use the Texas Instruments  +	ACX100/TNETW1100 chipset.  TI has not been forthcoming with  +	programming information.  Politely ask TI and D-Link for Linux +	drivers and/or docs. + +	We've been told that TI will be releasing binary-only Linux +	drivers sometime in December.  In the mean time, return the +	card and buy one that works with Linux. +	 +Q: I have a Linksys WMP11 v2.7 card; why doesn't it work with this driver? + +	Linksys, in their grand tradition, likes to introduce completely +	new cards but re-use the model number.  The WMP11 v2.7 utilizes the +	Broadcomm chipset, and is not supported by linux-wlan-ng.  Politely +	ask Linksys and/or Broadcomm for Linux drivers and/or docs. + +Q: What other resources are there for Wireless LANs under Linux? + +	http://www.fuw.edu.pl/~pliszka/hints/wireless.html + +	http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.drivers.html + +Q: I'm using RedHat 8.x+ (or Fedora Core), and I get this error when  +   trying to ifup wlan0: + +	Error for wireless request "Set Encode" (8B2A) : +	    SET failed on device wlan0 ; Function not implemented. +	Error for wireless request "Set ESSID" (8B1A) : +	    SET failed on device wlan0 ; Function not implemented. + +	 +	You can safely ignore this; it is there because linux-wlan-ng +	does not currently use the wireless extension commands for +	configuration. + +Q: When the prism2_cs module loads, I see the message "RequestIRQ: +   Resource in use" and the load fails! What's going on? + +   Is your card a 16-bit PCMCIA card? If it is, you may need to +   recompile your kernel with ISA bus support enabled (CONFIG_ISA=y). +   The PCMCIA core uses ISA bus support to help determine what IRQs +   are available for the card. Without it, the PCMCIA core may not be +   able to select an IRQ. + +Q: After installing linux-wlan-ng on my RedHat 9 system, pcmcia no  +   longer works! + +	This is due to a bug in the RedHat 9 pcmcia startup scripts. +	On or about line 105 in /etc/init.d/pcmcia, remove all of the +	'.o' suffixes on the modprobe command lines.  It should read  +	something like this: + +            if [ -d $PC ] ; then +                echo -n " modules" +                /sbin/modprobe pcmcia_core $CORE_OPTS +                /sbin/modprobe $PCIC $PCIC_OPTS +                /sbin/modprobe ds +            elif [ -d $KD ] ; then +                /sbin/modprobe pcmcia_core +                /sbin/modprobe $PCIC +                /sbin/modprobe ds +            else + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/LICENSE b/abs/core-testing/wlan-ng26-utils/tmp/trunk/LICENSE new file mode 100644 index 0000000..8d23a4c --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/LICENSE @@ -0,0 +1,563 @@ +                           MOZILLA PUBLIC LICENSE +                                Version 1.1 + +                              ---------------- + +1. Definitions. + +     1.0.1. "Commercial Use" means distribution or otherwise making the +     Covered Code available to a third party. + +     1.1. ''Contributor'' means each entity that creates or contributes to +     the creation of Modifications. + +     1.2. ''Contributor Version'' means the combination of the Original +     Code, prior Modifications used by a Contributor, and the Modifications +     made by that particular Contributor. + +     1.3. ''Covered Code'' means the Original Code or Modifications or the +     combination of the Original Code and Modifications, in each case +     including portions thereof. + +     1.4. ''Electronic Distribution Mechanism'' means a mechanism generally +     accepted in the software development community for the electronic +     transfer of data. + +     1.5. ''Executable'' means Covered Code in any form other than Source +     Code. + +     1.6. ''Initial Developer'' means the individual or entity identified as +     the Initial Developer in the Source Code notice required by Exhibit A. + +     1.7. ''Larger Work'' means a work which combines Covered Code or +     portions thereof with code not governed by the terms of this License. + +     1.8. ''License'' means this document. + +     1.8.1. "Licensable" means having the right to grant, to the maximum +     extent possible, whether at the time of the initial grant or +     subsequently acquired, any and all of the rights conveyed herein. + +     1.9. ''Modifications'' means any addition to or deletion from the +     substance or structure of either the Original Code or any previous +     Modifications. When Covered Code is released as a series of files, a +     Modification is: +      +          A. Any addition to or deletion from the contents of a file +          containing Original Code or previous Modifications. + +          B. Any new file that contains any part of the Original Code or +          previous Modifications. + +     1.10. ''Original Code'' means Source Code of computer software code +     which is described in the Source Code notice required by Exhibit A as +     Original Code, and which, at the time of its release under this License +     is not already Covered Code governed by this License. + +     1.10.1. "Patent Claims" means any patent claim(s), now owned or +     hereafter acquired, including without limitation,  method, process, and +     apparatus claims, in any patent Licensable by grantor. + +     1.11. ''Source Code'' means the preferred form of the Covered Code for +     making modifications to it, including all modules it contains, plus any +     associated interface definition files, scripts used to control +     compilation and installation of an Executable, or source code +     differential comparisons against either the Original Code or another +     well known, available Covered Code of the Contributor's choice. The +     Source Code can be in a compressed or archival form, provided the +     appropriate decompression or de-archiving software is widely available +     for no charge. + +     1.12. "You'' (or "Your")  means an individual or a legal entity +     exercising rights under, and complying with all of the terms of, this +     License or a future version of this License issued under Section 6.1. +     For legal entities, "You'' includes any entity which controls, is +     controlled by, or is under common control with You. For purposes of +     this definition, "control'' means (a) the power, direct or indirect, to +     cause the direction or management of such entity, whether by contract +     or otherwise, or (b) ownership of more than fifty percent (50%) of the +     outstanding shares or beneficial ownership of such entity. + +2. Source Code License. + +     2.1. The Initial Developer Grant. +     The Initial Developer hereby grants You a world-wide, royalty-free, +     non-exclusive license, subject to third party intellectual property +     claims: +      +          (a)  under intellectual property rights (other than patent or +          trademark) Licensable by Initial Developer to use, reproduce, +          modify, display, perform, sublicense and distribute the Original +          Code (or portions thereof) with or without Modifications, and/or +          as part of a Larger Work; and + +          (b) under Patents Claims infringed by the making, using or selling +          of Original Code, to make, have made, use, practice, sell, and +          offer for sale, and/or otherwise dispose of the Original Code (or +          portions thereof). + +          (c) the licenses granted in this Section 2.1(a) and (b) are +          effective on the date Initial Developer first distributes Original +          Code under the terms of this License. + +          (d) Notwithstanding Section 2.1(b) above, no patent license is +          granted: 1) for code that You delete from the Original Code; 2) +          separate from the Original Code;  or 3) for infringements caused +          by: i) the modification of the Original Code or ii) the +          combination of the Original Code with other software or devices. + +     2.2. Contributor Grant. +     Subject to third party intellectual property claims, each Contributor +     hereby grants You a world-wide, royalty-free, non-exclusive license + +          (a)  under intellectual property rights (other than patent or +          trademark) Licensable by Contributor, to use, reproduce, modify, +          display, perform, sublicense and distribute the Modifications +          created by such Contributor (or portions thereof) either on an +          unmodified basis, with other Modifications, as Covered Code and/or +          as part of a Larger Work; and + +          (b) under Patent Claims infringed by the making, using, or selling +          of  Modifications made by that Contributor either alone and/or in +          combination with its Contributor Version (or portions of such +          combination), to make, use, sell, offer for sale, have made, +          and/or otherwise dispose of: 1) Modifications made by that +          Contributor (or portions thereof); and 2) the combination of +          Modifications made by that Contributor with its Contributor +          Version (or portions of such combination). + +          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are +          effective on the date Contributor first makes Commercial Use of +          the Covered Code. + +          (d)    Notwithstanding Section 2.2(b) above, no patent license is +          granted: 1) for any code that Contributor has deleted from the +          Contributor Version; 2)  separate from the Contributor Version; +          3)  for infringements caused by: i) third party modifications of +          Contributor Version or ii)  the combination of Modifications made +          by that Contributor with other software  (except as part of the +          Contributor Version) or other devices; or 4) under Patent Claims +          infringed by Covered Code in the absence of Modifications made by +          that Contributor. + +3. Distribution Obligations. + +     3.1. Application of License. +     The Modifications which You create or to which You contribute are +     governed by the terms of this License, including without limitation +     Section 2.2. The Source Code version of Covered Code may be distributed +     only under the terms of this License or a future version of this +     License released under Section 6.1, and You must include a copy of this +     License with every copy of the Source Code You distribute. You may not +     offer or impose any terms on any Source Code version that alters or +     restricts the applicable version of this License or the recipients' +     rights hereunder. However, You may include an additional document +     offering the additional rights described in Section 3.5. + +     3.2. Availability of Source Code. +     Any Modification which You create or to which You contribute must be +     made available in Source Code form under the terms of this License +     either on the same media as an Executable version or via an accepted +     Electronic Distribution Mechanism to anyone to whom you made an +     Executable version available; and if made available via Electronic +     Distribution Mechanism, must remain available for at least twelve (12) +     months after the date it initially became available, or at least six +     (6) months after a subsequent version of that particular Modification +     has been made available to such recipients. You are responsible for +     ensuring that the Source Code version remains available even if the +     Electronic Distribution Mechanism is maintained by a third party. + +     3.3. Description of Modifications. +     You must cause all Covered Code to which You contribute to contain a +     file documenting the changes You made to create that Covered Code and +     the date of any change. You must include a prominent statement that the +     Modification is derived, directly or indirectly, from Original Code +     provided by the Initial Developer and including the name of the Initial +     Developer in (a) the Source Code, and (b) in any notice in an +     Executable version or related documentation in which You describe the +     origin or ownership of the Covered Code. + +     3.4. Intellectual Property Matters +      +          (a) Third Party Claims. +          If Contributor has knowledge that a license under a third party's +          intellectual property rights is required to exercise the rights +          granted by such Contributor under Sections 2.1 or 2.2, Contributor +          must include a text file with the Source Code distribution titled +          "LEGAL'' which describes the claim and the party making the claim +          in sufficient detail that a recipient will know whom to contact. +          If Contributor obtains such knowledge after the Modification is +          made available as described in Section 3.2, Contributor shall +          promptly modify the LEGAL file in all copies Contributor makes +          available thereafter and shall take other steps (such as notifying +          appropriate mailing lists or newsgroups) reasonably calculated to +          inform those who received the Covered Code that new knowledge has +          been obtained. + +          (b) Contributor APIs. +          If Contributor's Modifications include an application programming +          interface and Contributor has knowledge of patent licenses which +          are reasonably necessary to implement that API, Contributor must +          also include this information in the LEGAL file. + +          (c) Representations. +          Contributor represents that, except as disclosed pursuant to +          Section 3.4(a) above, Contributor believes that Contributor's +          Modifications are Contributor's original creation(s) and/or +          Contributor has sufficient rights to grant the rights conveyed by +          this License. + +     3.5. Required Notices. +     You must duplicate the notice in Exhibit A in each file of the Source +     Code.  If it is not possible to put such notice in a particular Source +     Code file due to its structure, then You must include such notice in a +     location (such as a relevant directory) where a user would be likely to +     look for such a notice.  If You created one or more Modification(s) You +     may add your name as a Contributor to the notice described in Exhibit +     A.  You must also duplicate this License in any documentation for the +     Source Code where You describe recipients' rights or ownership rights +     relating to Covered Code.  You may choose to offer, and to charge a fee +     for, warranty, support, indemnity or liability obligations to one or +     more recipients of Covered Code. However, You may do so only on Your +     own behalf, and not on behalf of the Initial Developer or any +     Contributor. You must make it absolutely clear than any such warranty, +     support, indemnity or liability obligation is offered by You alone, and +     You hereby agree to indemnify the Initial Developer and every +     Contributor for any liability incurred by the Initial Developer or such +     Contributor as a result of warranty, support, indemnity or liability +     terms You offer. + +     3.6. Distribution of Executable Versions. +     You may distribute Covered Code in Executable form only if the +     requirements of Section 3.1-3.5 have been met for that Covered Code, +     and if You include a notice stating that the Source Code version of the +     Covered Code is available under the terms of this License, including a +     description of how and where You have fulfilled the obligations of +     Section 3.2. The notice must be conspicuously included in any notice in +     an Executable version, related documentation or collateral in which You +     describe recipients' rights relating to the Covered Code. You may +     distribute the Executable version of Covered Code or ownership rights +     under a license of Your choice, which may contain terms different from +     this License, provided that You are in compliance with the terms of +     this License and that the license for the Executable version does not +     attempt to limit or alter the recipient's rights in the Source Code +     version from the rights set forth in this License. If You distribute +     the Executable version under a different license You must make it +     absolutely clear that any terms which differ from this License are +     offered by You alone, not by the Initial Developer or any Contributor. +     You hereby agree to indemnify the Initial Developer and every +     Contributor for any liability incurred by the Initial Developer or such +     Contributor as a result of any such terms You offer. + +     3.7. Larger Works. +     You may create a Larger Work by combining Covered Code with other code +     not governed by the terms of this License and distribute the Larger +     Work as a single product. In such a case, You must make sure the +     requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + +     If it is impossible for You to comply with any of the terms of this +     License with respect to some or all of the Covered Code due to statute, +     judicial order, or regulation then You must: (a) comply with the terms +     of this License to the maximum extent possible; and (b) describe the +     limitations and the code they affect. Such description must be included +     in the LEGAL file described in Section 3.4 and must be included with +     all distributions of the Source Code. Except to the extent prohibited +     by statute or regulation, such description must be sufficiently +     detailed for a recipient of ordinary skill to be able to understand it. + +5. Application of this License. + +     This License applies to code to which the Initial Developer has +     attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + +     6.1. New Versions. +     Netscape Communications Corporation (''Netscape'') may publish revised +     and/or new versions of the License from time to time. Each version will +     be given a distinguishing version number. + +     6.2. Effect of New Versions. +     Once Covered Code has been published under a particular version of the +     License, You may always continue to use it under the terms of that +     version. You may also choose to use such Covered Code under the terms +     of any subsequent version of the License published by Netscape. No one +     other than Netscape has the right to modify the terms applicable to +     Covered Code created under this License. + +     6.3. Derivative Works. +     If You create or use a modified version of this License (which you may +     only do in order to apply it to code which is not already Covered Code +     governed by this License), You must (a) rename Your license so that the +     phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", +     ''NPL'' or any confusingly similar phrase do not appear in your license +     (except to note that your license differs from this License) and (b) +     otherwise make it clear that Your version of the license contains terms +     which differ from the Mozilla Public License and Netscape Public +     License. (Filling in the name of the Initial Developer, Original Code +     or Contributor in the notice described in Exhibit A shall not of +     themselves be deemed to be modifications of this License.) + +7. DISCLAIMER OF WARRANTY. + +     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, +     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, +     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF +     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. +     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE +     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, +     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE +     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER +     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF +     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + +     8.1.  This License and the rights granted hereunder will terminate +     automatically if You fail to comply with terms herein and fail to cure +     such breach within 30 days of becoming aware of the breach. All +     sublicenses to the Covered Code which are properly granted shall +     survive any termination of this License. Provisions which, by their +     nature, must remain in effect beyond the termination of this License +     shall survive. + +     8.2.  If You initiate litigation by asserting a patent infringement +     claim (excluding declatory judgment actions) against Initial Developer +     or a Contributor (the Initial Developer or Contributor against whom You +     file such action is referred to as "Participant")  alleging that: + +     (a)  such Participant's Contributor Version directly or indirectly +     infringes any patent, then any and all rights granted by such +     Participant to You under Sections 2.1 and/or 2.2 of this License shall, +     upon 60 days notice from Participant terminate prospectively, unless if +     within 60 days after receipt of notice You either: (i)  agree in +     writing to pay Participant a mutually agreeable reasonable royalty for +     Your past and future use of Modifications made by such Participant, or +     (ii) withdraw Your litigation claim with respect to the Contributor +     Version against such Participant.  If within 60 days of notice, a +     reasonable royalty and payment arrangement are not mutually agreed upon +     in writing by the parties or the litigation claim is not withdrawn, the +     rights granted by Participant to You under Sections 2.1 and/or 2.2 +     automatically terminate at the expiration of the 60 day notice period +     specified above. + +     (b)  any software, hardware, or device, other than such Participant's +     Contributor Version, directly or indirectly infringes any patent, then +     any rights granted to You by such Participant under Sections 2.1(b) and +     2.2(b) are revoked effective as of the date You first made, used, sold, +     distributed, or had made, Modifications made by that Participant. + +     8.3.  If You assert a patent infringement claim against Participant +     alleging that such Participant's Contributor Version directly or +     indirectly infringes any patent where such claim is resolved (such as +     by license or settlement) prior to the initiation of patent +     infringement litigation, then the reasonable value of the licenses +     granted by such Participant under Sections 2.1 or 2.2 shall be taken +     into account in determining the amount or value of any payment or +     license. + +     8.4.  In the event of termination under Sections 8.1 or 8.2 above,  all +     end user license agreements (excluding distributors and resellers) +     which have been validly granted by You or any distributor hereunder +     prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + +     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT +     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL +     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, +     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY +     INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY +     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, +     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER +     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN +     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF +     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY +     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW +     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE +     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS +     EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + +     The Covered Code is a ''commercial item,'' as that term is defined in +     48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer +     software'' and ''commercial computer software documentation,'' as such +     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 +     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), +     all U.S. Government End Users acquire Covered Code with only those +     rights set forth herein. + +11. MISCELLANEOUS. + +     This License represents the complete agreement concerning subject +     matter hereof. If any provision of this License is held to be +     unenforceable, such provision shall be reformed only to the extent +     necessary to make it enforceable. This License shall be governed by +     California law provisions (except to the extent applicable law, if any, +     provides otherwise), excluding its conflict-of-law provisions. With +     respect to disputes in which at least one party is a citizen of, or an +     entity chartered or registered to do business in the United States of +     America, any litigation relating to this License shall be subject to +     the jurisdiction of the Federal Courts of the Northern District of +     California, with venue lying in Santa Clara County, California, with +     the losing party responsible for costs, including without limitation, +     court costs and reasonable attorneys' fees and expenses. The +     application of the United Nations Convention on Contracts for the +     International Sale of Goods is expressly excluded. Any law or +     regulation which provides that the language of a contract shall be +     construed against the drafter shall not apply to this License. + +12. RESPONSIBILITY FOR CLAIMS. + +     As between Initial Developer and the Contributors, each party is +     responsible for claims and damages arising, directly or indirectly, out +     of its utilization of rights under this License and You agree to work +     with Initial Developer and Contributors to distribute such +     responsibility on an equitable basis. Nothing herein is intended or +     shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + +     Initial Developer may designate portions of the Covered Code as +     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial +     Developer permits you to utilize portions of the Covered Code under +     Your choice of the NPL or the alternative licenses, if any, specified +     by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. + +     ``The contents of this file are subject to the Mozilla Public License +     Version 1.1 (the "License"); you may not use this file except in +     compliance with the License. You may obtain a copy of the License at +     http://www.mozilla.org/MPL/ + +     Software distributed under the License is distributed on an "AS IS" +     basis, WITHOUT WARRANTY OF +     ANY KIND, either express or implied. See the License for the specific +     language governing rights and +     limitations under the License. + +     The Original Code is ______________________________________. + +     The Initial Developer of the Original Code is ________________________. +     Portions created by ______________________ are Copyright (C) ______ +     _______________________. All Rights Reserved. + +     Contributor(s): ______________________________________. + +     Alternatively, the contents of this file may be used under the terms of +     the _____ license (the "[___] License"), in which case the provisions +     of [______] License are applicable  instead of those above.  If you +     wish to allow use of your version of this file only under the terms of +     the [____] License and not to allow others to use your version of this +     file under the MPL, indicate your decision by deleting  the provisions +     above and replace  them with the notice and other provisions required +     by the [___] License.  If you do not delete the provisions above, a +     recipient may use your version of this file under either the MPL or the +     [___] License." + +     [NOTE: The text of this Exhibit A may differ slightly from the text of +     the notices in the Source Code files of the Original Code. You should +     use the text of this Exhibit A rather than the text found in the +     Original Code Source Code for Your Modifications.] + +     ----------------------------------------------------------------------- + +     AMENDMENTS + +     The Netscape Public License Version 1.1 ("NPL") consists of the Mozilla +     Public License Version 1.1 with the following Amendments, including +     Exhibit A-Netscape Public License.  Files identified with "Exhibit +     A-Netscape Public License" are governed by the Netscape Public License +     Version 1.1. + +     Additional Terms applicable to the Netscape Public License. +          I. Effect. +          These additional terms described in this Netscape Public +          License -- Amendments shall apply to the Mozilla Communicator +          client code and to all Covered Code under this License. + +          II. ''Netscape's Branded Code'' means Covered Code that Netscape +          distributes and/or permits others to distribute under one or more +          trademark(s) which are controlled by Netscape but which are not +          licensed for use under this License. + +          III. Netscape and logo. +          This License does not grant any rights to use the trademarks +          "Netscape'', the "Netscape N and horizon'' logo or the "Netscape +          lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript", +          "Smart Browsing" even if such marks are included in the Original +          Code or Modifications. + +          IV. Inability to Comply Due to Contractual Obligation. +          Prior to licensing the Original Code under this License, Netscape +          has licensed third party code for use in Netscape's Branded Code. +          To the extent that Netscape is limited contractually from making +          such third party code available under this License, Netscape may +          choose to reintegrate such code into Covered Code without being +          required to distribute such code in Source Code form, even if such +          code would otherwise be considered ''Modifications'' under this +          License. + +          V. Use of Modifications and Covered Code by Initial Developer. +               V.1. In General. +               The obligations of Section 3 apply to Netscape, except to the +               extent specified in this Amendment, Section V.2 and V.3. + +               V.2. Other Products. +               Netscape may include Covered Code in products other than the +               Netscape's Branded Code which are released by Netscape during +               the two (2) years following the release date of the Original +               Code, without such additional products becoming subject to +               the terms of this License, and may license such additional +               products on different terms from those contained in this +               License. + +               V.3. Alternative Licensing. +               Netscape may license the Source Code of Netscape's Branded +               Code, including Modifications incorporated therein, without +               such Netscape Branded Code becoming subject to the terms of +               this License, and may license such Netscape Branded Code on +               different terms from those contained in this License. + +          VI. Litigation. +          Notwithstanding the limitations of Section 11 above, the +          provisions regarding litigation in Section 11(a), (b) and (c) of +          the License shall apply to all disputes relating to this License. + +     EXHIBIT A-Netscape Public License. + +          ''The contents of this file are subject to the Netscape Public +          License Version 1.1 (the "License"); you may not use this file +          except in compliance with the License. You may obtain a copy of +          the License at http://www.mozilla.org/NPL/ + +          Software distributed under the License is distributed on an "AS +          IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +          implied. See the License for the specific language governing +          rights and limitations under the License. + +          The Original Code is Mozilla Communicator client code, released +          March 31, 1998. + +          The Initial Developer of the Original Code is Netscape +          Communications Corporation. Portions created by Netscape are +          Copyright (C) 1998-1999 Netscape Communications Corporation. All +          Rights Reserved. + +          Contributor(s): ______________________________________. + +          Alternatively, the contents of this file may be used under the +          terms of the _____ license (the "[___] License"), in which case +          the provisions of [______] License are applicable  instead of +          those above.  If you wish to allow use of your version of this +          file only under the terms of the [____] License and not to allow +          others to use your version of this file under the NPL, indicate +          your decision by deleting  the provisions above and replace  them +          with the notice and other provisions required by the [___] +          License.  If you do not delete the provisions above, a recipient +          may use your version of this file under either the NPL or the +          [___] License." diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/Makefile new file mode 100644 index 0000000..1364886 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/Makefile @@ -0,0 +1,148 @@ +# Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + + +DIRS = src doc man etc + +CTAGOPTS = --totals -I '__initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS' +ETAGS=etags +ETAGSOPTS=-a + + +default: all + +help: +	@echo "Pick one of the following targets:" +	@echo -e "\tmake config\t\t- interactive configure" +	@echo -e "\tmake auto_config\t- automated configure" +	@echo -e "\tmake default_config\t- automated configure using default config file" +	@echo -e "\tmake all\t\t- build modules and programs" +	@echo -e "\tmake install\t\t- install modules and programs" +	@echo -e "\tmake clean\t\t- remove old binaries and dependency files" +	@echo -e "\tmake mrproper\t\t- 'make clean' + remove config file" +	@echo -e "\tmake tags\t\t- generate ctag files for source code" +	@echo -e "\tmake TAGS\t\t- generate etag files for source code" +	@echo " " + +help_noconfig: +	@echo "You need to configure the source first" +	@echo "Pick one of the following targets:" +	@echo -e "\tmake config\t\t- interactive configure" +	@echo -e "\tmake auto_config\t- automated configure" +	@echo -e "\tmake default_config\t- automated configure using default config file" +	@echo -e "\tmake help\t\t- show information about other targets" + +all:    config.mk +	set -e; for d in $(DIRS); do $(MAKE) -C $$d ; done + +distclean: mrproper + +mrproper: clean +	rm -f config.out +	rm -f tags.linux tags TAGS + +clean: +	set -e; for d in $(DIRS); do $(MAKE) -C $$d clean ; done +	rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags  +	for i in *_obj; do if [ -d $$i ]; then rm -fr $$i; fi; done +	rm -f config.mk config.new +	rm -f src/include/wlan/version.h + +install: +	find . -name .depend -exec rm {} \; +	set -e; for d in $(DIRS); do $(MAKE) -C $$d install ; done + +auto_config: +	@touch config.mk config.new +	@rm -f config.mk config.new +	@./Configure -d + +default_config: +	@touch config.mk config.new +	@rm -f config.mk config.new +	@./Configure -d ./default.config + +config: +	@touch config.mk +	@./Configure + +config.mk: config.out +	$(MAKE) auto_config + +config.out: +	@$(MAKE) help_noconfig +	@exit 1 + +tags: tags.linux dummy +	if [ -r tags.linux ]; then cp tags.linux tags; fi  +	find . \ +		-name '*.[ch]' -o \ +		-name '*.mk' -o \ +		-iname 'Makefile' | \ +		xargs ctags -a $(CTAGOPTS) + +tags.linux: +	if [ -h linux ]; then \ +		find linux/include \ +			-type d \( -name 'asm-*' -o -name config \) \ +			-prune -o \ +			-name '*.h' -print | \ +			xargs ctags -a -f $@ $(CTAGOPTS) && \ +		find linux/kernel linux/drivers linux/mm linux/fs \ +			linux/net linux/ipc linux/lib linux/init \ +			-name '*.[ch]' | \ +			xargs ctags -a -f $@ $(CTAGOPTS); \ +	fi + +TAGS: dummy +	rm -f TAGS +#	if [ -h linux ]; then cp linux/TAGS TAGS; fi  +	{ find . -name '*.[ch]' -print ; \ +	  find . -name '*.[ch]' -print ; \ +	  find . -name '*.mk' -print ; \ +	  find . -iname 'Makefile' -print ; } | $(ETAGS) - $(ETAGSOPTS) + +dummy: + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/README b/abs/core-testing/wlan-ng26-utils/tmp/trunk/README new file mode 100644 index 0000000..f81303c --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/README @@ -0,0 +1,321 @@ +* README +* +* Copyright (C) 2001 AbsoluteValue Systems, Inc.  All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- + +======================================================================= +Description: +The linux-wlan package is a linux device driver and subsystem +package that is intended to provide the full range of IEEE 802.11 MAC +management capabilities for use in user-mode utilities and scripts. +The package currently supports the Intersil 802.11b Prism2, Prism2.5,  +and Prism3 reference designs for PCMCIA, PCI, and USB.  Additionally, +the package includes support for PLX9052 based PCI to PCMCIA adapter +with a few different PCMCIA cards. + +For a list of elements that are still undone, see the TODO file in  +this directory + +======================================================================= +License: +See the COPYING and LICENSE files. + +======================================================================= +Top level directory for linux-wlan-ng: +./add-ons	- additional programs that are not build from the  +                  top level make file +./doc		- source distribution documentation +./etc		- scripts used at run-time +./man		- man pages +./scripts	- contributed scripts that may do useful things +./src		- source code for various components + +======================================================================= +Build Instructions: + +NOTE: You may not need to build at all.  Binary packages are +available for various distributions.  See the FAQ for where to go. + +NOTE: This release supports building four different drivers: + +   prism2_cs	Driver for Prism2.x & Prism3  PCMCIA cards. +   prism2_pci	Driver for Prism2.5 (ISL3874) based _native_ PCI cards. +   prism2_plx	Driver for Prism2.x PCMCIA cards when used with  +		a PLX9052 PCI/PCMCIA adapter. +   prism2_usb   Driver for Prism2.x USB adapters. + + +Prerequisites: + +To build linux-wlan-ng you will need: +   - Configured kernel source code for the kernel you are running.   +     Ideally, this will be the resulting tree after building your own  +     kernel.  Configured means that you have at least run 'make config', +     'make menuconfig', or 'make xconfig'.  If you are trying to build +     linux-wlan-ng for a previously existing kernel binary (one you did  +     not build yourself), look for help on the mailing lists because it  +     can be tricky.  I always run against kernels I've built myself, so I'm  +     not much help in this area. +   - The good David Leffler identified that if you are having difficulty +     with *_netlink_* symbols, you may have a problem with 'make clean' in +     the kernel tree.  Do a 'make mrproper' followed by 'make config'  +     and the rest of the kernel build process.  'make mrproper' does +     a more thorough cleaning of the kernel tree.  For more info, look +     for David's comments in the linux-wlan-user mailing list. +   - If you are building a driver for a PCMCIA card, you will also need +     the configured PCMCIA source code for the pcmcia_cs subsystem you +     are currently running. + +Building linux-wlan-ng: + +1)  untar the package using the command: + +    tar zxvf linux-wlan-ng-X.Y.Z.tar.gz + +2)  Make sure you have configured kernel and (optionally) pcmcia sources on  +    your system.  Note that if you are _only_ building the prism2_pci, +    prism2_plx, or prism2_usb drivers you don't need the pcmcia-cs  +    source tree. + +3)  To configure the linux-wlan-ng package, run 'make config'.  The  +    following set of questions will be asked. The default answer is in +    braces (e.g. []).  Just press <Enter> to select the default answer: + +   - "Build Prism2.x PCMCIA Card Services (_cs) driver? (y/n) [y]: " +        Select "y" if you want to build the Prism PCMCIA driver. +        If you select "n", the PCMCIA related questions below +        will not be asked. + +   - Build Prism2 PLX9052 based PCI (_plx) adapter driver? (y/n) [y]:  +        Select "y" if you want to build the Prism driver for  +        PLX PCI9052 PCI/PCMCIA adapter based solutions. + +   - Build Prism2.5 native PCI (_pci) driver? (y/n) [y]:  +        Select "y" if you want to build the Prism driver for  +        Prism2.5 ISL3874 based native PCI cards.  This includes +        PCI add-in cards and the mini-pci modules included in some +        notebook computers (but not all, some use internal USB modules). + +   - Build Prism2.5 USB (_usb) driver? (y/n) [y]:  +        Select "y" if you want to build the Prism driver for  +        Prism2.5 ISL3873 based USB adapters.  This includes +        USB add-on modules and the internal modules included in some +        notebook computers. + +   - Linux source directory [/usr/src/linux]:  +        The config script will attempt to automagically find your kernel +        source directory.  If found, the kernel source source directory +        will be presented as the default selection.  If the default +        selection is wrong, you may correct it here. + +   - pcmcia-cs source dir [/usr/src/pcmcia-cs-3.1.29]:  +        If the "_cs" driver is selected above, the configure script will +        attempt to present a reasonable default for the pcmcia source +        directory.  If the presented directory is incorrect, you may +        change it here.  If the "_cs" driver is not selected, this +        prompt will not appear. + +   - PCMCIA script directory [/etc/pcmcia]:  +        If the "_cs" driver is selected, this prompt allows you to  +        change the location where the pcmcia scripts will be installed. +        Only do this if you have installed the rest of the pcmcia_cs +        scripts to a non-default location. + +   - Alternate target install root directory on host []:    +        This prompt allows you to specify an alternative root directory +        for the install process. + +   - Module install directory [/lib/modules/2.2.20]:  +        Select where you want the driver modules to be installed.  The +        script constructs a default location using the output of uname. +        If you have not yet installed the kernel you will run linux-wlan +        with, and the new kernel has a different version string, you will +        need to change this value. + +   - Prefix for build host compiler? (rarely needed) []:  +        When cross-compiling or using different compilers for kernel and +        user-mode software, it is sometimes (but rarely) necessary to  +        specify a different compiler prefix to use when compiling the  +        _tools_ that are built to run on the build host during the  +        linux-wlan-ng build process. + +   - Build for debugging (see doc/config.debug) (y/n) [y]:  +        This option enables the inclusion of debug output generating +        statements in the driver code.  Note that enabling those statements +        requires the inclusion of insmod/modprobe command line arguments +        when loading the modules.  See the document doc/config.debug +        for more information. + + +5)  To build the package, run 'make all' + +6)  To install the package, run 'make install' (as root). + +======================================================================= +Configuring: + +NOTE:  linux-wlan-ng does not fully implement the wireless extensions +       interface.  This means that you can't use iwconfig and its kin to  +       set things up.  Instead, read on! + +As of linux-wlan-ng 0.1.16-pre5, the configuration and launch scripts have +been largely re-written.  pcmcia/rc/hotplug now all use a common library  +of routines and use the same set of configuration files. + +Now, everything relevant exists in /etc/wlan/* + +/etc/wlan/wlan.conf: + +	This file maps between wlan devices and network IDs, and contains +	the names of all devices that should be initialized by the hotplug +	and rc scripts. + +/etc/wlan/wlancfg-* + +	These files are per-network configurations.  This makes it easy to  +	switch between different SSIDs and the various settings they may +	require, like WEP keys and whatnot. + +The bare minimum you need to do to configure your system after a fresh driver +install: + +0)  Nothing whatsoever.  out-of-the-box, the driver will attempt to associate +    with any access point within range. + +However, we highly recommend setting up a configuration specifically for +your network, using the following method: + +0)  This example assumes your network name/SSID is "MyHomeNetwork" +1)  cp /etc/wlan/wlancfg-DEFAULT /etc/wlan/wlancfg-MyHomeNetwork +2)  edit /etc/wlan/wlan.conf and change the SSID_wlan0 line to: +	SSID_wlan0="MyHomeNetwork" +3)  edit /etc/wlan/wlancfg-MyHomeNetwork, and make any necessary changes  +    necessary to support your network, such as WEP and whatnot. + +------------------------------ +FOR PCMCIA USERS: +A)  Edit /etc/pcmcia/network.opts file to set up your IP settings.  +    Note: for a station, the SSID you're connecting to will be appended to the  +    current pcmcia scheme name.  You can use this to have different +    IP setups for different wireless LANs you connect to (e.g. home vs. work). + +    Note2:  This only applies if you are using a stock pcmcia-cs  +    package.  Most (if not all) distros use their own mechanisms for  +    configuring pcmcia network interfaces, and thus  +    /etc/pcmcia/network.opts may not even be present. + +B)  Restart pcmcia-cs with the command: + +    /etc/rc.d/init.d/pcmcia restart + +C) Insert the card.  For most cards, a solid LED indicates that the  +    SSID you specified was found, a bss was joined, and the firmware  +    completed the authenticate and associate processes. + +D) Run ifconfig and route to determine if your IP and route settings are +    listed as you wanted them.  It's also a good idea to look at the file +    /etc/resolv.conf to see if your nameserver address has been set up  +    correctly. + +------------------------------ +FOR PCI, PLX, OR USB USERS: +A) You must make sure that the drivers get loaded at boot time and that the  +   necessary initialization takes place.  The simplest way to do this is +   to add the following commands to your rc.local file: + +     modprobe prism2_pci   [or prism2_usb/prism2_plx] +     wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable +     wlanctl-ng wlan0 lnxreq_autojoin ssid=<your APs SSID> authtype=opensystem +     ifconfig wlan0 <yourIP> netmask <yourNetmask> broadcast <yourBroadcast> +     route add default gw <yourGateway> + +   Also, don't forget to set up your resolv.conf to point at your DNS server. + +B) Alternatively, you can use the rc.wlan script, which ties into the  +   /etc/wlan/* configuration files mentioned above. + +   We currently don't create the softlink from the runlevel directories to +   the wlan startup script due to differences in distributions, but the +   scripts are redhat-aware, and can be extended to hook into other tools +   easily.  (patches welcome!)  Just make sure it is brought up early in  +   the process, namely, before the the network interfaces are brought up.  + +C) Add an alias for wlan0 in /etc/modules.conf.  For example, a usb  +   interface on wlan0 would be set up as: + +   alias wlan0 prism2_usb + +   Substitute prism2_plx or prism2_pci as appropriate. + +------------------------------ +FOR USB USERS: + +A) Make sure your kernel usb support is running +B) Plug in the Prism2.x USB device +C) Run 'modprobe prism2_usb prism2_doreset=1' to load the driver into memory. +D) Run 'wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable' to initialize the +   driver+MAC functions. +E) Run 'wlanctl-ng wlan0 lnxreq_autojoin ssid=<your ssid> authtype=opensystem' +   to enable the MAC in Infrastructure Station mode. +F) Run 'ifconfig wlan0 <your IP address>' + +Or, you can use the provided hotplug scripts, if your distribution has +hotplug support.  :)  + +IMPORTANT: Due to an issue with some versions of the Prism USB firmware, +the driver usually needs to perform a port reset.   + +Some combinations of usb low-level drivers, kernel releases, and +hardware don't like this, and usually end up generating a kernel OOPS. +newer kernels are much better in this regard.  In particular, Intel usb +controllers are the most trouble-prone. + +The OOPS is due to bugs in the linux USB core, and newer kernels +(2.4.19 and later) behave much better in this regard. + +However, the good news is that primary firmware 1.1.2 seems to resolve +the need for the port reset to begin with.  Contact your vendor to +request this update. + +Also, using the 'Alt. UHCI' controller driver (uhci.o) is broken with  +kernels older than 2.4.22 due to a bug in the controller driver. + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/THANKS b/abs/core-testing/wlan-ng26-utils/tmp/trunk/THANKS new file mode 100644 index 0000000..b32691f --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/THANKS @@ -0,0 +1,147 @@ +Linux WLAN package + +CONTRIBUTORS +This project was initially developed for personal interest and use. +It has since evolved into it's current state through the support and +contributions of many individuals who have taken an interest in this +project.  We appreciate the source code contributions and bug fixes +from those who didn't want to wait on us and fearlessly dived into +the source code to either add a feature or fix a bug.   + +Contributions to the project are not limited to source code +and bug fixes.  Addtitional contributions include (but not limited to) +reporting bugs, documentation, test results, helpful and enlightening +dicussions on the project's mailing lists, kind words and feedback +from users as well as commercial support for the project. + +Additionally, we'd like to thank the vendors who have contributed +wireless network cards for testing the driver.  To see a listing of +supported wireless cards, visit the Linux WLAN Project page at our +web site.   http://www.linux-wlan.com + +Below are some of the contributors to the project.  Contributions are +made often.  Therefore, the list is never "current" even in the  +most recent release of the project.  ;-) + +This list includes contributors to the original linux-wlan Prism1  +driver as well as contributors to this package. + +deadparrot - an anonymous contributor who's been an enormous help. +             You know who you are. +Robert Coie <irac@intrigue.com> +Geoff Hibble <ghibble@adevice.com> +Yoshimura Haba <haba@melcoinc.co.jp> +Dries Buytaert <s965424@uia.ua.ac.be> +Derrick Brashear <shadow@dementia.org> +Tony Awtrey <tony@awtrey.com> +Peter Teuben <teuben@astro.umd.edu> +hong <u4830467@ug.ee.tku.edu.tw> +Greg Smith <gsmith@westnet.com> +Peter Kundrat <kundrat@pkx.sk> +James Hicks <jamey@crl.dec.com> +Erik Kunze <Erik.Kunze@fantasy.muc.de> +Larrick, Douglas <Doug.Larrick@compaq.com> +Cagle, John <John.Cagle@compaq.com> +Rob Braun <bbraun@synack.net> +Terry Griffin <griffint@pobox.com> +Ken Gordon <ken@magneticscrolls.com> +Pavel Roskin <proski@frontpath.com> +Scott Franzyshen <sfranzyshen@lazerlink.net> +Will Woods <Will.Woods@compaq.com> +Bill Carr <Bill.Carr@compaq.com> +David Hsu <davidhsu@ficnet.net> +Alessandro <acevirgil@inwind.it> +Jouni Malinen <jkmaline@cc.hut.fi> +Bob James<bob.james@rebel.com> +Calvin Fang <cfang@otcwireless.com> +Jim Suhr <jimrsuhr@earthlink.net> +Vragor <vragor@home.com> +Chris Rankin <rankinc@pacbell.net> +Michael Carmack <karmak@karmak.org> +Mark Taylor <mt@mp3dev.org> +Ben Gertzfield <che@debian.org> +Daniel Lyddy <sprocket@path.berkeley.edu> +Bryan Smith <b.j.smith@ieee.org> +Stuffed Crust <pizza@shaftnet.org> (aka Solomon Peachy) +Reyk Floeter <reyk@synack.de> +Adam Richter <adam@yggdrasil.com> +Collin Mulliner <wlan@betaversion.net> +Mike Kershaw <dragorn@nerv-un.net> +David Leffler <dleffler@lynku.net> +Godmar Back <gback@stanford.edu> +Jean Tourrilhes <jt@hpl.hp.com> +Erik McKee <camhanaich99@yahoo.com> +Jack Diedrich <jackdied@yahoo.com> +Caz Yokoyama <caz@caztech.com> +Matthias Welwarsky <matze@stud.fbi.fh-darmstadt.de> +David Brownell <david-b@pacbell.net> +Henri Muurimaa <hezamu@tuug.fi> +Bryan Huang <bryan.huang@bromax.com.tw> +Tony Seward <anthony.seward@ieee.org> +Matthias Welk <welk@fokus.gmd.de> +Josh Wyatt <Josh.Wyatt@hcssystems.com> +Tim Fletcher <tim@parrswood.manchester.sch.uk> +Tim Miller <tim.miller@vanderbilt.edu> +Remy Cool <remy.cool@smartology.nl> +Mike Klar <mfklar@tivo.com> +Tony Likhite <tony@likhite.net> +David Everly <deckrider@yahoo.com> +Nick Jafa <jafa@silicondust.com> +James Goodwin <jamesg@Filanet.com> +Derek Atkins <warlord@mit.edu> +Michael Beattie <mjb@debian.org> +Joey Hess <joey@kitenet.net> +Clay Jones <cjones1@email.com> +Matthew Rush <matthew@42.co.nz> +Tom Prado <tprado@charter.net> +Olivier Bornet <Olivier.Bornet@puck.ch> +Ryan Veety <ryan@ryanspc.com> +Michael Hackett <mhackett@kanayo.com> +Pavel Kankovsky <kan@dcit.cz> +Brad Davidson <kiloman@oatmail.org> +Ralf Miunske <miunske@users.sourceforge.net> +Juan Conde <juan.conde@juntadeandalucia.es> +Ichiro Doi <ichiro@d-o-i.net> +Jeff Chua <jchua@fedex.com> +Chris Wilson <chris@qwirx.com> +Daniel Jiseok Song <jssong@wooritg.com> +Albert Pauw <apauw@chello.nl> +Andrew Beresford <beezly@beezly.org.uk> +Stephan Müller <smueller@chronox.de> +Henry Ip <henryiphk@hotmail.com> +Andre McCurdy <armcc2000@yahoo.com> +Allan Claghorn <aclag@sdk.ath.cx> +Steve Berry <vze4tzdm@verizon.net> +Dan Noe <dpn@isomerica.net> +Natsakis Konstantinos <cyfex@wthess.net> +Greg Weeks <greg.weeks@timesys.com> +Francesco Bochicchio <bockman@virgilio.it> +Federico Pellegrin <fede.evol@virgilio.it> +Nemanja Jakovljevic <nemanjaj@sezampro.yu> +Shiro Ninomiya <shiro@margi.com> +Josef Kriegl <jkriegl@sensoria.com> +Arnold Liu <asliu23@yahoo.com> +Alain Chehikian <alain.chehikian@cegetel.net> +Ashish <thermalvoid@yahoo.com> +J.D. Cole <listguy@transientresearch.com> +Wolfram Gloger <wmglo@dent.med.uni-muenchen.de> +Colin Leroy <colin@colino.net> +Giacomo Lozito <city_hunter@noway.it> +Armijn Hemel <armijn@uulug.nl> +Dan Williams <dcbw@redhat.com> +Andrzej Turowski <andrzej@turowski_NOSPAM_.com> +Tim Huck <duceusmeus@yahoo.com> +Ekin Meroglu <ekin@fisek.com.tr> +Eric Koenders <Eric.Koenders@peekglobal.com> +Andreas Schultes <flirt@hold-clan.de> +Victor Seva Lopez <linuxmaniac@torreviejawireless.org> +Richard Kennedy <richard@rsk.demon.co.uk> +Tormod Volden <lists.tormod@gmail.com> +Karl Relton <karllinuxtest.relton@ntlworld.com> + +[Many, many more.  If I've overlooked you and you want to be listed here,  +send me e-mail and I'll fix it.  I _know_ a bunch of linux-wlan contributors +are missing.] + +-- Our Sincerest Thanks to all contributors, users and vendors +	AbsoluteValue Systems, Inc. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/TODO b/abs/core-testing/wlan-ng26-utils/tmp/trunk/TODO new file mode 100644 index 0000000..57ac976 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/TODO @@ -0,0 +1,86 @@ +* TODO +* +* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- + +Linux WLAN NG TODO +- Make the command-completion interrupt driven vs busywaiting. +- Possibly hook up DMA on the Rx side for PCI devices +- [USB] Remove driver's port-reset when new primary firmware becomes +  available. +- Review changes necessary for static linking to kernel +- Display the MAC and BBP partnum & revision at initialization time +- Perform a more effective I/O access test and an irq test at  +  initialization time +- Detect dead card and perform reset and reinitialization +- Finish the prism2 request responses for STA and AP +  Station: +	powermgmt +	join +	authenticate +	deauthenticate +	associate (currently only partially functional) +	disassociate +	reassociate +	start +	reset +  Access Point +  	deauthenticate +	disassociate +	reset + +- Finish the mibget/mibset +  PHY MIBS +  Prism2 specific mibs (represent all RIDs) + +- Add event detection and notification of daemon +  Station: +  	deauthenticate +	disassociate +	rxpwer_l2 +	rxpwer_l1 +  Access Point: +  	associate +	authenticate +	reassociate +- Add event handling scripts for the events above +- Add AP support for power managing stations diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/entries new file mode 100644 index 0000000..5ee3f9e --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/entries @@ -0,0 +1,34 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/add-ons +svn://svn.shaftnet.org/linux-wlan-ng + + + +2003-03-24T16:18:08.000000Z +1324 +solomon + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +lwepgen +dir + +keygen +dir + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/entries new file mode 100644 index 0000000..f2a74e1 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/entries @@ -0,0 +1,96 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/add-ons/keygen +svn://svn.shaftnet.org/linux-wlan-ng + + + +2002-10-17T13:10:18.000000Z +1163 +solomon + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +keygen.c +file + + + + +2009-01-07T08:12:58.000000Z +9fc5f9b33c3182b4dd0f975cc46c5302 +2002-10-17T13:10:18.000000Z +1163 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +3571 + +Makefile +file + + + + +2009-01-07T08:12:58.000000Z +2db68c77af844f5bd78e16ffe19a64bd +2002-05-24T12:11:30.000000Z +912 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +1884 + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/Makefile.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/Makefile.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/keygen.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/keygen.c.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/keygen.c.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/Makefile.svn-base new file mode 100644 index 0000000..0561a9e --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/Makefile.svn-base @@ -0,0 +1,49 @@ +# Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + + +keygen: +	gcc -o keygen keygen.c -lcrypto + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/keygen.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/keygen.c.svn-base new file mode 100644 index 0000000..fe29738 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/keygen.c.svn-base @@ -0,0 +1,183 @@ +/* + * keygen.c + *	WEP Key Generators + * + * This program generates WEP keys using de facto standard key + * generators for 40 and 128 bit keys. + * + * Link against OpenSSL's libcrypto.a + * + * I place this code in the public domain. + * May 2001, Tim Newsham + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <sys/types.h> +#include <openssl/md5.h> + +#define WEPKEYSIZE      	5 +#define WEPSTRONGKEYSIZE	13 +#define WEPKEYS         	4 +#define WEPKEYSTORE     	(WEPKEYSIZE * WEPKEYS) +#define WEPSTRONGKEYSTORE	(WEPSTRONGKEYSIZE * WEPKEYS) + +/* + * generate four subkeys from a seed using the defacto standard + */ +void +wep_seedkeygen(int val, u_char *keys) +{ +    int i; + +    for(i = 0; i < WEPKEYSTORE; i++) { +        val *= 0x343fd; +        val += 0x269ec3; +        keys[i] = val >> 16; +    } +    return; +} + +/* + * generate one key from a string using the de facto standard + * + * resultant key is stored in + *   one 128 bit key: keys[0-15] + * + * (NOTE: I'm not sure why, but it seems that only values 0-12 are used, + * resulting in 104 bits of keying, not 128) + */ +void +wep_keygen128(char *str, u_char *keys) +{ +    MD5_CTX ctx; +    u_char buf[64]; +    int i, j; + +    /* repeat str until buf is full */ +    j = 0; +    for(i = 0; i < 64; i++) { +        if(str[j] == 0) +            j = 0; +        buf[i] = str[j++]; +    } + +    MD5_Init(&ctx); +    MD5_Update(&ctx, buf, sizeof buf); +    MD5_Final(buf, &ctx); + +    memcpy(keys, buf, WEPSTRONGKEYSTORE); +    for(i = 0; i < WEPSTRONGKEYSIZE; i++) { +        keys[i] = buf[i]; +    } +    for(; i < WEPSTRONGKEYSTORE; i++) { +        keys[i] = 0; +    } +    return; +} + +/*  + * generate four subkeys from a string using the defacto standard + * + * resultant keys are stored in  + *   four 40 bit keys: keys[0-4], keys[5-9], keys[10-14] and keys[15-20] + */ +void +wep_keygen40(char *str, u_char *keys)  +{ +    int val, i, shift; + +    /* +     * seed is generated by xor'ing in the keystring bytes +     * into the four bytes of the seed, starting at the little end +     */ +    val = 0; +    for(i = 0; str[i]; i++) { +        shift = i & 0x3; +        val ^= (str[i] << (shift * 8)); +    } + +    wep_seedkeygen(val, keys); +    return; +} + +void +wep_keyprint40(u_char *keys) +{ +    int i; +    char sepchar; + +    for(i = 0; i < WEPKEYSTORE; i++) { +        sepchar = (i % WEPKEYSIZE == WEPKEYSIZE - 1) ? '\n' : ':'; +        printf("%02x%c", keys[i], sepchar); +    } +    return; +} + +void +wep_keyprint128(u_char *keys) +{ +    int i; +    char sepchar; + +    for(i = 0; i < WEPSTRONGKEYSTORE; i++) { +        sepchar = (i % WEPSTRONGKEYSIZE == WEPSTRONGKEYSIZE - 1) ? '\n' : ':'; +        printf("%02x%c", keys[i], sepchar); +    } +    return; +} +void +usage(char *prog) +{ +    printf("Usage:  %s keystring [-s || 5 || 13]\n", prog); +    exit(1); +} + +int +main(int argc, char **argv)  +{ +    u_char keys[WEPKEYSTORE]; +    u_char strongkeys[WEPSTRONGKEYSTORE]; +    char *prog, *genstr; +    int strong, ch; + +    prog = argv[0]; +    strong = 0; +    while((ch = getopt(argc, argv, "s")) != EOF) { +        switch(ch) { +        case 's': +            strong ++; +            break; +        default: +            usage(prog); +        } +    } +    argc -= optind; +    argv += optind; + +    if(argc==2)  +    	if(!strcmp(argv[1],"13"))  +	{  +		strong++;  +		argc--;  +	} +	else argc--; + +    if(argc != 1) +        usage(prog); +    genstr = argv[0]; + +    if(strong) +    { +        wep_keygen128(genstr, strongkeys); +        wep_keyprint128(strongkeys); +    } +    else +    { +        wep_keygen40(genstr, keys); +        wep_keyprint40(keys); +    } +    return 0; +} diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/Makefile new file mode 100644 index 0000000..0561a9e --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/Makefile @@ -0,0 +1,49 @@ +# Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + + +keygen: +	gcc -o keygen keygen.c -lcrypto + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/keygen.c b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/keygen.c new file mode 100644 index 0000000..fe29738 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/keygen.c @@ -0,0 +1,183 @@ +/* + * keygen.c + *	WEP Key Generators + * + * This program generates WEP keys using de facto standard key + * generators for 40 and 128 bit keys. + * + * Link against OpenSSL's libcrypto.a + * + * I place this code in the public domain. + * May 2001, Tim Newsham + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <sys/types.h> +#include <openssl/md5.h> + +#define WEPKEYSIZE      	5 +#define WEPSTRONGKEYSIZE	13 +#define WEPKEYS         	4 +#define WEPKEYSTORE     	(WEPKEYSIZE * WEPKEYS) +#define WEPSTRONGKEYSTORE	(WEPSTRONGKEYSIZE * WEPKEYS) + +/* + * generate four subkeys from a seed using the defacto standard + */ +void +wep_seedkeygen(int val, u_char *keys) +{ +    int i; + +    for(i = 0; i < WEPKEYSTORE; i++) { +        val *= 0x343fd; +        val += 0x269ec3; +        keys[i] = val >> 16; +    } +    return; +} + +/* + * generate one key from a string using the de facto standard + * + * resultant key is stored in + *   one 128 bit key: keys[0-15] + * + * (NOTE: I'm not sure why, but it seems that only values 0-12 are used, + * resulting in 104 bits of keying, not 128) + */ +void +wep_keygen128(char *str, u_char *keys) +{ +    MD5_CTX ctx; +    u_char buf[64]; +    int i, j; + +    /* repeat str until buf is full */ +    j = 0; +    for(i = 0; i < 64; i++) { +        if(str[j] == 0) +            j = 0; +        buf[i] = str[j++]; +    } + +    MD5_Init(&ctx); +    MD5_Update(&ctx, buf, sizeof buf); +    MD5_Final(buf, &ctx); + +    memcpy(keys, buf, WEPSTRONGKEYSTORE); +    for(i = 0; i < WEPSTRONGKEYSIZE; i++) { +        keys[i] = buf[i]; +    } +    for(; i < WEPSTRONGKEYSTORE; i++) { +        keys[i] = 0; +    } +    return; +} + +/*  + * generate four subkeys from a string using the defacto standard + * + * resultant keys are stored in  + *   four 40 bit keys: keys[0-4], keys[5-9], keys[10-14] and keys[15-20] + */ +void +wep_keygen40(char *str, u_char *keys)  +{ +    int val, i, shift; + +    /* +     * seed is generated by xor'ing in the keystring bytes +     * into the four bytes of the seed, starting at the little end +     */ +    val = 0; +    for(i = 0; str[i]; i++) { +        shift = i & 0x3; +        val ^= (str[i] << (shift * 8)); +    } + +    wep_seedkeygen(val, keys); +    return; +} + +void +wep_keyprint40(u_char *keys) +{ +    int i; +    char sepchar; + +    for(i = 0; i < WEPKEYSTORE; i++) { +        sepchar = (i % WEPKEYSIZE == WEPKEYSIZE - 1) ? '\n' : ':'; +        printf("%02x%c", keys[i], sepchar); +    } +    return; +} + +void +wep_keyprint128(u_char *keys) +{ +    int i; +    char sepchar; + +    for(i = 0; i < WEPSTRONGKEYSTORE; i++) { +        sepchar = (i % WEPSTRONGKEYSIZE == WEPSTRONGKEYSIZE - 1) ? '\n' : ':'; +        printf("%02x%c", keys[i], sepchar); +    } +    return; +} +void +usage(char *prog) +{ +    printf("Usage:  %s keystring [-s || 5 || 13]\n", prog); +    exit(1); +} + +int +main(int argc, char **argv)  +{ +    u_char keys[WEPKEYSTORE]; +    u_char strongkeys[WEPSTRONGKEYSTORE]; +    char *prog, *genstr; +    int strong, ch; + +    prog = argv[0]; +    strong = 0; +    while((ch = getopt(argc, argv, "s")) != EOF) { +        switch(ch) { +        case 's': +            strong ++; +            break; +        default: +            usage(prog); +        } +    } +    argc -= optind; +    argv += optind; + +    if(argc==2)  +    	if(!strcmp(argv[1],"13"))  +	{  +		strong++;  +		argc--;  +	} +	else argc--; + +    if(argc != 1) +        usage(prog); +    genstr = argv[0]; + +    if(strong) +    { +        wep_keygen128(genstr, strongkeys); +        wep_keyprint128(strongkeys); +    } +    else +    { +        wep_keygen40(genstr, keys); +        wep_keyprint40(keys); +    } +    return 0; +} diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/entries new file mode 100644 index 0000000..1e4c690 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/entries @@ -0,0 +1,96 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/add-ons/lwepgen +svn://svn.shaftnet.org/linux-wlan-ng + + + +2003-03-24T16:18:08.000000Z +1324 +solomon + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +lwepgen.c +file + + + + +2009-01-07T08:12:58.000000Z +01822ba621fad68032adc8c34f0b80cd +2003-03-24T16:18:08.000000Z +1324 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +3303 + +Makefile +file + + + + +2009-01-07T08:12:58.000000Z +5bbbaae86af09228581cd7d42a4bc23a +2003-03-24T16:18:08.000000Z +1324 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +160 + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/Makefile.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/Makefile.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/lwepgen.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/lwepgen.c.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/lwepgen.c.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/Makefile.svn-base new file mode 100644 index 0000000..e960692 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/Makefile.svn-base @@ -0,0 +1,11 @@ +default: lwepgen + +lwepgen: lwepgen.c +	 gcc -Wl,/usr/lib/libcrypto.so -o lwepgen lwepgen.c +	  +lwepgen.c: +	echo lwepgen.c missing! +	false + +clean: +	rm -rf lwepgen diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/lwepgen.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/lwepgen.c.svn-base new file mode 100644 index 0000000..73dc439 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/lwepgen.c.svn-base @@ -0,0 +1,162 @@ +/* + * keygen.c + *      WEP Key Generators + * + * This program generates WEP keys using de facto standard key + * generators for 40 and 128 bit keys. + * + * Link against OpenSSL's libcrypto.a + * + * I place this code in the public domain. + * May 2001, Tim Newsham + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <sys/types.h> +#include <openssl/md5.h> + +#define WEPKEYSIZE              5 +#define WEPSTRONGKEYSIZE        13 +#define WEPKEYS                 4 +#define WEPKEYSTORE             (WEPKEYSIZE * WEPKEYS) + +/* + * generate four subkeys from a seed using the defacto standard + */ +void +wep_seedkeygen(int val, u_char *keys) +{ +    int i; + +    for(i = 0; i < WEPKEYSTORE; i++) { +        val *= 0x343fd; +        val += 0x269ec3; +        keys[i] = val >> 16; +    } +    return; +} + +/* + * generate one key from a string using the de facto standard + * + * resultant key is stored in + *   one 128 bit key: keys[0-15] + * + * (NOTE: I'm not sure why, but it seems that only values 0-12 are used, + * resulting in 104 bits of keying, not 128) + */ +void +wep_keygen128(char *str, u_char *keys) +{ +    MD5_CTX ctx; +    u_char buf[64]; +    int i, j; + +    /* repeat str until buf is full */ +    j = 0; +    for(i = 0; i < 64; i++) { +        if(str[j] == 0) +            j = 0; +        buf[i] = str[j++]; +    } + +    MD5_Init(&ctx); +    MD5_Update(&ctx, buf, sizeof buf); +    MD5_Final(buf, &ctx); + +    memcpy(keys, buf, WEPKEYSTORE); +    for(i = 0; i < WEPSTRONGKEYSIZE; i++) { +        keys[i] = buf[i]; +    } +    for(; i < WEPKEYSTORE; i++) { +        keys[i] = 0; +    } +    return; +} + +/*  + * generate four subkeys from a string using the defacto standard + * + * resultant keys are stored in  + *   four 40 bit keys: keys[0-4], keys[5-9], keys[10-14] and keys[15-20] + */ +void +wep_keygen40(char *str, u_char *keys)  +{ +    int val, i, shift; + +    /* +     * seed is generated by xor'ing in the keystring bytes +     * into the four bytes of the seed, starting at the little end +     */ +    val = 0; +    for(i = 0; str[i]; i++) { +        shift = i & 0x3; +        val ^= (str[i] << (shift * 8)); +    } + +    wep_seedkeygen(val, keys); +    return; +} + +void +wep_keyprint(u_char *keys, int strong) +{ +    int i, printlength, keylength; +    char sepchar; +     +    printlength = strong ? WEPSTRONGKEYSIZE : WEPKEYSTORE; +    keylength   = strong ? WEPSTRONGKEYSIZE : WEPKEYSIZE; + +    for(i = 0; i < printlength; i++) { +        sepchar = (i % keylength == keylength - 1) ? '\n' : ':'; +        printf("%02x%c", keys[i], sepchar); +    } +    return; +} + +void +usage(char *prog) +{ +    printf("%s: generates Lucent compatible WEP keys from a string\n", prog); +    printf("Usage:  %s [-s] keystring\n", prog); +    exit(1); +} + +int +main(int argc, char **argv)  +{ +    u_char keys[WEPKEYSTORE]; +    char *prog, *genstr; +    int strong, ch; + +    prog = argv[0]; +    strong = 0; +    while((ch = getopt(argc, argv, "s")) != EOF) { +        switch(ch) { +        case 's': +            strong ++; +            break; +        default: +            usage(prog); +        } +    } +    argc -= optind; +    argv += optind; + +    if(argc != 1) +        usage(prog); +    genstr = argv[0]; + +    if(strong) +        wep_keygen128(genstr, keys); +    else +        wep_keygen40(genstr, keys); + +    wep_keyprint(keys, strong); + +    return 0; +} diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/Makefile new file mode 100644 index 0000000..e960692 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/Makefile @@ -0,0 +1,11 @@ +default: lwepgen + +lwepgen: lwepgen.c +	 gcc -Wl,/usr/lib/libcrypto.so -o lwepgen lwepgen.c +	  +lwepgen.c: +	echo lwepgen.c missing! +	false + +clean: +	rm -rf lwepgen diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/lwepgen.c b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/lwepgen.c new file mode 100644 index 0000000..73dc439 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/lwepgen.c @@ -0,0 +1,162 @@ +/* + * keygen.c + *      WEP Key Generators + * + * This program generates WEP keys using de facto standard key + * generators for 40 and 128 bit keys. + * + * Link against OpenSSL's libcrypto.a + * + * I place this code in the public domain. + * May 2001, Tim Newsham + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <sys/types.h> +#include <openssl/md5.h> + +#define WEPKEYSIZE              5 +#define WEPSTRONGKEYSIZE        13 +#define WEPKEYS                 4 +#define WEPKEYSTORE             (WEPKEYSIZE * WEPKEYS) + +/* + * generate four subkeys from a seed using the defacto standard + */ +void +wep_seedkeygen(int val, u_char *keys) +{ +    int i; + +    for(i = 0; i < WEPKEYSTORE; i++) { +        val *= 0x343fd; +        val += 0x269ec3; +        keys[i] = val >> 16; +    } +    return; +} + +/* + * generate one key from a string using the de facto standard + * + * resultant key is stored in + *   one 128 bit key: keys[0-15] + * + * (NOTE: I'm not sure why, but it seems that only values 0-12 are used, + * resulting in 104 bits of keying, not 128) + */ +void +wep_keygen128(char *str, u_char *keys) +{ +    MD5_CTX ctx; +    u_char buf[64]; +    int i, j; + +    /* repeat str until buf is full */ +    j = 0; +    for(i = 0; i < 64; i++) { +        if(str[j] == 0) +            j = 0; +        buf[i] = str[j++]; +    } + +    MD5_Init(&ctx); +    MD5_Update(&ctx, buf, sizeof buf); +    MD5_Final(buf, &ctx); + +    memcpy(keys, buf, WEPKEYSTORE); +    for(i = 0; i < WEPSTRONGKEYSIZE; i++) { +        keys[i] = buf[i]; +    } +    for(; i < WEPKEYSTORE; i++) { +        keys[i] = 0; +    } +    return; +} + +/*  + * generate four subkeys from a string using the defacto standard + * + * resultant keys are stored in  + *   four 40 bit keys: keys[0-4], keys[5-9], keys[10-14] and keys[15-20] + */ +void +wep_keygen40(char *str, u_char *keys)  +{ +    int val, i, shift; + +    /* +     * seed is generated by xor'ing in the keystring bytes +     * into the four bytes of the seed, starting at the little end +     */ +    val = 0; +    for(i = 0; str[i]; i++) { +        shift = i & 0x3; +        val ^= (str[i] << (shift * 8)); +    } + +    wep_seedkeygen(val, keys); +    return; +} + +void +wep_keyprint(u_char *keys, int strong) +{ +    int i, printlength, keylength; +    char sepchar; +     +    printlength = strong ? WEPSTRONGKEYSIZE : WEPKEYSTORE; +    keylength   = strong ? WEPSTRONGKEYSIZE : WEPKEYSIZE; + +    for(i = 0; i < printlength; i++) { +        sepchar = (i % keylength == keylength - 1) ? '\n' : ':'; +        printf("%02x%c", keys[i], sepchar); +    } +    return; +} + +void +usage(char *prog) +{ +    printf("%s: generates Lucent compatible WEP keys from a string\n", prog); +    printf("Usage:  %s [-s] keystring\n", prog); +    exit(1); +} + +int +main(int argc, char **argv)  +{ +    u_char keys[WEPKEYSTORE]; +    char *prog, *genstr; +    int strong, ch; + +    prog = argv[0]; +    strong = 0; +    while((ch = getopt(argc, argv, "s")) != EOF) { +        switch(ch) { +        case 's': +            strong ++; +            break; +        default: +            usage(prog); +        } +    } +    argc -= optind; +    argv += optind; + +    if(argc != 1) +        usage(prog); +    genstr = argv[0]; + +    if(strong) +        wep_keygen128(genstr, keys); +    else +        wep_keygen40(genstr, keys); + +    wep_keyprint(keys, strong); + +    return 0; +} diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/config.in b/abs/core-testing/wlan-ng26-utils/tmp/trunk/config.in new file mode 100644 index 0000000..0f8d182 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/config.in @@ -0,0 +1,20 @@ +WLAN_VERSION=0 +WLAN_PATCHLEVEL=2 +WLAN_SUBLEVEL=9 +WLAN_EXTRAVERSION= +#LINUX_SRC=/usr/src/linux +PREFIX= +INST_EXEDIR=/sbin +TARGET_ROOT_ON_HOST= +RC_DIR=/etc/rc.d +PCMCIA_DIR=/etc/pcmcia +SYSV_INIT=y +INSTALL_DEPMOD=y +WLAN_DEBUG=n +CROSS_COMPILE_ENABLED=n +CROSS_COMPILE= +HOST_COMPILE= +PRISM2_PLX=y +PRISM2_PCMCIA=y +PRISM2_PCI=y +PRISM2_USB=y diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/entries new file mode 100644 index 0000000..a49e893 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/entries @@ -0,0 +1,241 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/doc +svn://svn.shaftnet.org/linux-wlan-ng + + + +2007-10-17T18:58:05.944684Z +1839 +pizza + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +config.linux-wlan-ng +file + + + + +2009-01-07T08:13:01.000000Z +6830829aaa7e2280078a0fcc562e6ec5 +2002-09-06T01:08:27.000000Z +1067 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +10294 + +capturefrm.txt +file + + + + +2009-01-07T08:13:01.000000Z +ad468bf186a23666249371951d74bc5e +2007-10-17T18:58:05.944684Z +1839 +pizza +has-props + + + + + + + + + + + + + + + + + + + + +7563 + +config.debug +file + + + + +2009-01-07T08:13:01.000000Z +1137d57291230e165779980a17a9411d +2001-12-11T19:41:57.000000Z +771 +mark +has-props + + + + + + + + + + + + + + + + + + + + +3560 + +rh71notes +file + + + + +2009-01-07T08:13:01.000000Z +d440b562f9d9f022f2de4f301818bd8d +2001-09-24T13:46:26.000000Z +701 +mark +has-props + + + + + + + + + + + + + + + + + + + + +1761 + +prism2 +dir + +Makefile +file + + + + +2009-01-07T08:13:01.000000Z +de8810cf3c6af60ef86948e6577dd5a6 +2005-01-26T22:01:07.661267Z +1678 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +2066 + +codingstd +dir + +impnotes +dir + +releasepolicy.txt +file + + + + +2009-01-07T08:13:01.000000Z +1d1c02df575c560da6195f1a98b77b16 +2001-12-14T19:48:31.000000Z +807 +mark +has-props + + + + + + + + + + + + + + + + + + + + +1571 + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/Makefile.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/Makefile.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/capturefrm.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/capturefrm.txt.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/capturefrm.txt.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.debug.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.debug.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.debug.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.linux-wlan-ng.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.linux-wlan-ng.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.linux-wlan-ng.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/releasepolicy.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/releasepolicy.txt.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/releasepolicy.txt.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/rh71notes.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/rh71notes.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/rh71notes.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/Makefile.svn-base new file mode 100644 index 0000000..9dfce56 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/Makefile.svn-base @@ -0,0 +1,56 @@ +# doc/Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + +-include ../config.mk + +all: +	@echo "Nothing to do..." + +install: +	@echo "Nothing to do..." + +clean: +	rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags +	for i in *_obj; do if [ -d $$i ]; then rm -fr $$i; fi; done +	 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/capturefrm.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/capturefrm.txt.svn-base new file mode 100644 index 0000000..9ea908d --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/capturefrm.txt.svn-base @@ -0,0 +1,233 @@ +AVS Capture Frame Format +Version 2.1.1 + +1. Introduction +The original header format for "monitor mode" or capturing frames was +a considerable hack.  The document covers a redesign of that format. + +  Any questions, corrections, or proposed changes go to info@linux-wlan.com + +2. Frame Format +All sniff frames follow the same format: + +	Offset	Name		Size		Description +	-------------------------------------------------------------------- +	0	CaptureHeader			AVS capture metadata header +	64	802.11Header	[10-30]		802.11 frame header +	??	802.11Payload	[0-2312]	802.11 frame payload +	??	802.11FCS	4		802.11 frame check sequence + +Note that the header and payload are variable length and the payload +may be empty. + +If the hardware does not supply the FCS to the driver, then the frame shall +have a FCS of 0xFFFFFFFF. + +3. Byte Order +All multibyte fields of the capture header are in "network" byte +order.  The "host to network" and "network to host" functions should +work just fine.  All the remaining multibyte fields are ordered +according to their respective standards. + +4. Capture Header Format +The following fields make up the AVS capture header: + +	Offset	Name		Type +	------------------------------ +	0	version		uint32 +	4	length		uint32 +	8	mactime		uint64 +	16	hosttime	uint64 +	24	phytype		uint32 +	28	frequency	uint32 +	32	datarate	uint32 +	36	antenna		uint32 +	40	priority	uint32 +	44	ssi_type	uint32 +	48	ssi_signal	int32 +	52	ssi_noise	int32 +	56	preamble	uint32 +	60	encoding	uint32 +	64	sequence	uint32 +	68      drops           uint32 +        72      receiver_addr   uint8[6] +        78      padding         uint8[2] +	------------------------------ +	80 + +The following subsections detail the fields of the capture header. + +4.1 version +The version field identifies this type of frame as a subtype of +ETH_P_802111_CAPTURE as received by an ARPHRD_IEEE80211_PRISM or +an ARPHRD_IEEE80211_CAPTURE device.  The value of this field shall be +0x80211002.  As new revisions of this header are necessary, we can +increment the version appropriately. + +4.2 length +The length field contains the length of the entire AVS capture header, +in bytes. + +4.3 mactime +Many WLAN devices supply a relatively high resolution frame reception +time value.  This field contains the value supplied by the device.  If +the device does not supply a receive time value, this field shall be +set to zero.  The units for this field are microseconds.   + +If possible, this time value should be absolute, representing the number +of microseconds elapsed since the UNIX epoch. + +4.4 hosttime +The hosttime field is set to the current value of the host maintained +clock variable when the frame is received by the host.  + +If possible, this time value should be absolute, representing the number  +of microseconds elapsed since the UNIX epoch. + +4.5 phytype +The phytype field identifies what type of PHY is employed by the WLAN  +device used to capture this frame.  The valid values are: + +	PhyType				Value +	------------------------------------- +	phytype_fhss_dot11_97		 1 +	phytype_dsss_dot11_97		 2 +	phytype_irbaseband		 3 +	phytype_dsss_dot11_b		 4 +	phytype_pbcc_dot11_b		 5 +	phytype_ofdm_dot11_g		 6 +	phytype_pbcc_dot11_g		 7 +	phytype_ofdm_dot11_a		 8 +	phytype_dss_ofdm_dot11_g	 9 + +4.6 frequency + +This represents the frequency or channel number of the receiver at the  +time the frame was received.  It is interpreted as follows: + +For frequency hopping radios, this field is broken in to the  +following subfields: + +	Byte	Subfield +	------------------------ +	Byte0	Hop Set +	Byte1	Hop Pattern +	Byte2	Hop Index +	Byte3	reserved + +For non-hopping radios, the frequency is interpreted as follows: + +       Value                Meaning +    ----------------------------------------- +       < 256	       Channel number (using externally-defined +                         channelization) +       < 10000         Center frequency, in MHz +      >= 10000         Center frequency, in KHz + +4.7 datarate +The data rate field contains the rate at which the frame was received +in units of 100kbps. + +4.8 antenna +For WLAN devices that indicate the receive antenna for each frame, the +antenna field shall contain an index value into the dot11AntennaList. +If the device does not indicate a receive antenna value, this field +shall be set to zero. + +4.9 priority +The priority field indicates the receive priority of the frame.  The +value is in the range [0-15] with the value 0 reserved to indicate +contention period and the value 6 reserved to indicate contention free +period. + +4.10 ssi_type +The ssi_type field is used to indicate what type of signal strength +information is present: "None", "Normalized RSSI" or "dBm".  "None" +indicates that the underlying WLAN device does not supply any signal +strength at all and the ssi_* values are unset.  "Normalized RSSI" +values are integers in the range [0-1000] where higher numbers +indicate stronger signal.  "dBm" values indicate an actual signal  +strength measurement quantity and are usually in the range [-108 - 10]. +The following values indicate the three types: + +	Value	Description +	--------------------------------------------- +	0	None +	1	Normalized RSSI +	2	dBm +	3 	Raw RSSI + +4.11 ssi_signal +The ssi_signal field contains the signal strength value reported by +the WLAN device for this frame.  Note that this is a signed quantity +and if the ssi_type value is "dBm" that the value may be negative. + +4.12 ssi_noise +The ssi_noise field contains the noise or "silence" value reported by +the WLAN device.  This value is commonly defined to be the "signal +strength reported immediately prior to the baseband processor lock on +the frame preamble".  If the hardware does not provide noise data, this +shall equal 0xffffffff. + +4.12 preamble +For PHYs that support variable preamble lengths, the preamble field +indicates the preamble type used for this frame.  The values are: + +	Value	Description +	--------------------------------------------- +	0	Undefined +	1	Short Preamble +	2	Long Preamble + +4.13 encoding +This specifies the encoding of the received packet.  For PHYs that support +multiple encoding types, this will tell us which one was used. + +	Value	Description +	--------------------------------------------- +	0	Unknown +	1	CCK            +	2	PBCC +	3	OFDM +	4	DSSS-OFDM +	5       BPSK +        6       QPSK +        7       16QAM +        8       64QAM + +4.14 sequence +This is a receive frame sequence counter.  The sniff host shall  +increment this by one for every valid frame received off the medium. +By watching for gaps in the sequence numbers we can determine when  +packets are lost due to unreliable transport, rather than a frame never  +being received to begin with. + +4.15 drops +This is a counter of the number of known frame drops that occured.  This  +is particularly useful when the system or hardware cannot keep up with  +the sniffer load. + +4.16 receiver_addr +This specifies the MAC address of the receiver of this frame.   +It is six octets in length.  This field is followed by two octets of  +padding to keep the structure 32-bit word aligned. + +================================ + +Changes: v2->v2.1 + + * Added contact e-mail address to introduction + * Added sniffer_addr, drop count, and sequence fields, bringing total  +   length to 80 bytes + * Bumped version to 0x80211002 + * Mactime is specified in microseconds, not nanoseconds + * Added 64QAM, 16QAM, BPSK, QPSK encodings + +================================ + +Changes: v2.1->v2.1.1 + + * Renamed 'channel' to 'frequency' + * Clarified the interpretation of the frequency/channel field. + * Renamed 'sniffer address' to 'receiver address' + * Clarified timestamp fields. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.debug.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.debug.svn-base new file mode 100644 index 0000000..d37c18b --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.debug.svn-base @@ -0,0 +1,90 @@ +* doc/config.debug +* +* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- + +The kernel components of linux-wlan currently have debugging code +that can be enabled via a "make config" option.  If debug output +has been compiled into a driver, enable it by setting the value of the  +module parameter xxx_debug +where xxx is the name of the component.  There are five levels of +debugging (1-5).  Here's a summary of the levels and their usage: +    1 - Enables most error messages for exception (but rare) conditions +    2 - Enables more exceptions   +    3 - Enables MAC status output +    4 - More status +    5 - Function entry and exit + +The levels are additive.  For example, level 3 includes level 3 +messages plus levels 1 and 2. + +To configure p80211.o for debug output, put the following line (with +your own level number) in your modutils configuration file (usually +/etc/conf.modules or /etc/modules.conf): +  +  options p80211 wlan_debug=2 + +To configure the prism2_cs driver for debug output, put the following +line (with your own level number) in your /etc/pcmcia/config.opts +file: + +  module "prism2_cs" opts "prism2_debug=2" + +To configure the PCI, PLX, or USB driver for debug output, put the following +line (with your own level number) in your modutils configuration file (usually +/etc/conf.modules or /etc/modules.conf): + +  options prism2_pci prism2_debug=3 +  options prism2_plx prism2_debug=3 +  options prism2_usb prism2_debug=3 + + +Then configure the collection and display of your kernel output.  This +is usually done using syslog.  Here are the relevant entries from the +/etc/syslog.conf file on one of our test machines: + +kern.*						/var/log/kernel +kern.*						/dev/tty9 +*.info;mail.none;news.none;authpriv.none	/var/log/messages +*.info;mail.none;news.none;authpriv.none	/dev/tty10 + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.linux-wlan-ng.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.linux-wlan-ng.svn-base new file mode 100644 index 0000000..c6ec9d8 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.linux-wlan-ng.svn-base @@ -0,0 +1,264 @@ +* doc/config.linux-wlan-ng +* +* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- + +1. Summary + +This document describes a little more of the detail behind configuring the +linux-wlan system.   + +2. Installed Componenents + +The linux-wlan-ng package consists of the following components: + +   p80211.o		Kernel module for 802.11 services +   prism2sta_cs.o	Kernel module for the Prism2 PCMCIA device +   			driver. +   wlanctl-ng		User-mode utility for sending commands to +   			802.11 services and MAC-specific drivers. +   wland		User-mode daemon for receiving and handling +   			events from 802.11 services and MAC-specific +			drivers (not used in this version). +   /etc/pcmcia/wlan-ng*	PCMCIA event and configuration scripts + +   *prism2dl		This utility is used for loading firmware +   			images into prism2 cards.  DO NOT USE IT!  +			UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING.   +			This utility has the capability to damage a +			card in a way that can only be repaired by the +			manufacturer. + +When a 'make install' is performed, the modules are copied to the +/usr/lib/modules/<kernelver>/net and /usr/lib/modules/pcmcia directory, +the user-mode utilities are copied to /sbin, and the contents of +linux-wlan-ng/etc/pcmcia are copied to the /etc/pcmcia directory.  If +necessary, the pcmcia config files are altered to include a reference to +the wlan-ng.conf file containing the information cardmgr uses to match +card CIS information to specific device drivers at card insertion time. + +NOTE: It is very important that you restart your pcmcia services after +installing linux-wlan-ng.  cardmgr will not recognize the information +in the wlan-ng.conf file until after it has been restarted. + +	 +3. Configuration Variables + +To configure your installation for use, it will probably be necessary +to edit the /etc/pcmcia/wlan-ng.opts file.  This file contains a +collection of variable assignments that are used by the wlan-ng script +to intialize your card at insertion time.  The variables are broken +into groups: ENABLE, DOWNLOAD, USER MIB, WEP, STA, and AP START. + +Many of the choices involved in choosing configuration variable +settings are dependent on whether you are setting up your system as a  +Station (STA) or an Access Point (AP).  STA configuration is most +common.  If you are using a mobile station that will connect to one or +more APs, STA configuration is all you will need. + +3.1 ENABLE Group +The only variable is this group is: + +WLAN_ENABLE=y +	This variable determines whether the card will be intialized, +	configured for operation, and your protocol stack configured. +	Generally, you always want this set to 'y'.  For some cards, +	you will set this variable to 'n' when performing card +	maintenance like firmware upgrades. + +3.2 DOWNLOAD Group + +The DOWNLOAD group contains variables that indicate if code or data +needs to be downloaded to the card prior to initialization and normal +operation.  Currently, this is only required for the Prism2 card when +running in AP mode. + +WLAN_DOWNLOAD=n +	Set this variable to 'y' if code or data must be downloaded +	into the card prior to operation. + +WLAN_DOWNLOADER=/sbin/prism2dl +	This variable contains the name of the program used to +	download the code into the card. + +WLAN_DLIMAGE=/etc/wlan/apfw.hex +	This variable contains the name of the file you wish to +	download. + +3.3 USER MIB Group + +There is only one variable in this group, USER_MIBS.  You may add your +own local MIB item assignments assignments to this variable.  The +wlan-ng script will loop through the assignments found in this +variable and configure the card with each one prior to final +configuration and enable. + +3.4 WEP Group + +The variables in the WEP group are used to configure the 802.11 "Wired +Equivalent Privacy" element of the MAC if it is supported.  The driver +is queried for WEP support prior to attempting WEP configuration.  If +the driver states that WEP is NOT supported, these variables are +ignored.  Note that you may need to set some of these variables even if  +you are not using the privacy service.  If shared-key authentication +is used, the WEP keys must be present. + +dot11PrivacyInvoked=false +	Set this variable to "true" to enable the WEP support. + +lnxreq_hostWEPEncrypt=false +lnxreq_hostWEPDecrypt=false  +	Set these to true if you want WEP to be handled by the driver +	instead of the hardware.  The only downside of this is that it +	takes a bit of CPU time and you lose the ability to handle +	fragmentation.   However, with prism2 cards, you should see a +	performance boost, and with prism2.5 cards, this may avoid lockups. + +dot11WEPDefaultKeyID=1 +	This variable identifies which of the WEP keys is the default +	key used for all transmits from this station.  In some +	implementations, this can be changed (or rotated) later. + +dot11ExcludeUnencrypted=true +	Setting this variable to "true" and dot11PrivacyInvoked to +	true, has the effect of making WEP completely required for this  +	station (or AP).  If set to "true", this STA will discard any +	received frames that are not encrypted. + +PRIV_GENERATOR=/sbin/nwepgen +	Some vendors include "WEP Key Generator" programs as part of +	their windows or AP implementations.  This is purely a +	convenience to prevent you from having to type in 40 +	hexadecimal digits.  It does not contribute to the secrity of +	your system at all.  In some cases, we've included small +	programs that generate keys in a manner compatible with the +	vendor's method.  If you wish to use this capability, include +	the name of the generator program here. + +PRIV_GENSTR="12345" +	Every generator implementation we've seen so far uses some +	kind of 'passphrase' to generate the keys.  This variable +	contains the passphrase.  To disable the use of a generator, +	leave this variable empty. + +dot11WEPDefaultKey0 +dot11WEPDefaultKey1 +dot11WEPDefaultKey2 +dot11WEPDefaultKey3 +	If you are configuring your keys by hand, you need to assign +	these four variables.  The format is "xx:xx:xx:xx:xx" and the +	order of the keys in these variables IS IMPORTANT.  Note: If +	the PRIV_GENSTR variable is not empty, these variables are +	ignored. + +3.5 STA Group + +Currently, there is only one variable in the STA group.  This will +change over time. + +dot11DesiredSSID="WLAN_PRISM2" +	This variable contains the SSID or "network name" of the +	wireless network you wish to associate with. + +3.6 AP START Group + +If you have access to the necessary hardware and firmware, this driver +can be used to set up a Access Point.  To configure for an access +point, set the IS_AP variable to 'y'.  The following is a quick +summary of the other AP configuration variables: + + +APBRIDGEDEVICE=eth0 +	Defines the ethernet device that will be the 'other' port for +	bridging 802.11 frames. +APSSID="WLAN_PRISM2" +	Defines the SSID that the AP will use when creating the network. +APBCNINT=100 +	Defines the beacon interval (in Kus) that the AP will use. +APDTIMINT=3 +	Defines the DTIM interval (in beacon intervals). + +APCFPOLLABLE|APCFPOLLREQ | Description +--------------------------- +   false    |   false    | No point coordination by this AP +   false    |   true     | AP will point coordinate for delivery only +   true     |   false    | AP will point coordinate for deliver and polling +   true     |   true     | Reserved + +APCFPPERIOD=3 +	Defines how often the contention free period occurrs (in +	beacons). + +APCFPMAXDURATION=100 +	Defines the maximum length of the contention free period (in +	Kus). + +APPROBEDELAY=100 +	Not used for infrastructure networks, any value is valid. + +APCHANNEL=6 +	Channel that the AP will create the network on.  Range of valid +	values depends on you regulatory domain.  In the USA and Canada  +	the range is 1-11.  In Japan the range is 1-14. + + +APBASICRATES="2 4" +	A whitespace separated list of data rates in units of 500Kb/s. +	The basic rate set is the set of rates that stations MUST +	support to be allowed to join the network. + +APOPRATES="2 4 11 22" +	A whitespace separated list of data rates in units of 500Kb/s. +	The operational rate set is the set of rates that are allowed +	in the network.  It must be a superset of the basic rates +	above. + +To complete the configuration of an Access Point, you will need to +make sure you have kernel bridging enable in your currently running +kernel and have the brcfg utility installed.  One version of the brcfg +utility can be found at ftp://ftp.absoval.com + +To start the access point running, make sure the ethernet card is in the +system first.  Then insert the WLAN card and everything should be +configured automatically by the /etc/pcmcia/wlan-ng script. + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/releasepolicy.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/releasepolicy.txt.svn-base new file mode 100644 index 0000000..b66a571 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/releasepolicy.txt.svn-base @@ -0,0 +1,37 @@ +linux-wlan Release Policy/Checklist +-------------------------------------------------- + +[MSM Note: Here's a _quick_ attempt at a release policy for linux-wlan. +           It's very brief and relatively simple.  I'm open to suggestions +           for improvement. +] + +The following steps should be taken each time a new release of linux-wlan +is ready for distribution: + +0) Make sure the current code builds, loads, associates, and ftps  +   cleanly on all 3 AVS lab build boxes. +1) Assign an W.X.Y-preZ version number. +2) Update the version number in config.in. +3) Tag the files. +4) Build the tarball. (Bonehead! double check next time that the tarball +   and config.in version number match, eh?) +5) Release to ftp. +6) Announce on linux-wlan-annouce as a feature frozen 'pre' release. +7) Announce on freshmeat (Pavel? ;-) +8) Allow at least 24 hours for bug reports and (hopefully) bugfix patches. +9a) After 24 hour period, if bugfix patches and/or local fixes to bug  +    reports are present, apply patches and GOTO step 0. +9b) If no show-stopper bug-reports and/or patches are received during the +    'pre' release period GOTO step 10. +10) Make sure the current code builds, loads, associates, and ftps  +    cleanly on all 3 AVS lab build boxes. +11) Assign an W.X.Y version number. +12) Update the version number in config.in. +13) Tag the files. +14) Build the tarball. (Bonehead! double check next time that the tarball +    and config.in version number match, eh?) +15) Release to ftp. +16) Announce on linux-wlan-annouce as a final W.X.Y release. +17) Announce on freshmeat. + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/rh71notes.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/rh71notes.svn-base new file mode 100644 index 0000000..399a2e4 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/rh71notes.svn-base @@ -0,0 +1,61 @@ +[MSM]: Here's an old e-mail.  I'm not sure if it's in the list archives +so I figured I'd save it here. + +It may be useful for those using RH71. + +Date: Wed, 25 Apr 2001 16:03:20 +0800 +From: Leonard Ye <leonardye@yahoo.com> +Reply-To: linux-wlan-user@absoval.com +To: linux-wlan-user@absoval.com +Subject: [lwlan-user]: REDHAT 7.1 + wlan-ng 0.1.18 HOWTO + +Hi all, + +Just get the wlan-ng 0.1.18pre11 working on my redhat 7.1 and I would like  +to share the experiences with you. + +Assumption: +         a default installation of redhat 7.1 with  +kernel-pcmcia-cs-3.1.24-2.rpm installed + +Four steps as followings: + +1) Get kernel source ready +install kernel-source-2.4.2-2 if you don't have the kernel source ready on  +the machine +copy a suitable configuration file from the configs directory to .config +make dep + +2) Get pcmcia-cs header files ready +download the pcmcia-cs-3.1.24.tar.gz package +unzip it at appropriate place +make config +         when you were asked what kind of kernel configuration you want to  +use, select "1" +make all +DON'T "make install" + +3) compile the wlan-ng-0.1.18pre11 code +download the linux-wlan-ng-0.1.18pre11.tar.gz +unzip it at appropriate place +make config +         select build-in kernel support +make all +make install + +4) some minor configuration +edit /etc/pcmcia/config.opts to comment out the card definition for  +"Intersil PRISM2 11 .." +edit /etc/wlan-ng.opts +         change string p2RoamingMode to p2CnfRoamingMode +         set appropriate SSID for variable DesiredSSID +create an ifcfg-wlan0 file in /etc/sysconfig/network-scripts + +Ok, your machine should be able to work as a STA using  +wlan-ng-0.1.18pre11.  If you have experience with enabling AP mode, it  +shouldn't be a problem for you enable it in redhat 7.1 + +Regards, +Leonard Ye + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/Makefile new file mode 100644 index 0000000..9dfce56 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/Makefile @@ -0,0 +1,56 @@ +# doc/Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + +-include ../config.mk + +all: +	@echo "Nothing to do..." + +install: +	@echo "Nothing to do..." + +clean: +	rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags +	for i in *_obj; do if [ -d $$i ]; then rm -fr $$i; fi; done +	 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/capturefrm.txt b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/capturefrm.txt new file mode 100644 index 0000000..9ea908d --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/capturefrm.txt @@ -0,0 +1,233 @@ +AVS Capture Frame Format +Version 2.1.1 + +1. Introduction +The original header format for "monitor mode" or capturing frames was +a considerable hack.  The document covers a redesign of that format. + +  Any questions, corrections, or proposed changes go to info@linux-wlan.com + +2. Frame Format +All sniff frames follow the same format: + +	Offset	Name		Size		Description +	-------------------------------------------------------------------- +	0	CaptureHeader			AVS capture metadata header +	64	802.11Header	[10-30]		802.11 frame header +	??	802.11Payload	[0-2312]	802.11 frame payload +	??	802.11FCS	4		802.11 frame check sequence + +Note that the header and payload are variable length and the payload +may be empty. + +If the hardware does not supply the FCS to the driver, then the frame shall +have a FCS of 0xFFFFFFFF. + +3. Byte Order +All multibyte fields of the capture header are in "network" byte +order.  The "host to network" and "network to host" functions should +work just fine.  All the remaining multibyte fields are ordered +according to their respective standards. + +4. Capture Header Format +The following fields make up the AVS capture header: + +	Offset	Name		Type +	------------------------------ +	0	version		uint32 +	4	length		uint32 +	8	mactime		uint64 +	16	hosttime	uint64 +	24	phytype		uint32 +	28	frequency	uint32 +	32	datarate	uint32 +	36	antenna		uint32 +	40	priority	uint32 +	44	ssi_type	uint32 +	48	ssi_signal	int32 +	52	ssi_noise	int32 +	56	preamble	uint32 +	60	encoding	uint32 +	64	sequence	uint32 +	68      drops           uint32 +        72      receiver_addr   uint8[6] +        78      padding         uint8[2] +	------------------------------ +	80 + +The following subsections detail the fields of the capture header. + +4.1 version +The version field identifies this type of frame as a subtype of +ETH_P_802111_CAPTURE as received by an ARPHRD_IEEE80211_PRISM or +an ARPHRD_IEEE80211_CAPTURE device.  The value of this field shall be +0x80211002.  As new revisions of this header are necessary, we can +increment the version appropriately. + +4.2 length +The length field contains the length of the entire AVS capture header, +in bytes. + +4.3 mactime +Many WLAN devices supply a relatively high resolution frame reception +time value.  This field contains the value supplied by the device.  If +the device does not supply a receive time value, this field shall be +set to zero.  The units for this field are microseconds.   + +If possible, this time value should be absolute, representing the number +of microseconds elapsed since the UNIX epoch. + +4.4 hosttime +The hosttime field is set to the current value of the host maintained +clock variable when the frame is received by the host.  + +If possible, this time value should be absolute, representing the number  +of microseconds elapsed since the UNIX epoch. + +4.5 phytype +The phytype field identifies what type of PHY is employed by the WLAN  +device used to capture this frame.  The valid values are: + +	PhyType				Value +	------------------------------------- +	phytype_fhss_dot11_97		 1 +	phytype_dsss_dot11_97		 2 +	phytype_irbaseband		 3 +	phytype_dsss_dot11_b		 4 +	phytype_pbcc_dot11_b		 5 +	phytype_ofdm_dot11_g		 6 +	phytype_pbcc_dot11_g		 7 +	phytype_ofdm_dot11_a		 8 +	phytype_dss_ofdm_dot11_g	 9 + +4.6 frequency + +This represents the frequency or channel number of the receiver at the  +time the frame was received.  It is interpreted as follows: + +For frequency hopping radios, this field is broken in to the  +following subfields: + +	Byte	Subfield +	------------------------ +	Byte0	Hop Set +	Byte1	Hop Pattern +	Byte2	Hop Index +	Byte3	reserved + +For non-hopping radios, the frequency is interpreted as follows: + +       Value                Meaning +    ----------------------------------------- +       < 256	       Channel number (using externally-defined +                         channelization) +       < 10000         Center frequency, in MHz +      >= 10000         Center frequency, in KHz + +4.7 datarate +The data rate field contains the rate at which the frame was received +in units of 100kbps. + +4.8 antenna +For WLAN devices that indicate the receive antenna for each frame, the +antenna field shall contain an index value into the dot11AntennaList. +If the device does not indicate a receive antenna value, this field +shall be set to zero. + +4.9 priority +The priority field indicates the receive priority of the frame.  The +value is in the range [0-15] with the value 0 reserved to indicate +contention period and the value 6 reserved to indicate contention free +period. + +4.10 ssi_type +The ssi_type field is used to indicate what type of signal strength +information is present: "None", "Normalized RSSI" or "dBm".  "None" +indicates that the underlying WLAN device does not supply any signal +strength at all and the ssi_* values are unset.  "Normalized RSSI" +values are integers in the range [0-1000] where higher numbers +indicate stronger signal.  "dBm" values indicate an actual signal  +strength measurement quantity and are usually in the range [-108 - 10]. +The following values indicate the three types: + +	Value	Description +	--------------------------------------------- +	0	None +	1	Normalized RSSI +	2	dBm +	3 	Raw RSSI + +4.11 ssi_signal +The ssi_signal field contains the signal strength value reported by +the WLAN device for this frame.  Note that this is a signed quantity +and if the ssi_type value is "dBm" that the value may be negative. + +4.12 ssi_noise +The ssi_noise field contains the noise or "silence" value reported by +the WLAN device.  This value is commonly defined to be the "signal +strength reported immediately prior to the baseband processor lock on +the frame preamble".  If the hardware does not provide noise data, this +shall equal 0xffffffff. + +4.12 preamble +For PHYs that support variable preamble lengths, the preamble field +indicates the preamble type used for this frame.  The values are: + +	Value	Description +	--------------------------------------------- +	0	Undefined +	1	Short Preamble +	2	Long Preamble + +4.13 encoding +This specifies the encoding of the received packet.  For PHYs that support +multiple encoding types, this will tell us which one was used. + +	Value	Description +	--------------------------------------------- +	0	Unknown +	1	CCK            +	2	PBCC +	3	OFDM +	4	DSSS-OFDM +	5       BPSK +        6       QPSK +        7       16QAM +        8       64QAM + +4.14 sequence +This is a receive frame sequence counter.  The sniff host shall  +increment this by one for every valid frame received off the medium. +By watching for gaps in the sequence numbers we can determine when  +packets are lost due to unreliable transport, rather than a frame never  +being received to begin with. + +4.15 drops +This is a counter of the number of known frame drops that occured.  This  +is particularly useful when the system or hardware cannot keep up with  +the sniffer load. + +4.16 receiver_addr +This specifies the MAC address of the receiver of this frame.   +It is six octets in length.  This field is followed by two octets of  +padding to keep the structure 32-bit word aligned. + +================================ + +Changes: v2->v2.1 + + * Added contact e-mail address to introduction + * Added sniffer_addr, drop count, and sequence fields, bringing total  +   length to 80 bytes + * Bumped version to 0x80211002 + * Mactime is specified in microseconds, not nanoseconds + * Added 64QAM, 16QAM, BPSK, QPSK encodings + +================================ + +Changes: v2.1->v2.1.1 + + * Renamed 'channel' to 'frequency' + * Clarified the interpretation of the frequency/channel field. + * Renamed 'sniffer address' to 'receiver address' + * Clarified timestamp fields. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/entries new file mode 100644 index 0000000..314e9ad --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/entries @@ -0,0 +1,198 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/doc/codingstd +svn://svn.shaftnet.org/linux-wlan-ng + + + +2000-07-05T04:57:04.000000Z +510 +joellen + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +format.srcfile.c +file + + + + +2009-01-07T08:13:01.000000Z +4d03db773eb74f475d0c8f2d94c06449 +2000-07-05T04:57:04.000000Z +510 +joellen +has-props + + + + + + + + + + + + + + + + + + + + +3191 + +format.srcfile.html +file + + + + +2009-01-07T08:13:01.000000Z +b2e1c5b9966be041916882c0e484c7ea +2000-02-07T17:21:13.000000Z +288 +mark +has-props + + + + + + + + + + + + + + + + + + + + +8378 + +linux.CodingStyle +file + + + + +2009-01-07T08:13:01.000000Z +81f0b3e9b95008a87d2170a9e26c0dac +2000-02-07T17:21:13.000000Z +288 +mark +has-props + + + + + + + + + + + + + + + + + + + + +8508 + +format.hfile +file + + + + +2009-01-07T08:13:01.000000Z +0cad166bc14897b002f513cb888e2928 +2000-07-05T04:57:04.000000Z +510 +joellen +has-props + + + + + + + + + + + + + + + + + + + + +4416 + +format.srcfile +file + + + + +2009-01-07T08:13:01.000000Z +52a444d4129f9399d48da458765ad661 +2000-07-05T04:57:04.000000Z +510 +joellen +has-props + + + + + + + + + + + + + + + + + + + + +4591 + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.hfile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.hfile.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.hfile.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.c.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.c.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.html.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.html.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.html.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/linux.CodingStyle.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/linux.CodingStyle.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/linux.CodingStyle.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.hfile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.hfile.svn-base new file mode 100644 index 0000000..71d4a5f --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.hfile.svn-base @@ -0,0 +1,142 @@ +/* aheader.h: [one line description of the file] +*    -------------------------------------------------------------------- +* +*   [Project Name] +* +*   [License Statement, eg. +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.0 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ ] +* +*   [Warranty Statement, eg. +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. ] +* +*   [Author contact, eg. +*   Copyright (C) 1998 AbsoluteValue Software, Inc.  All Rights Reserved. +* +*   Inquiries regarding the linux-wlan Open Source project can be +*   made directly to: +* +*   AbsoluteValue Systems Inc. +*   info@linux-wlan.com +*   http://www.linux-wlan.com ] +* +*   [Change History] +* +*   [Verbose Description] +* +*   [Implementation and usage notes] +* +*   [References] +* +*    -------------------------------------------------------------------- +*/ + +#ifndef _AHEADER_H +#define _AHEADER_H + +/*=============================================================*/ +/*------ Constants --------------------------------------------*/ + +/*--- Fixed memory offsets --------------------------*/ +#define SU_OFF_LAST_TXDESC        0x3ec +#define SU_OFF_RSVD1              0x400 +#define SU_OFF_BANNER             0x480 +#define SU_OFF_CMD_BLK            0x4a0 +#define SU_OFF_CNTL_STATUS_BLK    0x4f0 +#define SU_OFF_VBM                0x500 +#define SU_OFF_BUFFER             0x600 + +/*--- Global Sizes ----------------------------------*/ +#define SU_LEN_BANNER             32 + + + +/*=============================================================*/ +/*------ Macros -----------------------------------------------*/ + +/*--- next testing macro (applies to Rx and Tx) -------*/ +#define SUTXD_ISLAST(x)            ((x) & BIT31) +#define SURXD_ISLAST(x)            ((x) & BIT31) + + +/*=============================================================*/ +/*------ Types and their related constants --------------------*/ + +/*--- Last Completed Tx Descriptor Block ---------------*/ +__WLAN_PRAGMA_PACK1__ +typedef struct am930txcmplt_blk +{ +    volatile UINT32    last_bcast    __WLAN_ATTRIB_PACK__; +    volatile UINT32    last_mgmt     __WLAN_ATTRIB_PACK__; +    volatile UINT32    last_data     __WLAN_ATTRIB_PACK__; +    volatile UINT32    last_pspoll   __WLAN_ATTRIB_PACK__; +    volatile UINT32    last_cfpoll   __WLAN_ATTRIB_PACK__; +} am930txcmplt_blk_t; +__WLAN_PRAGMA_PACKDFLT__ + +#define TXCMPLT_OFF_BCAST     0 +#define TXCMPLT_OFF_MGMT      4 +#define TXCMPLT_OFF_DATA      8 +#define TXCMPLT_OFF_PSPOLL    12 +#define TXCMPLT_OFF_CFPOLL    16       + +typedef void (*am930hw_scan_callback_t)(void *); + +/*=============================================================*/ +/*--- Function Declarations -----------------------------------*/ +/*=============================================================*/ +/* public: */ +am930hw_t*     +am930hw_construct(UINT32 irq, UINT32 iobase, +                  UINT32 membase, am930mac_t *mac); + +void         +am930hw_destruct(am930hw_t *hw); + +int +am930hw_init_rx_tx( am930hw_t *hw ); + +void +am930hw_ISR( am930hw_t *hw ); + +UINT32 +am930hw_joinbss( am930hw_t *hw, UINT32 ch, UINT32 newBSS,  +                 UINT8 *bssid, wlan_ie_ssid_t *ssid, UINT32 bcn_int, +                 wlan_bss_ts_t ts, UINT32 sutro_ref_time ); + +UINT32 +am930hw_scan( am930hw_t *hw, UINT32 cntl, UINT8 *bssid,  +              UINT32 ch, UINT32 duration, +              am930hw_scan_callback_t cb, void *callback_arg ); + +UINT32 +am930hw_reset( am930hw_t *hw ); + +/*=============================================================*/ +/*--- Inline Function Definitions (if supported) --------------*/ +/*=============================================================*/ + +/*---------------------------------------------------------------- +*	am930hw_reset +* +*   Perform reset of am930 part and test for valid operation +*   operation following reset. +* +*	returns: zero on success, non-zero if part fails to come up +*            after reset. +----------------------------------------------------------------*/ +__INLINE__ UINT32 am930hw_reset( am930hw_t* hw) +{ +	UINT32   result = 0; + +	/* perform reset */ +	/* test part */ +	return result; +} + +#endif /* _AHEADER_H */ diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.c.svn-base new file mode 100644 index 0000000..fdbb997 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.c.svn-base @@ -0,0 +1,113 @@ +/* [filename]: [one line description of the file] +* +* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- +* +* [File Description] +* +* [Implementation and Usage Notes]  +* +* -------------------------------------------------------------------- +*/ + +/*================================================================*/ +/* System Includes */ + + +/*================================================================*/ +/* Project Includes */ + + +/*================================================================*/ +/* Local Constants */ + + +/*================================================================*/ +/* Local Macros */ + + +/*================================================================*/ +/* Local Types */ + + +/*================================================================*/ +/* Local Static Definitions */ + +/*----------------------------------------------------------------*/ +/* --A subsection */ + + +/*================================================================*/ +/* Local Function Declarations */ + + +/*---------------------------------------------------------------- +* [function name] +* +* [Description] +* +* Arguments: +*	[arglist] +* +* Returns:  +*	[retlist] +* +* Side effects: +*	[desc] +* +* Call context: +*	[desc] +----------------------------------------------------------------*/ +int afunction(void) +{ +        DBFENTER; + +        if ( a ) { +                prinf("xxx"); +        } + + +        DBFEXIT; +        return 0; +} + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.html.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.html.svn-base new file mode 100644 index 0000000..c2ba914 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.html.svn-base @@ -0,0 +1,311 @@ +<HTML> +<HEAD> +    <TITLE>AVS C Source file format</TITLE> +</HEAD> +<BODY> +<H1>1. C Source file format</H1> +<P> +The following defines the common C source file format for linux-wlan. +Most of the C-code formatting rules come from the linux kernel +document <CODE>CodingStyle</CODE>. + +<H1>2. Characters and Code layout</H1> +<H2>2.1. Character Set</H2> +<P> +For all source files, we'll stick to the US character set and avoid all  +trigraphs. + +<H2>2.2. Indentation</H2> +<P> +All indentation will be done using tab characters which are mapped to a  +spacing of eight characters. + +<H2>2.3. Braces</H2> +<P> +Braces will be placed according to the format originally established +in Kernighan and Ritchie's book "The C Programming Language".  Here +are some example statements: +<P> +<TABLE border=1><TR><TD><PRE> + +for ( i= 0; i < N; i++) { +   . +   . +   . +} + +if ( a < b ) { +   . +   . +   . +} else { +   . +   . +   . +} + +do { +   . +   . +   . +} while ( i >> 0 ); +</PRE></TABLE> + + + +<H1>3. Naming and Definition Conventions</H1> + +<H2>3.1. Preprocessor Elements</H2> +<P> +All elements defined via the C preprocessor (constants and macros) are +named using all capital letters.  An exception is for macros that are +either wrapping function calls for portability or for macros that are +inline replacements for code that would normally be in a function. + +<H2>3.2. Types</H2> +<P> +All programmer defined types must have single word type names +defined using the <PRE>typedef</PRE> statement.  All type names +should be identified with an <PRE>_t</PRE> suffix.  This is +particularly important for function pointers that are members of +structures or arguments to functions. + +<P> +Anonymous types are not allowed.  All struct, union, and enum +types shall be named and typedef'd. + + +<H2>3.3. Variables</H2> +The following conventions should be followed for variable +declaration and naming: +	<UL> +		<LI>Variables should be named using meaningful names. +		<LI>Avoid variables with static lifetimes. +		<LI>If static lifetime variables must be used, use file +		scoped static variables and avoid static lifetime +		variables with visibility beyond file scope.  +		<LI>All static lifetime variables should be declared in +		the "Local Statics" section near the top of a given +		source file. +	</UL> + +<H2>3.4. Functions</H2> +The following conventions should be followed for function +declaration and definition: +	<UL> +		<LI><B>All</B> functions must be declared above the point +		where they are called. +		<LI>Any functions that are only intended to be called +		within a given source file should be declared static +		within that file. +		<LI>Functions defined within a common source file that are  +		visible across source file boundaries should be named +		using a prefix that is unique to that source file. +	</UL> + +<H1>4. File Layout</H1> +<P>  +Each file should be layed out using a common format.  The +following shows a complete file with all its major sections. + +<P> +Each major section within the file is begun with a comment of the +form: +<PRE> +/*================================================================*/ +/* [Section Name] */ +</PRE> + +<P> +Subsections within a major section are denoted using: +<PRE> +/*----------------------------------------------------------------*/ +/*  [Subsection Name]  */ +</PRE> + +<P> +<TABLE border=1><TR><TD> +<PRE> +/* [filename]: [one line description of the file] +* -------------------------------------------------------------------- +* +* [Project Name] +* +* [License Statement] +* +* [Warranty Statement] +* +* [Initial Author Statement] +*    +* -------------------------------------------------------------------- +* +* [Initial Author Contact] +* +* -------------------------------------------------------------------- +* +* [File Description] +* +* [Implementation and Usage Notes] +* +* -------------------------------------------------------------------- +*/ + +/*================================================================*/ +/* System Includes */ + + +/*================================================================*/ +/* Project Includes */ + + +/*================================================================*/ +/* Local Constants */ + + +/*================================================================*/ +/* Local Macros */ + +/*----------------------------------------------------------------*/ +/*  [A subsection]  */ + +/*================================================================*/ +/* Local Types */ + + +/*================================================================*/ +/* Local Static Definitions */ + + +/*================================================================*/ +/* Local Function Declarations */ + + +/*================================================================*/ +/* Function Definitions */ + +</PRE> +</TABLE> + +<H2>4.1. System  Includes Section</H2> +<P> +Preprocessor <CODE>#include</CODE> statements that are including +<I>system</I> includes shall be placed in this section.  System +includes are those include files that are <B>not</B> part of the +managed source for this project. + +<H2>4.2. Project Includes Section</H2> +<P> +Preprocessor <CODE>#include</CODE> statements that are including +<I>project</I> includes shall be placed in this section.  Project  +includes are those include files that are a part of the +managed source for this project. + +<H2>4.3. Local Constants Section</H2> +<P> +Preprocessor "manifest" constants that are local to this file shall be +placed in this section.  "Manifest" constants are preprocessor macros +that take no arguments. + +<H2>4.4. Local Macros Section</H2> +<P> +Proprocessor macros that accept arguments shall be placed in this +section. + +<H2>4.5. Local Types Section</H2> +<P> +Programmer defined types that are only used within the scope of this +file shall be defined in this section.  Programmer defined types that +are used in more than one source file should be defined in a header +file. + +<H2>4.6. Local Static Definitions Section</H2> +<P> +Variables with static extent that are defined within this file shall +be placed in this section.  Whether a variable has scope beyond this +file will be apparent based on the presence or absence of the +<CODE>static</CODE> keyword in the declaration.  If a variable is +declared without the <CODE>static</CODE> keyword, there should be an +<CODE>extern</CODE> declaration for that variable in a header file. + +<H2>4.6. Local Function Declarations Section</H2> +<P> +Functions that are only used within this file should be declared +(prototyped) in this section.  Additionally, these functions should be +declared using the <CODE>static</CODE> keyword.  This avoids polluting +the global namespace with function names that need not be +<CODE>extern</CODE>. + +<P> +Any functions defined in this file that <I>are</I> called from outside +this file should be declared (prototyped) in a header file. + +<H2>4.6. Function Definitions Section</H2> +<P> +This section contains the definitions of the functions in this file. +Each function (or group of strongly related functions) will be +preceded by a function header comment (see below). + +<H1>5. Comments</H1> +<H2>5.1. File Header</H2> +<P> +Each source file will have a header comment containing information +about the file as a whole.  That comment shall be formatted: +<P> +<TABLE border=1><TR><TD><PRE> +/* [filename]: [one line description of the file] +* -------------------------------------------------------------------- +* +* [Project Name] +* +* [License Statement] +* +* [Warranty Statement] +* +* [Initial Author Statement] +*    +* -------------------------------------------------------------------- +* +* [Initial Author Contact] +* +* -------------------------------------------------------------------- +* +* [File Description] +* +* [Implementation and Usage Notes] +* +* -------------------------------------------------------------------- +*/ +</PRE> +</TABLE> + +<H2>5.2. Function Header</H2> +<P> +Each function (or group of closely related functions) will be preceded  +by a function comment header.  The <CODE>Side effects</CODE> and +<CODE>Call context</CODE> sections are optional. +<P> +<TABLE border=1><TR><TD><PRE> +/*---------------------------------------------------------------- +* [function name] +* +* [description] +* +* Arguments: +*	[argument list] +* +* Returns:  +*	[return value list] +* +* Side effects: +*	[description of function side effects] +* +* Call context: +*	[description of calling context] +----------------------------------------------------------------*/ +</PRE> +</TABLE> + + +</BODY> +</HTML> + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.svn-base new file mode 100644 index 0000000..3c4b4c1 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.svn-base @@ -0,0 +1,138 @@ +<TABLE border=1> +<TR><TD><PRE> +/* asource.c: [one line description of file] +*    -------------------------------------------------------------------- +* +*   [Project Name] +* +*   [License Statement, eg. +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.0 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ ] +* +*   [Warranty Statement, eg. +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. ] +* +*   [Author contact, eg. +*   Copyright (C) 1998 AbsoluteValue Software, Inc.  All Rights Reserved. +* +*   Inquiries regarding the linux-wlan Open Source project can be +*   made directly to: +* +*   AbsoluteValue Systems Inc. +*   info@linux-wlan.com +*   http://www.linux-wlan.com ] +* +*   [Change History] +* +*   [Verbose Description] +* +*   [Implementation and usage notes] +* +*   [References] +* +*    -------------------------------------------------------------------- +*/ + +/* Portability/Compatibility header */ +#include <wlan/wlan_compat.h> + +/* The following prevents "kernel_version" from being set in this file. */ +#define __NO_VERSION__ + +/* Non-project specific includes */ +/* PCMCIA headers generated during PCMCIA package installation */ +#include <pcmcia/config.h> +#include <pcmcia/k_compat.h> + +/* Module related headers, non-module drivers should not include */ +#include <linux/version.h> + +#include <assert.h> +#include <linux/delay.h> +#include <linux/kernel.h> +#include <linux/types.h> +#include <linux/fcntl.h> +#include <linux/interrupt.h> +#include <linux/ptrace.h> +#include <linux/ioport.h> +#include <linux/in.h> +#include <linux/malloc.h> +#include <linux/string.h> +#include <linux/timer.h> +#include <asm/system.h> +#include <asm/bitops.h> +#include <asm/io.h> +#include <linux/errno.h> + +/* Project Includes */ +#include <wlan/version.h> +#include <wlan/am930mib.h> +#include <wlan/p80211hdr.h> +#include <wlan/p80211mgmt.h> +#include <wlan/wlan_ioctl.h> +#include <wlan/wlan_stable.h> +#include "am930di.h" +#include "am930llc.h" +#include "am930mac.h" +#include "am930hw.h" +#include "am930mgr.h" + +/*====================================================================*/ +/* Local Constants                                                    */ +/*====================================================================*/ + +#define ACONSTANT    22 + + +/*====================================================================*/ +/* Local Types                                                        */ +/*====================================================================*/ + +typdef struct atype +{ +    struct atype *next; +    struct atype *prev; +} atype_t; + + +/*====================================================================*/ +/* Static data defined in this file                                   */ +/*====================================================================*/ + +UINT8    wepkey[WLAN_WEP_NKEYS][WLAN_WEP_KEYLEN] = +{ +    { 0xf1, 0x10, 0xec, 0xe0, 0xdc }, +    { 0x0f, 0xf2, 0x04, 0x09, 0xfb }, +    { 0x13, 0x37, 0xf2, 0xf9, 0x2d }, +    { 0xe9, 0x17, 0x19, 0x63, 0xc7 } +}; + + +/*====================================================================*/ +/* Local Function Declarations                                        */ +/*====================================================================*/ + +static void am930mgr_authen1_rx( am930mgr_t *mgr, wlan_fr_authen_t *f ); +static void am930mgr_authen2_rx( am930mgr_t *mgr, wlan_fr_authen_t *f ); +static void am930mgr_authen3_rx( am930mgr_t *mgr, wlan_fr_authen_t *f ); +static void am930mgr_authen4_rx( am930mgr_t *mgr, wlan_fr_authen_t *f ); + +/*====================================================================*/ +/* Function Definitions                                               */ +/*====================================================================*/ + + +/*---------------------------------------------------------------- +*    am930mgr_assoc_begin_sta +* +*    Start the station association procedure.  Namely, send an +*    association request frame to the AP. +* +*    returns: nothing for now +----------------------------------------------------------------*/ +void am930mgr_assoc_begin_sta(am930mgr_t *mgr) diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/linux.CodingStyle.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/linux.CodingStyle.svn-base new file mode 100644 index 0000000..edba246 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/linux.CodingStyle.svn-base @@ -0,0 +1,212 @@ + +		Linux kernel coding style  + +This is a short document describing the preferred coding style for the +linux kernel.  Coding style is very personal, and I won't _force_ my +views on anybody, but this is what goes for anything that I have to be +able to maintain, and I'd prefer it for most other things too.  Please +at least consider the points made here.  + +First off, I'd suggest printing out a copy of the GNU coding standards, +and NOT read it.  Burn them, it's a great symbolic gesture.  + +Anyway, here goes: + + +	 	Chapter 1: Indentation + +Tabs are 8 characters, and thus indentations are also 8 characters.  +There are heretic movements that try to make indentations 4 (or even 2!) +characters deep, and that is akin to trying to define the value of PI to +be 3.  + +Rationale: The whole idea behind indentation is to clearly define where +a block of control starts and ends.  Especially when you've been looking +at your screen for 20 straight hours, you'll find it a lot easier to see +how the indentation works if you have large indentations.  + +Now, some people will claim that having 8-character indentations makes +the code move too far to the right, and makes it hard to read on a +80-character terminal screen.  The answer to that is that if you need +more than 3 levels of indentation, you're screwed anyway, and should fix +your program.  + +In short, 8-char indents make things easier to read, and have the added +benefit of warning you when you're nesting your functions too deep.  +Heed that warning.  + + +		Chapter 2: Placing Braces + +The other issue that always comes up in C styling is the placement of +braces.  Unlike the indent size, there are few technical reasons to +choose one placement strategy over the other, but the preferred way, as +shown to us by the prophets Kernighan and Ritchie, is to put the opening +brace last on the line, and put the closing brace first, thusly: + +	if (x is true) { +		we do y +	} + +However, there is one special case, namely functions: they have the +opening brace at the beginning of the next line, thus: + +	int function(int x) +	{ +		body of function +	} + +Heretic people all over the world have claimed that this inconsistency +is ...  well ...  inconsistent, but all right-thinking people know that +(a) K&R are _right_ and (b) K&R are right.  Besides, functions are +special anyway (you can't nest them in C).  + +Note that the closing brace is empty on a line of its own, _except_ in +the cases where it is followed by a continuation of the same statement, +ie a "while" in a do-statement or an "else" in an if-statement, like +this: + +	do { +		body of do-loop +	} while (condition); + +and + +	if (x == y) { +		.. +	} else if (x > y) { +		... +	} else { +		.... +	} +			 +Rationale: K&R.  + +Also, note that this brace-placement also minimizes the number of empty +(or almost empty) lines, without any loss of readability.  Thus, as the +supply of new-lines on your screen is not a renewable resource (think +25-line terminal screens here), you have more empty lines to put +comments on.  + + +		Chapter 3: Naming + +C is a Spartan language, and so should your naming be.  Unlike Modula-2 +and Pascal programmers, C programmers do not use cute names like +ThisVariableIsATemporaryCounter.  A C programmer would call that +variable "tmp", which is much easier to write, and not the least more +difficult to understand.  + +HOWEVER, while mixed-case names are frowned upon, descriptive names for +global variables are a must.  To call a global function "foo" is a +shooting offense.  + +GLOBAL variables (to be used only if you _really_ need them) need to +have descriptive names, as do global functions.  If you have a function +that counts the number of active users, you should call that +"count_active_users()" or similar, you should _not_ call it "cntusr()".  + +Encoding the type of a function into the name (so-called Hungarian +notation) is brain damaged - the compiler knows the types anyway and can +check those, and it only confuses the programmer.  No wonder MicroSoft +makes buggy programs.  + +LOCAL variable names should be short, and to the point.  If you have +some random integer loop counter, it should probably be called "i".  +Calling it "loop_counter" is non-productive, if there is no chance of it +being mis-understood.  Similarly, "tmp" can be just about any type of +variable that is used to hold a temporary value.  + +If you are afraid to mix up your local variable names, you have another +problem, which is called the function-growth-hormone-imbalance syndrome.  +See next chapter.  + +		 +		Chapter 4: Functions + +Functions should be short and sweet, and do just one thing.  They should +fit on one or two screenfuls of text (the ISO/ANSI screen size is 80x24, +as we all know), and do one thing and do that well.  + +The maximum length of a function is inversely proportional to the +complexity and indentation level of that function.  So, if you have a +conceptually simple function that is just one long (but simple) +case-statement, where you have to do lots of small things for a lot of +different cases, it's OK to have a longer function.  + +However, if you have a complex function, and you suspect that a +less-than-gifted first-year high-school student might not even +understand what the function is all about, you should adhere to the +maximum limits all the more closely.  Use helper functions with +descriptive names (you can ask the compiler to in-line them if you think +it's performance-critical, and it will probably do a better job of it +that you would have done).  + +Another measure of the function is the number of local variables.  They +shouldn't exceed 5-10, or you're doing something wrong.  Re-think the +function, and split it into smaller pieces.  A human brain can +generally easily keep track of about 7 different things, anything more +and it gets confused.  You know you're brilliant, but maybe you'd like +to understand what you did 2 weeks from now.  + + +		Chapter 5: Commenting + +Comments are good, but there is also a danger of over-commenting.  NEVER +try to explain HOW your code works in a comment: it's much better to +write the code so that the _working_ is obvious, and it's a waste of +time to explain badly written code.  + +Generally, you want your comments to tell WHAT your code does, not HOW.  +Also, try to avoid putting comments inside a function body: if the +function is so complex that you need to separately comment parts of it, +you should probably go back to chapter 4 for a while.  You can make +small comments to note or warn about something particularly clever (or +ugly), but try to avoid excess.  Instead, put the comments at the head +of the function, telling people what it does, and possibly WHY it does +it.  + + +		Chapter 6: You've made a mess of it + +That's OK, we all do.  You've probably been told by your long-time Unix +user helper that "GNU emacs" automatically formats the C sources for +you, and you've noticed that yes, it does do that, but the defaults it +uses are less than desirable (in fact, they are worse than random +typing - a infinite number of monkeys typing into GNU emacs would never +make a good program).  + +So, you can either get rid of GNU emacs, or change it to use saner +values.  To do the latter, you can stick the following in your .emacs file: + +(defun linux-c-mode () +  "C mode with adjusted defaults for use with the Linux kernel." +  (interactive) +  (c-mode) +  (c-set-style "K&R") +  (setq c-basic-offset 8)) + +This will define the M-x linux-c-mode command.  When hacking on a +module, if you put the string -*- linux-c -*- somewhere on the first +two lines, this mode will be automatically invoked. Also, you may want +to add + +(setq auto-mode-alist (cons '("/usr/src/linux.*/.*\\.[ch]$" . linux-c-mode) +                       auto-mode-alist)) + +to your .emacs file if you want to have linux-c-mode switched on +automagically when you edit source files under /usr/src/linux. + +But even if you fail in getting emacs to do sane formatting, not +everything is lost: use "indent". + +Now, again, GNU indent has the same brain dead settings that GNU emacs +has, which is why you need to give it a few command line options.  +However, that's not too bad, because even the makers of GNU indent +recognize the authority of K&R (the GNU people aren't evil, they are +just severely misguided in this matter), so you just give indent the +options "-kr -i8" (stands for "K&R, 8 character indents").  + +"indent" has a lot of options, and especially when it comes to comment +re-formatting you may want to take a look at the manual page.  But +remember: "indent" is not a fix for bad programming.  diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.hfile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.hfile new file mode 100644 index 0000000..71d4a5f --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.hfile @@ -0,0 +1,142 @@ +/* aheader.h: [one line description of the file] +*    -------------------------------------------------------------------- +* +*   [Project Name] +* +*   [License Statement, eg. +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.0 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ ] +* +*   [Warranty Statement, eg. +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. ] +* +*   [Author contact, eg. +*   Copyright (C) 1998 AbsoluteValue Software, Inc.  All Rights Reserved. +* +*   Inquiries regarding the linux-wlan Open Source project can be +*   made directly to: +* +*   AbsoluteValue Systems Inc. +*   info@linux-wlan.com +*   http://www.linux-wlan.com ] +* +*   [Change History] +* +*   [Verbose Description] +* +*   [Implementation and usage notes] +* +*   [References] +* +*    -------------------------------------------------------------------- +*/ + +#ifndef _AHEADER_H +#define _AHEADER_H + +/*=============================================================*/ +/*------ Constants --------------------------------------------*/ + +/*--- Fixed memory offsets --------------------------*/ +#define SU_OFF_LAST_TXDESC        0x3ec +#define SU_OFF_RSVD1              0x400 +#define SU_OFF_BANNER             0x480 +#define SU_OFF_CMD_BLK            0x4a0 +#define SU_OFF_CNTL_STATUS_BLK    0x4f0 +#define SU_OFF_VBM                0x500 +#define SU_OFF_BUFFER             0x600 + +/*--- Global Sizes ----------------------------------*/ +#define SU_LEN_BANNER             32 + + + +/*=============================================================*/ +/*------ Macros -----------------------------------------------*/ + +/*--- next testing macro (applies to Rx and Tx) -------*/ +#define SUTXD_ISLAST(x)            ((x) & BIT31) +#define SURXD_ISLAST(x)            ((x) & BIT31) + + +/*=============================================================*/ +/*------ Types and their related constants --------------------*/ + +/*--- Last Completed Tx Descriptor Block ---------------*/ +__WLAN_PRAGMA_PACK1__ +typedef struct am930txcmplt_blk +{ +    volatile UINT32    last_bcast    __WLAN_ATTRIB_PACK__; +    volatile UINT32    last_mgmt     __WLAN_ATTRIB_PACK__; +    volatile UINT32    last_data     __WLAN_ATTRIB_PACK__; +    volatile UINT32    last_pspoll   __WLAN_ATTRIB_PACK__; +    volatile UINT32    last_cfpoll   __WLAN_ATTRIB_PACK__; +} am930txcmplt_blk_t; +__WLAN_PRAGMA_PACKDFLT__ + +#define TXCMPLT_OFF_BCAST     0 +#define TXCMPLT_OFF_MGMT      4 +#define TXCMPLT_OFF_DATA      8 +#define TXCMPLT_OFF_PSPOLL    12 +#define TXCMPLT_OFF_CFPOLL    16       + +typedef void (*am930hw_scan_callback_t)(void *); + +/*=============================================================*/ +/*--- Function Declarations -----------------------------------*/ +/*=============================================================*/ +/* public: */ +am930hw_t*     +am930hw_construct(UINT32 irq, UINT32 iobase, +                  UINT32 membase, am930mac_t *mac); + +void         +am930hw_destruct(am930hw_t *hw); + +int +am930hw_init_rx_tx( am930hw_t *hw ); + +void +am930hw_ISR( am930hw_t *hw ); + +UINT32 +am930hw_joinbss( am930hw_t *hw, UINT32 ch, UINT32 newBSS,  +                 UINT8 *bssid, wlan_ie_ssid_t *ssid, UINT32 bcn_int, +                 wlan_bss_ts_t ts, UINT32 sutro_ref_time ); + +UINT32 +am930hw_scan( am930hw_t *hw, UINT32 cntl, UINT8 *bssid,  +              UINT32 ch, UINT32 duration, +              am930hw_scan_callback_t cb, void *callback_arg ); + +UINT32 +am930hw_reset( am930hw_t *hw ); + +/*=============================================================*/ +/*--- Inline Function Definitions (if supported) --------------*/ +/*=============================================================*/ + +/*---------------------------------------------------------------- +*	am930hw_reset +* +*   Perform reset of am930 part and test for valid operation +*   operation following reset. +* +*	returns: zero on success, non-zero if part fails to come up +*            after reset. +----------------------------------------------------------------*/ +__INLINE__ UINT32 am930hw_reset( am930hw_t* hw) +{ +	UINT32   result = 0; + +	/* perform reset */ +	/* test part */ +	return result; +} + +#endif /* _AHEADER_H */ diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile new file mode 100644 index 0000000..3c4b4c1 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile @@ -0,0 +1,138 @@ +<TABLE border=1> +<TR><TD><PRE> +/* asource.c: [one line description of file] +*    -------------------------------------------------------------------- +* +*   [Project Name] +* +*   [License Statement, eg. +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.0 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ ] +* +*   [Warranty Statement, eg. +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. ] +* +*   [Author contact, eg. +*   Copyright (C) 1998 AbsoluteValue Software, Inc.  All Rights Reserved. +* +*   Inquiries regarding the linux-wlan Open Source project can be +*   made directly to: +* +*   AbsoluteValue Systems Inc. +*   info@linux-wlan.com +*   http://www.linux-wlan.com ] +* +*   [Change History] +* +*   [Verbose Description] +* +*   [Implementation and usage notes] +* +*   [References] +* +*    -------------------------------------------------------------------- +*/ + +/* Portability/Compatibility header */ +#include <wlan/wlan_compat.h> + +/* The following prevents "kernel_version" from being set in this file. */ +#define __NO_VERSION__ + +/* Non-project specific includes */ +/* PCMCIA headers generated during PCMCIA package installation */ +#include <pcmcia/config.h> +#include <pcmcia/k_compat.h> + +/* Module related headers, non-module drivers should not include */ +#include <linux/version.h> + +#include <assert.h> +#include <linux/delay.h> +#include <linux/kernel.h> +#include <linux/types.h> +#include <linux/fcntl.h> +#include <linux/interrupt.h> +#include <linux/ptrace.h> +#include <linux/ioport.h> +#include <linux/in.h> +#include <linux/malloc.h> +#include <linux/string.h> +#include <linux/timer.h> +#include <asm/system.h> +#include <asm/bitops.h> +#include <asm/io.h> +#include <linux/errno.h> + +/* Project Includes */ +#include <wlan/version.h> +#include <wlan/am930mib.h> +#include <wlan/p80211hdr.h> +#include <wlan/p80211mgmt.h> +#include <wlan/wlan_ioctl.h> +#include <wlan/wlan_stable.h> +#include "am930di.h" +#include "am930llc.h" +#include "am930mac.h" +#include "am930hw.h" +#include "am930mgr.h" + +/*====================================================================*/ +/* Local Constants                                                    */ +/*====================================================================*/ + +#define ACONSTANT    22 + + +/*====================================================================*/ +/* Local Types                                                        */ +/*====================================================================*/ + +typdef struct atype +{ +    struct atype *next; +    struct atype *prev; +} atype_t; + + +/*====================================================================*/ +/* Static data defined in this file                                   */ +/*====================================================================*/ + +UINT8    wepkey[WLAN_WEP_NKEYS][WLAN_WEP_KEYLEN] = +{ +    { 0xf1, 0x10, 0xec, 0xe0, 0xdc }, +    { 0x0f, 0xf2, 0x04, 0x09, 0xfb }, +    { 0x13, 0x37, 0xf2, 0xf9, 0x2d }, +    { 0xe9, 0x17, 0x19, 0x63, 0xc7 } +}; + + +/*====================================================================*/ +/* Local Function Declarations                                        */ +/*====================================================================*/ + +static void am930mgr_authen1_rx( am930mgr_t *mgr, wlan_fr_authen_t *f ); +static void am930mgr_authen2_rx( am930mgr_t *mgr, wlan_fr_authen_t *f ); +static void am930mgr_authen3_rx( am930mgr_t *mgr, wlan_fr_authen_t *f ); +static void am930mgr_authen4_rx( am930mgr_t *mgr, wlan_fr_authen_t *f ); + +/*====================================================================*/ +/* Function Definitions                                               */ +/*====================================================================*/ + + +/*---------------------------------------------------------------- +*    am930mgr_assoc_begin_sta +* +*    Start the station association procedure.  Namely, send an +*    association request frame to the AP. +* +*    returns: nothing for now +----------------------------------------------------------------*/ +void am930mgr_assoc_begin_sta(am930mgr_t *mgr) diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.c b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.c new file mode 100644 index 0000000..fdbb997 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.c @@ -0,0 +1,113 @@ +/* [filename]: [one line description of the file] +* +* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- +* +* [File Description] +* +* [Implementation and Usage Notes]  +* +* -------------------------------------------------------------------- +*/ + +/*================================================================*/ +/* System Includes */ + + +/*================================================================*/ +/* Project Includes */ + + +/*================================================================*/ +/* Local Constants */ + + +/*================================================================*/ +/* Local Macros */ + + +/*================================================================*/ +/* Local Types */ + + +/*================================================================*/ +/* Local Static Definitions */ + +/*----------------------------------------------------------------*/ +/* --A subsection */ + + +/*================================================================*/ +/* Local Function Declarations */ + + +/*---------------------------------------------------------------- +* [function name] +* +* [Description] +* +* Arguments: +*	[arglist] +* +* Returns:  +*	[retlist] +* +* Side effects: +*	[desc] +* +* Call context: +*	[desc] +----------------------------------------------------------------*/ +int afunction(void) +{ +        DBFENTER; + +        if ( a ) { +                prinf("xxx"); +        } + + +        DBFEXIT; +        return 0; +} + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.html b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.html new file mode 100644 index 0000000..c2ba914 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.html @@ -0,0 +1,311 @@ +<HTML> +<HEAD> +    <TITLE>AVS C Source file format</TITLE> +</HEAD> +<BODY> +<H1>1. C Source file format</H1> +<P> +The following defines the common C source file format for linux-wlan. +Most of the C-code formatting rules come from the linux kernel +document <CODE>CodingStyle</CODE>. + +<H1>2. Characters and Code layout</H1> +<H2>2.1. Character Set</H2> +<P> +For all source files, we'll stick to the US character set and avoid all  +trigraphs. + +<H2>2.2. Indentation</H2> +<P> +All indentation will be done using tab characters which are mapped to a  +spacing of eight characters. + +<H2>2.3. Braces</H2> +<P> +Braces will be placed according to the format originally established +in Kernighan and Ritchie's book "The C Programming Language".  Here +are some example statements: +<P> +<TABLE border=1><TR><TD><PRE> + +for ( i= 0; i < N; i++) { +   . +   . +   . +} + +if ( a < b ) { +   . +   . +   . +} else { +   . +   . +   . +} + +do { +   . +   . +   . +} while ( i >> 0 ); +</PRE></TABLE> + + + +<H1>3. Naming and Definition Conventions</H1> + +<H2>3.1. Preprocessor Elements</H2> +<P> +All elements defined via the C preprocessor (constants and macros) are +named using all capital letters.  An exception is for macros that are +either wrapping function calls for portability or for macros that are +inline replacements for code that would normally be in a function. + +<H2>3.2. Types</H2> +<P> +All programmer defined types must have single word type names +defined using the <PRE>typedef</PRE> statement.  All type names +should be identified with an <PRE>_t</PRE> suffix.  This is +particularly important for function pointers that are members of +structures or arguments to functions. + +<P> +Anonymous types are not allowed.  All struct, union, and enum +types shall be named and typedef'd. + + +<H2>3.3. Variables</H2> +The following conventions should be followed for variable +declaration and naming: +	<UL> +		<LI>Variables should be named using meaningful names. +		<LI>Avoid variables with static lifetimes. +		<LI>If static lifetime variables must be used, use file +		scoped static variables and avoid static lifetime +		variables with visibility beyond file scope.  +		<LI>All static lifetime variables should be declared in +		the "Local Statics" section near the top of a given +		source file. +	</UL> + +<H2>3.4. Functions</H2> +The following conventions should be followed for function +declaration and definition: +	<UL> +		<LI><B>All</B> functions must be declared above the point +		where they are called. +		<LI>Any functions that are only intended to be called +		within a given source file should be declared static +		within that file. +		<LI>Functions defined within a common source file that are  +		visible across source file boundaries should be named +		using a prefix that is unique to that source file. +	</UL> + +<H1>4. File Layout</H1> +<P>  +Each file should be layed out using a common format.  The +following shows a complete file with all its major sections. + +<P> +Each major section within the file is begun with a comment of the +form: +<PRE> +/*================================================================*/ +/* [Section Name] */ +</PRE> + +<P> +Subsections within a major section are denoted using: +<PRE> +/*----------------------------------------------------------------*/ +/*  [Subsection Name]  */ +</PRE> + +<P> +<TABLE border=1><TR><TD> +<PRE> +/* [filename]: [one line description of the file] +* -------------------------------------------------------------------- +* +* [Project Name] +* +* [License Statement] +* +* [Warranty Statement] +* +* [Initial Author Statement] +*    +* -------------------------------------------------------------------- +* +* [Initial Author Contact] +* +* -------------------------------------------------------------------- +* +* [File Description] +* +* [Implementation and Usage Notes] +* +* -------------------------------------------------------------------- +*/ + +/*================================================================*/ +/* System Includes */ + + +/*================================================================*/ +/* Project Includes */ + + +/*================================================================*/ +/* Local Constants */ + + +/*================================================================*/ +/* Local Macros */ + +/*----------------------------------------------------------------*/ +/*  [A subsection]  */ + +/*================================================================*/ +/* Local Types */ + + +/*================================================================*/ +/* Local Static Definitions */ + + +/*================================================================*/ +/* Local Function Declarations */ + + +/*================================================================*/ +/* Function Definitions */ + +</PRE> +</TABLE> + +<H2>4.1. System  Includes Section</H2> +<P> +Preprocessor <CODE>#include</CODE> statements that are including +<I>system</I> includes shall be placed in this section.  System +includes are those include files that are <B>not</B> part of the +managed source for this project. + +<H2>4.2. Project Includes Section</H2> +<P> +Preprocessor <CODE>#include</CODE> statements that are including +<I>project</I> includes shall be placed in this section.  Project  +includes are those include files that are a part of the +managed source for this project. + +<H2>4.3. Local Constants Section</H2> +<P> +Preprocessor "manifest" constants that are local to this file shall be +placed in this section.  "Manifest" constants are preprocessor macros +that take no arguments. + +<H2>4.4. Local Macros Section</H2> +<P> +Proprocessor macros that accept arguments shall be placed in this +section. + +<H2>4.5. Local Types Section</H2> +<P> +Programmer defined types that are only used within the scope of this +file shall be defined in this section.  Programmer defined types that +are used in more than one source file should be defined in a header +file. + +<H2>4.6. Local Static Definitions Section</H2> +<P> +Variables with static extent that are defined within this file shall +be placed in this section.  Whether a variable has scope beyond this +file will be apparent based on the presence or absence of the +<CODE>static</CODE> keyword in the declaration.  If a variable is +declared without the <CODE>static</CODE> keyword, there should be an +<CODE>extern</CODE> declaration for that variable in a header file. + +<H2>4.6. Local Function Declarations Section</H2> +<P> +Functions that are only used within this file should be declared +(prototyped) in this section.  Additionally, these functions should be +declared using the <CODE>static</CODE> keyword.  This avoids polluting +the global namespace with function names that need not be +<CODE>extern</CODE>. + +<P> +Any functions defined in this file that <I>are</I> called from outside +this file should be declared (prototyped) in a header file. + +<H2>4.6. Function Definitions Section</H2> +<P> +This section contains the definitions of the functions in this file. +Each function (or group of strongly related functions) will be +preceded by a function header comment (see below). + +<H1>5. Comments</H1> +<H2>5.1. File Header</H2> +<P> +Each source file will have a header comment containing information +about the file as a whole.  That comment shall be formatted: +<P> +<TABLE border=1><TR><TD><PRE> +/* [filename]: [one line description of the file] +* -------------------------------------------------------------------- +* +* [Project Name] +* +* [License Statement] +* +* [Warranty Statement] +* +* [Initial Author Statement] +*    +* -------------------------------------------------------------------- +* +* [Initial Author Contact] +* +* -------------------------------------------------------------------- +* +* [File Description] +* +* [Implementation and Usage Notes] +* +* -------------------------------------------------------------------- +*/ +</PRE> +</TABLE> + +<H2>5.2. Function Header</H2> +<P> +Each function (or group of closely related functions) will be preceded  +by a function comment header.  The <CODE>Side effects</CODE> and +<CODE>Call context</CODE> sections are optional. +<P> +<TABLE border=1><TR><TD><PRE> +/*---------------------------------------------------------------- +* [function name] +* +* [description] +* +* Arguments: +*	[argument list] +* +* Returns:  +*	[return value list] +* +* Side effects: +*	[description of function side effects] +* +* Call context: +*	[description of calling context] +----------------------------------------------------------------*/ +</PRE> +</TABLE> + + +</BODY> +</HTML> + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/linux.CodingStyle b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/linux.CodingStyle new file mode 100644 index 0000000..edba246 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/linux.CodingStyle @@ -0,0 +1,212 @@ + +		Linux kernel coding style  + +This is a short document describing the preferred coding style for the +linux kernel.  Coding style is very personal, and I won't _force_ my +views on anybody, but this is what goes for anything that I have to be +able to maintain, and I'd prefer it for most other things too.  Please +at least consider the points made here.  + +First off, I'd suggest printing out a copy of the GNU coding standards, +and NOT read it.  Burn them, it's a great symbolic gesture.  + +Anyway, here goes: + + +	 	Chapter 1: Indentation + +Tabs are 8 characters, and thus indentations are also 8 characters.  +There are heretic movements that try to make indentations 4 (or even 2!) +characters deep, and that is akin to trying to define the value of PI to +be 3.  + +Rationale: The whole idea behind indentation is to clearly define where +a block of control starts and ends.  Especially when you've been looking +at your screen for 20 straight hours, you'll find it a lot easier to see +how the indentation works if you have large indentations.  + +Now, some people will claim that having 8-character indentations makes +the code move too far to the right, and makes it hard to read on a +80-character terminal screen.  The answer to that is that if you need +more than 3 levels of indentation, you're screwed anyway, and should fix +your program.  + +In short, 8-char indents make things easier to read, and have the added +benefit of warning you when you're nesting your functions too deep.  +Heed that warning.  + + +		Chapter 2: Placing Braces + +The other issue that always comes up in C styling is the placement of +braces.  Unlike the indent size, there are few technical reasons to +choose one placement strategy over the other, but the preferred way, as +shown to us by the prophets Kernighan and Ritchie, is to put the opening +brace last on the line, and put the closing brace first, thusly: + +	if (x is true) { +		we do y +	} + +However, there is one special case, namely functions: they have the +opening brace at the beginning of the next line, thus: + +	int function(int x) +	{ +		body of function +	} + +Heretic people all over the world have claimed that this inconsistency +is ...  well ...  inconsistent, but all right-thinking people know that +(a) K&R are _right_ and (b) K&R are right.  Besides, functions are +special anyway (you can't nest them in C).  + +Note that the closing brace is empty on a line of its own, _except_ in +the cases where it is followed by a continuation of the same statement, +ie a "while" in a do-statement or an "else" in an if-statement, like +this: + +	do { +		body of do-loop +	} while (condition); + +and + +	if (x == y) { +		.. +	} else if (x > y) { +		... +	} else { +		.... +	} +			 +Rationale: K&R.  + +Also, note that this brace-placement also minimizes the number of empty +(or almost empty) lines, without any loss of readability.  Thus, as the +supply of new-lines on your screen is not a renewable resource (think +25-line terminal screens here), you have more empty lines to put +comments on.  + + +		Chapter 3: Naming + +C is a Spartan language, and so should your naming be.  Unlike Modula-2 +and Pascal programmers, C programmers do not use cute names like +ThisVariableIsATemporaryCounter.  A C programmer would call that +variable "tmp", which is much easier to write, and not the least more +difficult to understand.  + +HOWEVER, while mixed-case names are frowned upon, descriptive names for +global variables are a must.  To call a global function "foo" is a +shooting offense.  + +GLOBAL variables (to be used only if you _really_ need them) need to +have descriptive names, as do global functions.  If you have a function +that counts the number of active users, you should call that +"count_active_users()" or similar, you should _not_ call it "cntusr()".  + +Encoding the type of a function into the name (so-called Hungarian +notation) is brain damaged - the compiler knows the types anyway and can +check those, and it only confuses the programmer.  No wonder MicroSoft +makes buggy programs.  + +LOCAL variable names should be short, and to the point.  If you have +some random integer loop counter, it should probably be called "i".  +Calling it "loop_counter" is non-productive, if there is no chance of it +being mis-understood.  Similarly, "tmp" can be just about any type of +variable that is used to hold a temporary value.  + +If you are afraid to mix up your local variable names, you have another +problem, which is called the function-growth-hormone-imbalance syndrome.  +See next chapter.  + +		 +		Chapter 4: Functions + +Functions should be short and sweet, and do just one thing.  They should +fit on one or two screenfuls of text (the ISO/ANSI screen size is 80x24, +as we all know), and do one thing and do that well.  + +The maximum length of a function is inversely proportional to the +complexity and indentation level of that function.  So, if you have a +conceptually simple function that is just one long (but simple) +case-statement, where you have to do lots of small things for a lot of +different cases, it's OK to have a longer function.  + +However, if you have a complex function, and you suspect that a +less-than-gifted first-year high-school student might not even +understand what the function is all about, you should adhere to the +maximum limits all the more closely.  Use helper functions with +descriptive names (you can ask the compiler to in-line them if you think +it's performance-critical, and it will probably do a better job of it +that you would have done).  + +Another measure of the function is the number of local variables.  They +shouldn't exceed 5-10, or you're doing something wrong.  Re-think the +function, and split it into smaller pieces.  A human brain can +generally easily keep track of about 7 different things, anything more +and it gets confused.  You know you're brilliant, but maybe you'd like +to understand what you did 2 weeks from now.  + + +		Chapter 5: Commenting + +Comments are good, but there is also a danger of over-commenting.  NEVER +try to explain HOW your code works in a comment: it's much better to +write the code so that the _working_ is obvious, and it's a waste of +time to explain badly written code.  + +Generally, you want your comments to tell WHAT your code does, not HOW.  +Also, try to avoid putting comments inside a function body: if the +function is so complex that you need to separately comment parts of it, +you should probably go back to chapter 4 for a while.  You can make +small comments to note or warn about something particularly clever (or +ugly), but try to avoid excess.  Instead, put the comments at the head +of the function, telling people what it does, and possibly WHY it does +it.  + + +		Chapter 6: You've made a mess of it + +That's OK, we all do.  You've probably been told by your long-time Unix +user helper that "GNU emacs" automatically formats the C sources for +you, and you've noticed that yes, it does do that, but the defaults it +uses are less than desirable (in fact, they are worse than random +typing - a infinite number of monkeys typing into GNU emacs would never +make a good program).  + +So, you can either get rid of GNU emacs, or change it to use saner +values.  To do the latter, you can stick the following in your .emacs file: + +(defun linux-c-mode () +  "C mode with adjusted defaults for use with the Linux kernel." +  (interactive) +  (c-mode) +  (c-set-style "K&R") +  (setq c-basic-offset 8)) + +This will define the M-x linux-c-mode command.  When hacking on a +module, if you put the string -*- linux-c -*- somewhere on the first +two lines, this mode will be automatically invoked. Also, you may want +to add + +(setq auto-mode-alist (cons '("/usr/src/linux.*/.*\\.[ch]$" . linux-c-mode) +                       auto-mode-alist)) + +to your .emacs file if you want to have linux-c-mode switched on +automagically when you edit source files under /usr/src/linux. + +But even if you fail in getting emacs to do sane formatting, not +everything is lost: use "indent". + +Now, again, GNU indent has the same brain dead settings that GNU emacs +has, which is why you need to give it a few command line options.  +However, that's not too bad, because even the makers of GNU indent +recognize the authority of K&R (the GNU people aren't evil, they are +just severely misguided in this matter), so you just give indent the +options "-kr -i8" (stands for "K&R, 8 character indents").  + +"indent" has a lot of options, and especially when it comes to comment +re-formatting you may want to take a look at the manual page.  But +remember: "indent" is not a fix for bad programming.  diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.debug b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.debug new file mode 100644 index 0000000..d37c18b --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.debug @@ -0,0 +1,90 @@ +* doc/config.debug +* +* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- + +The kernel components of linux-wlan currently have debugging code +that can be enabled via a "make config" option.  If debug output +has been compiled into a driver, enable it by setting the value of the  +module parameter xxx_debug +where xxx is the name of the component.  There are five levels of +debugging (1-5).  Here's a summary of the levels and their usage: +    1 - Enables most error messages for exception (but rare) conditions +    2 - Enables more exceptions   +    3 - Enables MAC status output +    4 - More status +    5 - Function entry and exit + +The levels are additive.  For example, level 3 includes level 3 +messages plus levels 1 and 2. + +To configure p80211.o for debug output, put the following line (with +your own level number) in your modutils configuration file (usually +/etc/conf.modules or /etc/modules.conf): +  +  options p80211 wlan_debug=2 + +To configure the prism2_cs driver for debug output, put the following +line (with your own level number) in your /etc/pcmcia/config.opts +file: + +  module "prism2_cs" opts "prism2_debug=2" + +To configure the PCI, PLX, or USB driver for debug output, put the following +line (with your own level number) in your modutils configuration file (usually +/etc/conf.modules or /etc/modules.conf): + +  options prism2_pci prism2_debug=3 +  options prism2_plx prism2_debug=3 +  options prism2_usb prism2_debug=3 + + +Then configure the collection and display of your kernel output.  This +is usually done using syslog.  Here are the relevant entries from the +/etc/syslog.conf file on one of our test machines: + +kern.*						/var/log/kernel +kern.*						/dev/tty9 +*.info;mail.none;news.none;authpriv.none	/var/log/messages +*.info;mail.none;news.none;authpriv.none	/dev/tty10 + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.linux-wlan-ng b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.linux-wlan-ng new file mode 100644 index 0000000..c6ec9d8 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.linux-wlan-ng @@ -0,0 +1,264 @@ +* doc/config.linux-wlan-ng +* +* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +* -------------------------------------------------------------------- +* +* linux-wlan +* +*   The contents of this file are subject to the Mozilla Public +*   License Version 1.1 (the "License"); you may not use this file +*   except in compliance with the License. You may obtain a copy of +*   the License at http://www.mozilla.org/MPL/ +* +*   Software distributed under the License is distributed on an "AS +*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +*   implied. See the License for the specific language governing +*   rights and limitations under the License. +* +*   Alternatively, the contents of this file may be used under the +*   terms of the GNU Public License version 2 (the "GPL"), in which +*   case the provisions of the GPL are applicable instead of the +*   above.  If you wish to allow the use of your version of this file +*   only under the terms of the GPL and not to allow others to use +*   your version of this file under the MPL, indicate your decision +*   by deleting the provisions above and replace them with the notice +*   and other provisions required by the GPL.  If you do not delete +*   the provisions above, a recipient may use your version of this +*   file under either the MPL or the GPL. +* +* -------------------------------------------------------------------- +* +* Inquiries regarding the linux-wlan Open Source project can be +* made directly to: +* +* AbsoluteValue Systems Inc. +* info@linux-wlan.com +* http://www.linux-wlan.com +* +* -------------------------------------------------------------------- +* +* Portions of the development of this software were funded by  +* Intersil Corporation as part of PRISM(R) chipset product development. +* +* -------------------------------------------------------------------- + +1. Summary + +This document describes a little more of the detail behind configuring the +linux-wlan system.   + +2. Installed Componenents + +The linux-wlan-ng package consists of the following components: + +   p80211.o		Kernel module for 802.11 services +   prism2sta_cs.o	Kernel module for the Prism2 PCMCIA device +   			driver. +   wlanctl-ng		User-mode utility for sending commands to +   			802.11 services and MAC-specific drivers. +   wland		User-mode daemon for receiving and handling +   			events from 802.11 services and MAC-specific +			drivers (not used in this version). +   /etc/pcmcia/wlan-ng*	PCMCIA event and configuration scripts + +   *prism2dl		This utility is used for loading firmware +   			images into prism2 cards.  DO NOT USE IT!  +			UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING.   +			This utility has the capability to damage a +			card in a way that can only be repaired by the +			manufacturer. + +When a 'make install' is performed, the modules are copied to the +/usr/lib/modules/<kernelver>/net and /usr/lib/modules/pcmcia directory, +the user-mode utilities are copied to /sbin, and the contents of +linux-wlan-ng/etc/pcmcia are copied to the /etc/pcmcia directory.  If +necessary, the pcmcia config files are altered to include a reference to +the wlan-ng.conf file containing the information cardmgr uses to match +card CIS information to specific device drivers at card insertion time. + +NOTE: It is very important that you restart your pcmcia services after +installing linux-wlan-ng.  cardmgr will not recognize the information +in the wlan-ng.conf file until after it has been restarted. + +	 +3. Configuration Variables + +To configure your installation for use, it will probably be necessary +to edit the /etc/pcmcia/wlan-ng.opts file.  This file contains a +collection of variable assignments that are used by the wlan-ng script +to intialize your card at insertion time.  The variables are broken +into groups: ENABLE, DOWNLOAD, USER MIB, WEP, STA, and AP START. + +Many of the choices involved in choosing configuration variable +settings are dependent on whether you are setting up your system as a  +Station (STA) or an Access Point (AP).  STA configuration is most +common.  If you are using a mobile station that will connect to one or +more APs, STA configuration is all you will need. + +3.1 ENABLE Group +The only variable is this group is: + +WLAN_ENABLE=y +	This variable determines whether the card will be intialized, +	configured for operation, and your protocol stack configured. +	Generally, you always want this set to 'y'.  For some cards, +	you will set this variable to 'n' when performing card +	maintenance like firmware upgrades. + +3.2 DOWNLOAD Group + +The DOWNLOAD group contains variables that indicate if code or data +needs to be downloaded to the card prior to initialization and normal +operation.  Currently, this is only required for the Prism2 card when +running in AP mode. + +WLAN_DOWNLOAD=n +	Set this variable to 'y' if code or data must be downloaded +	into the card prior to operation. + +WLAN_DOWNLOADER=/sbin/prism2dl +	This variable contains the name of the program used to +	download the code into the card. + +WLAN_DLIMAGE=/etc/wlan/apfw.hex +	This variable contains the name of the file you wish to +	download. + +3.3 USER MIB Group + +There is only one variable in this group, USER_MIBS.  You may add your +own local MIB item assignments assignments to this variable.  The +wlan-ng script will loop through the assignments found in this +variable and configure the card with each one prior to final +configuration and enable. + +3.4 WEP Group + +The variables in the WEP group are used to configure the 802.11 "Wired +Equivalent Privacy" element of the MAC if it is supported.  The driver +is queried for WEP support prior to attempting WEP configuration.  If +the driver states that WEP is NOT supported, these variables are +ignored.  Note that you may need to set some of these variables even if  +you are not using the privacy service.  If shared-key authentication +is used, the WEP keys must be present. + +dot11PrivacyInvoked=false +	Set this variable to "true" to enable the WEP support. + +lnxreq_hostWEPEncrypt=false +lnxreq_hostWEPDecrypt=false  +	Set these to true if you want WEP to be handled by the driver +	instead of the hardware.  The only downside of this is that it +	takes a bit of CPU time and you lose the ability to handle +	fragmentation.   However, with prism2 cards, you should see a +	performance boost, and with prism2.5 cards, this may avoid lockups. + +dot11WEPDefaultKeyID=1 +	This variable identifies which of the WEP keys is the default +	key used for all transmits from this station.  In some +	implementations, this can be changed (or rotated) later. + +dot11ExcludeUnencrypted=true +	Setting this variable to "true" and dot11PrivacyInvoked to +	true, has the effect of making WEP completely required for this  +	station (or AP).  If set to "true", this STA will discard any +	received frames that are not encrypted. + +PRIV_GENERATOR=/sbin/nwepgen +	Some vendors include "WEP Key Generator" programs as part of +	their windows or AP implementations.  This is purely a +	convenience to prevent you from having to type in 40 +	hexadecimal digits.  It does not contribute to the secrity of +	your system at all.  In some cases, we've included small +	programs that generate keys in a manner compatible with the +	vendor's method.  If you wish to use this capability, include +	the name of the generator program here. + +PRIV_GENSTR="12345" +	Every generator implementation we've seen so far uses some +	kind of 'passphrase' to generate the keys.  This variable +	contains the passphrase.  To disable the use of a generator, +	leave this variable empty. + +dot11WEPDefaultKey0 +dot11WEPDefaultKey1 +dot11WEPDefaultKey2 +dot11WEPDefaultKey3 +	If you are configuring your keys by hand, you need to assign +	these four variables.  The format is "xx:xx:xx:xx:xx" and the +	order of the keys in these variables IS IMPORTANT.  Note: If +	the PRIV_GENSTR variable is not empty, these variables are +	ignored. + +3.5 STA Group + +Currently, there is only one variable in the STA group.  This will +change over time. + +dot11DesiredSSID="WLAN_PRISM2" +	This variable contains the SSID or "network name" of the +	wireless network you wish to associate with. + +3.6 AP START Group + +If you have access to the necessary hardware and firmware, this driver +can be used to set up a Access Point.  To configure for an access +point, set the IS_AP variable to 'y'.  The following is a quick +summary of the other AP configuration variables: + + +APBRIDGEDEVICE=eth0 +	Defines the ethernet device that will be the 'other' port for +	bridging 802.11 frames. +APSSID="WLAN_PRISM2" +	Defines the SSID that the AP will use when creating the network. +APBCNINT=100 +	Defines the beacon interval (in Kus) that the AP will use. +APDTIMINT=3 +	Defines the DTIM interval (in beacon intervals). + +APCFPOLLABLE|APCFPOLLREQ | Description +--------------------------- +   false    |   false    | No point coordination by this AP +   false    |   true     | AP will point coordinate for delivery only +   true     |   false    | AP will point coordinate for deliver and polling +   true     |   true     | Reserved + +APCFPPERIOD=3 +	Defines how often the contention free period occurrs (in +	beacons). + +APCFPMAXDURATION=100 +	Defines the maximum length of the contention free period (in +	Kus). + +APPROBEDELAY=100 +	Not used for infrastructure networks, any value is valid. + +APCHANNEL=6 +	Channel that the AP will create the network on.  Range of valid +	values depends on you regulatory domain.  In the USA and Canada  +	the range is 1-11.  In Japan the range is 1-14. + + +APBASICRATES="2 4" +	A whitespace separated list of data rates in units of 500Kb/s. +	The basic rate set is the set of rates that stations MUST +	support to be allowed to join the network. + +APOPRATES="2 4 11 22" +	A whitespace separated list of data rates in units of 500Kb/s. +	The operational rate set is the set of rates that are allowed +	in the network.  It must be a superset of the basic rates +	above. + +To complete the configuration of an Access Point, you will need to +make sure you have kernel bridging enable in your currently running +kernel and have the brcfg utility installed.  One version of the brcfg +utility can be found at ftp://ftp.absoval.com + +To start the access point running, make sure the ethernet card is in the +system first.  Then insert the WLAN card and everything should be +configured automatically by the /etc/pcmcia/wlan-ng script. + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/entries new file mode 100644 index 0000000..62f00d5 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/entries @@ -0,0 +1,96 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/doc/impnotes +svn://svn.shaftnet.org/linux-wlan-ng + + + +1999-11-14T19:56:53.000000Z +56 +mark + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +structptr.obj +file + + + + +2009-01-07T08:13:01.000000Z +be5e39160a9d1bf2e4913f8935108570 +1999-11-14T19:56:53.000000Z +56 +mark +has-props + + + + + + + + + + + + + + + + + + + + +8218 + +l8s_uses.obj +file + + + + +2009-01-07T08:13:01.000000Z +d5218026c07652d9d89edc9047e60521 +1999-11-14T19:56:53.000000Z +56 +mark +has-props + + + + + + + + + + + + + + + + + + + + +8735 + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/l8s_uses.obj.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/l8s_uses.obj.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/l8s_uses.obj.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/structptr.obj.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/structptr.obj.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/structptr.obj.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/l8s_uses.obj.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/l8s_uses.obj.svn-base new file mode 100644 index 0000000..2293095 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/l8s_uses.obj.svn-base @@ -0,0 +1,294 @@ +%TGIF 4.1.16 +state(0,37,100.000,0,0,0,4,1,9,1,1,0,0,1,0,1,0,'Courier',0,69120,0,0,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,2880,0). +% +% @(#)$Header$ +% %W% +% +unit("1 pixel/pixel"). +color_info(11,65535,0,[ +	"magenta", 65535, 0, 65535, 65535, 0, 65535, 1, +	"red", 65535, 0, 0, 65535, 0, 0, 1, +	"green", 0, 65535, 0, 0, 65535, 0, 1, +	"blue", 0, 0, 65535, 0, 0, 65535, 1, +	"yellow", 65535, 65535, 0, 65535, 65535, 0, 1, +	"pink", 65535, 49344, 52171, 65535, 49344, 52171, 1, +	"cyan", 0, 65535, 65535, 0, 65535, 65535, 1, +	"CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1, +	"white", 65535, 65535, 65535, 65535, 65535, 65535, 1, +	"black", 0, 0, 0, 0, 0, 0, 1, +	"DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1 +]). +script_frac("0.6"). +fg_bg_colors('black','white'). +page(1,"",1,''). +box('black','',88,172,632,532,0,2,1,0,0,0,0,0,0,'2',0,[ +]). +text('black',580,149,1,0,1,21,14,1,11,3,0,0,0,0,2,21,14,0,0,"",0,0,0,0,160,'',[ +minilines(21,14,0,0,0,0,0,[ +mini_line(21,11,3,0,0,0,[ +str_block(0,21,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,21,11,3,0,-1,0,0,0,0,0, +	"L8S")]) +]) +])]). +box('black','',108,188,292,312,0,1,1,3,0,0,0,0,0,'1',0,[ +]). +box('black','',108,384,292,520,0,1,1,4,0,0,0,0,0,'1',0,[ +]). +box('black','',308,316,472,380,0,1,1,5,0,0,0,0,0,'1',0,[ +]). +box('black','',340,432,448,512,0,1,1,6,0,0,0,0,0,'1',0,[ +]). +box('black','',500,432,620,516,0,1,1,7,0,0,0,0,0,'1',0,[ +]). +box('black','',332,188,464,252,0,1,1,8,0,0,0,0,0,'1',0,[ +]). +box('black','',508,196,620,272,0,1,1,9,0,0,0,0,0,'1',0,[ +]). +poly('black','',2,[ +	144,312,144,384],1,1,1,10,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	244,384,244,312],1,1,1,11,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',3,[ +	292,400,320,400,320,380],1,1,1,12,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',3,[ +	292,408,424,408,424,380],1,1,1,13,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',3,[ +	292,300,320,300,320,316],1,1,1,25,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',3,[ +	292,292,424,292,424,316],1,1,1,26,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	388,316,388,380],0,1,1,27,0,0,5,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	608,432,608,272],1,1,1,30,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',6,[ +	456,252,456,268,488,268,488,300,560,300,560,432],1,1,1,32,0,0,0,0,0,0,0,'1',0,0, +    "00","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',6,[ +	536,432,536,312,476,312,476,280,440,280,440,252],1,1,1,33,0,0,0,0,0,0,0,'1',0,0, +    "00","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	508,220,464,220],1,1,1,34,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	372,380,372,432],1,1,1,35,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	148,132,148,188],1,1,1,36,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	244,188,244,128],1,1,1,37,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	140,520,140,580],1,1,1,38,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	244,580,244,520],1,1,1,39,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	388,572,388,512],1,1,1,40,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',4,[ +	468,568,468,408,448,408,448,380],1,1,1,41,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +text('black',148,209,2,0,1,112,28,46,11,3,0,0,0,0,2,112,28,0,0,"",0,0,0,0,220,'',[ +minilines(112,28,0,0,0,0,0,[ +mini_line(98,11,3,0,0,0,[ +str_block(0,98,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,98,11,3,0,0,0,0,0,0,0, +	"Kernel Network")]) +]), +mini_line(112,11,3,0,0,0,[ +str_block(0,112,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,112,11,3,0,-1,0,0,0,0,0, +	"Device Interface")]) +]) +])]). +text('black',144,429,2,0,1,112,28,48,11,3,0,0,0,0,2,112,28,0,0,"",0,0,0,0,440,'',[ +minilines(112,28,0,0,0,0,0,[ +mini_line(98,11,3,0,0,0,[ +str_block(0,98,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,98,11,3,0,0,0,0,0,0,0, +	"p80211 Network")]) +]), +mini_line(112,11,3,0,0,0,[ +str_block(0,112,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,112,11,3,0,-1,0,0,0,0,0, +	"Device Interface")]) +]) +])]). +text('black',320,325,2,0,1,49,28,50,11,3,0,0,0,0,2,49,28,0,0,"",0,0,0,0,336,'',[ +minilines(49,28,0,0,0,0,0,[ +mini_line(35,11,3,0,0,0,[ +str_block(0,35,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,35,11,3,0,-1,0,0,0,0,0, +	"Frame")]) +]), +mini_line(49,11,3,0,0,0,[ +str_block(0,49,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,49,11,3,0,0,0,0,0,0,0, +	"Convert")]) +]) +])]). +text('black',404,329,2,0,1,42,28,54,11,3,0,0,0,0,2,42,28,0,0,"",0,0,0,0,340,'',[ +minilines(42,28,0,0,0,0,0,[ +mini_line(42,11,3,0,0,0,[ +str_block(0,42,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,42,11,3,0,0,0,0,0,0,0, +	"Packet")]) +]), +mini_line(42,11,3,0,0,0,[ +str_block(0,42,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,42,11,3,0,-1,0,0,0,0,0, +	"Buffer")]) +]) +])]). +text('black',364,197,2,0,1,63,28,56,11,3,0,0,0,0,2,63,28,0,0,"",0,0,0,0,208,'',[ +minilines(63,28,0,0,0,0,0,[ +mini_line(49,11,3,0,0,0,[ +str_block(0,49,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,49,11,3,0,0,0,0,0,0,0, +	"Request")]) +]), +mini_line(63,11,3,0,0,0,[ +str_block(0,63,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,63,11,3,0,-1,0,0,0,0,0, +	"Interface")]) +]) +])]). +text('black',532,209,2,0,1,70,28,58,11,3,0,0,0,0,2,70,28,0,0,"",0,0,0,0,220,'',[ +minilines(70,28,0,0,0,0,0,[ +mini_line(70,11,3,0,0,0,[ +str_block(0,70,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,70,11,3,0,0,0,0,0,0,0, +	"Indication")]) +]), +mini_line(63,11,3,0,0,0,[ +str_block(0,63,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,63,11,3,0,-1,0,0,0,0,0, +	"Interface")]) +]) +])]). +text('black',524,449,3,0,1,70,42,60,11,3,0,0,0,0,2,70,42,0,0,"",0,0,0,0,460,'',[ +minilines(70,42,0,0,0,0,0,[ +mini_line(21,11,3,0,0,0,[ +str_block(0,21,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,21,11,3,0,-1,0,0,0,0,0, +	"MAC")]) +]), +mini_line(70,11,3,0,0,0,[ +str_block(0,70,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,70,11,3,0,0,0,0,0,0,0, +	"Management")]) +]), +mini_line(63,11,3,0,0,0,[ +str_block(0,63,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,63,11,3,0,-1,0,0,0,0,0, +	"Interface")]) +]) +])]). +text('black',360,449,3,0,1,77,42,62,11,3,0,0,0,0,2,77,42,0,0,"",0,0,0,0,460,'',[ +minilines(77,42,0,0,0,0,0,[ +mini_line(35,11,3,0,0,0,[ +str_block(0,35,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,35,11,3,0,-1,0,0,0,0,0, +	"Frame")]) +]), +mini_line(77,11,3,0,0,0,[ +str_block(0,77,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,77,11,3,0,0,0,0,0,0,0, +	"Construct &")]) +]), +mini_line(35,11,3,0,0,0,[ +str_block(0,35,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,35,11,3,0,-1,0,0,0,0,0, +	"Parse")]) +]) +])]). +poly('black','',2,[ +	544,516,544,576],1,1,1,66,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	596,576,596,516],1,1,1,67,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +text('black',68,41,4,0,1,259,56,68,11,3,0,0,0,0,2,259,56,0,0,"",0,0,0,0,52,'',[ +minilines(259,56,0,0,0,0,0,[ +mini_line(175,11,3,0,0,0,[ +str_block(0,175,11,3,0,-2,0,0,0,[ +str_seg('black','Courier',0,69120,175,11,3,0,-2,0,0,0,0,0, +	"doc/impnotes/l8s_uses.obj")]) +]), +mini_line(259,11,3,0,0,0,[ +str_block(0,259,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,259,11,3,0,-1,0,0,0,0,0, +	"L8S Internal/External Using Relations")]) +]), +mini_line(56,11,3,0,0,0,[ +str_block(0,56,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,56,11,3,0,-1,0,0,0,0,0, +	"11/14/99")]) +]), +mini_line(154,11,3,0,0,0,[ +str_block(0,154,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,154,11,3,0,-3,0,0,0,0,0, +	"Arrows indicate 'uses'")]) +]) +])]). +poly('black','',2,[ +	536,196,536,128],1,1,1,70,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	292,200,332,200],1,1,1,71,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/structptr.obj.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/structptr.obj.svn-base new file mode 100644 index 0000000..661daf9 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/structptr.obj.svn-base @@ -0,0 +1,256 @@ +%TGIF 4.1.16 +state(0,37,100.000,0,0,0,4,1,9,1,1,1,0,1,0,1,0,'Courier',0,69120,0,0,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,2880,0). +% +% @(#)$Header$ +% %W% +% +unit("1 pixel/pixel"). +color_info(11,65535,0,[ +	"magenta", 65535, 0, 65535, 65535, 0, 65535, 1, +	"red", 65535, 0, 0, 65535, 0, 0, 1, +	"green", 0, 65535, 0, 0, 65535, 0, 1, +	"blue", 0, 0, 65535, 0, 0, 65535, 1, +	"yellow", 65535, 65535, 0, 65535, 65535, 0, 1, +	"pink", 65535, 49344, 52171, 65535, 49344, 52171, 1, +	"cyan", 0, 65535, 65535, 0, 65535, 65535, 1, +	"CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1, +	"white", 65535, 65535, 65535, 65535, 65535, 65535, 1, +	"black", 0, 0, 0, 0, 0, 0, 1, +	"DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1 +]). +script_frac("0.6"). +fg_bg_colors('black','white'). +page(1,"",1,''). +text('black',32,3,2,0,1,153,32,0,13,3,0,0,0,0,2,153,32,0,0,"",0,0,0,0,16,'',[ +minilines(153,32,0,0,0,0,0,[ +mini_line(153,13,3,0,0,0,[ +str_block(0,153,13,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,80640,153,13,3,0,-3,0,0,0,0,0, +	"doc/structptr.obj")]) +]), +mini_line(72,13,3,0,0,0,[ +str_block(0,72,13,3,0,-2,0,0,0,[ +str_seg('black','Courier',0,80640,72,13,3,0,-2,0,0,0,0,0, +	"11/14/99")]) +]) +])]). +text('black',76,81,1,0,1,175,14,4,11,3,0,0,0,0,2,175,14,0,0,"",0,0,0,0,92,'',[ +minilines(175,14,0,0,0,0,0,[ +mini_line(175,11,3,0,0,0,[ +str_block(0,175,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,175,11,3,0,-3,0,0,0,0,0, +	"dev_link_t  (from pcmcia)")]) +]) +])]). +box('black','',76,100,236,180,0,2,1,6,0,0,0,0,0,'2',0,[ +]). +text('black',84,105,1,0,1,119,14,10,11,3,0,0,0,0,2,119,14,0,0,"",0,0,0,0,116,'',[ +minilines(119,14,0,0,0,0,0,[ +mini_line(119,11,3,0,0,0,[ +str_block(0,119,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,119,11,3,0,0,0,0,0,0,0, +	"dev_node_t   *dev")]) +]) +])]). +text('black',84,161,1,0,1,126,14,13,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,172,'',[ +minilines(126,14,0,0,0,0,0,[ +mini_line(126,11,3,0,0,0,[ +str_block(0,126,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,126,11,3,0,0,0,0,0,0,0, +	"void         *priv")]) +]) +])]). +poly('black','',2,[ +	100,124,100,156],0,1,1,16,0,0,5,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +text('black',216,5,3,0,1,294,42,31,11,3,0,0,0,0,2,294,42,0,0,"",0,0,0,0,16,'',[ +minilines(294,42,0,0,0,0,0,[ +mini_line(273,11,3,0,0,0,[ +str_block(0,273,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,273,11,3,0,-1,0,0,0,0,0, +	"Shows the links established between the")]) +]), +mini_line(294,11,3,0,0,0,[ +str_block(0,294,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,294,11,3,0,-1,0,0,0,0,0, +	"netdevice, wlandevice, pcmcia, and private")]) +]), +mini_line(238,11,3,0,0,0,[ +str_block(0,238,11,3,0,-4,0,0,0,[ +str_seg('black','Courier',0,69120,238,11,3,0,-4,0,0,0,0,0, +	"structures at initialization time.")]) +]) +])]). +box('black','',76,268,236,372,0,2,1,33,0,0,0,0,0,'2',0,[ +]). +text('black',84,273,1,0,1,126,14,40,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,284,'',[ +minilines(126,14,0,0,0,0,0,[ +mini_line(126,11,3,0,0,0,[ +str_block(0,126,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,126,11,3,0,-1,0,0,0,0,0, +	"char         *name")]) +]) +])]). +text('black',76,249,1,0,1,161,14,42,11,3,0,0,0,0,2,161,14,0,0,"",0,0,0,0,260,'',[ +minilines(161,14,0,0,0,0,0,[ +mini_line(161,11,3,0,0,0,[ +str_block(0,161,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,161,11,3,0,-3,0,0,0,0,0, +	"wlandevice_t (from L8S)")]) +]) +])]). +text('black',84,337,1,0,1,126,14,45,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,348,'',[ +minilines(126,14,0,0,0,0,0,[ +mini_line(126,11,3,0,0,0,[ +str_block(0,126,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,126,11,3,0,0,0,0,0,0,0, +	"void         *priv")]) +]) +])]). +text('black',84,353,1,0,1,140,14,46,11,3,0,0,0,0,2,140,14,0,0,"",0,0,0,0,364,'',[ +minilines(140,14,0,0,0,0,0,[ +mini_line(140,11,3,0,0,0,[ +str_block(0,140,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,140,11,3,0,0,0,0,0,0,0, +	"netdevice_t  *netdev")]) +]) +])]). +poly('black','',2,[ +	100,292,100,332],0,1,1,53,0,0,5,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +box('black','',80,460,240,564,0,2,1,61,0,0,0,0,0,'2',0,[ +]). +text('black',88,465,1,0,1,126,14,62,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,476,'',[ +minilines(126,14,0,0,0,0,0,[ +mini_line(126,11,3,0,0,0,[ +str_block(0,126,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,126,11,3,0,-1,0,0,0,0,0, +	"char         *name")]) +]) +])]). +text('black',80,417,3,0,1,133,42,63,11,3,0,0,0,0,2,133,42,0,0,"",0,0,0,0,428,'',[ +minilines(133,42,0,0,0,0,0,[ +mini_line(98,11,3,0,0,0,[ +str_block(0,98,11,3,0,-6,0,0,0,[ +str_seg('black','Courier',0,69120,98,11,3,0,-6,0,0,0,0,0, +	"struct device ")]) +]), +mini_line(119,11,3,0,0,0,[ +str_block(0,119,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,119,11,3,0,-3,0,0,0,0,0, +	"(aka netdevice_t)")]) +]), +mini_line(133,11,3,0,0,0,[ +str_block(0,133,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,133,11,3,0,-3,0,0,0,0,0, +	"(from linux kernel)")]) +]) +])]). +text('black',88,545,1,0,1,126,14,64,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,556,'',[ +minilines(126,14,0,0,0,0,0,[ +mini_line(126,11,3,0,0,0,[ +str_block(0,126,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,126,11,3,0,0,0,0,0,0,0, +	"void         *priv")]) +]) +])]). +poly('black','',2,[ +	104,484,104,540],0,1,1,66,0,0,5,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +box('black','',352,172,516,340,0,2,1,75,0,0,0,0,0,'2',0,[ +]). +text('black',356,153,1,0,1,140,14,77,11,3,0,0,0,0,2,140,14,0,0,"",0,0,0,0,164,'',[ +minilines(140,14,0,0,0,0,0,[ +mini_line(140,11,3,0,0,0,[ +str_block(0,140,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,140,11,3,0,-3,0,0,0,0,0, +	"devpriv_t (from MSD)")]) +]) +])]). +text('black',364,321,1,0,1,140,14,78,11,3,0,0,0,0,2,140,14,0,0,"",0,0,0,0,332,'',[ +minilines(140,14,0,0,0,0,0,[ +mini_line(140,11,3,0,0,0,[ +str_block(0,140,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,140,11,3,0,0,0,0,0,0,0, +	"dev_link_t     *link")]) +]) +])]). +poly('black','',2,[ +	388,276,388,316],0,1,1,79,0,0,5,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +text('black',364,177,2,0,1,133,28,88,11,3,0,0,0,0,2,133,28,0,0,"",0,0,0,0,188,'',[ +minilines(133,28,0,0,0,0,0,[ +mini_line(133,11,3,0,0,0,[ +str_block(0,133,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,133,11,3,0,-1,0,0,0,0,0, +	"dev_node_t     node")]) +]), +mini_line(91,11,3,0,0,0,[ +str_block(0,91,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,91,11,3,0,-3,0,0,0,0,0, +	"(from pcmcia)")]) +]) +])]). +box('black','',364,204,492,268,0,2,1,89,5,0,0,0,0,'2',0,[ +]). +text('black',380,209,1,0,1,98,14,90,11,3,0,0,0,0,2,98,14,0,0,"",0,0,0,0,220,'',[ +minilines(98,14,0,0,0,0,0,[ +mini_line(98,11,3,0,0,0,[ +str_block(0,98,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,98,11,3,0,-3,0,0,0,0,0, +	"char  name[32]")]) +]) +])]). +poly('black','',2,[ +	388,228,388,260],0,1,1,92,0,0,5,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',6,[ +	216,168,256,168,256,220,60,220,60,268,76,268],1,1,1,116,0,0,0,0,0,0,0,'1',0,0, +    "00","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',6,[ +	228,360,256,360,256,396,60,396,60,460,80,460],1,1,1,119,0,0,0,0,0,0,0,'1',0,0, +    "00","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',4,[ +	212,112,332,112,332,204,364,204],1,1,1,121,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',4,[ +	216,280,320,280,320,216,340,216],1,1,1,127,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',4,[ +	216,344,304,344,304,172,352,172],1,1,1,135,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',6,[ +	224,552,260,552,260,592,32,592,32,268,60,268],1,1,1,136,0,0,0,0,0,0,0,'1',0,0, +    "00","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',4,[ +	220,472,340,472,340,216,376,216],1,1,1,141,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',6,[ +	508,328,536,328,536,64,56,64,56,100,76,100],1,1,1,156,0,0,0,0,0,0,0,'1',0,0, +    "00","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/l8s_uses.obj b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/l8s_uses.obj new file mode 100644 index 0000000..2293095 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/l8s_uses.obj @@ -0,0 +1,294 @@ +%TGIF 4.1.16 +state(0,37,100.000,0,0,0,4,1,9,1,1,0,0,1,0,1,0,'Courier',0,69120,0,0,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,2880,0). +% +% @(#)$Header$ +% %W% +% +unit("1 pixel/pixel"). +color_info(11,65535,0,[ +	"magenta", 65535, 0, 65535, 65535, 0, 65535, 1, +	"red", 65535, 0, 0, 65535, 0, 0, 1, +	"green", 0, 65535, 0, 0, 65535, 0, 1, +	"blue", 0, 0, 65535, 0, 0, 65535, 1, +	"yellow", 65535, 65535, 0, 65535, 65535, 0, 1, +	"pink", 65535, 49344, 52171, 65535, 49344, 52171, 1, +	"cyan", 0, 65535, 65535, 0, 65535, 65535, 1, +	"CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1, +	"white", 65535, 65535, 65535, 65535, 65535, 65535, 1, +	"black", 0, 0, 0, 0, 0, 0, 1, +	"DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1 +]). +script_frac("0.6"). +fg_bg_colors('black','white'). +page(1,"",1,''). +box('black','',88,172,632,532,0,2,1,0,0,0,0,0,0,'2',0,[ +]). +text('black',580,149,1,0,1,21,14,1,11,3,0,0,0,0,2,21,14,0,0,"",0,0,0,0,160,'',[ +minilines(21,14,0,0,0,0,0,[ +mini_line(21,11,3,0,0,0,[ +str_block(0,21,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,21,11,3,0,-1,0,0,0,0,0, +	"L8S")]) +]) +])]). +box('black','',108,188,292,312,0,1,1,3,0,0,0,0,0,'1',0,[ +]). +box('black','',108,384,292,520,0,1,1,4,0,0,0,0,0,'1',0,[ +]). +box('black','',308,316,472,380,0,1,1,5,0,0,0,0,0,'1',0,[ +]). +box('black','',340,432,448,512,0,1,1,6,0,0,0,0,0,'1',0,[ +]). +box('black','',500,432,620,516,0,1,1,7,0,0,0,0,0,'1',0,[ +]). +box('black','',332,188,464,252,0,1,1,8,0,0,0,0,0,'1',0,[ +]). +box('black','',508,196,620,272,0,1,1,9,0,0,0,0,0,'1',0,[ +]). +poly('black','',2,[ +	144,312,144,384],1,1,1,10,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	244,384,244,312],1,1,1,11,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',3,[ +	292,400,320,400,320,380],1,1,1,12,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',3,[ +	292,408,424,408,424,380],1,1,1,13,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',3,[ +	292,300,320,300,320,316],1,1,1,25,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',3,[ +	292,292,424,292,424,316],1,1,1,26,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	388,316,388,380],0,1,1,27,0,0,5,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	608,432,608,272],1,1,1,30,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',6,[ +	456,252,456,268,488,268,488,300,560,300,560,432],1,1,1,32,0,0,0,0,0,0,0,'1',0,0, +    "00","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',6,[ +	536,432,536,312,476,312,476,280,440,280,440,252],1,1,1,33,0,0,0,0,0,0,0,'1',0,0, +    "00","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	508,220,464,220],1,1,1,34,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	372,380,372,432],1,1,1,35,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	148,132,148,188],1,1,1,36,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	244,188,244,128],1,1,1,37,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	140,520,140,580],1,1,1,38,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	244,580,244,520],1,1,1,39,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	388,572,388,512],1,1,1,40,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',4,[ +	468,568,468,408,448,408,448,380],1,1,1,41,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +text('black',148,209,2,0,1,112,28,46,11,3,0,0,0,0,2,112,28,0,0,"",0,0,0,0,220,'',[ +minilines(112,28,0,0,0,0,0,[ +mini_line(98,11,3,0,0,0,[ +str_block(0,98,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,98,11,3,0,0,0,0,0,0,0, +	"Kernel Network")]) +]), +mini_line(112,11,3,0,0,0,[ +str_block(0,112,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,112,11,3,0,-1,0,0,0,0,0, +	"Device Interface")]) +]) +])]). +text('black',144,429,2,0,1,112,28,48,11,3,0,0,0,0,2,112,28,0,0,"",0,0,0,0,440,'',[ +minilines(112,28,0,0,0,0,0,[ +mini_line(98,11,3,0,0,0,[ +str_block(0,98,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,98,11,3,0,0,0,0,0,0,0, +	"p80211 Network")]) +]), +mini_line(112,11,3,0,0,0,[ +str_block(0,112,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,112,11,3,0,-1,0,0,0,0,0, +	"Device Interface")]) +]) +])]). +text('black',320,325,2,0,1,49,28,50,11,3,0,0,0,0,2,49,28,0,0,"",0,0,0,0,336,'',[ +minilines(49,28,0,0,0,0,0,[ +mini_line(35,11,3,0,0,0,[ +str_block(0,35,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,35,11,3,0,-1,0,0,0,0,0, +	"Frame")]) +]), +mini_line(49,11,3,0,0,0,[ +str_block(0,49,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,49,11,3,0,0,0,0,0,0,0, +	"Convert")]) +]) +])]). +text('black',404,329,2,0,1,42,28,54,11,3,0,0,0,0,2,42,28,0,0,"",0,0,0,0,340,'',[ +minilines(42,28,0,0,0,0,0,[ +mini_line(42,11,3,0,0,0,[ +str_block(0,42,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,42,11,3,0,0,0,0,0,0,0, +	"Packet")]) +]), +mini_line(42,11,3,0,0,0,[ +str_block(0,42,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,42,11,3,0,-1,0,0,0,0,0, +	"Buffer")]) +]) +])]). +text('black',364,197,2,0,1,63,28,56,11,3,0,0,0,0,2,63,28,0,0,"",0,0,0,0,208,'',[ +minilines(63,28,0,0,0,0,0,[ +mini_line(49,11,3,0,0,0,[ +str_block(0,49,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,49,11,3,0,0,0,0,0,0,0, +	"Request")]) +]), +mini_line(63,11,3,0,0,0,[ +str_block(0,63,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,63,11,3,0,-1,0,0,0,0,0, +	"Interface")]) +]) +])]). +text('black',532,209,2,0,1,70,28,58,11,3,0,0,0,0,2,70,28,0,0,"",0,0,0,0,220,'',[ +minilines(70,28,0,0,0,0,0,[ +mini_line(70,11,3,0,0,0,[ +str_block(0,70,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,70,11,3,0,0,0,0,0,0,0, +	"Indication")]) +]), +mini_line(63,11,3,0,0,0,[ +str_block(0,63,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,63,11,3,0,-1,0,0,0,0,0, +	"Interface")]) +]) +])]). +text('black',524,449,3,0,1,70,42,60,11,3,0,0,0,0,2,70,42,0,0,"",0,0,0,0,460,'',[ +minilines(70,42,0,0,0,0,0,[ +mini_line(21,11,3,0,0,0,[ +str_block(0,21,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,21,11,3,0,-1,0,0,0,0,0, +	"MAC")]) +]), +mini_line(70,11,3,0,0,0,[ +str_block(0,70,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,70,11,3,0,0,0,0,0,0,0, +	"Management")]) +]), +mini_line(63,11,3,0,0,0,[ +str_block(0,63,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,63,11,3,0,-1,0,0,0,0,0, +	"Interface")]) +]) +])]). +text('black',360,449,3,0,1,77,42,62,11,3,0,0,0,0,2,77,42,0,0,"",0,0,0,0,460,'',[ +minilines(77,42,0,0,0,0,0,[ +mini_line(35,11,3,0,0,0,[ +str_block(0,35,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,35,11,3,0,-1,0,0,0,0,0, +	"Frame")]) +]), +mini_line(77,11,3,0,0,0,[ +str_block(0,77,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,77,11,3,0,0,0,0,0,0,0, +	"Construct &")]) +]), +mini_line(35,11,3,0,0,0,[ +str_block(0,35,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,35,11,3,0,-1,0,0,0,0,0, +	"Parse")]) +]) +])]). +poly('black','',2,[ +	544,516,544,576],1,1,1,66,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	596,576,596,516],1,1,1,67,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +text('black',68,41,4,0,1,259,56,68,11,3,0,0,0,0,2,259,56,0,0,"",0,0,0,0,52,'',[ +minilines(259,56,0,0,0,0,0,[ +mini_line(175,11,3,0,0,0,[ +str_block(0,175,11,3,0,-2,0,0,0,[ +str_seg('black','Courier',0,69120,175,11,3,0,-2,0,0,0,0,0, +	"doc/impnotes/l8s_uses.obj")]) +]), +mini_line(259,11,3,0,0,0,[ +str_block(0,259,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,259,11,3,0,-1,0,0,0,0,0, +	"L8S Internal/External Using Relations")]) +]), +mini_line(56,11,3,0,0,0,[ +str_block(0,56,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,56,11,3,0,-1,0,0,0,0,0, +	"11/14/99")]) +]), +mini_line(154,11,3,0,0,0,[ +str_block(0,154,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,154,11,3,0,-3,0,0,0,0,0, +	"Arrows indicate 'uses'")]) +]) +])]). +poly('black','',2,[ +	536,196,536,128],1,1,1,70,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',2,[ +	292,200,332,200],1,1,1,71,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/structptr.obj b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/structptr.obj new file mode 100644 index 0000000..661daf9 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/structptr.obj @@ -0,0 +1,256 @@ +%TGIF 4.1.16 +state(0,37,100.000,0,0,0,4,1,9,1,1,1,0,1,0,1,0,'Courier',0,69120,0,0,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,2880,0). +% +% @(#)$Header$ +% %W% +% +unit("1 pixel/pixel"). +color_info(11,65535,0,[ +	"magenta", 65535, 0, 65535, 65535, 0, 65535, 1, +	"red", 65535, 0, 0, 65535, 0, 0, 1, +	"green", 0, 65535, 0, 0, 65535, 0, 1, +	"blue", 0, 0, 65535, 0, 0, 65535, 1, +	"yellow", 65535, 65535, 0, 65535, 65535, 0, 1, +	"pink", 65535, 49344, 52171, 65535, 49344, 52171, 1, +	"cyan", 0, 65535, 65535, 0, 65535, 65535, 1, +	"CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1, +	"white", 65535, 65535, 65535, 65535, 65535, 65535, 1, +	"black", 0, 0, 0, 0, 0, 0, 1, +	"DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1 +]). +script_frac("0.6"). +fg_bg_colors('black','white'). +page(1,"",1,''). +text('black',32,3,2,0,1,153,32,0,13,3,0,0,0,0,2,153,32,0,0,"",0,0,0,0,16,'',[ +minilines(153,32,0,0,0,0,0,[ +mini_line(153,13,3,0,0,0,[ +str_block(0,153,13,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,80640,153,13,3,0,-3,0,0,0,0,0, +	"doc/structptr.obj")]) +]), +mini_line(72,13,3,0,0,0,[ +str_block(0,72,13,3,0,-2,0,0,0,[ +str_seg('black','Courier',0,80640,72,13,3,0,-2,0,0,0,0,0, +	"11/14/99")]) +]) +])]). +text('black',76,81,1,0,1,175,14,4,11,3,0,0,0,0,2,175,14,0,0,"",0,0,0,0,92,'',[ +minilines(175,14,0,0,0,0,0,[ +mini_line(175,11,3,0,0,0,[ +str_block(0,175,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,175,11,3,0,-3,0,0,0,0,0, +	"dev_link_t  (from pcmcia)")]) +]) +])]). +box('black','',76,100,236,180,0,2,1,6,0,0,0,0,0,'2',0,[ +]). +text('black',84,105,1,0,1,119,14,10,11,3,0,0,0,0,2,119,14,0,0,"",0,0,0,0,116,'',[ +minilines(119,14,0,0,0,0,0,[ +mini_line(119,11,3,0,0,0,[ +str_block(0,119,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,119,11,3,0,0,0,0,0,0,0, +	"dev_node_t   *dev")]) +]) +])]). +text('black',84,161,1,0,1,126,14,13,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,172,'',[ +minilines(126,14,0,0,0,0,0,[ +mini_line(126,11,3,0,0,0,[ +str_block(0,126,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,126,11,3,0,0,0,0,0,0,0, +	"void         *priv")]) +]) +])]). +poly('black','',2,[ +	100,124,100,156],0,1,1,16,0,0,5,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +text('black',216,5,3,0,1,294,42,31,11,3,0,0,0,0,2,294,42,0,0,"",0,0,0,0,16,'',[ +minilines(294,42,0,0,0,0,0,[ +mini_line(273,11,3,0,0,0,[ +str_block(0,273,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,273,11,3,0,-1,0,0,0,0,0, +	"Shows the links established between the")]) +]), +mini_line(294,11,3,0,0,0,[ +str_block(0,294,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,294,11,3,0,-1,0,0,0,0,0, +	"netdevice, wlandevice, pcmcia, and private")]) +]), +mini_line(238,11,3,0,0,0,[ +str_block(0,238,11,3,0,-4,0,0,0,[ +str_seg('black','Courier',0,69120,238,11,3,0,-4,0,0,0,0,0, +	"structures at initialization time.")]) +]) +])]). +box('black','',76,268,236,372,0,2,1,33,0,0,0,0,0,'2',0,[ +]). +text('black',84,273,1,0,1,126,14,40,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,284,'',[ +minilines(126,14,0,0,0,0,0,[ +mini_line(126,11,3,0,0,0,[ +str_block(0,126,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,126,11,3,0,-1,0,0,0,0,0, +	"char         *name")]) +]) +])]). +text('black',76,249,1,0,1,161,14,42,11,3,0,0,0,0,2,161,14,0,0,"",0,0,0,0,260,'',[ +minilines(161,14,0,0,0,0,0,[ +mini_line(161,11,3,0,0,0,[ +str_block(0,161,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,161,11,3,0,-3,0,0,0,0,0, +	"wlandevice_t (from L8S)")]) +]) +])]). +text('black',84,337,1,0,1,126,14,45,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,348,'',[ +minilines(126,14,0,0,0,0,0,[ +mini_line(126,11,3,0,0,0,[ +str_block(0,126,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,126,11,3,0,0,0,0,0,0,0, +	"void         *priv")]) +]) +])]). +text('black',84,353,1,0,1,140,14,46,11,3,0,0,0,0,2,140,14,0,0,"",0,0,0,0,364,'',[ +minilines(140,14,0,0,0,0,0,[ +mini_line(140,11,3,0,0,0,[ +str_block(0,140,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,140,11,3,0,0,0,0,0,0,0, +	"netdevice_t  *netdev")]) +]) +])]). +poly('black','',2,[ +	100,292,100,332],0,1,1,53,0,0,5,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +box('black','',80,460,240,564,0,2,1,61,0,0,0,0,0,'2',0,[ +]). +text('black',88,465,1,0,1,126,14,62,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,476,'',[ +minilines(126,14,0,0,0,0,0,[ +mini_line(126,11,3,0,0,0,[ +str_block(0,126,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,126,11,3,0,-1,0,0,0,0,0, +	"char         *name")]) +]) +])]). +text('black',80,417,3,0,1,133,42,63,11,3,0,0,0,0,2,133,42,0,0,"",0,0,0,0,428,'',[ +minilines(133,42,0,0,0,0,0,[ +mini_line(98,11,3,0,0,0,[ +str_block(0,98,11,3,0,-6,0,0,0,[ +str_seg('black','Courier',0,69120,98,11,3,0,-6,0,0,0,0,0, +	"struct device ")]) +]), +mini_line(119,11,3,0,0,0,[ +str_block(0,119,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,119,11,3,0,-3,0,0,0,0,0, +	"(aka netdevice_t)")]) +]), +mini_line(133,11,3,0,0,0,[ +str_block(0,133,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,133,11,3,0,-3,0,0,0,0,0, +	"(from linux kernel)")]) +]) +])]). +text('black',88,545,1,0,1,126,14,64,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,556,'',[ +minilines(126,14,0,0,0,0,0,[ +mini_line(126,11,3,0,0,0,[ +str_block(0,126,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,126,11,3,0,0,0,0,0,0,0, +	"void         *priv")]) +]) +])]). +poly('black','',2,[ +	104,484,104,540],0,1,1,66,0,0,5,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +box('black','',352,172,516,340,0,2,1,75,0,0,0,0,0,'2',0,[ +]). +text('black',356,153,1,0,1,140,14,77,11,3,0,0,0,0,2,140,14,0,0,"",0,0,0,0,164,'',[ +minilines(140,14,0,0,0,0,0,[ +mini_line(140,11,3,0,0,0,[ +str_block(0,140,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,140,11,3,0,-3,0,0,0,0,0, +	"devpriv_t (from MSD)")]) +]) +])]). +text('black',364,321,1,0,1,140,14,78,11,3,0,0,0,0,2,140,14,0,0,"",0,0,0,0,332,'',[ +minilines(140,14,0,0,0,0,0,[ +mini_line(140,11,3,0,0,0,[ +str_block(0,140,11,3,0,0,0,0,0,[ +str_seg('black','Courier',0,69120,140,11,3,0,0,0,0,0,0,0, +	"dev_link_t     *link")]) +]) +])]). +poly('black','',2,[ +	388,276,388,316],0,1,1,79,0,0,5,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +text('black',364,177,2,0,1,133,28,88,11,3,0,0,0,0,2,133,28,0,0,"",0,0,0,0,188,'',[ +minilines(133,28,0,0,0,0,0,[ +mini_line(133,11,3,0,0,0,[ +str_block(0,133,11,3,0,-1,0,0,0,[ +str_seg('black','Courier',0,69120,133,11,3,0,-1,0,0,0,0,0, +	"dev_node_t     node")]) +]), +mini_line(91,11,3,0,0,0,[ +str_block(0,91,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,91,11,3,0,-3,0,0,0,0,0, +	"(from pcmcia)")]) +]) +])]). +box('black','',364,204,492,268,0,2,1,89,5,0,0,0,0,'2',0,[ +]). +text('black',380,209,1,0,1,98,14,90,11,3,0,0,0,0,2,98,14,0,0,"",0,0,0,0,220,'',[ +minilines(98,14,0,0,0,0,0,[ +mini_line(98,11,3,0,0,0,[ +str_block(0,98,11,3,0,-3,0,0,0,[ +str_seg('black','Courier',0,69120,98,11,3,0,-3,0,0,0,0,0, +	"char  name[32]")]) +]) +])]). +poly('black','',2,[ +	388,228,388,260],0,1,1,92,0,0,5,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',6,[ +	216,168,256,168,256,220,60,220,60,268,76,268],1,1,1,116,0,0,0,0,0,0,0,'1',0,0, +    "00","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',6,[ +	228,360,256,360,256,396,60,396,60,460,80,460],1,1,1,119,0,0,0,0,0,0,0,'1',0,0, +    "00","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',4,[ +	212,112,332,112,332,204,364,204],1,1,1,121,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',4,[ +	216,280,320,280,320,216,340,216],1,1,1,127,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',4,[ +	216,344,304,344,304,172,352,172],1,1,1,135,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',6,[ +	224,552,260,552,260,592,32,592,32,268,60,268],1,1,1,136,0,0,0,0,0,0,0,'1',0,0, +    "00","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',4,[ +	220,472,340,472,340,216,376,216],1,1,1,141,0,0,0,0,0,0,0,'1',0,0, +    "0","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). +poly('black','',6,[ +	508,328,536,328,536,64,56,64,56,100,76,100],1,1,1,156,0,0,0,0,0,0,0,'1',0,0, +    "00","",[ +    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ +]). diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/entries new file mode 100644 index 0000000..2216594 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/entries @@ -0,0 +1,164 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/doc/prism2 +svn://svn.shaftnet.org/linux-wlan-ng + + + +2000-07-05T04:57:04.000000Z +510 +joellen + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +ridlist-mib.html +file + + + + +2009-01-07T08:13:01.000000Z +712752e55308c95248ed8560ec303943 +2000-07-05T04:57:04.000000Z +510 +joellen +has-props + + + + + + + + + + + + + + + + + + + + +57551 + +ridlist-rid.txt +file + + + + +2009-01-07T08:13:01.000000Z +82eeafa0872f5219e2b2368eff3e865e +2000-07-05T04:57:04.000000Z +510 +joellen +has-props + + + + + + + + + + + + + + + + + + + + +49082 + +ridlist-rid.html +file + + + + +2009-01-07T08:13:01.000000Z +dfa2544fcecf3456d5815ccd3ba7765e +2000-07-05T04:57:04.000000Z +510 +joellen +has-props + + + + + + + + + + + + + + + + + + + + +57551 + +ridlist-mib.txt +file + + + + +2009-01-07T08:13:01.000000Z +490ddc40de913718faac18a992a7bf92 +2000-07-05T04:57:04.000000Z +510 +joellen +has-props + + + + + + + + + + + + + + + + + + + + +49082 + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.html.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.html.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.html.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.txt.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.txt.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.html.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.html.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.html.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.txt.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.txt.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.html.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.html.svn-base new file mode 100644 index 0000000..63cac2f --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.html.svn-base @@ -0,0 +1,2001 @@ +<HTML> +<HEAD> +	<TITLE>802.11 to PRISM2 RID Mapping List</TITLE> +</HEAD> +<BODY> +<P> +<B>doc/prism2/ridlist-mib.html<BR>Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved.</B> +</P> +<P> +<BR>API - The document source for this RID is the API Enhancements Document +</P> +<P> +<BR>PRO - The document source for this RID is the CW10 Programmer's Manual +</P> +<P> +<BR>[1] - read mode is implemented internally within the driver +</P> +<P> +<BR>[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80) +</P> +<P> +<BR>[3] - This RID is implemented internally in the driver +</P> +<P> +<BR> +</P> +<P> +<CENTER> +<TABLE border=1> +	<TR> +		<TD valign=bottom><B>PRISM2<BR>RID<BR>VALUE</B> +		<TD valign=bottom><B>PRISM2<BR>RID<BR>NAME</B> +		<TD valign=bottom><B>STA</B> +		<TD valign=bottom><B>AP</B> +		<TD valign=bottom><B>802.11 MibItem Name</B> +		<TD valign=bottom><B>Doc<BR>Src</B> +		<TD valign=bottom><B>Implemented?</B> +	<TR> +		<TD valign=bottom>F200 +		<TD valign=bottom>LinkStatus +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F201 +		<TD valign=bottom>AssociationStatus +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F202 +		<TD valign=bottom>AuthenticationRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F203 +		<TD valign=bottom>PowerSaveUserCount +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC29 +		<TD valign=bottom>cnfWEPKeyMappingTable +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2A +		<TD valign=bottom>cnfAuthentication +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2B +		<TD valign=bottom>cnfMaxAssociatedStations +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2C +		<TD valign=bottom>cnfTxControl +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2D +		<TD valign=bottom>cnfRoamingMode +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2E +		<TD valign=bottom>cnfHostAuthentication +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC30 +		<TD valign=bottom>cnfRcvCrcError +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC31 +		<TD valign=bottom>cnfMMLife +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC32 +		<TD valign=bottom>cnfAltRetryCnt +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC33 +		<TD valign=bottom>cnfBeaconInterval +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC34 +		<TD valign=bottom>cnfAPPCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC35 +		<TD valign=bottom>cnfSTAPCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9E +		<TD valign=bottom>TxRateControl0 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9F +		<TD valign=bottom>TxRateControl1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA0 +		<TD valign=bottom>TxRateControl2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA1 +		<TD valign=bottom>TxRateControl3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA2 +		<TD valign=bottom>TxRateControl4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA3 +		<TD valign=bottom>TxRateControl5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA4 +		<TD valign=bottom>TxRateControl6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB0 +		<TD valign=bottom>cnfShortPreamble +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB1 +		<TD valign=bottom>cnfExcludeLongPreamble +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB3 +		<TD valign=bottom>cnfBasicRates +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE1 +		<TD valign=bottom>ScanRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE2 +		<TD valign=bottom>JoinRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE3 +		<TD valign=bottom>authenticateStation +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE4 +		<TD valign=bottom>ChannelInfoRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F101 +		<TD valign=bottom>ScanResults +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F102 +		<TD valign=bottom>ChannelInfoResults +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC00 +		<TD valign=bottom>cnfPortType +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC03 +		<TD valign=bottom>cnfOwnChannel +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC04 +		<TD valign=bottom>cnfOwnSSID IBSS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC05 +		<TD valign=bottom>cnfOwnATIMWindow +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC06 +		<TD valign=bottom>cnfSystemScale +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC07 +		<TD valign=bottom>cnfMaxDataLength +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC08 +		<TD valign=bottom>cnfWDSAddress +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0A +		<TD valign=bottom>cnfPMEPS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0B +		<TD valign=bottom>cnfMulticastReceive +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0C +		<TD valign=bottom>cnfMaxSleepDuration +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0D +		<TD valign=bottom>cnfPMHoldoverDuration +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0E +		<TD valign=bottom>cnfOwnName +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC11 +		<TD valign=bottom>cnfWDSAddress1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC12 +		<TD valign=bottom>cnfWDSAddress2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC13 +		<TD valign=bottom>cnfWDSAddress3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC14 +		<TD valign=bottom>cnfWDSAddress4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC15 +		<TD valign=bottom>cnfWDSAddress5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC16 +		<TD valign=bottom>cnfWDSAddress6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC17 +		<TD valign=bottom>cnfMulticastPMBuffering +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC81 +		<TD valign=bottom>CreateIBSS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC90 +		<TD valign=bottom>FragmentationThreshold0 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC91 +		<TD valign=bottom>FragmentationThreshold1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC92 +		<TD valign=bottom>FragmentationThreshold2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC93 +		<TD valign=bottom>FragmentationThreshold3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC94 +		<TD valign=bottom>FragmentationThreshold4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC95 +		<TD valign=bottom>FragmentationThreshold5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC96 +		<TD valign=bottom>FragmentationThreshold6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC97 +		<TD valign=bottom>RTSThreshold0 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC98 +		<TD valign=bottom>RTSThreshold1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC99 +		<TD valign=bottom>RTSThreshold2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9A +		<TD valign=bottom>RTSThreshold3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9B +		<TD valign=bottom>RTSThreshold4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9C +		<TD valign=bottom>RTSThreshold5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9D +		<TD valign=bottom>RTSThreshold6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB4 +		<TD valign=bottom>cnfSupportedRates +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE0 +		<TD valign=bottom>TickTime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD00 +		<TD valign=bottom>MaxLoadTime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD01 +		<TD valign=bottom>DownloadBuffer +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD02 +		<TD valign=bottom>PRIIdentity +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD03 +		<TD valign=bottom>PRISupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD04 +		<TD valign=bottom>CFIActRanges +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0A +		<TD valign=bottom>NICSerialNumber +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0B +		<TD valign=bottom>NICIdentity +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0C +		<TD valign=bottom>MFISupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0D +		<TD valign=bottom>CFISupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD10 +		<TD valign=bottom>ChannelList +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD11 +		<TD valign=bottom>RegulatoryDomains +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD13 +		<TD valign=bottom>CIS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD20 +		<TD valign=bottom>STAIdentity +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD21 +		<TD valign=bottom>STASupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD22 +		<TD valign=bottom>MFIActRanges +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD23 +		<TD valign=bottom>CFIActRanges +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD40 +		<TD valign=bottom>PortStatus +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD41 +		<TD valign=bottom>CurrentSSID +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD42 +		<TD valign=bottom>CurrentBSSID +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD43 +		<TD valign=bottom>CommsQuality +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD44 +		<TD valign=bottom>CurrentTxRate +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD46 +		<TD valign=bottom>CurrentScaleThresholds +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD80 +		<TD valign=bottom>CurrentTxRate1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD81 +		<TD valign=bottom>CurrentTxRate2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD82 +		<TD valign=bottom>CurrentTxRate3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD83 +		<TD valign=bottom>CurrentTxRate4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD84 +		<TD valign=bottom>CurrentTxRate5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD85 +		<TD valign=bottom>CurrentTxRate6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FDC2 +		<TD valign=bottom>CurrentPowerState +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FDC6 +		<TD valign=bottom>SupportedDataRates +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ACKFailureCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC85 +		<TD valign=bottom>PromiscuousMode +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address1-32 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [2] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address10 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address11 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address12 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address13 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address14 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address15 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address16 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address17 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address18 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address19 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address1 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address20 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address21 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address22 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address23 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address24 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address25 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address26 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address27 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address28 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address29 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address2 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address30 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address31 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address32 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address3 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address4 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address5 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address6 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address7 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address8 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address9 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AntennaListIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD47 +		<TD valign=bottom>ProtocolRspTime +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11AssociationResponseTimeOut +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticateFailStation +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticateFailStatus +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom>FD4D +		<TD valign=bottom>AuthenticationAlgorithms +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11AuthenticationAlgorithm1 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm2 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm3 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm4 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm5 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm6 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD4D +		<TD valign=bottom>AuthenticationAlgorithms +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable1 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable2 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable3 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable4 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable5 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable6 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB2 +		<TD valign=bottom>cnfAuthenticationRspTO +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationResponseTimeOut +		<TD valign=bottom>API +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD45 +		<TD valign=bottom>CurrentBeaconInterval +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11BeaconPeriod +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAModeSupported +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogCountMax +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogCountMin +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogTimerMax +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogTimerMin +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD87 +		<TD valign=bottom>PCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11CFPMaxDuration +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD87 +		<TD valign=bottom>PCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11CFPPeriod +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD4C +		<TD valign=bottom>CFPollable +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CFPollable +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ChannelAgilityEnabled +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ChannelAgilityPresent +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FDC3 +		<TD valign=bottom>CCAMode +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11CurrentCCAMode +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FDC1 +		<TD valign=bottom>CurrentChannel +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11CurrentChannel +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentChannelNumber +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentDwellTime +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentPattern +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentRegDomain +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentRxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentSet +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentTxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentTxPowerLevel +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC10 +		<TD valign=bottom>cnfOwnDTIMPeriod +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11DTIMPeriod +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DeauthenticateReason +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DeauthenticateStation +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DesiredBSSType +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [3] +	<TR> +		<TD valign=bottom>FC02 +		<TD valign=bottom>cnfDesiredSSID +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DesiredSSID +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DisassociateReason +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DisassociateStation +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DiversitySelectionRx +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DiversitySupport +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11EDThreshold +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC28 +		<TD valign=bottom>cnfWEPFlags +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11ExcludeUnencrypted +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FCSErrorCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FailedCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC82 +		<TD valign=bottom>FragmentationThreshold +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FragmentationThreshold +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FrameDuplicateCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11HopTime +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD49 +		<TD valign=bottom>LongRetryLimit +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11LongRetryLimit +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD86 +		<TD valign=bottom>OwnMACAddress +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11MACAddress +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ManufacturerID +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MaxDwellTime +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD4B +		<TD valign=bottom>MaxReceiveLifetime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MaxReceiveLifetime +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD4A +		<TD valign=bottom>MaxTransmitLifetime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MaxTransmitMSDULifetime +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD87 +		<TD valign=bottom>PCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11MediumOccupancyLimit +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MulticastReceivedFrameCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MulticastTransmittedFrameCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MultipleRetryCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11NumberSupportedPowerLevels +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC84 +		<TD valign=bottom>TxRateControl +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11OperationalRateSet +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11PBCCOptionImplemented +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FDC0 +		<TD valign=bottom>PHYType +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11PHYType +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FC09 +		<TD valign=bottom>cnfPMEnabled +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11PowerManagementMode +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC28 +		<TD valign=bottom>cnfWEPFlags +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11PrivacyInvoked +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FD4F +		<TD valign=bottom>PrivacyOptionImplemented +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11PrivacyOptionImplemented +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ProductID +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RTSFailureCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RTSSuccessCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC83 +		<TD valign=bottom>RTSThreshold +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RTSThreshold +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ReceivedFragmentCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RegDomainsSupportIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RegDomainsSupportValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RetryCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ShortPreambleOptionImplemented +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD48 +		<TD valign=bottom>ShortRetryLimit +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11ShortRetryLimit +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FC01 +		<TD valign=bottom>cnfOwnMACAddress +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11StationID +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesRxIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesRxValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesTxIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesTxValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedRxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedTxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD12 +		<TD valign=bottom>TempType +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11TempType +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TransmittedFragmentCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TransmittedFrameCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel1 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel2 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel3 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel4 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel5 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel6 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel7 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel8 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC24 +		<TD valign=bottom>cnfDefaultKey0 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey0 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC25 +		<TD valign=bottom>cnfDefaultKey1 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey1 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC26 +		<TD valign=bottom>cnfDefaultKey2 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey2 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC27 +		<TD valign=bottom>cnfDefaultKey3 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey3 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC23 +		<TD valign=bottom>cnfWEPDefaultKeyID +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKeyID +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPExcludedCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPICVErrorCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingAddress +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingLength +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingWEPOn +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPUndecryptableCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +</TABLE> +</CENTER> +</BODY> +</HTML> diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.txt.svn-base new file mode 100644 index 0000000..eeac25b --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.txt.svn-base @@ -0,0 +1,510 @@ +doc/prism2/ridlist-mib.txt + Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved. + + + +API - The document source for this RID is the API Enhancements Document + +PRO - The document source for this RID is the CW10 Programmer's Manual + +[1] - read mode is implemented internally within the driver + +[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80) + +[3] - This RID is implemented internally in the driver + +======================================================================================================= +PRISM2 | PRISM2               |     |     |                                       |     |   +RID    | RID                  |     |     |                                       | Doc |   +VALUE  | NAME                 | STA | AP  | MibItem NAME                          | Src | Implemented? +======================================================================================================= +F200   | LinkStatus           |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F201   | AssociationStatus    |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F202   | AuthenticationReques |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F203   | PowerSaveUserCount   |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC29   | cnfWEPKeyMappingTabl |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2A   | cnfAuthentication    |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2B   | cnfMaxAssociatedStat |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2C   | cnfTxControl         |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2D   | cnfRoamingMode       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2E   | cnfHostAuthenticatio |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC30   | cnfRcvCrcError       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC31   | cnfMMLife            |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC32   | cnfAltRetryCnt       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC33   | cnfBeaconInterval    |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC34   | cnfAPPCFInfo         |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC35   | cnfSTAPCFInfo        |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC9E   | TxRateControl0       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC9F   | TxRateControl1       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA0   | TxRateControl2       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA1   | TxRateControl3       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA2   | TxRateControl4       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA3   | TxRateControl5       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA4   | TxRateControl6       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB0   | cnfShortPreamble     |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB1   | cnfExcludeLongPreamb |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB3   | cnfBasicRates        |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE1   | ScanRequest          |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE2   | JoinRequest          |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE3   | authenticateStation  |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE4   | ChannelInfoRequest   |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F101   | ScanResults          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +F102   | ChannelInfoResults   |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC00   | cnfPortType          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC03   | cnfOwnChannel        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC04   | cnfOwnSSID IBSS      |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC05   | cnfOwnATIMWindow     |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC06   | cnfSystemScale       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC07   | cnfMaxDataLength     |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC08   | cnfWDSAddress        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0A   | cnfPMEPS             |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0B   | cnfMulticastReceive  |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0C   | cnfMaxSleepDuration  |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0D   | cnfPMHoldoverDuratio |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0E   | cnfOwnName           |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC11   | cnfWDSAddress1       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC12   | cnfWDSAddress2       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC13   | cnfWDSAddress3       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC14   | cnfWDSAddress4       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC15   | cnfWDSAddress5       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC16   | cnfWDSAddress6       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC17   | cnfMulticastPMBuffer |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC81   | CreateIBSS           |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC90   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC91   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC92   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC93   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC94   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC95   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC96   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC97   | RTSThreshold0        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC98   | RTSThreshold1        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC99   | RTSThreshold2        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9A   | RTSThreshold3        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9B   | RTSThreshold4        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9C   | RTSThreshold5        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9D   | RTSThreshold6        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FCB4   | cnfSupportedRates    |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FCE0   | TickTime             |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD00   | MaxLoadTime          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD01   | DownloadBuffer       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD02   | PRIIdentity          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD03   | PRISupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD04   | CFIActRanges         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0A   | NICSerialNumber      |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0B   | NICIdentity          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0C   | MFISupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0D   | CFISupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD10   | ChannelList          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD11   | RegulatoryDomains    |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD13   | CIS                  |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD20   | STAIdentity          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD21   | STASupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD22   | MFIActRanges         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD23   | CFIActRanges         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD40   | PortStatus           |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD41   | CurrentSSID          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD42   | CurrentBSSID         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD43   | CommsQuality         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD44   | CurrentTxRate        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD46   | CurrentScaleThreshol |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD80   | CurrentTxRate1       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD81   | CurrentTxRate2       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD82   | CurrentTxRate3       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD83   | CurrentTxRate4       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD84   | CurrentTxRate5       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD85   | CurrentTxRate6       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FDC2   | CurrentPowerState    |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FDC6   | SupportedDataRates   |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ACKFailureCount                  | PRO |  +------------------------------------------------------------------------------------------------------- +FC85   | PromiscuousMode      | X   |     | dot11Address1-32                      | PRO | R/W [2] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address10                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address11                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address12                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address13                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address14                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address15                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address16                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address17                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address18                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address19                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address1                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address20                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address21                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address22                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address23                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address24                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address25                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address26                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address27                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address28                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address29                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address2                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address30                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address31                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address32                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address3                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address4                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address5                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address6                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address7                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address8                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address9                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AntennaListIndex                 | PRO |  +------------------------------------------------------------------------------------------------------- +FD47   | ProtocolRspTime      | X   | X   | dot11AssociationResponseTimeOut       | PRO | R +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticateFailStation          | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticateFailStatus           | PRO | R [3] +------------------------------------------------------------------------------------------------------- +FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithm1         | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm2         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm3         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm4         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm5         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm6         | PRO |  +------------------------------------------------------------------------------------------------------- +FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithmsEnable1  | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable2  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable3  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable4  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable5  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable6  | PRO |  +------------------------------------------------------------------------------------------------------- +FCB2   | cnfAuthenticationRsp | X   |     | dot11AuthenticationResponseTimeOut    | API | R +------------------------------------------------------------------------------------------------------- +FD45   | CurrentBeaconInterva | X   | X   | dot11BeaconPeriod                     | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAModeSupported                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogCountMax              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogCountMin              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogTimerMax              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogTimerMin              | PRO |  +------------------------------------------------------------------------------------------------------- +FD87   | PCFInfo              |     | X   | dot11CFPMaxDuration                   | PRO | R +------------------------------------------------------------------------------------------------------- +FD87   | PCFInfo              |     | X   | dot11CFPPeriod                        | PRO | R +------------------------------------------------------------------------------------------------------- +FD4C   | CFPollable           | X   |     | dot11CFPollable                       | PRO | R +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ChannelAgilityEnabled            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ChannelAgilityPresent            | PRO |  +------------------------------------------------------------------------------------------------------- +FDC3   | CCAMode              | X   | X   | dot11CurrentCCAMode                   | PRO | R +------------------------------------------------------------------------------------------------------- +FDC1   | CurrentChannel       | X   | X   | dot11CurrentChannel                   | PRO | R +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentChannelNumber             | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentDwellTime                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentIndex                     | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentPattern                   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentRegDomain                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentRxAntenna                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentSet                       | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentTxAntenna                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentTxPowerLevel              | PRO |  +------------------------------------------------------------------------------------------------------- +FC10   | cnfOwnDTIMPeriod     |     | X   | dot11DTIMPeriod                       | API | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DeauthenticateReason             | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DeauthenticateStation            | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DesiredBSSType                   | PRO | R/W [3] +------------------------------------------------------------------------------------------------------- +FC02   | cnfDesiredSSID       | X   |     | dot11DesiredSSID                      | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DisassociateReason               | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DisassociateStation              | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DiversitySelectionRx             | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DiversitySupport                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11EDThreshold                      | PRO |  +------------------------------------------------------------------------------------------------------- +FC28   | cnfWEPFlags          | X   | X   | dot11ExcludeUnencrypted               | API | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11FCSErrorCount                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11FailedCount                      | PRO |  +------------------------------------------------------------------------------------------------------- +FC82   | FragmentationThresho | X   |     | dot11FragmentationThreshold           | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11FrameDuplicateCount              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11HopTime                          | PRO |  +------------------------------------------------------------------------------------------------------- +FD49   | LongRetryLimit       | X   | X   | dot11LongRetryLimit                   | PRO | R +------------------------------------------------------------------------------------------------------- +FD86   | OwnMACAddress        |     | X   | dot11MACAddress                       | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ManufacturerID                   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MaxDwellTime                     | PRO |  +------------------------------------------------------------------------------------------------------- +FD4B   | MaxReceiveLifetime   |     |     | dot11MaxReceiveLifetime               | PRO | R +------------------------------------------------------------------------------------------------------- +FD4A   | MaxTransmitLifetime  |     |     | dot11MaxTransmitMSDULifetime          | PRO | R +------------------------------------------------------------------------------------------------------- +FD87   | PCFInfo              |     | X   | dot11MediumOccupancyLimit             | PRO | R +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MulticastReceivedFrameCount      | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MulticastTransmittedFrameCount   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MultipleRetryCount               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11NumberSupportedPowerLevels       | PRO |  +------------------------------------------------------------------------------------------------------- +FC84   | TxRateControl        | X   |     | dot11OperationalRateSet               | API | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11PBCCOptionImplemented            | PRO |  +------------------------------------------------------------------------------------------------------- +FDC0   | PHYType              | X   | X   | dot11PHYType                          | PRO | R +------------------------------------------------------------------------------------------------------- +FC09   | cnfPMEnabled         | X   |     | dot11PowerManagementMode              | PRO | R/W +------------------------------------------------------------------------------------------------------- +FC28   | cnfWEPFlags          | X   | X   | dot11PrivacyInvoked                   | API | R/W +------------------------------------------------------------------------------------------------------- +FD4F   | PrivacyOptionImpleme |     |     | dot11PrivacyOptionImplemented         | PRO | R +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ProductID                        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RTSFailureCount                  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RTSSuccessCount                  | PRO |  +------------------------------------------------------------------------------------------------------- +FC83   | RTSThreshold         | X   |     | dot11RTSThreshold                     | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ReceivedFragmentCount            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RegDomainsSupportIndex           | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RegDomainsSupportValue           | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RetryCount                       | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ShortPreambleOptionImplemented   | PRO |  +------------------------------------------------------------------------------------------------------- +FD48   | ShortRetryLimit      | X   | X   | dot11ShortRetryLimit                  | PRO | R +------------------------------------------------------------------------------------------------------- +FC01   | cnfOwnMACAddress     | X   |     | dot11StationID                        | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesRxIndex        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesRxValue        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesTxIndex        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesTxValue        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedRxAntenna               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedTxAntenna               | PRO |  +------------------------------------------------------------------------------------------------------- +FD12   | TempType             | X   | X   | dot11TempType                         | PRO | R +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TransmittedFragmentCount         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TransmittedFrameCount            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel1                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel2                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel3                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel4                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel5                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel6                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel7                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel8                    | PRO |  +------------------------------------------------------------------------------------------------------- +FC24   | cnfDefaultKey0       | X   | X   | dot11WEPDefaultKey0                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC25   | cnfDefaultKey1       | X   | X   | dot11WEPDefaultKey1                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC26   | cnfDefaultKey2       | X   | X   | dot11WEPDefaultKey2                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC27   | cnfDefaultKey3       | X   | X   | dot11WEPDefaultKey3                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC23   | cnfWEPDefaultKeyID   | X   | X   | dot11WEPDefaultKeyID                  | API | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPExcludedCount                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPICVErrorCount                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingAddress             | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingIndex               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingLength              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingValue               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingWEPOn               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPUndecryptableCount            | PRO |  +------------------------------------------------------------------------------------------------------- diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.html.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.html.svn-base new file mode 100644 index 0000000..b6ebacb --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.html.svn-base @@ -0,0 +1,2001 @@ +<HTML> +<HEAD> +	<TITLE>802.11 to PRISM2 RID Mapping List</TITLE> +</HEAD> +<BODY> +<P> +<B>doc/prism2/ridlist-rid.html<BR>Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved.</B> +</P> +<P> +<BR>API - The document source for this RID is the API Enhancements Document +</P> +<P> +<BR>PRO - The document source for this RID is the CW10 Programmer's Manual +</P> +<P> +<BR>[1] - read mode is implemented internally within the driver +</P> +<P> +<BR>[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80) +</P> +<P> +<BR>[3] - This RID is implemented internally in the driver +</P> +<P> +<BR> +</P> +<P> +<CENTER> +<TABLE border=1> +	<TR> +		<TD valign=bottom><B>PRISM2<BR>RID<BR>VALUE</B> +		<TD valign=bottom><B>PRISM2<BR>RID<BR>NAME</B> +		<TD valign=bottom><B>STA</B> +		<TD valign=bottom><B>AP</B> +		<TD valign=bottom><B>802.11 MibItem Name</B> +		<TD valign=bottom><B>Doc<BR>Src</B> +		<TD valign=bottom><B>Implemented?</B> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ACKFailureCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AntennaListIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticateFailStation +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticateFailStatus +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm2 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm3 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm4 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm5 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm6 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable2 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable3 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable4 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable5 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable6 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAModeSupported +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogCountMax +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogCountMin +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogTimerMax +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogTimerMin +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ChannelAgilityEnabled +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ChannelAgilityPresent +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentChannelNumber +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentDwellTime +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentPattern +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentRegDomain +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentRxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentSet +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentTxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentTxPowerLevel +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DeauthenticateReason +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DeauthenticateStation +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DesiredBSSType +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DisassociateReason +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DisassociateStation +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DiversitySelectionRx +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DiversitySupport +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11EDThreshold +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FCSErrorCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FailedCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FrameDuplicateCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11HopTime +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ManufacturerID +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MaxDwellTime +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MulticastReceivedFrameCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MulticastTransmittedFrameCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MultipleRetryCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11NumberSupportedPowerLevels +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11PBCCOptionImplemented +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ProductID +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RTSFailureCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RTSSuccessCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ReceivedFragmentCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RegDomainsSupportIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RegDomainsSupportValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RetryCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ShortPreambleOptionImplemented +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesRxIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesRxValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesTxIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesTxValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedRxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedTxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TransmittedFragmentCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TransmittedFrameCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel1 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel2 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel3 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel4 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel5 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel6 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel7 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel8 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPExcludedCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPICVErrorCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingAddress +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingLength +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingWEPOn +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPUndecryptableCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F101 +		<TD valign=bottom>ScanResults +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F102 +		<TD valign=bottom>ChannelInfoResults +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F200 +		<TD valign=bottom>LinkStatus +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F201 +		<TD valign=bottom>AssociationStatus +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F202 +		<TD valign=bottom>AuthenticationRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F203 +		<TD valign=bottom>PowerSaveUserCount +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC00 +		<TD valign=bottom>cnfPortType +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC01 +		<TD valign=bottom>cnfOwnMACAddress +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11StationID +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC02 +		<TD valign=bottom>cnfDesiredSSID +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DesiredSSID +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC03 +		<TD valign=bottom>cnfOwnChannel +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC04 +		<TD valign=bottom>cnfOwnSSID IBSS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC05 +		<TD valign=bottom>cnfOwnATIMWindow +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC06 +		<TD valign=bottom>cnfSystemScale +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC07 +		<TD valign=bottom>cnfMaxDataLength +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC08 +		<TD valign=bottom>cnfWDSAddress +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC09 +		<TD valign=bottom>cnfPMEnabled +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11PowerManagementMode +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC0A +		<TD valign=bottom>cnfPMEPS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0B +		<TD valign=bottom>cnfMulticastReceive +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0C +		<TD valign=bottom>cnfMaxSleepDuration +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0D +		<TD valign=bottom>cnfPMHoldoverDuration +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0E +		<TD valign=bottom>cnfOwnName +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC10 +		<TD valign=bottom>cnfOwnDTIMPeriod +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11DTIMPeriod +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC11 +		<TD valign=bottom>cnfWDSAddress1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC12 +		<TD valign=bottom>cnfWDSAddress2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC13 +		<TD valign=bottom>cnfWDSAddress3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC14 +		<TD valign=bottom>cnfWDSAddress4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC15 +		<TD valign=bottom>cnfWDSAddress5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC16 +		<TD valign=bottom>cnfWDSAddress6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC17 +		<TD valign=bottom>cnfMulticastPMBuffering +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC23 +		<TD valign=bottom>cnfWEPDefaultKeyID +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKeyID +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC24 +		<TD valign=bottom>cnfDefaultKey0 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey0 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC25 +		<TD valign=bottom>cnfDefaultKey1 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey1 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC26 +		<TD valign=bottom>cnfDefaultKey2 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey2 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC27 +		<TD valign=bottom>cnfDefaultKey3 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey3 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC28 +		<TD valign=bottom>cnfWEPFlags +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11ExcludeUnencrypted +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC28 +		<TD valign=bottom>cnfWEPFlags +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11PrivacyInvoked +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC29 +		<TD valign=bottom>cnfWEPKeyMappingTable +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2A +		<TD valign=bottom>cnfAuthentication +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2B +		<TD valign=bottom>cnfMaxAssociatedStations +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2C +		<TD valign=bottom>cnfTxControl +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2D +		<TD valign=bottom>cnfRoamingMode +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2E +		<TD valign=bottom>cnfHostAuthentication +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC30 +		<TD valign=bottom>cnfRcvCrcError +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC31 +		<TD valign=bottom>cnfMMLife +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC32 +		<TD valign=bottom>cnfAltRetryCnt +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC33 +		<TD valign=bottom>cnfBeaconInterval +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC34 +		<TD valign=bottom>cnfAPPCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC35 +		<TD valign=bottom>cnfSTAPCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address10 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address11 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address12 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address13 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address14 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address15 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address16 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address17 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address18 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address19 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address1 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address20 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address21 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address22 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address23 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address24 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address25 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address26 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address27 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address28 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address29 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address2 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address30 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address31 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address32 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address3 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address4 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address5 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address6 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address7 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address8 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address9 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC81 +		<TD valign=bottom>CreateIBSS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC82 +		<TD valign=bottom>FragmentationThreshold +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FragmentationThreshold +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC83 +		<TD valign=bottom>RTSThreshold +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RTSThreshold +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC84 +		<TD valign=bottom>TxRateControl +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11OperationalRateSet +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC85 +		<TD valign=bottom>PromiscuousMode +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address1-32 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [2] +	<TR> +		<TD valign=bottom>FC90 +		<TD valign=bottom>FragmentationThreshold0 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC91 +		<TD valign=bottom>FragmentationThreshold1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC92 +		<TD valign=bottom>FragmentationThreshold2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC93 +		<TD valign=bottom>FragmentationThreshold3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC94 +		<TD valign=bottom>FragmentationThreshold4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC95 +		<TD valign=bottom>FragmentationThreshold5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC96 +		<TD valign=bottom>FragmentationThreshold6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC97 +		<TD valign=bottom>RTSThreshold0 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC98 +		<TD valign=bottom>RTSThreshold1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC99 +		<TD valign=bottom>RTSThreshold2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9A +		<TD valign=bottom>RTSThreshold3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9B +		<TD valign=bottom>RTSThreshold4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9C +		<TD valign=bottom>RTSThreshold5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9D +		<TD valign=bottom>RTSThreshold6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9E +		<TD valign=bottom>TxRateControl0 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9F +		<TD valign=bottom>TxRateControl1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA0 +		<TD valign=bottom>TxRateControl2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA1 +		<TD valign=bottom>TxRateControl3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA2 +		<TD valign=bottom>TxRateControl4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA3 +		<TD valign=bottom>TxRateControl5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA4 +		<TD valign=bottom>TxRateControl6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB0 +		<TD valign=bottom>cnfShortPreamble +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB1 +		<TD valign=bottom>cnfExcludeLongPreamble +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB2 +		<TD valign=bottom>cnfAuthenticationRspTO +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationResponseTimeOut +		<TD valign=bottom>API +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FCB3 +		<TD valign=bottom>cnfBasicRates +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB4 +		<TD valign=bottom>cnfSupportedRates +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE0 +		<TD valign=bottom>TickTime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE1 +		<TD valign=bottom>ScanRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE2 +		<TD valign=bottom>JoinRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE3 +		<TD valign=bottom>authenticateStation +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE4 +		<TD valign=bottom>ChannelInfoRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD00 +		<TD valign=bottom>MaxLoadTime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD01 +		<TD valign=bottom>DownloadBuffer +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD02 +		<TD valign=bottom>PRIIdentity +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD03 +		<TD valign=bottom>PRISupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD04 +		<TD valign=bottom>CFIActRanges +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0A +		<TD valign=bottom>NICSerialNumber +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0B +		<TD valign=bottom>NICIdentity +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0C +		<TD valign=bottom>MFISupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0D +		<TD valign=bottom>CFISupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD10 +		<TD valign=bottom>ChannelList +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD11 +		<TD valign=bottom>RegulatoryDomains +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD12 +		<TD valign=bottom>TempType +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11TempType +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD13 +		<TD valign=bottom>CIS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD20 +		<TD valign=bottom>STAIdentity +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD21 +		<TD valign=bottom>STASupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD22 +		<TD valign=bottom>MFIActRanges +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD23 +		<TD valign=bottom>CFIActRanges +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD40 +		<TD valign=bottom>PortStatus +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD41 +		<TD valign=bottom>CurrentSSID +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD42 +		<TD valign=bottom>CurrentBSSID +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD43 +		<TD valign=bottom>CommsQuality +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD44 +		<TD valign=bottom>CurrentTxRate +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD45 +		<TD valign=bottom>CurrentBeaconInterval +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11BeaconPeriod +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FD46 +		<TD valign=bottom>CurrentScaleThresholds +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD47 +		<TD valign=bottom>ProtocolRspTime +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11AssociationResponseTimeOut +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD48 +		<TD valign=bottom>ShortRetryLimit +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11ShortRetryLimit +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD49 +		<TD valign=bottom>LongRetryLimit +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11LongRetryLimit +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD4A +		<TD valign=bottom>MaxTransmitLifetime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MaxTransmitMSDULifetime +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD4B +		<TD valign=bottom>MaxReceiveLifetime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MaxReceiveLifetime +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD4C +		<TD valign=bottom>CFPollable +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CFPollable +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD4D +		<TD valign=bottom>AuthenticationAlgorithms +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11AuthenticationAlgorithm1 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FD4D +		<TD valign=bottom>AuthenticationAlgorithms +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable1 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FD4F +		<TD valign=bottom>PrivacyOptionImplemented +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11PrivacyOptionImplemented +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD80 +		<TD valign=bottom>CurrentTxRate1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD81 +		<TD valign=bottom>CurrentTxRate2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD82 +		<TD valign=bottom>CurrentTxRate3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD83 +		<TD valign=bottom>CurrentTxRate4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD84 +		<TD valign=bottom>CurrentTxRate5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD85 +		<TD valign=bottom>CurrentTxRate6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD86 +		<TD valign=bottom>OwnMACAddress +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11MACAddress +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FD87 +		<TD valign=bottom>PCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11CFPMaxDuration +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD87 +		<TD valign=bottom>PCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11CFPPeriod +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD87 +		<TD valign=bottom>PCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11MediumOccupancyLimit +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FDC0 +		<TD valign=bottom>PHYType +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11PHYType +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FDC1 +		<TD valign=bottom>CurrentChannel +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11CurrentChannel +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FDC2 +		<TD valign=bottom>CurrentPowerState +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FDC3 +		<TD valign=bottom>CCAMode +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11CurrentCCAMode +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FDC6 +		<TD valign=bottom>SupportedDataRates +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +</TABLE> +</CENTER> +</BODY> +</HTML> diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.txt.svn-base new file mode 100644 index 0000000..02f3063 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.txt.svn-base @@ -0,0 +1,510 @@ +doc/prism2/ridlist-rid.txt + Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved. + + + +API - The document source for this RID is the API Enhancements Document + +PRO - The document source for this RID is the CW10 Programmer's Manual + +[1] - read mode is implemented internally within the driver + +[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80) + +[3] - This RID is implemented internally in the driver + +======================================================================================================= +PRISM2 | PRISM2               |     |     |                                       |     |   +RID    | RID                  |     |     |                                       | Doc |   +VALUE  | NAME                 | STA | AP  | MibItem NAME                          | Src | Implemented? +======================================================================================================= +       |                      |     |     | dot11ACKFailureCount                  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AntennaListIndex                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticateFailStation          | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticateFailStatus           | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm2         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm3         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm4         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm5         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm6         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable2  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable3  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable4  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable5  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable6  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAModeSupported                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogCountMax              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogCountMin              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogTimerMax              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogTimerMin              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ChannelAgilityEnabled            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ChannelAgilityPresent            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentChannelNumber             | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentDwellTime                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentIndex                     | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentPattern                   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentRegDomain                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentRxAntenna                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentSet                       | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentTxAntenna                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentTxPowerLevel              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DeauthenticateReason             | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DeauthenticateStation            | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DesiredBSSType                   | PRO | R/W [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DisassociateReason               | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DisassociateStation              | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DiversitySelectionRx             | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DiversitySupport                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11EDThreshold                      | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11FCSErrorCount                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11FailedCount                      | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11FrameDuplicateCount              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11HopTime                          | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ManufacturerID                   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MaxDwellTime                     | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MulticastReceivedFrameCount      | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MulticastTransmittedFrameCount   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MultipleRetryCount               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11NumberSupportedPowerLevels       | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11PBCCOptionImplemented            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ProductID                        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RTSFailureCount                  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RTSSuccessCount                  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ReceivedFragmentCount            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RegDomainsSupportIndex           | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RegDomainsSupportValue           | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RetryCount                       | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ShortPreambleOptionImplemented   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesRxIndex        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesRxValue        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesTxIndex        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesTxValue        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedRxAntenna               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedTxAntenna               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TransmittedFragmentCount         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TransmittedFrameCount            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel1                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel2                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel3                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel4                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel5                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel6                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel7                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel8                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPExcludedCount                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPICVErrorCount                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingAddress             | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingIndex               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingLength              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingValue               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingWEPOn               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPUndecryptableCount            | PRO |  +------------------------------------------------------------------------------------------------------- +F101   | ScanResults          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +F102   | ChannelInfoResults   |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +F200   | LinkStatus           |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F201   | AssociationStatus    |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F202   | AuthenticationReques |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F203   | PowerSaveUserCount   |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC00   | cnfPortType          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC01   | cnfOwnMACAddress     | X   |     | dot11StationID                        | PRO | R/W +------------------------------------------------------------------------------------------------------- +FC02   | cnfDesiredSSID       | X   |     | dot11DesiredSSID                      | PRO | R/W +------------------------------------------------------------------------------------------------------- +FC03   | cnfOwnChannel        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC04   | cnfOwnSSID IBSS      |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC05   | cnfOwnATIMWindow     |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC06   | cnfSystemScale       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC07   | cnfMaxDataLength     |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC08   | cnfWDSAddress        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC09   | cnfPMEnabled         | X   |     | dot11PowerManagementMode              | PRO | R/W +------------------------------------------------------------------------------------------------------- +FC0A   | cnfPMEPS             |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0B   | cnfMulticastReceive  |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0C   | cnfMaxSleepDuration  |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0D   | cnfPMHoldoverDuratio |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0E   | cnfOwnName           |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC10   | cnfOwnDTIMPeriod     |     | X   | dot11DTIMPeriod                       | API | R/W +------------------------------------------------------------------------------------------------------- +FC11   | cnfWDSAddress1       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC12   | cnfWDSAddress2       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC13   | cnfWDSAddress3       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC14   | cnfWDSAddress4       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC15   | cnfWDSAddress5       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC16   | cnfWDSAddress6       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC17   | cnfMulticastPMBuffer |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC23   | cnfWEPDefaultKeyID   | X   | X   | dot11WEPDefaultKeyID                  | API | R/W +------------------------------------------------------------------------------------------------------- +FC24   | cnfDefaultKey0       | X   | X   | dot11WEPDefaultKey0                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC25   | cnfDefaultKey1       | X   | X   | dot11WEPDefaultKey1                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC26   | cnfDefaultKey2       | X   | X   | dot11WEPDefaultKey2                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC27   | cnfDefaultKey3       | X   | X   | dot11WEPDefaultKey3                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC28   | cnfWEPFlags          | X   | X   | dot11ExcludeUnencrypted               | API | R/W +------------------------------------------------------------------------------------------------------- +FC28   | cnfWEPFlags          | X   | X   | dot11PrivacyInvoked                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC29   | cnfWEPKeyMappingTabl |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2A   | cnfAuthentication    |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2B   | cnfMaxAssociatedStat |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2C   | cnfTxControl         |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2D   | cnfRoamingMode       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2E   | cnfHostAuthenticatio |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC30   | cnfRcvCrcError       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC31   | cnfMMLife            |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC32   | cnfAltRetryCnt       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC33   | cnfBeaconInterval    |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC34   | cnfAPPCFInfo         |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC35   | cnfSTAPCFInfo        |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address10                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address11                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address12                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address13                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address14                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address15                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address16                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address17                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address18                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address19                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address1                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address20                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address21                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address22                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address23                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address24                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address25                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address26                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address27                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address28                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address29                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address2                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address30                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address31                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address32                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address3                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address4                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address5                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address6                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address7                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address8                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address9                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC81   | CreateIBSS           |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC82   | FragmentationThresho | X   |     | dot11FragmentationThreshold           | PRO | R/W +------------------------------------------------------------------------------------------------------- +FC83   | RTSThreshold         | X   |     | dot11RTSThreshold                     | PRO | R/W +------------------------------------------------------------------------------------------------------- +FC84   | TxRateControl        | X   |     | dot11OperationalRateSet               | API | R/W +------------------------------------------------------------------------------------------------------- +FC85   | PromiscuousMode      | X   |     | dot11Address1-32                      | PRO | R/W [2] +------------------------------------------------------------------------------------------------------- +FC90   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC91   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC92   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC93   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC94   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC95   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC96   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC97   | RTSThreshold0        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC98   | RTSThreshold1        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC99   | RTSThreshold2        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9A   | RTSThreshold3        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9B   | RTSThreshold4        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9C   | RTSThreshold5        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9D   | RTSThreshold6        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9E   | TxRateControl0       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC9F   | TxRateControl1       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA0   | TxRateControl2       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA1   | TxRateControl3       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA2   | TxRateControl4       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA3   | TxRateControl5       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA4   | TxRateControl6       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB0   | cnfShortPreamble     |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB1   | cnfExcludeLongPreamb |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB2   | cnfAuthenticationRsp | X   |     | dot11AuthenticationResponseTimeOut    | API | R +------------------------------------------------------------------------------------------------------- +FCB3   | cnfBasicRates        |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB4   | cnfSupportedRates    |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FCE0   | TickTime             |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FCE1   | ScanRequest          |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE2   | JoinRequest          |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE3   | authenticateStation  |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE4   | ChannelInfoRequest   |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FD00   | MaxLoadTime          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD01   | DownloadBuffer       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD02   | PRIIdentity          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD03   | PRISupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD04   | CFIActRanges         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0A   | NICSerialNumber      |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0B   | NICIdentity          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0C   | MFISupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0D   | CFISupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD10   | ChannelList          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD11   | RegulatoryDomains    |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD12   | TempType             | X   | X   | dot11TempType                         | PRO | R +------------------------------------------------------------------------------------------------------- +FD13   | CIS                  |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD20   | STAIdentity          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD21   | STASupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD22   | MFIActRanges         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD23   | CFIActRanges         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD40   | PortStatus           |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD41   | CurrentSSID          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD42   | CurrentBSSID         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD43   | CommsQuality         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD44   | CurrentTxRate        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD45   | CurrentBeaconInterva | X   | X   | dot11BeaconPeriod                     | PRO | R/W +------------------------------------------------------------------------------------------------------- +FD46   | CurrentScaleThreshol |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD47   | ProtocolRspTime      | X   | X   | dot11AssociationResponseTimeOut       | PRO | R +------------------------------------------------------------------------------------------------------- +FD48   | ShortRetryLimit      | X   | X   | dot11ShortRetryLimit                  | PRO | R +------------------------------------------------------------------------------------------------------- +FD49   | LongRetryLimit       | X   | X   | dot11LongRetryLimit                   | PRO | R +------------------------------------------------------------------------------------------------------- +FD4A   | MaxTransmitLifetime  |     |     | dot11MaxTransmitMSDULifetime          | PRO | R +------------------------------------------------------------------------------------------------------- +FD4B   | MaxReceiveLifetime   |     |     | dot11MaxReceiveLifetime               | PRO | R +------------------------------------------------------------------------------------------------------- +FD4C   | CFPollable           | X   |     | dot11CFPollable                       | PRO | R +------------------------------------------------------------------------------------------------------- +FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithm1         | PRO | R/W +------------------------------------------------------------------------------------------------------- +FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithmsEnable1  | PRO | R/W +------------------------------------------------------------------------------------------------------- +FD4F   | PrivacyOptionImpleme |     |     | dot11PrivacyOptionImplemented         | PRO | R +------------------------------------------------------------------------------------------------------- +FD80   | CurrentTxRate1       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD81   | CurrentTxRate2       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD82   | CurrentTxRate3       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD83   | CurrentTxRate4       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD84   | CurrentTxRate5       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD85   | CurrentTxRate6       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD86   | OwnMACAddress        |     | X   | dot11MACAddress                       | PRO | R/W +------------------------------------------------------------------------------------------------------- +FD87   | PCFInfo              |     | X   | dot11CFPMaxDuration                   | PRO | R +------------------------------------------------------------------------------------------------------- +FD87   | PCFInfo              |     | X   | dot11CFPPeriod                        | PRO | R +------------------------------------------------------------------------------------------------------- +FD87   | PCFInfo              |     | X   | dot11MediumOccupancyLimit             | PRO | R +------------------------------------------------------------------------------------------------------- +FDC0   | PHYType              | X   | X   | dot11PHYType                          | PRO | R +------------------------------------------------------------------------------------------------------- +FDC1   | CurrentChannel       | X   | X   | dot11CurrentChannel                   | PRO | R +------------------------------------------------------------------------------------------------------- +FDC2   | CurrentPowerState    |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FDC3   | CCAMode              | X   | X   | dot11CurrentCCAMode                   | PRO | R +------------------------------------------------------------------------------------------------------- +FDC6   | SupportedDataRates   |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.html b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.html new file mode 100644 index 0000000..63cac2f --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.html @@ -0,0 +1,2001 @@ +<HTML> +<HEAD> +	<TITLE>802.11 to PRISM2 RID Mapping List</TITLE> +</HEAD> +<BODY> +<P> +<B>doc/prism2/ridlist-mib.html<BR>Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved.</B> +</P> +<P> +<BR>API - The document source for this RID is the API Enhancements Document +</P> +<P> +<BR>PRO - The document source for this RID is the CW10 Programmer's Manual +</P> +<P> +<BR>[1] - read mode is implemented internally within the driver +</P> +<P> +<BR>[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80) +</P> +<P> +<BR>[3] - This RID is implemented internally in the driver +</P> +<P> +<BR> +</P> +<P> +<CENTER> +<TABLE border=1> +	<TR> +		<TD valign=bottom><B>PRISM2<BR>RID<BR>VALUE</B> +		<TD valign=bottom><B>PRISM2<BR>RID<BR>NAME</B> +		<TD valign=bottom><B>STA</B> +		<TD valign=bottom><B>AP</B> +		<TD valign=bottom><B>802.11 MibItem Name</B> +		<TD valign=bottom><B>Doc<BR>Src</B> +		<TD valign=bottom><B>Implemented?</B> +	<TR> +		<TD valign=bottom>F200 +		<TD valign=bottom>LinkStatus +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F201 +		<TD valign=bottom>AssociationStatus +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F202 +		<TD valign=bottom>AuthenticationRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F203 +		<TD valign=bottom>PowerSaveUserCount +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC29 +		<TD valign=bottom>cnfWEPKeyMappingTable +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2A +		<TD valign=bottom>cnfAuthentication +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2B +		<TD valign=bottom>cnfMaxAssociatedStations +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2C +		<TD valign=bottom>cnfTxControl +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2D +		<TD valign=bottom>cnfRoamingMode +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2E +		<TD valign=bottom>cnfHostAuthentication +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC30 +		<TD valign=bottom>cnfRcvCrcError +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC31 +		<TD valign=bottom>cnfMMLife +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC32 +		<TD valign=bottom>cnfAltRetryCnt +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC33 +		<TD valign=bottom>cnfBeaconInterval +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC34 +		<TD valign=bottom>cnfAPPCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC35 +		<TD valign=bottom>cnfSTAPCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9E +		<TD valign=bottom>TxRateControl0 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9F +		<TD valign=bottom>TxRateControl1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA0 +		<TD valign=bottom>TxRateControl2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA1 +		<TD valign=bottom>TxRateControl3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA2 +		<TD valign=bottom>TxRateControl4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA3 +		<TD valign=bottom>TxRateControl5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA4 +		<TD valign=bottom>TxRateControl6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB0 +		<TD valign=bottom>cnfShortPreamble +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB1 +		<TD valign=bottom>cnfExcludeLongPreamble +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB3 +		<TD valign=bottom>cnfBasicRates +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE1 +		<TD valign=bottom>ScanRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE2 +		<TD valign=bottom>JoinRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE3 +		<TD valign=bottom>authenticateStation +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE4 +		<TD valign=bottom>ChannelInfoRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F101 +		<TD valign=bottom>ScanResults +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F102 +		<TD valign=bottom>ChannelInfoResults +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC00 +		<TD valign=bottom>cnfPortType +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC03 +		<TD valign=bottom>cnfOwnChannel +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC04 +		<TD valign=bottom>cnfOwnSSID IBSS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC05 +		<TD valign=bottom>cnfOwnATIMWindow +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC06 +		<TD valign=bottom>cnfSystemScale +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC07 +		<TD valign=bottom>cnfMaxDataLength +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC08 +		<TD valign=bottom>cnfWDSAddress +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0A +		<TD valign=bottom>cnfPMEPS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0B +		<TD valign=bottom>cnfMulticastReceive +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0C +		<TD valign=bottom>cnfMaxSleepDuration +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0D +		<TD valign=bottom>cnfPMHoldoverDuration +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0E +		<TD valign=bottom>cnfOwnName +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC11 +		<TD valign=bottom>cnfWDSAddress1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC12 +		<TD valign=bottom>cnfWDSAddress2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC13 +		<TD valign=bottom>cnfWDSAddress3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC14 +		<TD valign=bottom>cnfWDSAddress4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC15 +		<TD valign=bottom>cnfWDSAddress5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC16 +		<TD valign=bottom>cnfWDSAddress6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC17 +		<TD valign=bottom>cnfMulticastPMBuffering +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC81 +		<TD valign=bottom>CreateIBSS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC90 +		<TD valign=bottom>FragmentationThreshold0 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC91 +		<TD valign=bottom>FragmentationThreshold1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC92 +		<TD valign=bottom>FragmentationThreshold2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC93 +		<TD valign=bottom>FragmentationThreshold3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC94 +		<TD valign=bottom>FragmentationThreshold4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC95 +		<TD valign=bottom>FragmentationThreshold5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC96 +		<TD valign=bottom>FragmentationThreshold6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC97 +		<TD valign=bottom>RTSThreshold0 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC98 +		<TD valign=bottom>RTSThreshold1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC99 +		<TD valign=bottom>RTSThreshold2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9A +		<TD valign=bottom>RTSThreshold3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9B +		<TD valign=bottom>RTSThreshold4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9C +		<TD valign=bottom>RTSThreshold5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9D +		<TD valign=bottom>RTSThreshold6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB4 +		<TD valign=bottom>cnfSupportedRates +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE0 +		<TD valign=bottom>TickTime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD00 +		<TD valign=bottom>MaxLoadTime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD01 +		<TD valign=bottom>DownloadBuffer +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD02 +		<TD valign=bottom>PRIIdentity +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD03 +		<TD valign=bottom>PRISupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD04 +		<TD valign=bottom>CFIActRanges +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0A +		<TD valign=bottom>NICSerialNumber +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0B +		<TD valign=bottom>NICIdentity +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0C +		<TD valign=bottom>MFISupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0D +		<TD valign=bottom>CFISupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD10 +		<TD valign=bottom>ChannelList +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD11 +		<TD valign=bottom>RegulatoryDomains +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD13 +		<TD valign=bottom>CIS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD20 +		<TD valign=bottom>STAIdentity +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD21 +		<TD valign=bottom>STASupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD22 +		<TD valign=bottom>MFIActRanges +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD23 +		<TD valign=bottom>CFIActRanges +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD40 +		<TD valign=bottom>PortStatus +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD41 +		<TD valign=bottom>CurrentSSID +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD42 +		<TD valign=bottom>CurrentBSSID +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD43 +		<TD valign=bottom>CommsQuality +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD44 +		<TD valign=bottom>CurrentTxRate +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD46 +		<TD valign=bottom>CurrentScaleThresholds +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD80 +		<TD valign=bottom>CurrentTxRate1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD81 +		<TD valign=bottom>CurrentTxRate2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD82 +		<TD valign=bottom>CurrentTxRate3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD83 +		<TD valign=bottom>CurrentTxRate4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD84 +		<TD valign=bottom>CurrentTxRate5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD85 +		<TD valign=bottom>CurrentTxRate6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FDC2 +		<TD valign=bottom>CurrentPowerState +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FDC6 +		<TD valign=bottom>SupportedDataRates +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ACKFailureCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC85 +		<TD valign=bottom>PromiscuousMode +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address1-32 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [2] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address10 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address11 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address12 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address13 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address14 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address15 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address16 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address17 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address18 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address19 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address1 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address20 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address21 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address22 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address23 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address24 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address25 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address26 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address27 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address28 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address29 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address2 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address30 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address31 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address32 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address3 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address4 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address5 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address6 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address7 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address8 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address9 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AntennaListIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD47 +		<TD valign=bottom>ProtocolRspTime +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11AssociationResponseTimeOut +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticateFailStation +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticateFailStatus +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom>FD4D +		<TD valign=bottom>AuthenticationAlgorithms +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11AuthenticationAlgorithm1 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm2 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm3 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm4 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm5 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm6 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD4D +		<TD valign=bottom>AuthenticationAlgorithms +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable1 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable2 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable3 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable4 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable5 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable6 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB2 +		<TD valign=bottom>cnfAuthenticationRspTO +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationResponseTimeOut +		<TD valign=bottom>API +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD45 +		<TD valign=bottom>CurrentBeaconInterval +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11BeaconPeriod +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAModeSupported +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogCountMax +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogCountMin +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogTimerMax +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogTimerMin +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD87 +		<TD valign=bottom>PCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11CFPMaxDuration +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD87 +		<TD valign=bottom>PCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11CFPPeriod +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD4C +		<TD valign=bottom>CFPollable +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CFPollable +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ChannelAgilityEnabled +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ChannelAgilityPresent +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FDC3 +		<TD valign=bottom>CCAMode +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11CurrentCCAMode +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FDC1 +		<TD valign=bottom>CurrentChannel +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11CurrentChannel +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentChannelNumber +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentDwellTime +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentPattern +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentRegDomain +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentRxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentSet +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentTxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentTxPowerLevel +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC10 +		<TD valign=bottom>cnfOwnDTIMPeriod +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11DTIMPeriod +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DeauthenticateReason +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DeauthenticateStation +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DesiredBSSType +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [3] +	<TR> +		<TD valign=bottom>FC02 +		<TD valign=bottom>cnfDesiredSSID +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DesiredSSID +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DisassociateReason +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DisassociateStation +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DiversitySelectionRx +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DiversitySupport +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11EDThreshold +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC28 +		<TD valign=bottom>cnfWEPFlags +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11ExcludeUnencrypted +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FCSErrorCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FailedCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC82 +		<TD valign=bottom>FragmentationThreshold +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FragmentationThreshold +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FrameDuplicateCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11HopTime +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD49 +		<TD valign=bottom>LongRetryLimit +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11LongRetryLimit +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD86 +		<TD valign=bottom>OwnMACAddress +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11MACAddress +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ManufacturerID +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MaxDwellTime +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD4B +		<TD valign=bottom>MaxReceiveLifetime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MaxReceiveLifetime +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD4A +		<TD valign=bottom>MaxTransmitLifetime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MaxTransmitMSDULifetime +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD87 +		<TD valign=bottom>PCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11MediumOccupancyLimit +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MulticastReceivedFrameCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MulticastTransmittedFrameCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MultipleRetryCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11NumberSupportedPowerLevels +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC84 +		<TD valign=bottom>TxRateControl +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11OperationalRateSet +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11PBCCOptionImplemented +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FDC0 +		<TD valign=bottom>PHYType +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11PHYType +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FC09 +		<TD valign=bottom>cnfPMEnabled +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11PowerManagementMode +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC28 +		<TD valign=bottom>cnfWEPFlags +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11PrivacyInvoked +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FD4F +		<TD valign=bottom>PrivacyOptionImplemented +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11PrivacyOptionImplemented +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ProductID +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RTSFailureCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RTSSuccessCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC83 +		<TD valign=bottom>RTSThreshold +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RTSThreshold +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ReceivedFragmentCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RegDomainsSupportIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RegDomainsSupportValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RetryCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ShortPreambleOptionImplemented +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD48 +		<TD valign=bottom>ShortRetryLimit +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11ShortRetryLimit +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FC01 +		<TD valign=bottom>cnfOwnMACAddress +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11StationID +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesRxIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesRxValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesTxIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesTxValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedRxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedTxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD12 +		<TD valign=bottom>TempType +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11TempType +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TransmittedFragmentCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TransmittedFrameCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel1 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel2 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel3 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel4 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel5 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel6 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel7 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel8 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC24 +		<TD valign=bottom>cnfDefaultKey0 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey0 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC25 +		<TD valign=bottom>cnfDefaultKey1 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey1 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC26 +		<TD valign=bottom>cnfDefaultKey2 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey2 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC27 +		<TD valign=bottom>cnfDefaultKey3 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey3 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC23 +		<TD valign=bottom>cnfWEPDefaultKeyID +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKeyID +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPExcludedCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPICVErrorCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingAddress +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingLength +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingWEPOn +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPUndecryptableCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +</TABLE> +</CENTER> +</BODY> +</HTML> diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.txt b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.txt new file mode 100644 index 0000000..eeac25b --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.txt @@ -0,0 +1,510 @@ +doc/prism2/ridlist-mib.txt + Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved. + + + +API - The document source for this RID is the API Enhancements Document + +PRO - The document source for this RID is the CW10 Programmer's Manual + +[1] - read mode is implemented internally within the driver + +[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80) + +[3] - This RID is implemented internally in the driver + +======================================================================================================= +PRISM2 | PRISM2               |     |     |                                       |     |   +RID    | RID                  |     |     |                                       | Doc |   +VALUE  | NAME                 | STA | AP  | MibItem NAME                          | Src | Implemented? +======================================================================================================= +F200   | LinkStatus           |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F201   | AssociationStatus    |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F202   | AuthenticationReques |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F203   | PowerSaveUserCount   |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC29   | cnfWEPKeyMappingTabl |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2A   | cnfAuthentication    |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2B   | cnfMaxAssociatedStat |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2C   | cnfTxControl         |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2D   | cnfRoamingMode       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2E   | cnfHostAuthenticatio |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC30   | cnfRcvCrcError       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC31   | cnfMMLife            |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC32   | cnfAltRetryCnt       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC33   | cnfBeaconInterval    |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC34   | cnfAPPCFInfo         |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC35   | cnfSTAPCFInfo        |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC9E   | TxRateControl0       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC9F   | TxRateControl1       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA0   | TxRateControl2       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA1   | TxRateControl3       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA2   | TxRateControl4       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA3   | TxRateControl5       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA4   | TxRateControl6       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB0   | cnfShortPreamble     |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB1   | cnfExcludeLongPreamb |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB3   | cnfBasicRates        |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE1   | ScanRequest          |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE2   | JoinRequest          |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE3   | authenticateStation  |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE4   | ChannelInfoRequest   |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F101   | ScanResults          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +F102   | ChannelInfoResults   |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC00   | cnfPortType          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC03   | cnfOwnChannel        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC04   | cnfOwnSSID IBSS      |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC05   | cnfOwnATIMWindow     |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC06   | cnfSystemScale       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC07   | cnfMaxDataLength     |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC08   | cnfWDSAddress        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0A   | cnfPMEPS             |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0B   | cnfMulticastReceive  |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0C   | cnfMaxSleepDuration  |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0D   | cnfPMHoldoverDuratio |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0E   | cnfOwnName           |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC11   | cnfWDSAddress1       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC12   | cnfWDSAddress2       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC13   | cnfWDSAddress3       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC14   | cnfWDSAddress4       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC15   | cnfWDSAddress5       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC16   | cnfWDSAddress6       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC17   | cnfMulticastPMBuffer |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC81   | CreateIBSS           |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC90   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC91   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC92   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC93   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC94   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC95   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC96   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC97   | RTSThreshold0        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC98   | RTSThreshold1        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC99   | RTSThreshold2        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9A   | RTSThreshold3        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9B   | RTSThreshold4        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9C   | RTSThreshold5        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9D   | RTSThreshold6        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FCB4   | cnfSupportedRates    |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FCE0   | TickTime             |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD00   | MaxLoadTime          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD01   | DownloadBuffer       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD02   | PRIIdentity          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD03   | PRISupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD04   | CFIActRanges         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0A   | NICSerialNumber      |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0B   | NICIdentity          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0C   | MFISupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0D   | CFISupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD10   | ChannelList          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD11   | RegulatoryDomains    |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD13   | CIS                  |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD20   | STAIdentity          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD21   | STASupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD22   | MFIActRanges         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD23   | CFIActRanges         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD40   | PortStatus           |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD41   | CurrentSSID          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD42   | CurrentBSSID         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD43   | CommsQuality         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD44   | CurrentTxRate        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD46   | CurrentScaleThreshol |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD80   | CurrentTxRate1       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD81   | CurrentTxRate2       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD82   | CurrentTxRate3       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD83   | CurrentTxRate4       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD84   | CurrentTxRate5       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD85   | CurrentTxRate6       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FDC2   | CurrentPowerState    |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FDC6   | SupportedDataRates   |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ACKFailureCount                  | PRO |  +------------------------------------------------------------------------------------------------------- +FC85   | PromiscuousMode      | X   |     | dot11Address1-32                      | PRO | R/W [2] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address10                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address11                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address12                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address13                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address14                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address15                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address16                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address17                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address18                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address19                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address1                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address20                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address21                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address22                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address23                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address24                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address25                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address26                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address27                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address28                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address29                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address2                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address30                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address31                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address32                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address3                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address4                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address5                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address6                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address7                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address8                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address9                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AntennaListIndex                 | PRO |  +------------------------------------------------------------------------------------------------------- +FD47   | ProtocolRspTime      | X   | X   | dot11AssociationResponseTimeOut       | PRO | R +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticateFailStation          | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticateFailStatus           | PRO | R [3] +------------------------------------------------------------------------------------------------------- +FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithm1         | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm2         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm3         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm4         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm5         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm6         | PRO |  +------------------------------------------------------------------------------------------------------- +FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithmsEnable1  | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable2  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable3  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable4  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable5  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable6  | PRO |  +------------------------------------------------------------------------------------------------------- +FCB2   | cnfAuthenticationRsp | X   |     | dot11AuthenticationResponseTimeOut    | API | R +------------------------------------------------------------------------------------------------------- +FD45   | CurrentBeaconInterva | X   | X   | dot11BeaconPeriod                     | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAModeSupported                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogCountMax              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogCountMin              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogTimerMax              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogTimerMin              | PRO |  +------------------------------------------------------------------------------------------------------- +FD87   | PCFInfo              |     | X   | dot11CFPMaxDuration                   | PRO | R +------------------------------------------------------------------------------------------------------- +FD87   | PCFInfo              |     | X   | dot11CFPPeriod                        | PRO | R +------------------------------------------------------------------------------------------------------- +FD4C   | CFPollable           | X   |     | dot11CFPollable                       | PRO | R +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ChannelAgilityEnabled            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ChannelAgilityPresent            | PRO |  +------------------------------------------------------------------------------------------------------- +FDC3   | CCAMode              | X   | X   | dot11CurrentCCAMode                   | PRO | R +------------------------------------------------------------------------------------------------------- +FDC1   | CurrentChannel       | X   | X   | dot11CurrentChannel                   | PRO | R +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentChannelNumber             | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentDwellTime                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentIndex                     | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentPattern                   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentRegDomain                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentRxAntenna                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentSet                       | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentTxAntenna                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentTxPowerLevel              | PRO |  +------------------------------------------------------------------------------------------------------- +FC10   | cnfOwnDTIMPeriod     |     | X   | dot11DTIMPeriod                       | API | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DeauthenticateReason             | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DeauthenticateStation            | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DesiredBSSType                   | PRO | R/W [3] +------------------------------------------------------------------------------------------------------- +FC02   | cnfDesiredSSID       | X   |     | dot11DesiredSSID                      | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DisassociateReason               | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DisassociateStation              | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DiversitySelectionRx             | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DiversitySupport                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11EDThreshold                      | PRO |  +------------------------------------------------------------------------------------------------------- +FC28   | cnfWEPFlags          | X   | X   | dot11ExcludeUnencrypted               | API | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11FCSErrorCount                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11FailedCount                      | PRO |  +------------------------------------------------------------------------------------------------------- +FC82   | FragmentationThresho | X   |     | dot11FragmentationThreshold           | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11FrameDuplicateCount              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11HopTime                          | PRO |  +------------------------------------------------------------------------------------------------------- +FD49   | LongRetryLimit       | X   | X   | dot11LongRetryLimit                   | PRO | R +------------------------------------------------------------------------------------------------------- +FD86   | OwnMACAddress        |     | X   | dot11MACAddress                       | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ManufacturerID                   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MaxDwellTime                     | PRO |  +------------------------------------------------------------------------------------------------------- +FD4B   | MaxReceiveLifetime   |     |     | dot11MaxReceiveLifetime               | PRO | R +------------------------------------------------------------------------------------------------------- +FD4A   | MaxTransmitLifetime  |     |     | dot11MaxTransmitMSDULifetime          | PRO | R +------------------------------------------------------------------------------------------------------- +FD87   | PCFInfo              |     | X   | dot11MediumOccupancyLimit             | PRO | R +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MulticastReceivedFrameCount      | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MulticastTransmittedFrameCount   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MultipleRetryCount               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11NumberSupportedPowerLevels       | PRO |  +------------------------------------------------------------------------------------------------------- +FC84   | TxRateControl        | X   |     | dot11OperationalRateSet               | API | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11PBCCOptionImplemented            | PRO |  +------------------------------------------------------------------------------------------------------- +FDC0   | PHYType              | X   | X   | dot11PHYType                          | PRO | R +------------------------------------------------------------------------------------------------------- +FC09   | cnfPMEnabled         | X   |     | dot11PowerManagementMode              | PRO | R/W +------------------------------------------------------------------------------------------------------- +FC28   | cnfWEPFlags          | X   | X   | dot11PrivacyInvoked                   | API | R/W +------------------------------------------------------------------------------------------------------- +FD4F   | PrivacyOptionImpleme |     |     | dot11PrivacyOptionImplemented         | PRO | R +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ProductID                        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RTSFailureCount                  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RTSSuccessCount                  | PRO |  +------------------------------------------------------------------------------------------------------- +FC83   | RTSThreshold         | X   |     | dot11RTSThreshold                     | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ReceivedFragmentCount            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RegDomainsSupportIndex           | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RegDomainsSupportValue           | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RetryCount                       | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ShortPreambleOptionImplemented   | PRO |  +------------------------------------------------------------------------------------------------------- +FD48   | ShortRetryLimit      | X   | X   | dot11ShortRetryLimit                  | PRO | R +------------------------------------------------------------------------------------------------------- +FC01   | cnfOwnMACAddress     | X   |     | dot11StationID                        | PRO | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesRxIndex        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesRxValue        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesTxIndex        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesTxValue        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedRxAntenna               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedTxAntenna               | PRO |  +------------------------------------------------------------------------------------------------------- +FD12   | TempType             | X   | X   | dot11TempType                         | PRO | R +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TransmittedFragmentCount         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TransmittedFrameCount            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel1                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel2                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel3                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel4                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel5                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel6                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel7                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel8                    | PRO |  +------------------------------------------------------------------------------------------------------- +FC24   | cnfDefaultKey0       | X   | X   | dot11WEPDefaultKey0                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC25   | cnfDefaultKey1       | X   | X   | dot11WEPDefaultKey1                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC26   | cnfDefaultKey2       | X   | X   | dot11WEPDefaultKey2                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC27   | cnfDefaultKey3       | X   | X   | dot11WEPDefaultKey3                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC23   | cnfWEPDefaultKeyID   | X   | X   | dot11WEPDefaultKeyID                  | API | R/W +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPExcludedCount                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPICVErrorCount                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingAddress             | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingIndex               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingLength              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingValue               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingWEPOn               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPUndecryptableCount            | PRO |  +------------------------------------------------------------------------------------------------------- diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.html b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.html new file mode 100644 index 0000000..b6ebacb --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.html @@ -0,0 +1,2001 @@ +<HTML> +<HEAD> +	<TITLE>802.11 to PRISM2 RID Mapping List</TITLE> +</HEAD> +<BODY> +<P> +<B>doc/prism2/ridlist-rid.html<BR>Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved.</B> +</P> +<P> +<BR>API - The document source for this RID is the API Enhancements Document +</P> +<P> +<BR>PRO - The document source for this RID is the CW10 Programmer's Manual +</P> +<P> +<BR>[1] - read mode is implemented internally within the driver +</P> +<P> +<BR>[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80) +</P> +<P> +<BR>[3] - This RID is implemented internally in the driver +</P> +<P> +<BR> +</P> +<P> +<CENTER> +<TABLE border=1> +	<TR> +		<TD valign=bottom><B>PRISM2<BR>RID<BR>VALUE</B> +		<TD valign=bottom><B>PRISM2<BR>RID<BR>NAME</B> +		<TD valign=bottom><B>STA</B> +		<TD valign=bottom><B>AP</B> +		<TD valign=bottom><B>802.11 MibItem Name</B> +		<TD valign=bottom><B>Doc<BR>Src</B> +		<TD valign=bottom><B>Implemented?</B> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ACKFailureCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AntennaListIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticateFailStation +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticateFailStatus +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm2 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm3 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm4 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm5 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithm6 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable2 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable3 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable4 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable5 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable6 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAModeSupported +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogCountMax +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogCountMin +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogTimerMax +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CCAWatchdogTimerMin +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ChannelAgilityEnabled +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ChannelAgilityPresent +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentChannelNumber +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentDwellTime +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentPattern +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentRegDomain +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentRxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentSet +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentTxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CurrentTxPowerLevel +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DeauthenticateReason +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DeauthenticateStation +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DesiredBSSType +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DisassociateReason +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DisassociateStation +		<TD valign=bottom>PRO +		<TD valign=bottom>R [3] +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DiversitySelectionRx +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DiversitySupport +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11EDThreshold +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FCSErrorCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FailedCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FrameDuplicateCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11HopTime +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ManufacturerID +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MaxDwellTime +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MulticastReceivedFrameCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MulticastTransmittedFrameCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MultipleRetryCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11NumberSupportedPowerLevels +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11PBCCOptionImplemented +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ProductID +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RTSFailureCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RTSSuccessCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ReceivedFragmentCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RegDomainsSupportIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RegDomainsSupportValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RetryCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11ShortPreambleOptionImplemented +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesRxIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesRxValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesTxIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedDataRatesTxValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedRxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11SupportedTxAntenna +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TransmittedFragmentCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TransmittedFrameCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel1 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel2 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel3 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel4 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel5 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel6 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel7 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11TxPowerLevel8 +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPExcludedCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPICVErrorCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingAddress +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingIndex +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingLength +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingValue +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPKeyMappingWEPOn +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11WEPUndecryptableCount +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F101 +		<TD valign=bottom>ScanResults +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F102 +		<TD valign=bottom>ChannelInfoResults +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F200 +		<TD valign=bottom>LinkStatus +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F201 +		<TD valign=bottom>AssociationStatus +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F202 +		<TD valign=bottom>AuthenticationRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>F203 +		<TD valign=bottom>PowerSaveUserCount +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC00 +		<TD valign=bottom>cnfPortType +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC01 +		<TD valign=bottom>cnfOwnMACAddress +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11StationID +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC02 +		<TD valign=bottom>cnfDesiredSSID +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11DesiredSSID +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC03 +		<TD valign=bottom>cnfOwnChannel +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC04 +		<TD valign=bottom>cnfOwnSSID IBSS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC05 +		<TD valign=bottom>cnfOwnATIMWindow +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC06 +		<TD valign=bottom>cnfSystemScale +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC07 +		<TD valign=bottom>cnfMaxDataLength +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC08 +		<TD valign=bottom>cnfWDSAddress +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC09 +		<TD valign=bottom>cnfPMEnabled +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11PowerManagementMode +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC0A +		<TD valign=bottom>cnfPMEPS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0B +		<TD valign=bottom>cnfMulticastReceive +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0C +		<TD valign=bottom>cnfMaxSleepDuration +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0D +		<TD valign=bottom>cnfPMHoldoverDuration +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC0E +		<TD valign=bottom>cnfOwnName +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC10 +		<TD valign=bottom>cnfOwnDTIMPeriod +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11DTIMPeriod +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC11 +		<TD valign=bottom>cnfWDSAddress1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC12 +		<TD valign=bottom>cnfWDSAddress2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC13 +		<TD valign=bottom>cnfWDSAddress3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC14 +		<TD valign=bottom>cnfWDSAddress4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC15 +		<TD valign=bottom>cnfWDSAddress5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC16 +		<TD valign=bottom>cnfWDSAddress6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC17 +		<TD valign=bottom>cnfMulticastPMBuffering +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC23 +		<TD valign=bottom>cnfWEPDefaultKeyID +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKeyID +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC24 +		<TD valign=bottom>cnfDefaultKey0 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey0 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC25 +		<TD valign=bottom>cnfDefaultKey1 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey1 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC26 +		<TD valign=bottom>cnfDefaultKey2 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey2 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC27 +		<TD valign=bottom>cnfDefaultKey3 +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11WEPDefaultKey3 +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC28 +		<TD valign=bottom>cnfWEPFlags +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11ExcludeUnencrypted +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC28 +		<TD valign=bottom>cnfWEPFlags +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11PrivacyInvoked +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC29 +		<TD valign=bottom>cnfWEPKeyMappingTable +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2A +		<TD valign=bottom>cnfAuthentication +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2B +		<TD valign=bottom>cnfMaxAssociatedStations +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2C +		<TD valign=bottom>cnfTxControl +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2D +		<TD valign=bottom>cnfRoamingMode +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC2E +		<TD valign=bottom>cnfHostAuthentication +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC30 +		<TD valign=bottom>cnfRcvCrcError +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC31 +		<TD valign=bottom>cnfMMLife +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC32 +		<TD valign=bottom>cnfAltRetryCnt +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC33 +		<TD valign=bottom>cnfBeaconInterval +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC34 +		<TD valign=bottom>cnfAPPCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC35 +		<TD valign=bottom>cnfSTAPCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address10 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address11 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address12 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address13 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address14 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address15 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address16 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address17 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address18 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address19 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address1 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address20 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address21 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address22 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address23 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address24 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address25 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address26 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address27 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address28 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address29 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address2 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address30 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address31 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address32 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address3 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address4 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address5 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address6 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address7 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address8 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC80 +		<TD valign=bottom>GroupAddresses +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address9 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [1] +	<TR> +		<TD valign=bottom>FC81 +		<TD valign=bottom>CreateIBSS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC82 +		<TD valign=bottom>FragmentationThreshold +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11FragmentationThreshold +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC83 +		<TD valign=bottom>RTSThreshold +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11RTSThreshold +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC84 +		<TD valign=bottom>TxRateControl +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11OperationalRateSet +		<TD valign=bottom>API +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FC85 +		<TD valign=bottom>PromiscuousMode +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11Address1-32 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W [2] +	<TR> +		<TD valign=bottom>FC90 +		<TD valign=bottom>FragmentationThreshold0 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC91 +		<TD valign=bottom>FragmentationThreshold1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC92 +		<TD valign=bottom>FragmentationThreshold2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC93 +		<TD valign=bottom>FragmentationThreshold3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC94 +		<TD valign=bottom>FragmentationThreshold4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC95 +		<TD valign=bottom>FragmentationThreshold5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC96 +		<TD valign=bottom>FragmentationThreshold6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC97 +		<TD valign=bottom>RTSThreshold0 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC98 +		<TD valign=bottom>RTSThreshold1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC99 +		<TD valign=bottom>RTSThreshold2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9A +		<TD valign=bottom>RTSThreshold3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9B +		<TD valign=bottom>RTSThreshold4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9C +		<TD valign=bottom>RTSThreshold5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9D +		<TD valign=bottom>RTSThreshold6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9E +		<TD valign=bottom>TxRateControl0 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FC9F +		<TD valign=bottom>TxRateControl1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA0 +		<TD valign=bottom>TxRateControl2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA1 +		<TD valign=bottom>TxRateControl3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA2 +		<TD valign=bottom>TxRateControl4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA3 +		<TD valign=bottom>TxRateControl5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCA4 +		<TD valign=bottom>TxRateControl6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB0 +		<TD valign=bottom>cnfShortPreamble +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB1 +		<TD valign=bottom>cnfExcludeLongPreamble +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB2 +		<TD valign=bottom>cnfAuthenticationRspTO +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11AuthenticationResponseTimeOut +		<TD valign=bottom>API +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FCB3 +		<TD valign=bottom>cnfBasicRates +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCB4 +		<TD valign=bottom>cnfSupportedRates +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE0 +		<TD valign=bottom>TickTime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE1 +		<TD valign=bottom>ScanRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE2 +		<TD valign=bottom>JoinRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE3 +		<TD valign=bottom>authenticateStation +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FCE4 +		<TD valign=bottom>ChannelInfoRequest +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>API +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD00 +		<TD valign=bottom>MaxLoadTime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD01 +		<TD valign=bottom>DownloadBuffer +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD02 +		<TD valign=bottom>PRIIdentity +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD03 +		<TD valign=bottom>PRISupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD04 +		<TD valign=bottom>CFIActRanges +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0A +		<TD valign=bottom>NICSerialNumber +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0B +		<TD valign=bottom>NICIdentity +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0C +		<TD valign=bottom>MFISupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD0D +		<TD valign=bottom>CFISupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD10 +		<TD valign=bottom>ChannelList +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD11 +		<TD valign=bottom>RegulatoryDomains +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD12 +		<TD valign=bottom>TempType +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11TempType +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD13 +		<TD valign=bottom>CIS +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD20 +		<TD valign=bottom>STAIdentity +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD21 +		<TD valign=bottom>STASupRange +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD22 +		<TD valign=bottom>MFIActRanges +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD23 +		<TD valign=bottom>CFIActRanges +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD40 +		<TD valign=bottom>PortStatus +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD41 +		<TD valign=bottom>CurrentSSID +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD42 +		<TD valign=bottom>CurrentBSSID +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD43 +		<TD valign=bottom>CommsQuality +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD44 +		<TD valign=bottom>CurrentTxRate +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD45 +		<TD valign=bottom>CurrentBeaconInterval +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11BeaconPeriod +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FD46 +		<TD valign=bottom>CurrentScaleThresholds +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD47 +		<TD valign=bottom>ProtocolRspTime +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11AssociationResponseTimeOut +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD48 +		<TD valign=bottom>ShortRetryLimit +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11ShortRetryLimit +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD49 +		<TD valign=bottom>LongRetryLimit +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11LongRetryLimit +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD4A +		<TD valign=bottom>MaxTransmitLifetime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MaxTransmitMSDULifetime +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD4B +		<TD valign=bottom>MaxReceiveLifetime +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11MaxReceiveLifetime +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD4C +		<TD valign=bottom>CFPollable +		<TD valign=bottom>X +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11CFPollable +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD4D +		<TD valign=bottom>AuthenticationAlgorithms +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11AuthenticationAlgorithm1 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FD4D +		<TD valign=bottom>AuthenticationAlgorithms +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable1 +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FD4F +		<TD valign=bottom>PrivacyOptionImplemented +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>dot11PrivacyOptionImplemented +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD80 +		<TD valign=bottom>CurrentTxRate1 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD81 +		<TD valign=bottom>CurrentTxRate2 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD82 +		<TD valign=bottom>CurrentTxRate3 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD83 +		<TD valign=bottom>CurrentTxRate4 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD84 +		<TD valign=bottom>CurrentTxRate5 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD85 +		<TD valign=bottom>CurrentTxRate6 +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FD86 +		<TD valign=bottom>OwnMACAddress +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11MACAddress +		<TD valign=bottom>PRO +		<TD valign=bottom>R/W +	<TR> +		<TD valign=bottom>FD87 +		<TD valign=bottom>PCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11CFPMaxDuration +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD87 +		<TD valign=bottom>PCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11CFPPeriod +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FD87 +		<TD valign=bottom>PCFInfo +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>X +		<TD valign=bottom>dot11MediumOccupancyLimit +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FDC0 +		<TD valign=bottom>PHYType +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11PHYType +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FDC1 +		<TD valign=bottom>CurrentChannel +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11CurrentChannel +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FDC2 +		<TD valign=bottom>CurrentPowerState +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +	<TR> +		<TD valign=bottom>FDC3 +		<TD valign=bottom>CCAMode +		<TD valign=bottom>X +		<TD valign=bottom>X +		<TD valign=bottom>dot11CurrentCCAMode +		<TD valign=bottom>PRO +		<TD valign=bottom>R +	<TR> +		<TD valign=bottom>FDC6 +		<TD valign=bottom>SupportedDataRates +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom><PRE>   </PRE> +		<TD valign=bottom>PRO +		<TD valign=bottom><PRE>   </PRE> +</TABLE> +</CENTER> +</BODY> +</HTML> diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.txt b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.txt new file mode 100644 index 0000000..02f3063 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.txt @@ -0,0 +1,510 @@ +doc/prism2/ridlist-rid.txt + Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved. + + + +API - The document source for this RID is the API Enhancements Document + +PRO - The document source for this RID is the CW10 Programmer's Manual + +[1] - read mode is implemented internally within the driver + +[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80) + +[3] - This RID is implemented internally in the driver + +======================================================================================================= +PRISM2 | PRISM2               |     |     |                                       |     |   +RID    | RID                  |     |     |                                       | Doc |   +VALUE  | NAME                 | STA | AP  | MibItem NAME                          | Src | Implemented? +======================================================================================================= +       |                      |     |     | dot11ACKFailureCount                  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AntennaListIndex                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticateFailStation          | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticateFailStatus           | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm2         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm3         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm4         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm5         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithm6         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable2  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable3  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable4  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable5  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11AuthenticationAlgorithmsEnable6  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAModeSupported                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogCountMax              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogCountMin              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogTimerMax              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CCAWatchdogTimerMin              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ChannelAgilityEnabled            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ChannelAgilityPresent            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentChannelNumber             | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentDwellTime                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentIndex                     | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentPattern                   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentRegDomain                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentRxAntenna                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentSet                       | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentTxAntenna                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11CurrentTxPowerLevel              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DeauthenticateReason             | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DeauthenticateStation            | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DesiredBSSType                   | PRO | R/W [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DisassociateReason               | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DisassociateStation              | PRO | R [3] +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DiversitySelectionRx             | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11DiversitySupport                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11EDThreshold                      | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11FCSErrorCount                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11FailedCount                      | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11FrameDuplicateCount              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11HopTime                          | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ManufacturerID                   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MaxDwellTime                     | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MulticastReceivedFrameCount      | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MulticastTransmittedFrameCount   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11MultipleRetryCount               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11NumberSupportedPowerLevels       | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11PBCCOptionImplemented            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ProductID                        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RTSFailureCount                  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RTSSuccessCount                  | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ReceivedFragmentCount            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RegDomainsSupportIndex           | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RegDomainsSupportValue           | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11RetryCount                       | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11ShortPreambleOptionImplemented   | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesRxIndex        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesRxValue        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesTxIndex        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedDataRatesTxValue        | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedRxAntenna               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11SupportedTxAntenna               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TransmittedFragmentCount         | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TransmittedFrameCount            | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel1                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel2                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel3                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel4                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel5                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel6                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel7                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11TxPowerLevel8                    | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPExcludedCount                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPICVErrorCount                 | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingAddress             | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingIndex               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingLength              | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingValue               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPKeyMappingWEPOn               | PRO |  +------------------------------------------------------------------------------------------------------- +       |                      |     |     | dot11WEPUndecryptableCount            | PRO |  +------------------------------------------------------------------------------------------------------- +F101   | ScanResults          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +F102   | ChannelInfoResults   |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +F200   | LinkStatus           |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F201   | AssociationStatus    |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F202   | AuthenticationReques |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +F203   | PowerSaveUserCount   |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC00   | cnfPortType          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC01   | cnfOwnMACAddress     | X   |     | dot11StationID                        | PRO | R/W +------------------------------------------------------------------------------------------------------- +FC02   | cnfDesiredSSID       | X   |     | dot11DesiredSSID                      | PRO | R/W +------------------------------------------------------------------------------------------------------- +FC03   | cnfOwnChannel        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC04   | cnfOwnSSID IBSS      |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC05   | cnfOwnATIMWindow     |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC06   | cnfSystemScale       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC07   | cnfMaxDataLength     |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC08   | cnfWDSAddress        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC09   | cnfPMEnabled         | X   |     | dot11PowerManagementMode              | PRO | R/W +------------------------------------------------------------------------------------------------------- +FC0A   | cnfPMEPS             |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0B   | cnfMulticastReceive  |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0C   | cnfMaxSleepDuration  |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0D   | cnfPMHoldoverDuratio |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC0E   | cnfOwnName           |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC10   | cnfOwnDTIMPeriod     |     | X   | dot11DTIMPeriod                       | API | R/W +------------------------------------------------------------------------------------------------------- +FC11   | cnfWDSAddress1       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC12   | cnfWDSAddress2       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC13   | cnfWDSAddress3       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC14   | cnfWDSAddress4       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC15   | cnfWDSAddress5       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC16   | cnfWDSAddress6       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC17   | cnfMulticastPMBuffer |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC23   | cnfWEPDefaultKeyID   | X   | X   | dot11WEPDefaultKeyID                  | API | R/W +------------------------------------------------------------------------------------------------------- +FC24   | cnfDefaultKey0       | X   | X   | dot11WEPDefaultKey0                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC25   | cnfDefaultKey1       | X   | X   | dot11WEPDefaultKey1                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC26   | cnfDefaultKey2       | X   | X   | dot11WEPDefaultKey2                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC27   | cnfDefaultKey3       | X   | X   | dot11WEPDefaultKey3                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC28   | cnfWEPFlags          | X   | X   | dot11ExcludeUnencrypted               | API | R/W +------------------------------------------------------------------------------------------------------- +FC28   | cnfWEPFlags          | X   | X   | dot11PrivacyInvoked                   | API | R/W +------------------------------------------------------------------------------------------------------- +FC29   | cnfWEPKeyMappingTabl |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2A   | cnfAuthentication    |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2B   | cnfMaxAssociatedStat |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2C   | cnfTxControl         |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2D   | cnfRoamingMode       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC2E   | cnfHostAuthenticatio |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC30   | cnfRcvCrcError       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC31   | cnfMMLife            |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC32   | cnfAltRetryCnt       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC33   | cnfBeaconInterval    |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC34   | cnfAPPCFInfo         |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC35   | cnfSTAPCFInfo        |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address10                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address11                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address12                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address13                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address14                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address15                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address16                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address17                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address18                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address19                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address1                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address20                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address21                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address22                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address23                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address24                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address25                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address26                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address27                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address28                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address29                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address2                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address30                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address31                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address32                        | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address3                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address4                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address5                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address6                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address7                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address8                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC80   | GroupAddresses       | X   |     | dot11Address9                         | PRO | R/W [1] +------------------------------------------------------------------------------------------------------- +FC81   | CreateIBSS           |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC82   | FragmentationThresho | X   |     | dot11FragmentationThreshold           | PRO | R/W +------------------------------------------------------------------------------------------------------- +FC83   | RTSThreshold         | X   |     | dot11RTSThreshold                     | PRO | R/W +------------------------------------------------------------------------------------------------------- +FC84   | TxRateControl        | X   |     | dot11OperationalRateSet               | API | R/W +------------------------------------------------------------------------------------------------------- +FC85   | PromiscuousMode      | X   |     | dot11Address1-32                      | PRO | R/W [2] +------------------------------------------------------------------------------------------------------- +FC90   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC91   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC92   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC93   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC94   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC95   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC96   | FragmentationThresho |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC97   | RTSThreshold0        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC98   | RTSThreshold1        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC99   | RTSThreshold2        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9A   | RTSThreshold3        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9B   | RTSThreshold4        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9C   | RTSThreshold5        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9D   | RTSThreshold6        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FC9E   | TxRateControl0       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FC9F   | TxRateControl1       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA0   | TxRateControl2       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA1   | TxRateControl3       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA2   | TxRateControl4       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA3   | TxRateControl5       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCA4   | TxRateControl6       |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB0   | cnfShortPreamble     |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB1   | cnfExcludeLongPreamb |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB2   | cnfAuthenticationRsp | X   |     | dot11AuthenticationResponseTimeOut    | API | R +------------------------------------------------------------------------------------------------------- +FCB3   | cnfBasicRates        |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCB4   | cnfSupportedRates    |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FCE0   | TickTime             |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FCE1   | ScanRequest          |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE2   | JoinRequest          |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE3   | authenticateStation  |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FCE4   | ChannelInfoRequest   |     |     |                                       | API |  +------------------------------------------------------------------------------------------------------- +FD00   | MaxLoadTime          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD01   | DownloadBuffer       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD02   | PRIIdentity          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD03   | PRISupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD04   | CFIActRanges         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0A   | NICSerialNumber      |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0B   | NICIdentity          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0C   | MFISupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD0D   | CFISupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD10   | ChannelList          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD11   | RegulatoryDomains    |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD12   | TempType             | X   | X   | dot11TempType                         | PRO | R +------------------------------------------------------------------------------------------------------- +FD13   | CIS                  |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD20   | STAIdentity          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD21   | STASupRange          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD22   | MFIActRanges         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD23   | CFIActRanges         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD40   | PortStatus           |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD41   | CurrentSSID          |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD42   | CurrentBSSID         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD43   | CommsQuality         |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD44   | CurrentTxRate        |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD45   | CurrentBeaconInterva | X   | X   | dot11BeaconPeriod                     | PRO | R/W +------------------------------------------------------------------------------------------------------- +FD46   | CurrentScaleThreshol |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD47   | ProtocolRspTime      | X   | X   | dot11AssociationResponseTimeOut       | PRO | R +------------------------------------------------------------------------------------------------------- +FD48   | ShortRetryLimit      | X   | X   | dot11ShortRetryLimit                  | PRO | R +------------------------------------------------------------------------------------------------------- +FD49   | LongRetryLimit       | X   | X   | dot11LongRetryLimit                   | PRO | R +------------------------------------------------------------------------------------------------------- +FD4A   | MaxTransmitLifetime  |     |     | dot11MaxTransmitMSDULifetime          | PRO | R +------------------------------------------------------------------------------------------------------- +FD4B   | MaxReceiveLifetime   |     |     | dot11MaxReceiveLifetime               | PRO | R +------------------------------------------------------------------------------------------------------- +FD4C   | CFPollable           | X   |     | dot11CFPollable                       | PRO | R +------------------------------------------------------------------------------------------------------- +FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithm1         | PRO | R/W +------------------------------------------------------------------------------------------------------- +FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithmsEnable1  | PRO | R/W +------------------------------------------------------------------------------------------------------- +FD4F   | PrivacyOptionImpleme |     |     | dot11PrivacyOptionImplemented         | PRO | R +------------------------------------------------------------------------------------------------------- +FD80   | CurrentTxRate1       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD81   | CurrentTxRate2       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD82   | CurrentTxRate3       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD83   | CurrentTxRate4       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD84   | CurrentTxRate5       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD85   | CurrentTxRate6       |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FD86   | OwnMACAddress        |     | X   | dot11MACAddress                       | PRO | R/W +------------------------------------------------------------------------------------------------------- +FD87   | PCFInfo              |     | X   | dot11CFPMaxDuration                   | PRO | R +------------------------------------------------------------------------------------------------------- +FD87   | PCFInfo              |     | X   | dot11CFPPeriod                        | PRO | R +------------------------------------------------------------------------------------------------------- +FD87   | PCFInfo              |     | X   | dot11MediumOccupancyLimit             | PRO | R +------------------------------------------------------------------------------------------------------- +FDC0   | PHYType              | X   | X   | dot11PHYType                          | PRO | R +------------------------------------------------------------------------------------------------------- +FDC1   | CurrentChannel       | X   | X   | dot11CurrentChannel                   | PRO | R +------------------------------------------------------------------------------------------------------- +FDC2   | CurrentPowerState    |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- +FDC3   | CCAMode              | X   | X   | dot11CurrentCCAMode                   | PRO | R +------------------------------------------------------------------------------------------------------- +FDC6   | SupportedDataRates   |     |     |                                       | PRO |  +------------------------------------------------------------------------------------------------------- diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/releasepolicy.txt b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/releasepolicy.txt new file mode 100644 index 0000000..b66a571 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/releasepolicy.txt @@ -0,0 +1,37 @@ +linux-wlan Release Policy/Checklist +-------------------------------------------------- + +[MSM Note: Here's a _quick_ attempt at a release policy for linux-wlan. +           It's very brief and relatively simple.  I'm open to suggestions +           for improvement. +] + +The following steps should be taken each time a new release of linux-wlan +is ready for distribution: + +0) Make sure the current code builds, loads, associates, and ftps  +   cleanly on all 3 AVS lab build boxes. +1) Assign an W.X.Y-preZ version number. +2) Update the version number in config.in. +3) Tag the files. +4) Build the tarball. (Bonehead! double check next time that the tarball +   and config.in version number match, eh?) +5) Release to ftp. +6) Announce on linux-wlan-annouce as a feature frozen 'pre' release. +7) Announce on freshmeat (Pavel? ;-) +8) Allow at least 24 hours for bug reports and (hopefully) bugfix patches. +9a) After 24 hour period, if bugfix patches and/or local fixes to bug  +    reports are present, apply patches and GOTO step 0. +9b) If no show-stopper bug-reports and/or patches are received during the +    'pre' release period GOTO step 10. +10) Make sure the current code builds, loads, associates, and ftps  +    cleanly on all 3 AVS lab build boxes. +11) Assign an W.X.Y version number. +12) Update the version number in config.in. +13) Tag the files. +14) Build the tarball. (Bonehead! double check next time that the tarball +    and config.in version number match, eh?) +15) Release to ftp. +16) Announce on linux-wlan-annouce as a final W.X.Y release. +17) Announce on freshmeat. + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/rh71notes b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/rh71notes new file mode 100644 index 0000000..399a2e4 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/rh71notes @@ -0,0 +1,61 @@ +[MSM]: Here's an old e-mail.  I'm not sure if it's in the list archives +so I figured I'd save it here. + +It may be useful for those using RH71. + +Date: Wed, 25 Apr 2001 16:03:20 +0800 +From: Leonard Ye <leonardye@yahoo.com> +Reply-To: linux-wlan-user@absoval.com +To: linux-wlan-user@absoval.com +Subject: [lwlan-user]: REDHAT 7.1 + wlan-ng 0.1.18 HOWTO + +Hi all, + +Just get the wlan-ng 0.1.18pre11 working on my redhat 7.1 and I would like  +to share the experiences with you. + +Assumption: +         a default installation of redhat 7.1 with  +kernel-pcmcia-cs-3.1.24-2.rpm installed + +Four steps as followings: + +1) Get kernel source ready +install kernel-source-2.4.2-2 if you don't have the kernel source ready on  +the machine +copy a suitable configuration file from the configs directory to .config +make dep + +2) Get pcmcia-cs header files ready +download the pcmcia-cs-3.1.24.tar.gz package +unzip it at appropriate place +make config +         when you were asked what kind of kernel configuration you want to  +use, select "1" +make all +DON'T "make install" + +3) compile the wlan-ng-0.1.18pre11 code +download the linux-wlan-ng-0.1.18pre11.tar.gz +unzip it at appropriate place +make config +         select build-in kernel support +make all +make install + +4) some minor configuration +edit /etc/pcmcia/config.opts to comment out the card definition for  +"Intersil PRISM2 11 .." +edit /etc/wlan-ng.opts +         change string p2RoamingMode to p2CnfRoamingMode +         set appropriate SSID for variable DesiredSSID +create an ifcfg-wlan0 file in /etc/sysconfig/network-scripts + +Ok, your machine should be able to work as a STA using  +wlan-ng-0.1.18pre11.  If you have experience with enabling AP mode, it  +shouldn't be a problem for you enable it in redhat 7.1 + +Regards, +Leonard Ye + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/entries new file mode 100644 index 0000000..f9c4a3a --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/entries @@ -0,0 +1,139 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/etc +svn://svn.shaftnet.org/linux-wlan-ng + + + +2008-06-24T19:10:11.002401Z +1863 +pizza + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +wlan +dir + +udev +dir + +rc.wlan +file + + + + +2009-01-07T08:13:02.000000Z +bed6984515bc8c1e44bd0914116e752d +2003-05-06T02:35:45.000000Z +1390 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +1776 + +pcmcia +dir + +Makefile +file + + + + +2009-01-07T08:13:02.000000Z +efbcbef4f410942b5e22495d20536b49 +2005-01-26T22:01:07.661267Z +1678 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +2640 + +wlan.agent +file + + + + +2009-01-07T08:13:02.000000Z +2048f9a34ef178972ac90cc8a2fbb6ce +2006-01-18T18:58:45.747036Z +1765 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +1643 + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/Makefile.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/Makefile.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/rc.wlan.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/rc.wlan.svn-base new file mode 100644 index 0000000..5336d10 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/rc.wlan.svn-base @@ -0,0 +1,13 @@ +K 13 +svn:eol-style +V 6 +native +K 14 +svn:executable +V 1 +* +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/wlan.agent.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/wlan.agent.svn-base new file mode 100644 index 0000000..5336d10 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/wlan.agent.svn-base @@ -0,0 +1,13 @@ +K 13 +svn:eol-style +V 6 +native +K 14 +svn:executable +V 1 +* +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/Makefile.svn-base new file mode 100644 index 0000000..7d46fd2 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/Makefile.svn-base @@ -0,0 +1,67 @@ +# etc/Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + +-include ../config.mk + +DIRS= pcmcia wlan + +all: +	set -e; for d in $(DIRS); do $(MAKE) -C $$d all; done + +clean: +	set -e; for d in $(DIRS); do $(MAKE) -C $$d clean; done + +install: +	set -e; for d in $(DIRS); do $(MAKE) -C $$d install; done +	if [ ! -d $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d ]; then \ +		mkdir -p $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d; \ +	fi; \ +	cp rc.wlan $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d/wlan; \ +	chmod 755 $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d/wlan ;\ +	if [ -d $(TARGET_ROOT_ON_HOST)/etc/hotplug ]; then \ +		cp wlan.agent $(TARGET_ROOT_ON_HOST)/etc/hotplug; \ +		rm -f $(TARGET_ROOT_ON_HOST)/etc/hotplug/usb/prism2_usb; \ +                rm -f $(TARGET_ROOT_ON_HOST)/etc/hotplug/pci/prism2_pci; \ +                rm -f $(TARGET_ROOT_ON_HOST)/etc/hotplug/pci/prism2_plx; \ +	fi diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/rc.wlan.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/rc.wlan.svn-base new file mode 100644 index 0000000..70e0c54 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/rc.wlan.svn-base @@ -0,0 +1,96 @@ +#!/bin/sh + +# rc.wlan  +# +# chkconfig: 2345 9 91  +# description: Activates/Configures/Disables the devices + +if [ ! -f /etc/wlan/shared ] ; then +    echo "/etc/wlan/shared not present" +    exit 0 +fi + +. /etc/wlan/shared + +if [ -f /etc/init.d/functions ] ; then +	. /etc/init.d/functions +fi + +usage() +{ +    echo "Usage: $0 {start|stop|status|restart|reload|force-reload}" +} + + +if [ $# -lt 1 ] ; then usage ; exit 1 ; fi +action=$1 + +case "$action" in + +start) +	# This will implicitly fire off wland via hotplug. +	echo -n "Starting WLAN Devices: " +	if ! $MODPROBE p80211; then +		echo "Failed to load p80211.o." +		exit 1 +	fi + +	# NOTE: We don't explicitly insmod the card driver here.  The +	#  best thing to do is to specify an alias in /etc/modules.conf. + +	for DEVICE in $WLAN_DEVICES; do +	    $MODPROBE $DEVICE +	    # if we don't have hotplug.. do things the old-fashioned way. +	    if [ $HAS_HOTPLUG = 'n' ] ; then +		wlan_bring_it_up $DEVICE +	    fi +	done + +	# And hotplug will take care of the rest, namely device  +	# initialization and whatnot. + +        if [ -f /etc/init.d/functions ] ; then +                echo_success +        else +                echo +        fi + +	;; + +stop) +	echo -n "Shutting Down WLAN Devices: " +	echo -n "Shutting Down WLAN Devices: " +	# Do a reset on each device to make sure none of them are still +	#  trying to generate interrupts. +	for DEVICE in $WLAN_DEVICES; do +		wlan_disable $DEVICE +		ifconfig $DEVICE down +		$MODPROBE -r $DEVICE +	done +	 +	# remove p80211, which will implictly kill wland. +	$MODPROBE -r p80211 + +        if [ -f /etc/init.d/functions ] ; then +                echo_success +        else +                echo +        fi +	;; + +status) +	status wland +	;; + +restart|reload|force-reload) +	$0 stop +	$0 start +	EXITCODE=$? +	;; + +    *) +	usage +	;; + +esac + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/wlan.agent.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/wlan.agent.svn-base new file mode 100644 index 0000000..7cf800a --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/wlan.agent.svn-base @@ -0,0 +1,78 @@ +#!/bin/bash +# +# p80211/wlan hotplug policy agent. +# +# wlan hotplug params include: +#	 +#	ACTION=%s [register|remove|shutdown|startup|suspend|resume] +#	INTERFACE=%s +#       NSDNAME=%s +# + +cd /etc/hotplug +. hotplug.functions + +#DEBUG=yes export DEBUG + +if [ "$INTERFACE" = "" ]; then +    mesg Bad WLAN invocation: \$INTERFACE is not set +    exit 1 +fi + +if [ "$NSDNAME" = "" ]; then +    mesg Bad WLAN invocation: \$NSDNAME is not set +    exit 1 +fi + +debug_mesg WLAN $ACTION on $INTERFACE \($NSDNAME\) + +if [ "$NSDNAME" = "prism2_cs" ] ; then +    mesg "WLAN Hotplug bypassed for pcmcia" +    exit 0 +fi + +# load up the shared scripts +if [ ! -f /etc/wlan/shared ] ; then +    mesg "/etc/wlan/shared not present, aborting" +    exit 1 +fi + +ECHO=mesg +. /etc/wlan/shared + +case $ACTION in +'register'|'resume') +	debug_mesg WLAN $INTERFACE registered. +	wlan_bring_it_up $INTERFACE $WLAN_WEXT +	if [ $? = 0 ] ; then +	    mesg WLAN $INTERFACE brought up successfully. +		if [ -x /etc/wlan/pre-ifup ] ; then +			# pre-ifup is presumed to call ifup if it +			#  wants to...it may choose to skip it. +			mesg "WLAN bringing up layer 3+ with /etc/wlan/pre-ifup" +			/etc/wlan/pre-ifup $INTERFACE +		else +			mesg "WLAN bringing up layer 3+ with /sbin/ifup" +			/sbin/ifdown $INTERFACE +			/sbin/ifup $INTERFACE +		fi +	else +	    mesg WLAN Could not bring up $INTERFACE +	fi +	# eventually invoke net.agent on $INTERFACE w/ REGISTER +;; +'remove'|'suspend') +	debug_mesg WLAN $INTERFACE removed. +;; +'startup') +	# kick off wland. +	debug_mesg WLAN p80211 starting! +;; +'shutdown') +	debug_mesg WLAN p80211 shutting down! +;; +*) +    debug_mesg WLAN $ACTION event not supported +    exit 1 ;; + +esac diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/Makefile new file mode 100644 index 0000000..7d46fd2 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/Makefile @@ -0,0 +1,67 @@ +# etc/Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + +-include ../config.mk + +DIRS= pcmcia wlan + +all: +	set -e; for d in $(DIRS); do $(MAKE) -C $$d all; done + +clean: +	set -e; for d in $(DIRS); do $(MAKE) -C $$d clean; done + +install: +	set -e; for d in $(DIRS); do $(MAKE) -C $$d install; done +	if [ ! -d $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d ]; then \ +		mkdir -p $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d; \ +	fi; \ +	cp rc.wlan $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d/wlan; \ +	chmod 755 $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d/wlan ;\ +	if [ -d $(TARGET_ROOT_ON_HOST)/etc/hotplug ]; then \ +		cp wlan.agent $(TARGET_ROOT_ON_HOST)/etc/hotplug; \ +		rm -f $(TARGET_ROOT_ON_HOST)/etc/hotplug/usb/prism2_usb; \ +                rm -f $(TARGET_ROOT_ON_HOST)/etc/hotplug/pci/prism2_pci; \ +                rm -f $(TARGET_ROOT_ON_HOST)/etc/hotplug/pci/prism2_plx; \ +	fi diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/entries new file mode 100644 index 0000000..4ab4851 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/entries @@ -0,0 +1,130 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/etc/pcmcia +svn://svn.shaftnet.org/linux-wlan-ng + + + +2005-06-29T21:15:21.828713Z +1731 +solomon + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +wlan-ng +file + + + + +2009-01-07T08:13:02.000000Z +d5a7d6c0b613d87430f1f7dc14c5129f +2004-01-29T18:38:28.000000Z +1559 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +5526 + +wlan-ng.conf +file + + + + +2009-01-07T08:13:02.000000Z +4dad76e208aa4909b6698c76d74177ae +2005-06-29T21:15:21.828713Z +1731 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +5443 + +Makefile +file + + + + +2009-01-07T08:13:02.000000Z +63eb5c59ebcb43fa82b42bf331ec30cc +2005-01-26T22:01:07.661267Z +1678 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +2849 + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/Makefile.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/Makefile.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.conf.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.conf.svn-base new file mode 100644 index 0000000..5336d10 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.conf.svn-base @@ -0,0 +1,13 @@ +K 13 +svn:eol-style +V 6 +native +K 14 +svn:executable +V 1 +* +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.svn-base new file mode 100644 index 0000000..5336d10 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.svn-base @@ -0,0 +1,13 @@ +K 13 +svn:eol-style +V 6 +native +K 14 +svn:executable +V 1 +* +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/Makefile.svn-base new file mode 100644 index 0000000..e9f612f --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/Makefile.svn-base @@ -0,0 +1,81 @@ +# etc/pcmcia/Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + +-include ../../config.mk + +all: +	@echo "Nothing to do" + +clean: +	@echo "Nothing to do" +	 +ifeq ($(PRISM2_PCMCIA), y) + +install: +	mkdir -p $(TARGET_PCMCIA_DIR) ; \ +	if [ -f $(TARGET_PCMCIA_DIR)/wlan-ng ]; then \ +		mv -f $(TARGET_PCMCIA_DIR)/wlan-ng $(TARGET_PCMCIA_DIR)/wlan-ng.O ; \ +	fi ; \ +	cp wlan-ng $(TARGET_PCMCIA_DIR) ; \ +	chmod +x $(TARGET_PCMCIA_DIR)/wlan-ng ; \ +	if [ -f $(TARGET_PCMCIA_DIR)/wlan-ng.conf ]; then \ +		mv -f $(TARGET_PCMCIA_DIR)/wlan-ng.conf $(TARGET_PCMCIA_DIR)/wlan-ng.conf.O ; \ +	fi ; \ +	cp wlan-ng.conf $(TARGET_PCMCIA_DIR) ; \ +	if [ -f $(TARGET_PCMCIA_DIR)/config ]; then \ +	if ! grep -sq 'source.*\.\/\*\.conf$$' $(TARGET_PCMCIA_DIR)/config ; then \ +		if ! grep -sq 'source \.\/wlan-ng.conf' $(TARGET_PCMCIA_DIR)/config ; then \ +			mv -f $(TARGET_PCMCIA_DIR)/config $(TARGET_PCMCIA_DIR)/config.O ; \ +			( echo "source ./wlan-ng.conf"; cat $(TARGET_PCMCIA_DIR)/config.O) > $(TARGET_PCMCIA_DIR)/config ; \ +		fi ; \ +	fi ; \ +	fi + +else + +install: +	@echo "Nothing to do" + +endif + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.conf.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.conf.svn-base new file mode 100644 index 0000000..25e5db9 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.conf.svn-base @@ -0,0 +1,190 @@ + +device "prism2_cs" +   class "wlan-ng" module "prism2_cs" + +card "Intersil PRISM2 Reference Design 11Mb/s 802.11b WLAN Card" +   version "INTERSIL", "HFA384x/IEEE" +   bind "prism2_cs" + +card "Compaq WL100/200 11Mb/s 802.11b WLAN Card" +   manfid 0x0138, 0x0002 +   bind "prism2_cs" + +card "Compaq iPaq HNW-100 11Mb/s 802.11b WLAN Card" +   manfid 0x028a, 0x0002 +   bind "prism2_cs" + +card "Samsung SWL2000-N 11Mb/s 802.11b WLAN Card" +   manfid 0x0250, 0x0002 +   bind "prism2_cs" + +card "Z-Com XI300 11Mb/s 802.11b WLAN Card" +   manfid 0xd601, 0x0002 +   bind "prism2_cs" + +card "ZoomAir 4100 11Mb/s 802.11b WLAN Card" +   version "ZoomAir 11Mbps High", "Rate wireless Networking" +   bind "prism2_cs" + +card "Linksys WPC11 11Mbps 802.11b WLAN Card" +   version "Instant Wireless ", " Network PC CARD", "Version 01.02" +   bind "prism2_cs" + +card "Addtron AWP-100 11Mbps 802.11b WLAN Card" +   version "Addtron", "AWP-100 Wireless PCMCIA", "Version 01.02" +   bind "prism2_cs" + +card "D-Link DWL-650 11Mbps 802.11b WLAN Card" +   version "D", "Link DWL-650 11Mbps WLAN Card", "Version 01.02" +   bind "prism2_cs" + +card "SMC 2632W 11Mbps 802.11b WLAN Card" +   version "SMC", "SMC2632W", "Version 01.02" +   bind "prism2_cs" + +card "BroMax Freeport 11Mbps 802.11b WLAN Card (Prism 2.5)" +  version "Intersil", "PRISM 2_5 PCMCIA ADAPTER", "ISL37300P", "Eval-RevA" +   bind "prism2_cs" +    +card "U.S. Robotics IEEE 802.11b PC-CARD" +   version "U.S. Robotics", "IEEE 802.11b PC-CARD", "Version 01.02" +   bind "prism2_cs" + +card "Level-One WPC-0100" +   version "Digital Data Communications", "WPC-0100" +   bind "prism2_cs" + +card "Bromax OEM 11Mbps 802.11b WLAN Card (Prism 2.5)" +   manfid 0x0274, 0x1612 +   bind "prism2_cs" + +card "Bromax OEM 11Mbps 802.11b WLAN Card (Prism 3)" +   manfid 0x0274, 0x1613 +   bind "prism2_cs" + +card "corega K.K. Wireless LAN PCC-11" +   version "corega K.K.", "Wireless LAN PCC-11" +   bind "prism2_cs" + +card "corega K.K. Wireless LAN PCCA-11" +   version "corega K.K.", "Wireless LAN PCCA-11" +   bind "prism2_cs" + +card "CONTEC FLEXSCAN/FX-DDS110-PCC" +   manfid 0xc001, 0x0008 +   bind "prism2_cs" + +card "PLANEX GeoWave/GW-NS110" +   version "PLANEX", "GeoWave/GW-NS110" +   bind "prism2_cs" + +card "Ambicom WL1100 11Mbps 802.11b WLAN Card" +   version "OEM", "PRISM2 IEEE 802.11 PC-Card", "Version 01.02" +   bind "prism2_cs" + +card "LeArtery SYNCBYAIR 11Mbps 802.11b WLAN Card" +   version "LeArtery", "SYNCBYAIR 11Mbps Wireless LAN PC Card", "Version 01.02" +   bind "prism2_cs" + +card "Intermec MobileLAN 11Mbps 802.11b WLAN Card" +   manfid 0x01ff, 0x0008 +   bind "prism2_cs" + +card "NETGEAR MA401 11Mbps 802.11 WLAN Card" +   version "NETGEAR MA401 Wireless PC", "Card", "Version 01.00" +   bind "prism2_cs" + +card "Intersil PRISM Freedom 11mbps 802.11 WLAN Card" +   version "Intersil", "PRISM Freedom PCMCIA Adapter", "ISL37100P", "Eval-RevA" +   bind "prism2_cs" + +card "OTC Wireless AirEZY 2411-PCC 11Mbps 802.11 WLAN Card" +   version "OTC", "Wireless AirEZY 2411-PCC WLAN Card", "Version 01.02" +   bind "prism2_cs" + +card "Dynalink L11HDT 11Mbps 802.11 WLAN Card" +   version "802.11", "11Mbps Wireless LAN Card", "v08C1", ""    +   manfid 0xc250, 0x0002 +   bind "prism2_cs" + +card "PROXIM RangeLAN-DS/LAN PC CARD" +   version "PROXIM", "RangeLAN-DS/LAN PC CARD" +   bind "prism2_cs" + +card "ACTIONTEC PRISM Wireless LAN PC Card" +   version "ACTIONTEC", "PRISM Wireless LAN PC Card", "0381", "RevA" +   manfid 0x1668, 0x0101 +   bind "prism2_cs" + +card "3Com AirConnect 3CRWE737A" +   version "3Com", "3CRWE737A AirConnect Wireless LAN PC Card" +   bind "prism2_cs"  + +card "3Com AirConnect 3CRWE777A" +   version "3Com", "3CRWE777A AirConnect Wireless LAN PCI Card"   +   bind "prism2_cs"  + +card "ASUS WL-100 802.11b WLAN  PC Card" +   version "ASUS", "802_11b_PC_CARD_25" +   bind "prism2_cs" +  +card "ASUS WL-110 802.11b WLAN CF Card" +   version "ASUS", "802_11B_CF_CARD_25" +   bind "prism2_cs" + +card "BUFFALO WLI-CF-S11G 802.11b WLAN Card" +  version "BUFFALO", "WLI-CF-S11G" +  bind "prism2_cs" + +card "Linksys WCF11 11Mbps 802.11b WLAN Card (Prism 2.5)" +  version "The Linksys Group, Inc.", "Wireless Network CF Card", "ISL37300P", "RevA" +  bind "prism2_cs" + +card "Linksys WCF12 11Mbps 802.11b WLAN Card (Prism 3)" +  version "Linksys", "Wireless CompactFlash Card", "", "" +  manfid 0x028a, 0x0673 +  bind "prism2_cs" + +card "NETGEAR MA401RA 11Mbps 802.11 WLAN Card" +   version "NETGEAR MA401RA Wireless PC", "Card", "ISL37300P", "Eval-RevA" +   bind "prism2_cs" + +card "D-Link DCF-660W  11Mbps 802.11b WLAN Card" +  manfid 0xd601, 0x0005 +  bind "prism2_cs" + +card "Microsoft Wireless Notebook Adapter MN-520" +  manfid 0x02d2, 0x0001 +  bind "prism2_cs" + +card "AnyPoint(TM) Wireless II PC Card" +  manfid 0x0089, 0x0002 +  bind "prism2_cs" + +card "D-Link DRC-650 802.11b WLAN Card" +   version "D", "Link DRC-650 11Mbps WLAN Card", "Version 01.02", ""  +   bind "prism2_cs" + +card "Adaptec AWN-8030" +   manfid 0x9005, 0x0021 +   bind "prism2_cs" + +card "D-Link DWL-650 rev P 802.11b WLAN card" +   manfid 0x000b, 0x7110 +#  version "D-Link", "DWL-650 Wireless PC Card RevP", "ISL37101P-10", "A3" +   bind "prism2_cs" + +card "I-Gate 11M PC Card" +   version "INTERSIL",  "I-GATE 11M PC Card / PC Card plus", "Version 01.02" +   bind "prism2_cs" + +card "benQ AWL100 802.11b WLAN Card" +   version "BENQ", "AWL100 PCMCIA ADAPTER", "ISL37300P", "Eval-RevA" +   manfid 0x000b, 0x7300 +   bind "prism2_cs" + +card "Intersil Prism 2 card" +   version "INTERSIL" +   manfid 0x0156, 0x0002 +   bind "prism2_cs" + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.svn-base new file mode 100644 index 0000000..76b63cd --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.svn-base @@ -0,0 +1,204 @@ +#! /bin/sh +# +# etc/pcmcia/wlan-ng +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + + +# [MSM]: Moved here because wlan/shared may is intended to be used by  +#  other scripts +wlan_usage () +{ +    echo "usage: wlan-ng [action] [device name] [debug]" +    echo "  actions: start|resume, stop|suspend, check|cksum|restart" +    echo "  debug  : enables shell debug" +    exit 1 +} + +if [ "$3" = "debug" ]; then set -x ; fi + +# Note: this 'shared' comes with the WLAN package +if [ ! -f /etc/wlan/shared ] ; then +    echo "/etc/wlan/shared not present" +    exit 0 +fi + +. /etc/wlan/shared + +# [MSM]: This test supplied by rlazarev, it's commented out due to pcmcia +#   stab file movement.  This test needs to be 'functionized' and made a +#   little more robust. +#if [ ! -f /var/run/stab ] ; then +#	echo "Error: Possibly PCMCIA CS is not started"; +#	wlan_usage; +#	exit 1; +#fi + +# If number of args is less than 2 display usage +if [ $# -lt 2 ]; then wlan_usage ; fi + +# Note: this 'shared' comes with the PCMCIA package +# ACTION=$1 and DEVICE=$2 are assigned in pcmcia/shared +if [ -f /etc/pcmcia/shared ] ; then . /etc/pcmcia/shared ; fi + +# XXXX we can do stuff with $SCHEME still..? +case "$ACTION" in + +'start'|'resume') +	#=======ENABLE======================================== +	# Do we want to init the card at all? +	eval 'WLAN_ENABLE=$ENABLE_'$DEVICE + +	if ! is_true $WLAN_ENABLE ; then +		exit 0 +	fi + +	if is_true $WLAN_DOWNLOAD; then +	    wlan_download $DEVICE +        fi + +	wlan_enable $DEVICE + +	#=======MAC STARTUP========================================= +	wlan_supports_scan $DEVICE +	if [ $? = 0 ] ; then +	    wlan_scan $DEVICE  +	    if [ $? = 0 ] ; then +		wlan_source_config_for_ssid "$ssid" "$bssid" + +		wlan_user_mibs $DEVICE +		wlan_wep $DEVICE + +		grep 'autojoin' /proc/net/p80211/$DEVICE/wlandev > /dev/null +		if [ $? = 0 ]; then +		    wlan_infra $DEVICE +		else +		    wlan_dot11_join $DEVICE +		fi +	    else +		echo "network not found.  maybe start IBSS?" +	    fi +	else +	    wlan_source_config $DEVICE + +	    wlan_user_mibs $DEVICE +	    wlan_wep $DEVICE + +	    if is_true $IS_ADHOC ; then	 +		wlan_adhoc $DEVICE +	    else +		wlan_infra $DEVICE +	    fi +	fi + +	# ==========PCMCIA NETDEVICE============================= +	# Append the SSID to the pcmcia scheme name +	wlan_set_ssid_schemefile "$WLAN_SCHEMESSID" + +	# Call the normal network initialization +	./network $1 $2 +	if [ $? = 1 ] ; then +#		echo "/etc/pcmcia/network $1 $2 failed." +		wlan_restore_schemefile +		exit 1 +	fi +	 +	# Restore scheme file to it's prior contents +	wlan_restore_schemefile +	;; + +'stop'|'suspend') + +	# ==========PCMCIA NETDEVICE============================= +	# Append the SSID to the pcmcia scheme name +	wlan_set_ssid_schemefile "$DesiredSSID" + +	# Call the normal network initialization +	./network $1 $2 +	if [ $? = 1 ] ; then +#		echo "/etc/pcmcia/network $1 $2 failed." +		wlan_restore_schemefile +		exit 1 +	fi +	 +	#=======DISABLE IFSTATE============================= +	# Take the device down to a quiescent state. +	wlan_disable $DEVICE + +	# Restore scheme file to it's prior contents +	wlan_restore_schemefile +	;; + +'check'|'cksum'|'restart') +	# ==========STA ==================================== +	# Just passes through for normal network device +	# behavior. +	if is_true $IS_ADHOC; then +		WLAN_SCHEMESSID="$SSID" +	else +		WLAN_SCHEMESSID="$DesiredSSID" +	fi + +	# ==========PCMCIA NETDEVICE============================= +	# Append the SSID to the pcmcia scheme name +	wlan_set_ssid_schemefile "$WLAN_SCHEMESSID" +	 +	# Call the normal network initialization +	./network $1 $2 $3:$WLAN_SCHEMESSID +	if [ $? = 1 ] ; then +#		echo "/etc/pcmcia/network $1 $2 $3 failed." +		wlan_restore_schemefile +		exit 1 +	fi + +	# Restore scheme file to it's prior contents +	wlan_restore_schemefile +	;; + +*) +    usage +    ;; + +esac + +exit 0 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/Makefile new file mode 100644 index 0000000..e9f612f --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/Makefile @@ -0,0 +1,81 @@ +# etc/pcmcia/Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + +-include ../../config.mk + +all: +	@echo "Nothing to do" + +clean: +	@echo "Nothing to do" +	 +ifeq ($(PRISM2_PCMCIA), y) + +install: +	mkdir -p $(TARGET_PCMCIA_DIR) ; \ +	if [ -f $(TARGET_PCMCIA_DIR)/wlan-ng ]; then \ +		mv -f $(TARGET_PCMCIA_DIR)/wlan-ng $(TARGET_PCMCIA_DIR)/wlan-ng.O ; \ +	fi ; \ +	cp wlan-ng $(TARGET_PCMCIA_DIR) ; \ +	chmod +x $(TARGET_PCMCIA_DIR)/wlan-ng ; \ +	if [ -f $(TARGET_PCMCIA_DIR)/wlan-ng.conf ]; then \ +		mv -f $(TARGET_PCMCIA_DIR)/wlan-ng.conf $(TARGET_PCMCIA_DIR)/wlan-ng.conf.O ; \ +	fi ; \ +	cp wlan-ng.conf $(TARGET_PCMCIA_DIR) ; \ +	if [ -f $(TARGET_PCMCIA_DIR)/config ]; then \ +	if ! grep -sq 'source.*\.\/\*\.conf$$' $(TARGET_PCMCIA_DIR)/config ; then \ +		if ! grep -sq 'source \.\/wlan-ng.conf' $(TARGET_PCMCIA_DIR)/config ; then \ +			mv -f $(TARGET_PCMCIA_DIR)/config $(TARGET_PCMCIA_DIR)/config.O ; \ +			( echo "source ./wlan-ng.conf"; cat $(TARGET_PCMCIA_DIR)/config.O) > $(TARGET_PCMCIA_DIR)/config ; \ +		fi ; \ +	fi ; \ +	fi + +else + +install: +	@echo "Nothing to do" + +endif + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng new file mode 100755 index 0000000..76b63cd --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng @@ -0,0 +1,204 @@ +#! /bin/sh +# +# etc/pcmcia/wlan-ng +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + + +# [MSM]: Moved here because wlan/shared may is intended to be used by  +#  other scripts +wlan_usage () +{ +    echo "usage: wlan-ng [action] [device name] [debug]" +    echo "  actions: start|resume, stop|suspend, check|cksum|restart" +    echo "  debug  : enables shell debug" +    exit 1 +} + +if [ "$3" = "debug" ]; then set -x ; fi + +# Note: this 'shared' comes with the WLAN package +if [ ! -f /etc/wlan/shared ] ; then +    echo "/etc/wlan/shared not present" +    exit 0 +fi + +. /etc/wlan/shared + +# [MSM]: This test supplied by rlazarev, it's commented out due to pcmcia +#   stab file movement.  This test needs to be 'functionized' and made a +#   little more robust. +#if [ ! -f /var/run/stab ] ; then +#	echo "Error: Possibly PCMCIA CS is not started"; +#	wlan_usage; +#	exit 1; +#fi + +# If number of args is less than 2 display usage +if [ $# -lt 2 ]; then wlan_usage ; fi + +# Note: this 'shared' comes with the PCMCIA package +# ACTION=$1 and DEVICE=$2 are assigned in pcmcia/shared +if [ -f /etc/pcmcia/shared ] ; then . /etc/pcmcia/shared ; fi + +# XXXX we can do stuff with $SCHEME still..? +case "$ACTION" in + +'start'|'resume') +	#=======ENABLE======================================== +	# Do we want to init the card at all? +	eval 'WLAN_ENABLE=$ENABLE_'$DEVICE + +	if ! is_true $WLAN_ENABLE ; then +		exit 0 +	fi + +	if is_true $WLAN_DOWNLOAD; then +	    wlan_download $DEVICE +        fi + +	wlan_enable $DEVICE + +	#=======MAC STARTUP========================================= +	wlan_supports_scan $DEVICE +	if [ $? = 0 ] ; then +	    wlan_scan $DEVICE  +	    if [ $? = 0 ] ; then +		wlan_source_config_for_ssid "$ssid" "$bssid" + +		wlan_user_mibs $DEVICE +		wlan_wep $DEVICE + +		grep 'autojoin' /proc/net/p80211/$DEVICE/wlandev > /dev/null +		if [ $? = 0 ]; then +		    wlan_infra $DEVICE +		else +		    wlan_dot11_join $DEVICE +		fi +	    else +		echo "network not found.  maybe start IBSS?" +	    fi +	else +	    wlan_source_config $DEVICE + +	    wlan_user_mibs $DEVICE +	    wlan_wep $DEVICE + +	    if is_true $IS_ADHOC ; then	 +		wlan_adhoc $DEVICE +	    else +		wlan_infra $DEVICE +	    fi +	fi + +	# ==========PCMCIA NETDEVICE============================= +	# Append the SSID to the pcmcia scheme name +	wlan_set_ssid_schemefile "$WLAN_SCHEMESSID" + +	# Call the normal network initialization +	./network $1 $2 +	if [ $? = 1 ] ; then +#		echo "/etc/pcmcia/network $1 $2 failed." +		wlan_restore_schemefile +		exit 1 +	fi +	 +	# Restore scheme file to it's prior contents +	wlan_restore_schemefile +	;; + +'stop'|'suspend') + +	# ==========PCMCIA NETDEVICE============================= +	# Append the SSID to the pcmcia scheme name +	wlan_set_ssid_schemefile "$DesiredSSID" + +	# Call the normal network initialization +	./network $1 $2 +	if [ $? = 1 ] ; then +#		echo "/etc/pcmcia/network $1 $2 failed." +		wlan_restore_schemefile +		exit 1 +	fi +	 +	#=======DISABLE IFSTATE============================= +	# Take the device down to a quiescent state. +	wlan_disable $DEVICE + +	# Restore scheme file to it's prior contents +	wlan_restore_schemefile +	;; + +'check'|'cksum'|'restart') +	# ==========STA ==================================== +	# Just passes through for normal network device +	# behavior. +	if is_true $IS_ADHOC; then +		WLAN_SCHEMESSID="$SSID" +	else +		WLAN_SCHEMESSID="$DesiredSSID" +	fi + +	# ==========PCMCIA NETDEVICE============================= +	# Append the SSID to the pcmcia scheme name +	wlan_set_ssid_schemefile "$WLAN_SCHEMESSID" +	 +	# Call the normal network initialization +	./network $1 $2 $3:$WLAN_SCHEMESSID +	if [ $? = 1 ] ; then +#		echo "/etc/pcmcia/network $1 $2 $3 failed." +		wlan_restore_schemefile +		exit 1 +	fi + +	# Restore scheme file to it's prior contents +	wlan_restore_schemefile +	;; + +*) +    usage +    ;; + +esac + +exit 0 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng.conf b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng.conf new file mode 100755 index 0000000..25e5db9 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng.conf @@ -0,0 +1,190 @@ + +device "prism2_cs" +   class "wlan-ng" module "prism2_cs" + +card "Intersil PRISM2 Reference Design 11Mb/s 802.11b WLAN Card" +   version "INTERSIL", "HFA384x/IEEE" +   bind "prism2_cs" + +card "Compaq WL100/200 11Mb/s 802.11b WLAN Card" +   manfid 0x0138, 0x0002 +   bind "prism2_cs" + +card "Compaq iPaq HNW-100 11Mb/s 802.11b WLAN Card" +   manfid 0x028a, 0x0002 +   bind "prism2_cs" + +card "Samsung SWL2000-N 11Mb/s 802.11b WLAN Card" +   manfid 0x0250, 0x0002 +   bind "prism2_cs" + +card "Z-Com XI300 11Mb/s 802.11b WLAN Card" +   manfid 0xd601, 0x0002 +   bind "prism2_cs" + +card "ZoomAir 4100 11Mb/s 802.11b WLAN Card" +   version "ZoomAir 11Mbps High", "Rate wireless Networking" +   bind "prism2_cs" + +card "Linksys WPC11 11Mbps 802.11b WLAN Card" +   version "Instant Wireless ", " Network PC CARD", "Version 01.02" +   bind "prism2_cs" + +card "Addtron AWP-100 11Mbps 802.11b WLAN Card" +   version "Addtron", "AWP-100 Wireless PCMCIA", "Version 01.02" +   bind "prism2_cs" + +card "D-Link DWL-650 11Mbps 802.11b WLAN Card" +   version "D", "Link DWL-650 11Mbps WLAN Card", "Version 01.02" +   bind "prism2_cs" + +card "SMC 2632W 11Mbps 802.11b WLAN Card" +   version "SMC", "SMC2632W", "Version 01.02" +   bind "prism2_cs" + +card "BroMax Freeport 11Mbps 802.11b WLAN Card (Prism 2.5)" +  version "Intersil", "PRISM 2_5 PCMCIA ADAPTER", "ISL37300P", "Eval-RevA" +   bind "prism2_cs" +    +card "U.S. Robotics IEEE 802.11b PC-CARD" +   version "U.S. Robotics", "IEEE 802.11b PC-CARD", "Version 01.02" +   bind "prism2_cs" + +card "Level-One WPC-0100" +   version "Digital Data Communications", "WPC-0100" +   bind "prism2_cs" + +card "Bromax OEM 11Mbps 802.11b WLAN Card (Prism 2.5)" +   manfid 0x0274, 0x1612 +   bind "prism2_cs" + +card "Bromax OEM 11Mbps 802.11b WLAN Card (Prism 3)" +   manfid 0x0274, 0x1613 +   bind "prism2_cs" + +card "corega K.K. Wireless LAN PCC-11" +   version "corega K.K.", "Wireless LAN PCC-11" +   bind "prism2_cs" + +card "corega K.K. Wireless LAN PCCA-11" +   version "corega K.K.", "Wireless LAN PCCA-11" +   bind "prism2_cs" + +card "CONTEC FLEXSCAN/FX-DDS110-PCC" +   manfid 0xc001, 0x0008 +   bind "prism2_cs" + +card "PLANEX GeoWave/GW-NS110" +   version "PLANEX", "GeoWave/GW-NS110" +   bind "prism2_cs" + +card "Ambicom WL1100 11Mbps 802.11b WLAN Card" +   version "OEM", "PRISM2 IEEE 802.11 PC-Card", "Version 01.02" +   bind "prism2_cs" + +card "LeArtery SYNCBYAIR 11Mbps 802.11b WLAN Card" +   version "LeArtery", "SYNCBYAIR 11Mbps Wireless LAN PC Card", "Version 01.02" +   bind "prism2_cs" + +card "Intermec MobileLAN 11Mbps 802.11b WLAN Card" +   manfid 0x01ff, 0x0008 +   bind "prism2_cs" + +card "NETGEAR MA401 11Mbps 802.11 WLAN Card" +   version "NETGEAR MA401 Wireless PC", "Card", "Version 01.00" +   bind "prism2_cs" + +card "Intersil PRISM Freedom 11mbps 802.11 WLAN Card" +   version "Intersil", "PRISM Freedom PCMCIA Adapter", "ISL37100P", "Eval-RevA" +   bind "prism2_cs" + +card "OTC Wireless AirEZY 2411-PCC 11Mbps 802.11 WLAN Card" +   version "OTC", "Wireless AirEZY 2411-PCC WLAN Card", "Version 01.02" +   bind "prism2_cs" + +card "Dynalink L11HDT 11Mbps 802.11 WLAN Card" +   version "802.11", "11Mbps Wireless LAN Card", "v08C1", ""    +   manfid 0xc250, 0x0002 +   bind "prism2_cs" + +card "PROXIM RangeLAN-DS/LAN PC CARD" +   version "PROXIM", "RangeLAN-DS/LAN PC CARD" +   bind "prism2_cs" + +card "ACTIONTEC PRISM Wireless LAN PC Card" +   version "ACTIONTEC", "PRISM Wireless LAN PC Card", "0381", "RevA" +   manfid 0x1668, 0x0101 +   bind "prism2_cs" + +card "3Com AirConnect 3CRWE737A" +   version "3Com", "3CRWE737A AirConnect Wireless LAN PC Card" +   bind "prism2_cs"  + +card "3Com AirConnect 3CRWE777A" +   version "3Com", "3CRWE777A AirConnect Wireless LAN PCI Card"   +   bind "prism2_cs"  + +card "ASUS WL-100 802.11b WLAN  PC Card" +   version "ASUS", "802_11b_PC_CARD_25" +   bind "prism2_cs" +  +card "ASUS WL-110 802.11b WLAN CF Card" +   version "ASUS", "802_11B_CF_CARD_25" +   bind "prism2_cs" + +card "BUFFALO WLI-CF-S11G 802.11b WLAN Card" +  version "BUFFALO", "WLI-CF-S11G" +  bind "prism2_cs" + +card "Linksys WCF11 11Mbps 802.11b WLAN Card (Prism 2.5)" +  version "The Linksys Group, Inc.", "Wireless Network CF Card", "ISL37300P", "RevA" +  bind "prism2_cs" + +card "Linksys WCF12 11Mbps 802.11b WLAN Card (Prism 3)" +  version "Linksys", "Wireless CompactFlash Card", "", "" +  manfid 0x028a, 0x0673 +  bind "prism2_cs" + +card "NETGEAR MA401RA 11Mbps 802.11 WLAN Card" +   version "NETGEAR MA401RA Wireless PC", "Card", "ISL37300P", "Eval-RevA" +   bind "prism2_cs" + +card "D-Link DCF-660W  11Mbps 802.11b WLAN Card" +  manfid 0xd601, 0x0005 +  bind "prism2_cs" + +card "Microsoft Wireless Notebook Adapter MN-520" +  manfid 0x02d2, 0x0001 +  bind "prism2_cs" + +card "AnyPoint(TM) Wireless II PC Card" +  manfid 0x0089, 0x0002 +  bind "prism2_cs" + +card "D-Link DRC-650 802.11b WLAN Card" +   version "D", "Link DRC-650 11Mbps WLAN Card", "Version 01.02", ""  +   bind "prism2_cs" + +card "Adaptec AWN-8030" +   manfid 0x9005, 0x0021 +   bind "prism2_cs" + +card "D-Link DWL-650 rev P 802.11b WLAN card" +   manfid 0x000b, 0x7110 +#  version "D-Link", "DWL-650 Wireless PC Card RevP", "ISL37101P-10", "A3" +   bind "prism2_cs" + +card "I-Gate 11M PC Card" +   version "INTERSIL",  "I-GATE 11M PC Card / PC Card plus", "Version 01.02" +   bind "prism2_cs" + +card "benQ AWL100 802.11b WLAN Card" +   version "BENQ", "AWL100 PCMCIA ADAPTER", "ISL37300P", "Eval-RevA" +   manfid 0x000b, 0x7300 +   bind "prism2_cs" + +card "Intersil Prism 2 card" +   version "INTERSIL" +   manfid 0x0156, 0x0002 +   bind "prism2_cs" + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/rc.wlan b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/rc.wlan new file mode 100755 index 0000000..70e0c54 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/rc.wlan @@ -0,0 +1,96 @@ +#!/bin/sh + +# rc.wlan  +# +# chkconfig: 2345 9 91  +# description: Activates/Configures/Disables the devices + +if [ ! -f /etc/wlan/shared ] ; then +    echo "/etc/wlan/shared not present" +    exit 0 +fi + +. /etc/wlan/shared + +if [ -f /etc/init.d/functions ] ; then +	. /etc/init.d/functions +fi + +usage() +{ +    echo "Usage: $0 {start|stop|status|restart|reload|force-reload}" +} + + +if [ $# -lt 1 ] ; then usage ; exit 1 ; fi +action=$1 + +case "$action" in + +start) +	# This will implicitly fire off wland via hotplug. +	echo -n "Starting WLAN Devices: " +	if ! $MODPROBE p80211; then +		echo "Failed to load p80211.o." +		exit 1 +	fi + +	# NOTE: We don't explicitly insmod the card driver here.  The +	#  best thing to do is to specify an alias in /etc/modules.conf. + +	for DEVICE in $WLAN_DEVICES; do +	    $MODPROBE $DEVICE +	    # if we don't have hotplug.. do things the old-fashioned way. +	    if [ $HAS_HOTPLUG = 'n' ] ; then +		wlan_bring_it_up $DEVICE +	    fi +	done + +	# And hotplug will take care of the rest, namely device  +	# initialization and whatnot. + +        if [ -f /etc/init.d/functions ] ; then +                echo_success +        else +                echo +        fi + +	;; + +stop) +	echo -n "Shutting Down WLAN Devices: " +	echo -n "Shutting Down WLAN Devices: " +	# Do a reset on each device to make sure none of them are still +	#  trying to generate interrupts. +	for DEVICE in $WLAN_DEVICES; do +		wlan_disable $DEVICE +		ifconfig $DEVICE down +		$MODPROBE -r $DEVICE +	done +	 +	# remove p80211, which will implictly kill wland. +	$MODPROBE -r p80211 + +        if [ -f /etc/init.d/functions ] ; then +                echo_success +        else +                echo +        fi +	;; + +status) +	status wland +	;; + +restart|reload|force-reload) +	$0 stop +	$0 start +	EXITCODE=$? +	;; + +    *) +	usage +	;; + +esac + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/entries new file mode 100644 index 0000000..2c396df --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/entries @@ -0,0 +1,31 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/etc/udev +svn://svn.shaftnet.org/linux-wlan-ng + + + +2007-06-20T14:53:45.955033Z +1831 +pizza + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +rules.d +dir + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/entries new file mode 100644 index 0000000..f486ad7 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/entries @@ -0,0 +1,62 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/etc/udev/rules.d +svn://svn.shaftnet.org/linux-wlan-ng + + + +2007-06-20T14:53:45.955033Z +1831 +pizza + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +40-prism2.rules +file + + + + +2009-01-07T08:13:02.000000Z +fc4858acdc2d5f3878141956d7db575c +2007-06-20T14:53:45.955033Z +1831 +pizza + + + + + + + + + + + + + + + + + + + + + +166 + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/text-base/40-prism2.rules.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/text-base/40-prism2.rules.svn-base new file mode 100644 index 0000000..1134445 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/text-base/40-prism2.rules.svn-base @@ -0,0 +1,2 @@ +#ACTION=="add",BUS=="usb",DRIVER=="prism2_usb" ,RUN+="/etc/wlan/wlan-udev.sh %k" +KERNEL="wlan*",ACTION=="add",DRIVERS=="prism2_usb" ,RUN+="/etc/wlan/wlan-udev.sh %k" diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/40-prism2.rules b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/40-prism2.rules new file mode 100644 index 0000000..1134445 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/40-prism2.rules @@ -0,0 +1,2 @@ +#ACTION=="add",BUS=="usb",DRIVER=="prism2_usb" ,RUN+="/etc/wlan/wlan-udev.sh %k" +KERNEL="wlan*",ACTION=="add",DRIVERS=="prism2_usb" ,RUN+="/etc/wlan/wlan-udev.sh %k" diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan.agent b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan.agent new file mode 100755 index 0000000..7cf800a --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan.agent @@ -0,0 +1,78 @@ +#!/bin/bash +# +# p80211/wlan hotplug policy agent. +# +# wlan hotplug params include: +#	 +#	ACTION=%s [register|remove|shutdown|startup|suspend|resume] +#	INTERFACE=%s +#       NSDNAME=%s +# + +cd /etc/hotplug +. hotplug.functions + +#DEBUG=yes export DEBUG + +if [ "$INTERFACE" = "" ]; then +    mesg Bad WLAN invocation: \$INTERFACE is not set +    exit 1 +fi + +if [ "$NSDNAME" = "" ]; then +    mesg Bad WLAN invocation: \$NSDNAME is not set +    exit 1 +fi + +debug_mesg WLAN $ACTION on $INTERFACE \($NSDNAME\) + +if [ "$NSDNAME" = "prism2_cs" ] ; then +    mesg "WLAN Hotplug bypassed for pcmcia" +    exit 0 +fi + +# load up the shared scripts +if [ ! -f /etc/wlan/shared ] ; then +    mesg "/etc/wlan/shared not present, aborting" +    exit 1 +fi + +ECHO=mesg +. /etc/wlan/shared + +case $ACTION in +'register'|'resume') +	debug_mesg WLAN $INTERFACE registered. +	wlan_bring_it_up $INTERFACE $WLAN_WEXT +	if [ $? = 0 ] ; then +	    mesg WLAN $INTERFACE brought up successfully. +		if [ -x /etc/wlan/pre-ifup ] ; then +			# pre-ifup is presumed to call ifup if it +			#  wants to...it may choose to skip it. +			mesg "WLAN bringing up layer 3+ with /etc/wlan/pre-ifup" +			/etc/wlan/pre-ifup $INTERFACE +		else +			mesg "WLAN bringing up layer 3+ with /sbin/ifup" +			/sbin/ifdown $INTERFACE +			/sbin/ifup $INTERFACE +		fi +	else +	    mesg WLAN Could not bring up $INTERFACE +	fi +	# eventually invoke net.agent on $INTERFACE w/ REGISTER +;; +'remove'|'suspend') +	debug_mesg WLAN $INTERFACE removed. +;; +'startup') +	# kick off wland. +	debug_mesg WLAN p80211 starting! +;; +'shutdown') +	debug_mesg WLAN p80211 shutting down! +;; +*) +    debug_mesg WLAN $ACTION event not supported +    exit 1 ;; + +esac diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/entries new file mode 100644 index 0000000..698bde6 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/entries @@ -0,0 +1,198 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/etc/wlan +svn://svn.shaftnet.org/linux-wlan-ng + + + +2008-06-24T19:10:11.002401Z +1863 +pizza + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +wlancfg-DEFAULT +file + + + + +2009-01-07T08:13:02.000000Z +5b4df9b122c000907fa3e18b7b9ad9ed +2003-03-24T16:18:08.000000Z +1324 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +1826 + +wlan.conf +file + + + + +2009-01-07T08:13:02.000000Z +55c3cd28747fba0d5519d4b1af2f393f +2005-02-01T19:11:19.523569Z +1688 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +3101 + +shared +file + + + + +2009-01-07T08:13:02.000000Z +909d2eada524282172a9e4df7dd42b84 +2008-06-24T19:10:11.002401Z +1863 +pizza +has-props + + + + + + + + + + + + + + + + + + + + +17350 + +wlan-udev.sh +file + + + + +2009-01-07T08:13:02.000000Z +b0eb492fe38ee1ec69e43e885ca1e8b3 +2007-02-27T16:43:02.918194Z +1823 +pizza + + + + + + + + + + + + + + + + + + + + + +947 + +Makefile +file + + + + +2009-01-07T08:13:02.000000Z +9010fd4e8dd3e0e8cb1cbf1c79e38b4f +2006-06-26T15:08:43.057073Z +1777 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +2430 + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/Makefile.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/Makefile.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/shared.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/shared.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/shared.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlan.conf.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlan.conf.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlan.conf.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlancfg-DEFAULT.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlancfg-DEFAULT.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlancfg-DEFAULT.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/Makefile.svn-base new file mode 100644 index 0000000..8133cf3 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/Makefile.svn-base @@ -0,0 +1,64 @@ +# etc/wlan/Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + +-include ../../config.mk + +all: +	echo "Nothing to do" + +clean: +	echo "Nothing to do" + +install: +	mkdir -p $(TARGET_ROOT_ON_HOST)/etc/wlan +	if [ ! -f $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf ] ; then \ +		cp wlan.conf $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf ; \ +	fi  +	cp shared wlancfg-DEFAULT wlan-udev.sh \ +		$(TARGET_ROOT_ON_HOST)/etc/wlan +	chmod 600 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlancfg-* +	chmod 600 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf +	chmod 755 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan-udev.sh +	echo FIRMWARE_DIR=$(FIRMWARE_DIR) >> $(TARGET_ROOT_ON_HOST)/etc/wlan/shared + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/shared.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/shared.svn-base new file mode 100644 index 0000000..5d84bb8 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/shared.svn-base @@ -0,0 +1,738 @@ +#!/bin/bash +# etc/wlan/shared +# +# Copyright (C) 2002 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + +TMPDIR=/tmp + +if [ ! -n "$ECHO" ]; then +	ECHO=echo +fi + +if [ ! -n "$WLAN_UDEV" ] ; then +if [ -x /sbin/modprobe ] ; then +	MODPROBE=/sbin/modprobe +else +	${ECHO} "/sbin/modprobe not found." +	exit 1 +fi +fi + +if [ -x /sbin/wlanctl-ng ] ; then  +	WLANCTL=/sbin/wlanctl-ng +else +	${ECHO} "/sbin/wlanctl-ng not found." +	exit 1 +fi + +# linux-wlan-ng > 0.2.4 there is no wland  +#if [ -x /sbin/wland ] ; then +#    WLAND=/sbin/wland +#else +#    ${ECHO} "/sbin/wland not found." +#    exit 1 +#fi + +if [ -z "$WLAN_UDEV" ] ; then +	HAS_HOTPLUG=n +	if [ -f /proc/sys/kernel/hotplug -a \ +	     -f /etc/hotplug/wlan.agent ] ; then +		HOTPLUGGER=$(</proc/sys/kernel/hotplug) +		if [ -n "$HOTPLUGGER" ] ; then +			if [ -x $HOTPLUGGER ] ; then +				HAS_HOTPLUG=y +			fi +		fi +	fi +fi + +# Source the wlan configuration +if [ -f /etc/wlan/wlan.conf ] ; then +	. /etc/wlan/wlan.conf +else +	${ECHO} "/etc/wlan/wlan.conf not found." +	exit 0 +fi + +# Source NSD specific functions +# nsd_fwload +# nsd_mibset +# Debian mod. If there is shared.dpkg-old we get a endless loop +if [ "`ls /etc/wlan/shared.* 2>/dev/null`" ]; then +	for i in `find /etc/wlan -name 'shared.*' -a ! -name '*.dpkg*'` ; do  +		. $i +	done +else +	${ECHO} "/etc/wlan/shared.* not found." +	exit 0 +fi + +is_true () +{ +	# $1 == string containing a t/f indicator. + +	[ "$1" = "y" -o "$1" = "Y" -o "$1" = "yes" -o "$1" = "YES" \ +	  -o "$1" = "t" -o "$1" = "T" -o "$1" = "true" -o "$1" = "TRUE" ] +} + +wlan_nsdname () +{ +	# $1 == wlandev +	# Writes the given device's name to stdout +	grep 'nsd name' /proc/net/p80211/$1/wlandev | sed -e 's/.*: \(.*\)_.*/\1/' +} + +wlan_enable () +{ +	# $1 == wlandev + +	#=======ENABLE IFSTATE============================= +	# Bring the device into its operable state + +    # if running under udev module must be loaded to get here so skip checks +    if [ ! -n "$WLAN_UDEV" ] ; then  + +	$MODPROBE $1 +	 +	# First, make sure the driver is loaded.... +	if ! ifconfig $1 > /dev/null 2>&1 ; then +		${ECHO} "Error: Device $1 does not seem to be present." +		${ECHO} "Make sure you've inserted the appropriate" +		${ECHO} "modules or that your modules.conf file contains" +		${ECHO} "the appropriate aliase(s)." +		return 1 +	fi +     fi +	# Call the nsd script's fwload function, in case the card needs +	# a firmware load, or could use an optional one. + +	nsdname=`wlan_nsdname $1` +	if ! ${nsdname}_fwload $1 ; then +		${ECHO} "Firmware failed to load for device $1" +		return 1 +	fi + +	# Enable the interface +	result=`$WLANCTL $1 lnxreq_ifstate ifstate=enable` +	if [ $? = 0 ] ; then +		eval $result +		if [ $resultcode != "success" ]; then +			${ECHO} "Failed to enable the device, resultcode=" \ +				$resultcode "." +			return 1 +		fi +	else +		${ECHO} "Failed to enable the device, exitcode=" $? "." +		return 1 +	fi + +	# Set any NSD specific MIBs +	${nsdname}_mibset $1 +} + +wlan_user_mibs () +{ +	# $1 == wlandev + +	#=======USER MIB SETTINGS============================= +	# Set the user specified MIB items. +	for i in $USER_MIBS ; do +		result=`$WLANCTL $1 dot11req_mibset "mibattribute=$i"` +		if [ $? = 0 ] ; then +			eval $result +			if [ $resultcode != "success" ] ; then  +				${ECHO} "Failed to set user MIB $i." +				return 1 +			fi +		else +			${ECHO} "Failed to set user MIB $i." +			return 1 +		fi +	done +} + +wlan_source_config () +{ +	# $1 == wlandev + +	# XXX what about stray singlequotes. +	eval 'GOSSID="$SSID_'$1'"' +	wlan_source_config_for_ssid "$GOSSID" +} + +wlan_source_config_for_ssid () +{ +	# $1 == ssid[:bssid] +        # $2 == bssid (optional) + +        DesiredSSID="$1" +        DesiredBSSID="$2" + +        if [ -n "$2" ] ; then +               token_ssid=`echo $1 | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'` +               token_bssid=`echo $1 | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'` +	       if [ -n "$token_ssid" ] ; then +		   DesiredSSID="$token_ssid" +		   DesiredBSSID="$token_bssid" +	       fi + +	fi + +	if [ -f "/etc/wlan/wlancfg-$DesiredSSID:$DesiredBSSID" ] ; then +		. "/etc/wlan/wlancfg-$DesiredSSID:$DesiredBSSID" +	elif [ -f "/etc/wlan/wlancfg-$DesiredSSID" ] ; then +		. "/etc/wlan/wlancfg-$DesiredSSID" +	else  + +		if [ -n "$1" ] ; then +			${ECHO} "Failed to open network config file /etc/wlan/wlancfg-$1, using default." +		fi + +		. "/etc/wlan/wlancfg-DEFAULT" +	fi +} + +wlan_disable () +{ +	# $1 == wlandev + +	$WLANCTL $1 lnxreq_ifstate ifstate=disable +}	 + +wlan_ssid_in_list () +{ +	# $1 == wlandev, $2 == ssid,  $3 == bssid + +  	eval 'GOSSID="$SSID_'$1'"' +  	 +	# This "eval" hackery is to allow escapes in GOSSID... +	cmd="for token in $GOSSID ; do +		ssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'\` +		bssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'\` +   +		if [ -z \"\$ssid_token\" ] ; then +			ssid_token="\$token" +  		fi +   +		if [ -n \"\$bssid_token\" ] ; then +			if [ \"\$bssid_token\" = \"\$3\" ] ; then +  				return 0 +  			fi +		elif [ \"\$2\" = \"\$ssid_token\" ] ; then +  			return 0	 +  		fi +	done" +	eval "$cmd" + +	return 1 +} + +wlan_supports_scan () +{ +	# $1 == wlandev + +	if is_true "$WLAN_SCAN" ; then +		cat /proc/net/p80211/$1/wlandev | grep 'scan' > /dev/null +		if [ $? = 0 ] ; then +			return 0 +		fi +	fi +	return 1 +} + +wlan_scan () +{ +	# $1 == wlandev + +	# find our allowed SSID list. +	 +	# XXX what about stray singlequotes. +	eval 'GOSSID="$SSID_'$1'"' + +	# kick off a quick scan with the broadcast SSID. +	wlan_scan_one $1 '' '' n +	if [ $? = 0  -a \ +	    "$GOSSID" = "" ] ; then +	    # if successful and our ssid list is null, return. +	    sleep 1 +	    return 0 +	fi	 + +	# otherwise we walk through the list, and scan for eacn in turn. +	# this "eval" hackery is to allow escapes in GOSSID +	cmd="for token in $GOSSID ; do +		ssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'\` +		bssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'\` + +		if [ -z \"\$ssid_token\" ] ; then +			ssid_token=\"\$token\" +		fi + +		wlan_scan_one \$1 \"\$ssid_token\" \"\$bssid_token\" +		if [ \$? = 0 ] ; then +			sleep 1 +			return 0 +		fi +	done" +	eval "$cmd" + +	# We got to the end of the list.  Maybe try "any" +	if is_true "$WLAN_ANY" ; then +		wlan_scan_one $1 +		sleep 1 +		return $? +	fi + +	sleep 1 +	return 1 +} + + +wlan_scan_one () +{ +	# $1 == wlandev, [ $2 == ssid, $3 == bssid, $4 == append ] + +    if [ -z "$4" ] ; then +	append=true +    else +	append=false +    fi + +	numbss=0 + +	result=`$WLANCTL $1 dot11req_scan bsstype=any bssid=ff:ff:ff:ff:ff:ff \ +		scantype=active probedelay=0 channellist=$ChannelList ssid="$2" \ +		minchanneltime=$ChannelMinTime maxchanneltime=$ChannelMaxTime append=$append` +	eval $result +	if [ $resultcode != 'success' ] ; then +		${ECHO} "Scan failed ($resultcode) " +		return 1 +	fi + +	## XXX if numbss == 0, repeat with $2 $3 $4? + +	i=0 +	bssfound="" + +	# walk through the results and do first-cut matching. +	while [ $i -lt $numbss ] ; do +		result=`$WLANCTL $1 dot11req_scan_results bssindex=$i` +		eval $result + +		if [ -n "$3" ] ; then +                        if [ "$3" = "$bssid" ] ; then +                               bssfound="$bssfound $i" +			fi +		elif [ -z "$2" ] ; then +			# if our ssid is "", then we pick the first entry. +			bssfound="$bssfound $i" +		elif [ "$2" = "$ssid" ] ; then +			bssfound="$bssfound $i" +		fi +		i=`expr $i + 1` +	done + +	if [ -z "$bssfound" ]; then	# No BSSs found, bail. +		return 1 +	else +		# Now find the closest +		bigsignal=0 +		for i in $bssfound ; do +			result=`$WLANCTL $1 dot11req_scan_results bssindex=$i` +			eval $result +			if [ $bigsignal -lt $signal ]; then +				bigsignal=$signal +				bigbssindex=$i +			fi +		done +		result=`$WLANCTL $1 dot11req_scan_results bssindex=$bigbssindex` +		eval $result +		return 0 +	fi +} + +wlan_wep () +{ +	# $1 == wlandev + +	#=======WEP=========================================== +	# Setup privacy +	if [ ${dot11PrivacyInvoked:-"false"} = "false" ] ; then +		return 0; +	fi + +	result=`$WLANCTL $1 dot11req_mibget mibattribute=dot11PrivacyOptionImplemented` +	if [ $? = 0 ] ; then +		eval $result +		eval $mibattribute +	else +		${ECHO} "dot11PrivacyOptionImplemented mibget failed." +		return 1 +	fi + +	if [ $dot11PrivacyOptionImplemented = "false" ] ; then +		${ECHO} "Cannot enable privacy, dot11PrivacyOptionImplemented=false." +		return 1 +	fi + +	# Do we want host-based WEP? +	result=`$WLANCTL $1 lnxreq_hostwep \ +	    decrypt="${lnxreq_hostWEPDecrypt:-false}"    \ +	    encrypt="${lnxreq_hostWEPEncrypt:-false}"` + +	# set up the rest of the parametsrs. +	if [ $dot11PrivacyOptionImplemented = "true" -a \ +	     $dot11PrivacyInvoked = "true" ] ; then +		result=`$WLANCTL $1 dot11req_mibset \ +			  mibattribute=dot11WEPDefaultKeyID=$dot11WEPDefaultKeyID ` +		result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11ExcludeUnencrypted=$dot11ExcludeUnencrypted ` +		result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11PrivacyInvoked=$dot11PrivacyInvoked` +		if [ "${PRIV_GENSTR:-empty}" != "empty" ] ; then +			if [ ${PRIV_KEY128:-"false"} = "false" ]; then +				keys=`$PRIV_GENERATOR "$PRIV_GENSTR" 5` +			else +				keys=`$PRIV_GENERATOR "$PRIV_GENSTR" 13` +			fi +				knum=0 +			for i in $keys ; do +				result=`$WLANCTL $1 dot11req_mibset \ +				mibattribute=dot11WEPDefaultKey$knum=$i` +				knum=`expr $knum + 1` +			done +		else  +			result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11WEPDefaultKey0=$dot11WEPDefaultKey0 ` +			result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11WEPDefaultKey1=$dot11WEPDefaultKey1 ` +			result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11WEPDefaultKey2=$dot11WEPDefaultKey2 ` +			result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11WEPDefaultKey3=$dot11WEPDefaultKey3 ` +		fi +	else +		# disable wep explicitly. +		result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11PrivacyInvoked=$dot11PrivacyInvoked ` +		result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11ExcludeUnencrypted=false ` +	fi +} + +wlan_adhoc () +{ +	# $1 == wlandev + +	#=======IBSS STARTUP================================== +	startcmd="$WLANCTL $1 dot11req_start " +	startcmd="$startcmd ssid=$DesiredSSID" +	startcmd="$startcmd bsstype=independent" +	startcmd="$startcmd beaconperiod=$BCNINT"  +	startcmd="$startcmd dtimperiod=3" +	startcmd="$startcmd cfpollable=false" +	startcmd="$startcmd cfpollreq=false" +	startcmd="$startcmd cfpperiod=3" +	startcmd="$startcmd cfpmaxduration=100" +	startcmd="$startcmd probedelay=100" +	startcmd="$startcmd dschannel=$CHANNEL" +	j=1 +	for i in $BASICRATES ; do +		startcmd="$startcmd basicrate$j=$i" +		j=`expr $j + 1` +		done + +	j=1 +	for i in $OPRATES ; do +		startcmd="$startcmd operationalrate$j=$i" +		j=`expr $j + 1` +	done + +	results=`$startcmd`	# Here's where it runs +	if [ $? = 0 ]; then  +		eval $results +		if [ $resultcode != "success" ] ; then  +			${ECHO} "IBSS not started, resultcode=$resultcode" +			exit 1 +		else +			${ECHO} "IBSS mode started." +		fi +	else +		${ECHO} FAILED: $startcmd +		return 1 +	fi +	WLAN_SCHEMESSID="$DesiredSSID" +} + +wlan_infra () +{ +	# $1 == wlandev + +	#==== INFRASTRUCURE STARTUP=========================== +	# XXX TODO:  Grok DesiredBSSID + +	sleep 5 +	results=`$WLANCTL $1 lnxreq_autojoin \ +		"ssid=$DesiredSSID" \ +		authtype=${AuthType:="opensystem"} | sed 's/\([^=]*\)=\(.*\)/\1="\2"/'` +	eval $results +	if [ ${resultcode:-"failure"} != "success" ] ; then +		${ECHO} 'error: Autojoin indicated failure!' +		return 1; +	fi + +	WLAN_SCHEMESSID="$DesiredSSID" +} + +wlan_dot11_join () +{ +	# $1 == wlandev + +	joincmd="$WLANCTL $1 dot11req_join bssid=$DesiredBSSID" +	joincmd="$joincmd joinfailuretimeout=1" +	 +	j=1 +	for i in $OPRATES ; do +		joincmd="$joincmd operationalrate$j=$i" +		j=`expr $j + 1` +	done + +	results=`$joincmd` + +	eval $results +	if [ ${resultcode:-"failure"} != "success" ] ; then +		${ECHO} "$1: JOIN Failure" +		${ECHO} "joincmd=$joincmd" +		${ECHO} "results=$results" +		return 1; +	fi +} + +wlan_dot11_auth_assoc () +{ +    # $1 == wlandev +	if [ $bsstype = "infrastructure" ] ; then  +		results=`$WLANCTL $1 dot11req_authenticate \ +				peerstaaddress=$DesiredBSSID \ +				authenticationtype=$AuthType \ +				authenticationfailuretimeout=2000` +		eval $results +		if [ ${resultcode:-"failure"} != "success" ] ; then +			${ECHO} "error:  dot11req_authenticate failed, "\ +				"resultcode=$resultcode" +			return 1; +		fi +		results=`$WLANCTL $1 dot11req_associate \ +				listeninterval=1000 \ +				associatefailuretimeout=2000 ` +		if [ ${resultcode:-"failure"} != "success" ] ; then +			${ECHO} 'error:  dot11req_associate failed!' +			return 1; +		fi +	fi +} + +wlan_set_ssid_schemefile () +{ +	# $1 == SSID + +	# Find the scheme file  +	if [ -r /var/lib/misc/pcmcia-scheme ] ; then +		# Debian +		WLAN_SCHEMEFILE="/var/lib/misc/pcmcia-scheme" +	elif [ -d /var/state/pcmcia ] ; then +		WLAN_SCHEMEFILE="/var/state/pcmcia/scheme" +	elif [ -d /var/lib/pcmcia ] ; then +        	WLAN_SCHEMEFILE="/var/lib/pcmcia/scheme" +	else +		WLAN_SCHEMEFILE="/var/run/pcmcia-scheme" +	fi + +	# Collect the current scheme name and save the file +	if [ -r $WLAN_SCHEMEFILE ] ; then +		WLAN_SCHEME=`cat $WLAN_SCHEMEFILE` +		cp $WLAN_SCHEMEFILE /var/run/wlan_scheme_`date +"%T"`.tmp +	else +		touch /var/run/wlan_scheme_`date +"%T"`.tmp +		 +	fi + +	# Set up the <scheme:SSID> string +	if [ ! "$WLAN_SCHEME" ] ; then  +		WLAN_SCHEME="default" +	fi +	WLAN_SCHEME="$WLAN_SCHEME:$1" + +	# Write to schemefile +	echo $WLAN_SCHEME > $WLAN_SCHEMEFILE +} + +wlan_restore_schemefile () +{ +	# Find the scheme file  +	if [ -r /var/lib/misc/pcmcia-scheme ] ; then +		# Debian +		WLAN_SCHEMEFILE="/var/lib/misc/pcmcia-scheme" +	elif [ -d /var/state/pcmcia ] ; then +		WLAN_SCHEMEFILE="/var/state/pcmcia/scheme" +	elif [ -d /var/lib/pcmcia ] ; then +        	WLAN_SCHEMEFILE="/var/lib/pcmcia/scheme" +	else +		WLAN_SCHEMEFILE="/var/run/pcmcia-scheme" +	fi + +	TMPFILE=`ls /var/run/wlan_scheme*.tmp | tail -n 1` + +	if [ -r $TMPFILE ] ; then +		cat $TMPFILE > $WLAN_SCHEMEFILE +		rm -f $TMPFILE +	else +		${ECHO} "wlan_restore_schemefile: No wlan_scheme\*.tmp file found." +	fi +} + +wlan_bring_it_up () +{ +    # $1 == wlandev +    # $2 == non-null if wext enabled. + +    #=======ENABLE======================================== +    # Do we want to init the card at all? +    eval 'WLAN_ENABLE=$ENABLE_'$1 + +    if ! is_true $WLAN_ENABLE ; then +	return 1 +    fi +     +    if wlan_enable $1 ; then +	if [ -z "$2" ] ; then +	    wlan_scan_and_join $1 +	    return $? +	else +	    ${ECHO} "Bypassing configuration due to wireless extensions" +	fi	 +    else +	return 1; +    fi + +    return 1 +} + +wlan_scan_and_join () +{ +    #=======MAC STARTUP========================================= +    wlan_supports_scan $1 +    if [ $? = 0 ] ; then +	wlan_scan $1  +	if [ $? = 0 ] ; then +	    wlan_source_config_for_ssid "$ssid" "$bssid" +	     +	    wlan_user_mibs $1 +	    wlan_wep $1 +	     +	    wlan_join $1 +	else +	    if is_true $IS_ADHOC ; then      +		# start an IBSS; we didn't find one. +		wlan_adhoc $1 +	    else +		return 1 +	    fi +	fi +    else +	wlan_source_config $1 +	 +	wlan_user_mibs $1 +	wlan_wep $1 +	 +	if is_true $IS_ADHOC ; then      +	    wlan_adhoc $1 +	else +	    wlan_infra $1 +	fi +    fi +     +    return $? +} + +wlan_join () +{ +    # $1 == wlandev +    grep 'autojoin' /proc/net/p80211/$1/wlandev > /dev/null +    if [ $? = 0 ]; then +	wlan_infra $1 +    else +	wlan_dot11_join $1 +	wlan_dot11_auth_assoc $1 +    fi +} + +tmpname () +{ +	# $1 == prefix +	local i=0 +	local tname=$TMPDIR/${1}_$$ +	if [ -f ${tname}.tmp ] ; then +		for i in 0 1 2 3 4 5 6 7 8 9 ; do +			if [ ! -f ${tname}_${i}.tmp ] ; then +				echo ${tname}_${i}.tmp  +				return 0 +			fi +		done +	else +		echo ${tname}.tmp +	fi +	return 0 +} + +source_procfile () +{ +	# $1 == procfile to source +	local fname=`tmpname wlan_procfile` +	cat "$1" > $fname +	. $fname +	rm -f $fname +} + +# This is set by the Configure script as part of 'make install' +#FIRMWARE_DIR="/usr/share/linux-wlan" diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan-udev.sh.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan-udev.sh.svn-base new file mode 100644 index 0000000..879dd14 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan-udev.sh.svn-base @@ -0,0 +1,46 @@ +#! /bin/bash + + +# script to start prism2 wlan for fedora FC5 udev  +#udev rule +#ACTION=="add",BUS=="usb",DRIVER=="prism2_usb",RUN+="/etc/wlan/wlan-udev.sh %k" + +# 01-01-2007 (rsk) add check for wlan_wext_write +# 31-01-2007 (rsk) get the check right this time :) + +WEXT_PARAM=/sys/module/p80211/parameters/wlan_wext_write + +DEVICE=$1 +WLAN_UDEV=1 + +. /etc/wlan/shared + +if [ -f $WEXT_PARAM ]; then +    WLAN_WEXT=`cat $WEXT_PARAM` +fi + +if [ $WLAN_WEXT = 1 ]; then +    wlan_bring_it_up $DEVICE TRUE +	# set encrypt on card not host +	result=`$WLANCTL $DEVICE lnxreq_hostwep decrypt="false" encrypt="false"` +	if [ $? != 0 ]; then +	    echo "Cannot enable wep $result" +	    exit 1 +	fi +else +    echo calling wlan_bring_it_up +    wlan_bring_it_up $DEVICE + +    if [ $? = 0 ] ; then +	echo $DEVICE start OK +        #allow time during boot to let other things start +	#sleep 5 +	/sbin/ifup $DEVICE +    else +	echo $DEVICE failed to come up! >&2 +	exit 1 +    fi +fi +exit 0 + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan.conf.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan.conf.svn-base new file mode 100644 index 0000000..fc8dcfa --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan.conf.svn-base @@ -0,0 +1,84 @@ +#! /bin/sh  +# Wireless LAN adapter configuration +# +# etc/wlan/wlan.conf +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- +# This file is sourced by all configuration scripts. +# +# The WLAN_DEVICES variable identifies the device names of each WLAN device. +# If you have more than one, make sure each one is identified in a whitespace +# separated list that's assigned to WLAN_DEVICES. + +WLAN_DEVICES="wlan0" + +# Below is the list of channels to scan, when we scan. +ChannelList="01:02:03:04:05:06:07:08:09:0a:0b:00:00:00" +# Below is the min and max time we linger on a channel during a scan. +ChannelMinTime=200 +ChannelMaxTime=250 +# And here we have the master scan toggle.  +WLAN_SCAN=n + +# if you want temporary files to go elsewhere, change this. +TMPDIR=/tmp + +########## +# Note:  To bind to a specific network, change the SSID to something different +#        and create the file /etc/wlan/wlancfg-<SSID> with your network- +#        specific settings.  If this file is not present, the settings in +#        /etc/wlancfg/wlancfg-DEFAULT are used. +# +# for example: +#    SSID_wlan0="linux-wlan" +# This expects a file called "/etc/wlan/wlancfg-linux-wlan" to be present. +# +# Use a SSID of "" to associate with any network in range. +######### + +SSID_wlan0="" +ENABLE_wlan0=y +#SSID_wlan1="" +#ENABLE_wlan1=n +#SSID_wlan2="" +#ENABLE_wlan2=n diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlancfg-DEFAULT.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlancfg-DEFAULT.svn-base new file mode 100644 index 0000000..d916034 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlancfg-DEFAULT.svn-base @@ -0,0 +1,43 @@ +#=======USER MIB SETTINGS============================= +# You can add the assignments for various MIB items +#  of your choosing to this variable, separated by  +#  whitespace.  The wlan-ng script will then set each one. +# Just uncomment the variable and set the assignments  +#  the way you want them. + +#USER_MIBS="p2CnfRoamingMode=1 p2CnfShortPreamble=mixed" + +#=======WEP=========================================== +# [Dis/En]able WEP.  Settings only matter if PrivacyInvoked is true +lnxreq_hostWEPEncrypt=false     # true|false +lnxreq_hostWEPDecrypt=false     # true|false +dot11PrivacyInvoked=false	# true|false +dot11WEPDefaultKeyID=0		# 0|1|2|3 +dot11ExcludeUnencrypted=true	# true|false, in AP this means WEP is required. + +# If PRIV_GENSTR is not empty, use PRIV_GENTSTR to generate  +#  keys (just a convenience) +# add-ons/ in the tarball contains other key generators. +PRIV_GENERATOR=/sbin/nwepgen	# nwepgen, Neesus compatible +PRIV_KEY128=false		# keylength to generate +PRIV_GENSTR="" + +# or set them explicitly.  Set genstr or keys, not both. +dot11WEPDefaultKey0=		# format: xx:xx:xx:xx:xx   or +dot11WEPDefaultKey1=		#         xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx +dot11WEPDefaultKey2=		#  e.g.   01:20:03:40:05   or +dot11WEPDefaultKey3=		#         01:02:03:04:05:06:07:08:09:0a:0b:0c:0d +#=======SELECT STATION MODE=================== +IS_ADHOC=n 			# y|n, y - adhoc, n - infrastructure + +#======= INFRASTRUCTURE STATION  =================== +# What kind of authentication? +AuthType="opensystem"		# opensystem | sharedkey (requires WEP) + +#======= ADHOC STATION ============================ +BCNINT=100			# Beacon interval (in Kus) +CHANNEL=6			# DS channel for BSS (1-14, depends  +				#   on regulatory domain) +BASICRATES="2 4"		# Rates for mgmt&ctl frames (in 500Kb/s) +OPRATES="2 4 11 22"		# Supported rates in BSS (in 500Kb/s) + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/Makefile new file mode 100644 index 0000000..8133cf3 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/Makefile @@ -0,0 +1,64 @@ +# etc/wlan/Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + +-include ../../config.mk + +all: +	echo "Nothing to do" + +clean: +	echo "Nothing to do" + +install: +	mkdir -p $(TARGET_ROOT_ON_HOST)/etc/wlan +	if [ ! -f $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf ] ; then \ +		cp wlan.conf $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf ; \ +	fi  +	cp shared wlancfg-DEFAULT wlan-udev.sh \ +		$(TARGET_ROOT_ON_HOST)/etc/wlan +	chmod 600 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlancfg-* +	chmod 600 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf +	chmod 755 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan-udev.sh +	echo FIRMWARE_DIR=$(FIRMWARE_DIR) >> $(TARGET_ROOT_ON_HOST)/etc/wlan/shared + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/shared b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/shared new file mode 100644 index 0000000..5d84bb8 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/shared @@ -0,0 +1,738 @@ +#!/bin/bash +# etc/wlan/shared +# +# Copyright (C) 2002 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + +TMPDIR=/tmp + +if [ ! -n "$ECHO" ]; then +	ECHO=echo +fi + +if [ ! -n "$WLAN_UDEV" ] ; then +if [ -x /sbin/modprobe ] ; then +	MODPROBE=/sbin/modprobe +else +	${ECHO} "/sbin/modprobe not found." +	exit 1 +fi +fi + +if [ -x /sbin/wlanctl-ng ] ; then  +	WLANCTL=/sbin/wlanctl-ng +else +	${ECHO} "/sbin/wlanctl-ng not found." +	exit 1 +fi + +# linux-wlan-ng > 0.2.4 there is no wland  +#if [ -x /sbin/wland ] ; then +#    WLAND=/sbin/wland +#else +#    ${ECHO} "/sbin/wland not found." +#    exit 1 +#fi + +if [ -z "$WLAN_UDEV" ] ; then +	HAS_HOTPLUG=n +	if [ -f /proc/sys/kernel/hotplug -a \ +	     -f /etc/hotplug/wlan.agent ] ; then +		HOTPLUGGER=$(</proc/sys/kernel/hotplug) +		if [ -n "$HOTPLUGGER" ] ; then +			if [ -x $HOTPLUGGER ] ; then +				HAS_HOTPLUG=y +			fi +		fi +	fi +fi + +# Source the wlan configuration +if [ -f /etc/wlan/wlan.conf ] ; then +	. /etc/wlan/wlan.conf +else +	${ECHO} "/etc/wlan/wlan.conf not found." +	exit 0 +fi + +# Source NSD specific functions +# nsd_fwload +# nsd_mibset +# Debian mod. If there is shared.dpkg-old we get a endless loop +if [ "`ls /etc/wlan/shared.* 2>/dev/null`" ]; then +	for i in `find /etc/wlan -name 'shared.*' -a ! -name '*.dpkg*'` ; do  +		. $i +	done +else +	${ECHO} "/etc/wlan/shared.* not found." +	exit 0 +fi + +is_true () +{ +	# $1 == string containing a t/f indicator. + +	[ "$1" = "y" -o "$1" = "Y" -o "$1" = "yes" -o "$1" = "YES" \ +	  -o "$1" = "t" -o "$1" = "T" -o "$1" = "true" -o "$1" = "TRUE" ] +} + +wlan_nsdname () +{ +	# $1 == wlandev +	# Writes the given device's name to stdout +	grep 'nsd name' /proc/net/p80211/$1/wlandev | sed -e 's/.*: \(.*\)_.*/\1/' +} + +wlan_enable () +{ +	# $1 == wlandev + +	#=======ENABLE IFSTATE============================= +	# Bring the device into its operable state + +    # if running under udev module must be loaded to get here so skip checks +    if [ ! -n "$WLAN_UDEV" ] ; then  + +	$MODPROBE $1 +	 +	# First, make sure the driver is loaded.... +	if ! ifconfig $1 > /dev/null 2>&1 ; then +		${ECHO} "Error: Device $1 does not seem to be present." +		${ECHO} "Make sure you've inserted the appropriate" +		${ECHO} "modules or that your modules.conf file contains" +		${ECHO} "the appropriate aliase(s)." +		return 1 +	fi +     fi +	# Call the nsd script's fwload function, in case the card needs +	# a firmware load, or could use an optional one. + +	nsdname=`wlan_nsdname $1` +	if ! ${nsdname}_fwload $1 ; then +		${ECHO} "Firmware failed to load for device $1" +		return 1 +	fi + +	# Enable the interface +	result=`$WLANCTL $1 lnxreq_ifstate ifstate=enable` +	if [ $? = 0 ] ; then +		eval $result +		if [ $resultcode != "success" ]; then +			${ECHO} "Failed to enable the device, resultcode=" \ +				$resultcode "." +			return 1 +		fi +	else +		${ECHO} "Failed to enable the device, exitcode=" $? "." +		return 1 +	fi + +	# Set any NSD specific MIBs +	${nsdname}_mibset $1 +} + +wlan_user_mibs () +{ +	# $1 == wlandev + +	#=======USER MIB SETTINGS============================= +	# Set the user specified MIB items. +	for i in $USER_MIBS ; do +		result=`$WLANCTL $1 dot11req_mibset "mibattribute=$i"` +		if [ $? = 0 ] ; then +			eval $result +			if [ $resultcode != "success" ] ; then  +				${ECHO} "Failed to set user MIB $i." +				return 1 +			fi +		else +			${ECHO} "Failed to set user MIB $i." +			return 1 +		fi +	done +} + +wlan_source_config () +{ +	# $1 == wlandev + +	# XXX what about stray singlequotes. +	eval 'GOSSID="$SSID_'$1'"' +	wlan_source_config_for_ssid "$GOSSID" +} + +wlan_source_config_for_ssid () +{ +	# $1 == ssid[:bssid] +        # $2 == bssid (optional) + +        DesiredSSID="$1" +        DesiredBSSID="$2" + +        if [ -n "$2" ] ; then +               token_ssid=`echo $1 | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'` +               token_bssid=`echo $1 | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'` +	       if [ -n "$token_ssid" ] ; then +		   DesiredSSID="$token_ssid" +		   DesiredBSSID="$token_bssid" +	       fi + +	fi + +	if [ -f "/etc/wlan/wlancfg-$DesiredSSID:$DesiredBSSID" ] ; then +		. "/etc/wlan/wlancfg-$DesiredSSID:$DesiredBSSID" +	elif [ -f "/etc/wlan/wlancfg-$DesiredSSID" ] ; then +		. "/etc/wlan/wlancfg-$DesiredSSID" +	else  + +		if [ -n "$1" ] ; then +			${ECHO} "Failed to open network config file /etc/wlan/wlancfg-$1, using default." +		fi + +		. "/etc/wlan/wlancfg-DEFAULT" +	fi +} + +wlan_disable () +{ +	# $1 == wlandev + +	$WLANCTL $1 lnxreq_ifstate ifstate=disable +}	 + +wlan_ssid_in_list () +{ +	# $1 == wlandev, $2 == ssid,  $3 == bssid + +  	eval 'GOSSID="$SSID_'$1'"' +  	 +	# This "eval" hackery is to allow escapes in GOSSID... +	cmd="for token in $GOSSID ; do +		ssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'\` +		bssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'\` +   +		if [ -z \"\$ssid_token\" ] ; then +			ssid_token="\$token" +  		fi +   +		if [ -n \"\$bssid_token\" ] ; then +			if [ \"\$bssid_token\" = \"\$3\" ] ; then +  				return 0 +  			fi +		elif [ \"\$2\" = \"\$ssid_token\" ] ; then +  			return 0	 +  		fi +	done" +	eval "$cmd" + +	return 1 +} + +wlan_supports_scan () +{ +	# $1 == wlandev + +	if is_true "$WLAN_SCAN" ; then +		cat /proc/net/p80211/$1/wlandev | grep 'scan' > /dev/null +		if [ $? = 0 ] ; then +			return 0 +		fi +	fi +	return 1 +} + +wlan_scan () +{ +	# $1 == wlandev + +	# find our allowed SSID list. +	 +	# XXX what about stray singlequotes. +	eval 'GOSSID="$SSID_'$1'"' + +	# kick off a quick scan with the broadcast SSID. +	wlan_scan_one $1 '' '' n +	if [ $? = 0  -a \ +	    "$GOSSID" = "" ] ; then +	    # if successful and our ssid list is null, return. +	    sleep 1 +	    return 0 +	fi	 + +	# otherwise we walk through the list, and scan for eacn in turn. +	# this "eval" hackery is to allow escapes in GOSSID +	cmd="for token in $GOSSID ; do +		ssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'\` +		bssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'\` + +		if [ -z \"\$ssid_token\" ] ; then +			ssid_token=\"\$token\" +		fi + +		wlan_scan_one \$1 \"\$ssid_token\" \"\$bssid_token\" +		if [ \$? = 0 ] ; then +			sleep 1 +			return 0 +		fi +	done" +	eval "$cmd" + +	# We got to the end of the list.  Maybe try "any" +	if is_true "$WLAN_ANY" ; then +		wlan_scan_one $1 +		sleep 1 +		return $? +	fi + +	sleep 1 +	return 1 +} + + +wlan_scan_one () +{ +	# $1 == wlandev, [ $2 == ssid, $3 == bssid, $4 == append ] + +    if [ -z "$4" ] ; then +	append=true +    else +	append=false +    fi + +	numbss=0 + +	result=`$WLANCTL $1 dot11req_scan bsstype=any bssid=ff:ff:ff:ff:ff:ff \ +		scantype=active probedelay=0 channellist=$ChannelList ssid="$2" \ +		minchanneltime=$ChannelMinTime maxchanneltime=$ChannelMaxTime append=$append` +	eval $result +	if [ $resultcode != 'success' ] ; then +		${ECHO} "Scan failed ($resultcode) " +		return 1 +	fi + +	## XXX if numbss == 0, repeat with $2 $3 $4? + +	i=0 +	bssfound="" + +	# walk through the results and do first-cut matching. +	while [ $i -lt $numbss ] ; do +		result=`$WLANCTL $1 dot11req_scan_results bssindex=$i` +		eval $result + +		if [ -n "$3" ] ; then +                        if [ "$3" = "$bssid" ] ; then +                               bssfound="$bssfound $i" +			fi +		elif [ -z "$2" ] ; then +			# if our ssid is "", then we pick the first entry. +			bssfound="$bssfound $i" +		elif [ "$2" = "$ssid" ] ; then +			bssfound="$bssfound $i" +		fi +		i=`expr $i + 1` +	done + +	if [ -z "$bssfound" ]; then	# No BSSs found, bail. +		return 1 +	else +		# Now find the closest +		bigsignal=0 +		for i in $bssfound ; do +			result=`$WLANCTL $1 dot11req_scan_results bssindex=$i` +			eval $result +			if [ $bigsignal -lt $signal ]; then +				bigsignal=$signal +				bigbssindex=$i +			fi +		done +		result=`$WLANCTL $1 dot11req_scan_results bssindex=$bigbssindex` +		eval $result +		return 0 +	fi +} + +wlan_wep () +{ +	# $1 == wlandev + +	#=======WEP=========================================== +	# Setup privacy +	if [ ${dot11PrivacyInvoked:-"false"} = "false" ] ; then +		return 0; +	fi + +	result=`$WLANCTL $1 dot11req_mibget mibattribute=dot11PrivacyOptionImplemented` +	if [ $? = 0 ] ; then +		eval $result +		eval $mibattribute +	else +		${ECHO} "dot11PrivacyOptionImplemented mibget failed." +		return 1 +	fi + +	if [ $dot11PrivacyOptionImplemented = "false" ] ; then +		${ECHO} "Cannot enable privacy, dot11PrivacyOptionImplemented=false." +		return 1 +	fi + +	# Do we want host-based WEP? +	result=`$WLANCTL $1 lnxreq_hostwep \ +	    decrypt="${lnxreq_hostWEPDecrypt:-false}"    \ +	    encrypt="${lnxreq_hostWEPEncrypt:-false}"` + +	# set up the rest of the parametsrs. +	if [ $dot11PrivacyOptionImplemented = "true" -a \ +	     $dot11PrivacyInvoked = "true" ] ; then +		result=`$WLANCTL $1 dot11req_mibset \ +			  mibattribute=dot11WEPDefaultKeyID=$dot11WEPDefaultKeyID ` +		result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11ExcludeUnencrypted=$dot11ExcludeUnencrypted ` +		result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11PrivacyInvoked=$dot11PrivacyInvoked` +		if [ "${PRIV_GENSTR:-empty}" != "empty" ] ; then +			if [ ${PRIV_KEY128:-"false"} = "false" ]; then +				keys=`$PRIV_GENERATOR "$PRIV_GENSTR" 5` +			else +				keys=`$PRIV_GENERATOR "$PRIV_GENSTR" 13` +			fi +				knum=0 +			for i in $keys ; do +				result=`$WLANCTL $1 dot11req_mibset \ +				mibattribute=dot11WEPDefaultKey$knum=$i` +				knum=`expr $knum + 1` +			done +		else  +			result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11WEPDefaultKey0=$dot11WEPDefaultKey0 ` +			result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11WEPDefaultKey1=$dot11WEPDefaultKey1 ` +			result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11WEPDefaultKey2=$dot11WEPDefaultKey2 ` +			result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11WEPDefaultKey3=$dot11WEPDefaultKey3 ` +		fi +	else +		# disable wep explicitly. +		result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11PrivacyInvoked=$dot11PrivacyInvoked ` +		result=`$WLANCTL $1 dot11req_mibset \ +			mibattribute=dot11ExcludeUnencrypted=false ` +	fi +} + +wlan_adhoc () +{ +	# $1 == wlandev + +	#=======IBSS STARTUP================================== +	startcmd="$WLANCTL $1 dot11req_start " +	startcmd="$startcmd ssid=$DesiredSSID" +	startcmd="$startcmd bsstype=independent" +	startcmd="$startcmd beaconperiod=$BCNINT"  +	startcmd="$startcmd dtimperiod=3" +	startcmd="$startcmd cfpollable=false" +	startcmd="$startcmd cfpollreq=false" +	startcmd="$startcmd cfpperiod=3" +	startcmd="$startcmd cfpmaxduration=100" +	startcmd="$startcmd probedelay=100" +	startcmd="$startcmd dschannel=$CHANNEL" +	j=1 +	for i in $BASICRATES ; do +		startcmd="$startcmd basicrate$j=$i" +		j=`expr $j + 1` +		done + +	j=1 +	for i in $OPRATES ; do +		startcmd="$startcmd operationalrate$j=$i" +		j=`expr $j + 1` +	done + +	results=`$startcmd`	# Here's where it runs +	if [ $? = 0 ]; then  +		eval $results +		if [ $resultcode != "success" ] ; then  +			${ECHO} "IBSS not started, resultcode=$resultcode" +			exit 1 +		else +			${ECHO} "IBSS mode started." +		fi +	else +		${ECHO} FAILED: $startcmd +		return 1 +	fi +	WLAN_SCHEMESSID="$DesiredSSID" +} + +wlan_infra () +{ +	# $1 == wlandev + +	#==== INFRASTRUCURE STARTUP=========================== +	# XXX TODO:  Grok DesiredBSSID + +	sleep 5 +	results=`$WLANCTL $1 lnxreq_autojoin \ +		"ssid=$DesiredSSID" \ +		authtype=${AuthType:="opensystem"} | sed 's/\([^=]*\)=\(.*\)/\1="\2"/'` +	eval $results +	if [ ${resultcode:-"failure"} != "success" ] ; then +		${ECHO} 'error: Autojoin indicated failure!' +		return 1; +	fi + +	WLAN_SCHEMESSID="$DesiredSSID" +} + +wlan_dot11_join () +{ +	# $1 == wlandev + +	joincmd="$WLANCTL $1 dot11req_join bssid=$DesiredBSSID" +	joincmd="$joincmd joinfailuretimeout=1" +	 +	j=1 +	for i in $OPRATES ; do +		joincmd="$joincmd operationalrate$j=$i" +		j=`expr $j + 1` +	done + +	results=`$joincmd` + +	eval $results +	if [ ${resultcode:-"failure"} != "success" ] ; then +		${ECHO} "$1: JOIN Failure" +		${ECHO} "joincmd=$joincmd" +		${ECHO} "results=$results" +		return 1; +	fi +} + +wlan_dot11_auth_assoc () +{ +    # $1 == wlandev +	if [ $bsstype = "infrastructure" ] ; then  +		results=`$WLANCTL $1 dot11req_authenticate \ +				peerstaaddress=$DesiredBSSID \ +				authenticationtype=$AuthType \ +				authenticationfailuretimeout=2000` +		eval $results +		if [ ${resultcode:-"failure"} != "success" ] ; then +			${ECHO} "error:  dot11req_authenticate failed, "\ +				"resultcode=$resultcode" +			return 1; +		fi +		results=`$WLANCTL $1 dot11req_associate \ +				listeninterval=1000 \ +				associatefailuretimeout=2000 ` +		if [ ${resultcode:-"failure"} != "success" ] ; then +			${ECHO} 'error:  dot11req_associate failed!' +			return 1; +		fi +	fi +} + +wlan_set_ssid_schemefile () +{ +	# $1 == SSID + +	# Find the scheme file  +	if [ -r /var/lib/misc/pcmcia-scheme ] ; then +		# Debian +		WLAN_SCHEMEFILE="/var/lib/misc/pcmcia-scheme" +	elif [ -d /var/state/pcmcia ] ; then +		WLAN_SCHEMEFILE="/var/state/pcmcia/scheme" +	elif [ -d /var/lib/pcmcia ] ; then +        	WLAN_SCHEMEFILE="/var/lib/pcmcia/scheme" +	else +		WLAN_SCHEMEFILE="/var/run/pcmcia-scheme" +	fi + +	# Collect the current scheme name and save the file +	if [ -r $WLAN_SCHEMEFILE ] ; then +		WLAN_SCHEME=`cat $WLAN_SCHEMEFILE` +		cp $WLAN_SCHEMEFILE /var/run/wlan_scheme_`date +"%T"`.tmp +	else +		touch /var/run/wlan_scheme_`date +"%T"`.tmp +		 +	fi + +	# Set up the <scheme:SSID> string +	if [ ! "$WLAN_SCHEME" ] ; then  +		WLAN_SCHEME="default" +	fi +	WLAN_SCHEME="$WLAN_SCHEME:$1" + +	# Write to schemefile +	echo $WLAN_SCHEME > $WLAN_SCHEMEFILE +} + +wlan_restore_schemefile () +{ +	# Find the scheme file  +	if [ -r /var/lib/misc/pcmcia-scheme ] ; then +		# Debian +		WLAN_SCHEMEFILE="/var/lib/misc/pcmcia-scheme" +	elif [ -d /var/state/pcmcia ] ; then +		WLAN_SCHEMEFILE="/var/state/pcmcia/scheme" +	elif [ -d /var/lib/pcmcia ] ; then +        	WLAN_SCHEMEFILE="/var/lib/pcmcia/scheme" +	else +		WLAN_SCHEMEFILE="/var/run/pcmcia-scheme" +	fi + +	TMPFILE=`ls /var/run/wlan_scheme*.tmp | tail -n 1` + +	if [ -r $TMPFILE ] ; then +		cat $TMPFILE > $WLAN_SCHEMEFILE +		rm -f $TMPFILE +	else +		${ECHO} "wlan_restore_schemefile: No wlan_scheme\*.tmp file found." +	fi +} + +wlan_bring_it_up () +{ +    # $1 == wlandev +    # $2 == non-null if wext enabled. + +    #=======ENABLE======================================== +    # Do we want to init the card at all? +    eval 'WLAN_ENABLE=$ENABLE_'$1 + +    if ! is_true $WLAN_ENABLE ; then +	return 1 +    fi +     +    if wlan_enable $1 ; then +	if [ -z "$2" ] ; then +	    wlan_scan_and_join $1 +	    return $? +	else +	    ${ECHO} "Bypassing configuration due to wireless extensions" +	fi	 +    else +	return 1; +    fi + +    return 1 +} + +wlan_scan_and_join () +{ +    #=======MAC STARTUP========================================= +    wlan_supports_scan $1 +    if [ $? = 0 ] ; then +	wlan_scan $1  +	if [ $? = 0 ] ; then +	    wlan_source_config_for_ssid "$ssid" "$bssid" +	     +	    wlan_user_mibs $1 +	    wlan_wep $1 +	     +	    wlan_join $1 +	else +	    if is_true $IS_ADHOC ; then      +		# start an IBSS; we didn't find one. +		wlan_adhoc $1 +	    else +		return 1 +	    fi +	fi +    else +	wlan_source_config $1 +	 +	wlan_user_mibs $1 +	wlan_wep $1 +	 +	if is_true $IS_ADHOC ; then      +	    wlan_adhoc $1 +	else +	    wlan_infra $1 +	fi +    fi +     +    return $? +} + +wlan_join () +{ +    # $1 == wlandev +    grep 'autojoin' /proc/net/p80211/$1/wlandev > /dev/null +    if [ $? = 0 ]; then +	wlan_infra $1 +    else +	wlan_dot11_join $1 +	wlan_dot11_auth_assoc $1 +    fi +} + +tmpname () +{ +	# $1 == prefix +	local i=0 +	local tname=$TMPDIR/${1}_$$ +	if [ -f ${tname}.tmp ] ; then +		for i in 0 1 2 3 4 5 6 7 8 9 ; do +			if [ ! -f ${tname}_${i}.tmp ] ; then +				echo ${tname}_${i}.tmp  +				return 0 +			fi +		done +	else +		echo ${tname}.tmp +	fi +	return 0 +} + +source_procfile () +{ +	# $1 == procfile to source +	local fname=`tmpname wlan_procfile` +	cat "$1" > $fname +	. $fname +	rm -f $fname +} + +# This is set by the Configure script as part of 'make install' +#FIRMWARE_DIR="/usr/share/linux-wlan" diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan-udev.sh b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan-udev.sh new file mode 100644 index 0000000..879dd14 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan-udev.sh @@ -0,0 +1,46 @@ +#! /bin/bash + + +# script to start prism2 wlan for fedora FC5 udev  +#udev rule +#ACTION=="add",BUS=="usb",DRIVER=="prism2_usb",RUN+="/etc/wlan/wlan-udev.sh %k" + +# 01-01-2007 (rsk) add check for wlan_wext_write +# 31-01-2007 (rsk) get the check right this time :) + +WEXT_PARAM=/sys/module/p80211/parameters/wlan_wext_write + +DEVICE=$1 +WLAN_UDEV=1 + +. /etc/wlan/shared + +if [ -f $WEXT_PARAM ]; then +    WLAN_WEXT=`cat $WEXT_PARAM` +fi + +if [ $WLAN_WEXT = 1 ]; then +    wlan_bring_it_up $DEVICE TRUE +	# set encrypt on card not host +	result=`$WLANCTL $DEVICE lnxreq_hostwep decrypt="false" encrypt="false"` +	if [ $? != 0 ]; then +	    echo "Cannot enable wep $result" +	    exit 1 +	fi +else +    echo calling wlan_bring_it_up +    wlan_bring_it_up $DEVICE + +    if [ $? = 0 ] ; then +	echo $DEVICE start OK +        #allow time during boot to let other things start +	#sleep 5 +	/sbin/ifup $DEVICE +    else +	echo $DEVICE failed to come up! >&2 +	exit 1 +    fi +fi +exit 0 + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan.conf b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan.conf new file mode 100644 index 0000000..fc8dcfa --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan.conf @@ -0,0 +1,84 @@ +#! /bin/sh  +# Wireless LAN adapter configuration +# +# etc/wlan/wlan.conf +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- +# This file is sourced by all configuration scripts. +# +# The WLAN_DEVICES variable identifies the device names of each WLAN device. +# If you have more than one, make sure each one is identified in a whitespace +# separated list that's assigned to WLAN_DEVICES. + +WLAN_DEVICES="wlan0" + +# Below is the list of channels to scan, when we scan. +ChannelList="01:02:03:04:05:06:07:08:09:0a:0b:00:00:00" +# Below is the min and max time we linger on a channel during a scan. +ChannelMinTime=200 +ChannelMaxTime=250 +# And here we have the master scan toggle.  +WLAN_SCAN=n + +# if you want temporary files to go elsewhere, change this. +TMPDIR=/tmp + +########## +# Note:  To bind to a specific network, change the SSID to something different +#        and create the file /etc/wlan/wlancfg-<SSID> with your network- +#        specific settings.  If this file is not present, the settings in +#        /etc/wlancfg/wlancfg-DEFAULT are used. +# +# for example: +#    SSID_wlan0="linux-wlan" +# This expects a file called "/etc/wlan/wlancfg-linux-wlan" to be present. +# +# Use a SSID of "" to associate with any network in range. +######### + +SSID_wlan0="" +ENABLE_wlan0=y +#SSID_wlan1="" +#ENABLE_wlan1=n +#SSID_wlan2="" +#ENABLE_wlan2=n diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlancfg-DEFAULT b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlancfg-DEFAULT new file mode 100644 index 0000000..d916034 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlancfg-DEFAULT @@ -0,0 +1,43 @@ +#=======USER MIB SETTINGS============================= +# You can add the assignments for various MIB items +#  of your choosing to this variable, separated by  +#  whitespace.  The wlan-ng script will then set each one. +# Just uncomment the variable and set the assignments  +#  the way you want them. + +#USER_MIBS="p2CnfRoamingMode=1 p2CnfShortPreamble=mixed" + +#=======WEP=========================================== +# [Dis/En]able WEP.  Settings only matter if PrivacyInvoked is true +lnxreq_hostWEPEncrypt=false     # true|false +lnxreq_hostWEPDecrypt=false     # true|false +dot11PrivacyInvoked=false	# true|false +dot11WEPDefaultKeyID=0		# 0|1|2|3 +dot11ExcludeUnencrypted=true	# true|false, in AP this means WEP is required. + +# If PRIV_GENSTR is not empty, use PRIV_GENTSTR to generate  +#  keys (just a convenience) +# add-ons/ in the tarball contains other key generators. +PRIV_GENERATOR=/sbin/nwepgen	# nwepgen, Neesus compatible +PRIV_KEY128=false		# keylength to generate +PRIV_GENSTR="" + +# or set them explicitly.  Set genstr or keys, not both. +dot11WEPDefaultKey0=		# format: xx:xx:xx:xx:xx   or +dot11WEPDefaultKey1=		#         xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx +dot11WEPDefaultKey2=		#  e.g.   01:20:03:40:05   or +dot11WEPDefaultKey3=		#         01:02:03:04:05:06:07:08:09:0a:0b:0c:0d +#=======SELECT STATION MODE=================== +IS_ADHOC=n 			# y|n, y - adhoc, n - infrastructure + +#======= INFRASTRUCTURE STATION  =================== +# What kind of authentication? +AuthType="opensystem"		# opensystem | sharedkey (requires WEP) + +#======= ADHOC STATION ============================ +BCNINT=100			# Beacon interval (in Kus) +CHANNEL=6			# DS channel for BSS (1-14, depends  +				#   on regulatory domain) +BASICRATES="2 4"		# Rates for mgmt&ctl frames (in 500Kb/s) +OPRATES="2 4 11 22"		# Supported rates in BSS (in 500Kb/s) + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/entries new file mode 100644 index 0000000..f402324 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/entries @@ -0,0 +1,232 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/man +svn://svn.shaftnet.org/linux-wlan-ng + + + +2006-02-09T20:15:14.148570Z +1769 +solomon + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +wlancfg.1 +file + + + + +2009-01-07T08:13:02.000000Z +8d6d24819318647f9e68c31ed4619e8b +2004-08-04T21:09:28.000000Z +1626 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +1451 + +nwepgen.1 +file + + + + +2009-01-07T08:13:02.000000Z +7bcff37c22b6ceccc22c23b83b143423 +2004-08-04T21:09:28.000000Z +1626 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +418 + +wland.1 +file + + + + +2009-01-07T08:13:02.000000Z +8a9c8ca2490b513fa90c30d1438ab8e7 +2004-08-04T21:09:28.000000Z +1626 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +475 + +wlanctl-ng.1 +file + + + + +2009-01-07T08:13:02.000000Z +3741ade29a72403e8209ddeff63aea9d +2004-08-04T21:09:28.000000Z +1626 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +777 + +prism2dl.1 +file + + + + +2009-01-07T08:13:02.000000Z +51da46f6de113e84ed3c93fcd045dd5f +2006-02-09T20:15:14.148570Z +1769 +solomon + + + + + + + + + + + + + + + + + + + + + +2848 + +Makefile +file + + + + +2009-01-07T08:13:02.000000Z +f3cff49acafb664a6784ec0dcc9c5903 +2005-01-26T22:01:07.661267Z +1678 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +2143 + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/Makefile.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/Makefile.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/nwepgen.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/nwepgen.1.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/nwepgen.1.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlancfg.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlancfg.1.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlancfg.1.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlanctl-ng.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlanctl-ng.1.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlanctl-ng.1.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wland.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wland.1.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wland.1.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/Makefile.svn-base new file mode 100644 index 0000000..4b68c73 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/Makefile.svn-base @@ -0,0 +1,57 @@ +# man/Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + +-include ../config.mk + +all: +	@echo "Nothing to do..." + +install: +	mkdir -p $(TARGET_ROOT_ON_HOST)/usr/local/man/man1 +	cp *.1 	$(TARGET_ROOT_ON_HOST)/usr/local/man/man1 + +clean: +	rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags +	for i in *_obj; do if [ -d $$i ]; then rm -fr $$i; fi; done +	 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/nwepgen.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/nwepgen.1.svn-base new file mode 100644 index 0000000..5c803ed --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/nwepgen.1.svn-base @@ -0,0 +1,13 @@ +.TH NWEPGEN 8 +.SH NAME +nwepgen \- generates Neesus Datacom compatible WEP keys +.SH SYNOPSIS +.B nwepgen genstr length +.SH DESCRIPTION +.B nwepgen +generates Neesus Datacom compatible WEP keys from a string. You will +typically not run it by hand, but it is called by the linux-wlan-ng +initialization scripts if you specify a WEP key string in the config file. +.P +.SH AUTHOR +This minimal man page was written by Joey Hess. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/prism2dl.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/prism2dl.1.svn-base new file mode 100644 index 0000000..0f4758d --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/prism2dl.1.svn-base @@ -0,0 +1,93 @@ +.TH PRISM2DL 8 +.SH NAME +prism2dl \- 802.11 frame dump utility +.SH SYNOPSIS +.B prism2dl [OPTIONS] devname +.SH DESCRIPTION +.B prism2dl +User utility for downloading prism2 images +.SH OPTIONS +.TP +.B -s (status) +Show CIS, PDA from card and exit +.TP +.B -v (verbose) +Show more status info during operation +.TP +.B -V (Version) +Show version and exit +.TP +.B -n (nowrite) +Do all processing, including card PDA read but do not write to card +.TP +.B -d (debug) +Do all processing, excluding card PDA read but do not write to card. A valid +interface name is _not_ required for this mode. +.TP +.B -g (generate) +Show the PDA in a format readable by this program.  Useful for saving the +existing from a card. +.SH IMAGEFILE OPTIONS +.TP +.B -r <file> (ram) +Load SREC file to card RAM.  This option may be specified multiple times. +If the value is "stdin", the file will be read from stdin and the option +may only be specified once. +.TP +.B -f <file> (flash) +Load SREC file to card FLASH. This option may be specified multiple times. +If the value is "stdin", the file will be read from stdin and the option +may only be specified once. +.SH PDA OPTIONS +.TP +.B -a <file> (addpdr) +Add the PDRs from file to the PDA from card. This option may be specified +multiple times. +.TP +.B -p <file> (pda) +Replace the card PDA with the contents of file. +.TP +.B -m <haddr> (macaddr) +Overwrite the MAC address PDR with the given value. +<addr> ::= xx:xx:xx:xx:xx:xx, where xx is a two digit hex number. +.TP +.B -S <str> (Sernum) +Overwrite the serial number PDR with the given string. String must be <= 12 +characters, any extra will be truncated. +.TP +.B -l <adrr> (padloc) +PDA location in card memory.  Commonly values: +  HFA3841 ==> 0x003f0000 +  HFA3842 ==> 0x007f0000 +.TP +.B devname +Linux device name (e.g. eth0, wlan0) +.SH EXAMPLES +Review card status: +  prism2dl -s wlan0 + +Load a new PDA: +  prism2dl -p pdafile.txt wlan0 + or +  prism2dl -p pdafile.txt -a pda1.txt -a pda2.txt wlan0 + +  Note that the f/w images will most likely contain bogus plug info after +  rewriting the PDA by itself.  It is generally recommended to reload the  +  primage and secondary images at the same time as modifying the PDA. + +Load a FLASH image _and_ PDA: +  prism2dl -p pdafile.txt -f CIS.hex -f primary.hex -f secondary.hex wlan0 + +Load a RAM image: +  prism2dl -a pda1.txt -r tertiary.hex + +Note: PDA records are additive starting with the records from the card +   OR the records from the -p specified file.  -a specified file(s) +   overwrite, append, or remove records one at a time.  If multiple +   files are specified using the -a option, the files are processed +   from left to right.  This implies that a record removed from the +   current working PDA may then be added again by a record that +   appears after the "remove" record in the file set. +.P +.SH AUTHOR +This minimal man page was written by Victor Seva. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlancfg.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlancfg.1.svn-base new file mode 100644 index 0000000..257ccd8 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlancfg.1.svn-base @@ -0,0 +1,54 @@ +.TH WLANCFG 8 +.SH NAME +wlancfg \- manupulate linux-wlan-ng MIB values +.SH SYNOPSIS +.B wlancfg query dev +.P +.B wlancfg show dev [all] +.P +.B wlancfg set dev +.P +.B wlancfg list +.P +.B wlancfg version +.SH DESCRIPTION +The wlancfg utility program provides an alternative method to +.B wlanctl-ng (1) +, for manipulating MIB values.  It was designed to provide +an easier mechanism for saving and restoring the complete wireless +configuration (i.e. when re-starting the device driver) and to provide +a more efficient mechanism for GUI's to query multiple MIB's. +.SH OPTIONS +.TP +.B dev +The name of the device (e.g., wlan0). +.TP +.B query +Read MIB names (separated by whitespace) from stdin +and output their values (separated by carriage returns) +to stdout.  The MIB's may be either read/write or +read-only. +.TP +.B show +Query the values of all supported read/write MIB's and +output their values (separated by carriage returns) to +stdout. The syntax of the output will be: +  name=value +.RS +If the "all" parameter is specified, then all supported +MIB's (i.e. read-only MIB's as well) are output. +.RE +.TP +.B set +Read MIB name/value pairs (separated by carriage returns) +from stdin and set the values of the specified MIB's.  The +pairs must have the same syntax as above.  The MIB's must +be read/write. +.TP +.B list +Display a list of all supported MIB's. +.TP +.B version +Display the compiled version of wlancfg. +.SH AUTHOR +This minimal man page was written by Joey Hess. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlanctl-ng.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlanctl-ng.1.svn-base new file mode 100644 index 0000000..4c6186a --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlanctl-ng.1.svn-base @@ -0,0 +1,27 @@ +.TH WLANCTL-NG 8 +.SH NAME +wlanctl-ng \- control utility for linux-wlan-ng 802.11 devices +.SH SYNOPSIS +.B wlanctl-ng interface|verson|commands|mibs cmd cmdarg [cmdarg..] +.SH DESCRIPTION +The wlanctl-ng utility program is used to set up linux-wlan-ng 802.11 +devices. linux-wlan-ng devices are configured using a MIB. +.P +Only experts will want to use this program, as it is quite complicated. +Everyone else edits a config file and uses a script that runs this program +as necessary. +.SH OPTIONS +.TP +.B commands +Output a list of all available commands. +.TP +.B mibs +Outputs a list of available mibs. +.TP +.B version +Outputs the version of the program. +.TP +.B interface +The name of a wireless network interface, such as wlan0. +.SH AUTHOR +This minimal man page was written by Joey Hess. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wland.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wland.1.svn-base new file mode 100644 index 0000000..02250e1 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wland.1.svn-base @@ -0,0 +1,23 @@ +.TH WLAND 8 +.SH NAME +wland \- linux-wlan-ng daemon +.SH SYNOPSIS +.B wland [-V|-v] [-d wlandpath] [-u] +.SH DESCRIPTION +.B wland +is a daemon for receiving and handling events from 802.11 services and +MAC-specific linux-wlan-ng drivers. It is not currently used. +.SH OPTIONS +.TP +.B -V +.TP +.B -v +Display version number. +.TP +.B -d wlandpath +Specify the directory to run in. +.TP  +.B -u +Do not daemonize; run in foreground. +.SH AUTHOR +This minimal man page was written by Joey Hess. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/Makefile new file mode 100644 index 0000000..4b68c73 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/Makefile @@ -0,0 +1,57 @@ +# man/Makefile +# +# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved. +# -------------------------------------------------------------------- +# +# linux-wlan +# +#   The contents of this file are subject to the Mozilla Public +#   License Version 1.1 (the "License"); you may not use this file +#   except in compliance with the License. You may obtain a copy of +#   the License at http://www.mozilla.org/MPL/ +# +#   Software distributed under the License is distributed on an "AS +#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +#   implied. See the License for the specific language governing +#   rights and limitations under the License. +# +#   Alternatively, the contents of this file may be used under the +#   terms of the GNU Public License version 2 (the "GPL"), in which +#   case the provisions of the GPL are applicable instead of the +#   above.  If you wish to allow the use of your version of this file +#   only under the terms of the GPL and not to allow others to use +#   your version of this file under the MPL, indicate your decision +#   by deleting the provisions above and replace them with the notice +#   and other provisions required by the GPL.  If you do not delete +#   the provisions above, a recipient may use your version of this +#   file under either the MPL or the GPL. +# +# -------------------------------------------------------------------- +# +# Inquiries regarding the linux-wlan Open Source project can be +# made directly to: +# +# AbsoluteValue Systems Inc. +# info@linux-wlan.com +# http://www.linux-wlan.com +# +# -------------------------------------------------------------------- +# +# Portions of the development of this software were funded by  +# Intersil Corporation as part of PRISM(R) chipset product development. +# +# -------------------------------------------------------------------- + +-include ../config.mk + +all: +	@echo "Nothing to do..." + +install: +	mkdir -p $(TARGET_ROOT_ON_HOST)/usr/local/man/man1 +	cp *.1 	$(TARGET_ROOT_ON_HOST)/usr/local/man/man1 + +clean: +	rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags +	for i in *_obj; do if [ -d $$i ]; then rm -fr $$i; fi; done +	 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/nwepgen.1 b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/nwepgen.1 new file mode 100644 index 0000000..5c803ed --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/nwepgen.1 @@ -0,0 +1,13 @@ +.TH NWEPGEN 8 +.SH NAME +nwepgen \- generates Neesus Datacom compatible WEP keys +.SH SYNOPSIS +.B nwepgen genstr length +.SH DESCRIPTION +.B nwepgen +generates Neesus Datacom compatible WEP keys from a string. You will +typically not run it by hand, but it is called by the linux-wlan-ng +initialization scripts if you specify a WEP key string in the config file. +.P +.SH AUTHOR +This minimal man page was written by Joey Hess. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/prism2dl.1 b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/prism2dl.1 new file mode 100644 index 0000000..0f4758d --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/prism2dl.1 @@ -0,0 +1,93 @@ +.TH PRISM2DL 8 +.SH NAME +prism2dl \- 802.11 frame dump utility +.SH SYNOPSIS +.B prism2dl [OPTIONS] devname +.SH DESCRIPTION +.B prism2dl +User utility for downloading prism2 images +.SH OPTIONS +.TP +.B -s (status) +Show CIS, PDA from card and exit +.TP +.B -v (verbose) +Show more status info during operation +.TP +.B -V (Version) +Show version and exit +.TP +.B -n (nowrite) +Do all processing, including card PDA read but do not write to card +.TP +.B -d (debug) +Do all processing, excluding card PDA read but do not write to card. A valid +interface name is _not_ required for this mode. +.TP +.B -g (generate) +Show the PDA in a format readable by this program.  Useful for saving the +existing from a card. +.SH IMAGEFILE OPTIONS +.TP +.B -r <file> (ram) +Load SREC file to card RAM.  This option may be specified multiple times. +If the value is "stdin", the file will be read from stdin and the option +may only be specified once. +.TP +.B -f <file> (flash) +Load SREC file to card FLASH. This option may be specified multiple times. +If the value is "stdin", the file will be read from stdin and the option +may only be specified once. +.SH PDA OPTIONS +.TP +.B -a <file> (addpdr) +Add the PDRs from file to the PDA from card. This option may be specified +multiple times. +.TP +.B -p <file> (pda) +Replace the card PDA with the contents of file. +.TP +.B -m <haddr> (macaddr) +Overwrite the MAC address PDR with the given value. +<addr> ::= xx:xx:xx:xx:xx:xx, where xx is a two digit hex number. +.TP +.B -S <str> (Sernum) +Overwrite the serial number PDR with the given string. String must be <= 12 +characters, any extra will be truncated. +.TP +.B -l <adrr> (padloc) +PDA location in card memory.  Commonly values: +  HFA3841 ==> 0x003f0000 +  HFA3842 ==> 0x007f0000 +.TP +.B devname +Linux device name (e.g. eth0, wlan0) +.SH EXAMPLES +Review card status: +  prism2dl -s wlan0 + +Load a new PDA: +  prism2dl -p pdafile.txt wlan0 + or +  prism2dl -p pdafile.txt -a pda1.txt -a pda2.txt wlan0 + +  Note that the f/w images will most likely contain bogus plug info after +  rewriting the PDA by itself.  It is generally recommended to reload the  +  primage and secondary images at the same time as modifying the PDA. + +Load a FLASH image _and_ PDA: +  prism2dl -p pdafile.txt -f CIS.hex -f primary.hex -f secondary.hex wlan0 + +Load a RAM image: +  prism2dl -a pda1.txt -r tertiary.hex + +Note: PDA records are additive starting with the records from the card +   OR the records from the -p specified file.  -a specified file(s) +   overwrite, append, or remove records one at a time.  If multiple +   files are specified using the -a option, the files are processed +   from left to right.  This implies that a record removed from the +   current working PDA may then be added again by a record that +   appears after the "remove" record in the file set. +.P +.SH AUTHOR +This minimal man page was written by Victor Seva. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlancfg.1 b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlancfg.1 new file mode 100644 index 0000000..257ccd8 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlancfg.1 @@ -0,0 +1,54 @@ +.TH WLANCFG 8 +.SH NAME +wlancfg \- manupulate linux-wlan-ng MIB values +.SH SYNOPSIS +.B wlancfg query dev +.P +.B wlancfg show dev [all] +.P +.B wlancfg set dev +.P +.B wlancfg list +.P +.B wlancfg version +.SH DESCRIPTION +The wlancfg utility program provides an alternative method to +.B wlanctl-ng (1) +, for manipulating MIB values.  It was designed to provide +an easier mechanism for saving and restoring the complete wireless +configuration (i.e. when re-starting the device driver) and to provide +a more efficient mechanism for GUI's to query multiple MIB's. +.SH OPTIONS +.TP +.B dev +The name of the device (e.g., wlan0). +.TP +.B query +Read MIB names (separated by whitespace) from stdin +and output their values (separated by carriage returns) +to stdout.  The MIB's may be either read/write or +read-only. +.TP +.B show +Query the values of all supported read/write MIB's and +output their values (separated by carriage returns) to +stdout. The syntax of the output will be: +  name=value +.RS +If the "all" parameter is specified, then all supported +MIB's (i.e. read-only MIB's as well) are output. +.RE +.TP +.B set +Read MIB name/value pairs (separated by carriage returns) +from stdin and set the values of the specified MIB's.  The +pairs must have the same syntax as above.  The MIB's must +be read/write. +.TP +.B list +Display a list of all supported MIB's. +.TP +.B version +Display the compiled version of wlancfg. +.SH AUTHOR +This minimal man page was written by Joey Hess. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlanctl-ng.1 b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlanctl-ng.1 new file mode 100644 index 0000000..4c6186a --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlanctl-ng.1 @@ -0,0 +1,27 @@ +.TH WLANCTL-NG 8 +.SH NAME +wlanctl-ng \- control utility for linux-wlan-ng 802.11 devices +.SH SYNOPSIS +.B wlanctl-ng interface|verson|commands|mibs cmd cmdarg [cmdarg..] +.SH DESCRIPTION +The wlanctl-ng utility program is used to set up linux-wlan-ng 802.11 +devices. linux-wlan-ng devices are configured using a MIB. +.P +Only experts will want to use this program, as it is quite complicated. +Everyone else edits a config file and uses a script that runs this program +as necessary. +.SH OPTIONS +.TP +.B commands +Output a list of all available commands. +.TP +.B mibs +Outputs a list of available mibs. +.TP +.B version +Outputs the version of the program. +.TP +.B interface +The name of a wireless network interface, such as wlan0. +.SH AUTHOR +This minimal man page was written by Joey Hess. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wland.1 b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wland.1 new file mode 100644 index 0000000..02250e1 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wland.1 @@ -0,0 +1,23 @@ +.TH WLAND 8 +.SH NAME +wland \- linux-wlan-ng daemon +.SH SYNOPSIS +.B wland [-V|-v] [-d wlandpath] [-u] +.SH DESCRIPTION +.B wland +is a daemon for receiving and handling events from 802.11 services and +MAC-specific linux-wlan-ng drivers. It is not currently used. +.SH OPTIONS +.TP +.B -V +.TP +.B -v +Display version number. +.TP +.B -d wlandpath +Specify the directory to run in. +.TP  +.B -u +Do not daemonize; run in foreground. +.SH AUTHOR +This minimal man page was written by Joey Hess. diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scm-moved-to-git b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scm-moved-to-git new file mode 100644 index 0000000..70c7573 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scm-moved-to-git @@ -0,0 +1,11 @@ +On August 17, 2008 linux-wlan-ng moved to using git as its SCM. + +Read-only access can be obtained via: + +	git clone git://git.shaftnet.org/linux-wlan-ng.git + +gitweb access can be obtained via: + +	http://git.shaftnet.org/git/gitweb.cgi?p=linux-wlan-ng.git;a=summary + + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/dir-prop-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/dir-prop-base new file mode 100644 index 0000000..1a8363b --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/dir-prop-base @@ -0,0 +1,8 @@ +K 10 +svn:ignore +V 23 +get_version +make.opts + + +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/entries new file mode 100644 index 0000000..1f4156e --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/entries @@ -0,0 +1,164 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/scripts +svn://svn.shaftnet.org/linux-wlan-ng + + + +2008-08-12T13:17:35.118175Z +1868 +pizza +has-props + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +get_version.c +file + + + + +2009-01-07T08:13:01.000000Z +28a802bf81fdd843b9fceab4cefa67a3 +2006-08-21T14:49:06.038127Z +1796 +pizza +has-props + + + + + + + + + + + + + + + + + + + + +144 + +Makefile.get_options +file + + + + +2009-01-07T08:13:01.000000Z +394bde240e5a4dbf73109f16cb933ff4 +2008-08-12T13:17:35.118175Z +1868 +pizza +has-props + + + + + + + + + + + + + + + + + + + + +411 + +Makefile +file + + + + +2009-01-07T08:13:01.000000Z +1d3dc7da1e2009ca5ca029315c1c0de6 +2002-09-03T17:47:11.000000Z +1054 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +939 + +pda.pl +file + + + + +2009-01-07T08:13:01.000000Z +cb2f8a47e96b9051c3b0fd68749b12d3 +2001-03-11T03:18:54.000000Z +567 +mark +has-props + + + + + + + + + + + + + + + + + + + + +5036 + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.get_options.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.get_options.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.get_options.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/get_version.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/get_version.c.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/get_version.c.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/pda.pl.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/pda.pl.svn-base new file mode 100644 index 0000000..5336d10 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/pda.pl.svn-base @@ -0,0 +1,13 @@ +K 13 +svn:eol-style +V 6 +native +K 14 +svn:executable +V 1 +* +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.get_options.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.get_options.svn-base new file mode 100644 index 0000000..d8a1524 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.get_options.svn-base @@ -0,0 +1,10 @@ +KERNEL_VERSION := $(shell $(CURR_DIR)/get_version) +KERNEL_RELEASE := $(shell echo $(KERNEL_VERSION) | cut -d\" -f2| cut -c-5) + +include Makefile + +get_version_target: +	echo "KERNEL_RELEASE=$(KERNEL_VERSION)" >> $(CURR_DIR)/make.opts +	echo "CROSS_COMPILE='$(CROSS_COMPILE)'" >> $(CURR_DIR)/make.opts +	echo "HOST_CC='$(HOSTCC)'" >> $(CURR_DIR)/make.opts +	echo "HOST_CFLAGS='$(HOSTCFLAGS)'" >> $(CURR_DIR)/make.opts diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.svn-base new file mode 100644 index 0000000..7f37e49 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.svn-base @@ -0,0 +1,36 @@ +CURR_DIR :=$(shell pwd) + +export CURR_DIR + +.PHONY: get_version + +all: clean get_version get_options  + +get_version: +	@if [ ! -d $(KERNEL_SOURCE)/ ]; then \ +		echo "";\ +		echo "$(KERNEL_SOURCE) directory does not exist. Please edit the file 'config'";\ +		echo "in this directory and set KERNEL_SOURCE to the correct location of your ";\ +		echo "kernel source.";\ +		echo "";\ +		echo "You are currently running kernel version `uname -r`, the source code should";\ +		echo "be for this version.";\ +		echo "";\ +		exit 1;\ +	fi +	@if [ ! -f $(KERNEL_SOURCE)/include/linux/version.h ]; then \ +		echo "$(KERNEL_SOURCE)/include/linux/version.h is missing. Please run make config";\ +		echo "in your kernel source tree";\ +		exit 1;\ +	fi + +	$(CC) -I$(KERNEL_SOURCE)/include get_version.c -o get_version + +get_options: +	$(MAKE) -f $(CURR_DIR)/Makefile.get_options -C $(KERNEL_SOURCE) get_version_target + +clean: +	$(RM) get_version make.opts  + +distclean: clean + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/get_version.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/get_version.c.svn-base new file mode 100644 index 0000000..cde9707 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/get_version.c.svn-base @@ -0,0 +1,11 @@ +#include <linux/version.h> + +#ifndef UTS_RELEASE +#include <linux/utsrelease.h> +#endif + +#include <stdio.h> +main() +{ +	printf("%s", UTS_RELEASE); +} diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/pda.pl.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/pda.pl.svn-base new file mode 100644 index 0000000..4d2464f --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/pda.pl.svn-base @@ -0,0 +1,167 @@ +#!/usr/bin/perl + +use Getopt::Long; +GetOptions(qw(pda! diff! repl! xdiff=s)); + +sub usage { +  print(q{ +Usage: +pda.pl pdafile  +or +pda.pl --pda --diff --xdiff=0x0104,0x0007 pda1 pda2 > diff-pda1-pda2.pda + +--diff     takes 2 filenams and prints a diff (2nd file will override the first on +           records that are present in both +--pda      saves output suitable for loading via prism2dl (mainly for --diff) +--repl     generates merged PDA, that could be used as a replacement (prism2dl -p) +--xdiff    exclude given PDR's from beeing overridden by dst PDA => those will be +           generated from src pdafile (comma separated hexlist) +}); +  exit(0); +}  + +$pdr_codes = { +	0x0001 => 'PCB_PARTNUM', 0x0002 => 'PCB_TRACENUM', 0x0003 => 'NIC_SERIAL', +	0x0004 => 'MKK_MEASUREMENTS', 0x0005 => 'NIC_RAMSIZE', 0x0006 => 'MFISUPRANGE', +	0x0007 => 'CFISUPRANGE', 0x0008 => 'NICID', 0x0010 => 'REFDAC_MEASUREMENTS', +	0x0020 => 'VGDAC_MEASUREMENTS', 0x0030 => 'LEVEL_COMP_MEASUREMENTS', +	0x0040 => 'MODEM_TRIMDAC_MEASUREMENTS', 0x0101 => 'MAC_ADDRESS', 0x0102 => 'MKK_CALLNAME', +	0x0103 => 'REGDOMAIN', 0x0104 => 'ALLOWED_CHANNEL', 0x0105 => 'DEFAULT_CHANNEL', +	0x0106 => 'PRIVACY_OPTION', 0x0107 => 'TEMPTYPE', 0x0110 => 'REFDAC_SETUP', +	0x0120 => 'VGDAC_SETUP', 0x0130 => 'LEVEL_COMP_SETUP', 0x0140 => 'TRIMDAC_SETUP', +	0x0200 => 'IFR_SETTING', 0x0201 => 'RFR_SETTING', 0x0202 => 'HFA3861_BASELINE', +	0x0203 => 'HFA3861_SHADOW', 0x0204 => 'HFA3861_IFRF', 0x0300 => 'HFA3861_CHCALSP', +	0x0301 => 'HFA3861_CHCALI', 0x0900 => 'HFA3861_MANF_TESTSP', 0x0901 => 'HFA3861_MANF_TESTI', +	0x0000 => 'END_OF_PDA', +}; + +$pdr_fmt = { +   0x0001 => \&x2ascii_list, 0x0002 => \&x2ascii_list, 0x0003 => \&x2ascii_list, +   0x0101 => \&x2hex_list,   0x0103 => \&x2dec_list,   0x0104 => \&x2bit_list, +   0x0001 => \&x2ascii_list, +}; + +$srcfile=$ARGV[0]; +$dstfile=$ARGV[1]; + +if (defined $opt_xdiff) { +  @xdiff = map {hex} split /\s*,\s*/, $opt_xdiff; +  print "@@ xdiff: $opt_xdiff\n"; +} + +if (!defined $srcfile) { +  usage(); +} +$src=read_pda($srcfile); + +if ($opt_diff) { +  if (!defined $dstfile) { +    usage(); +  } +  $dst=read_pda($dstfile); + +  map { $join{$_->{code}} = 1; $src{$_->{code}} = $_; } @$src; +  map { $join{$_->{code}} = 1; $dst{$_->{code}} = $_; } @$dst; + +  for $code (sort {($a || $a+0x1000) <=> ($b || $b+0x1000)} keys %join) { +    if (!defined $dst{$code}) { +       push @{$diff{src}}, $src{$code}; +    } elsif (!defined $src{$code}) { +       push @{$diff{dst}}, $dst{$code}; +    } elsif ($src{$code}{data} ne $dst{$code}{data}) { +       push @{$diff{diff}}, [$src{$code}, $dst{$code}]; +    } else { +       push @{$diff{same}}, [$src{$code}, $dst{$code}]; +    } +  } +  print "@@ Only in $srcfile:\n"; +  for my $pdr (@{$diff{src}}) { +    print_pdr($pdr, {prefix=>$opt_pda && !$opt_repl ? "#- " : ""}); +  } +  print "@@ Only in $dstfile:\n"; +  for my $pdr (@{$diff{dst}}) { +    print_pdr($pdr); +  } +  print "@@ Different:\n"; +  for my $pdr (@{$diff{diff}}) { +    if (grep {$_ == $pdr->[0]{code}} @xdiff) { +      print_pdr($pdr->[0]); +    } else { +      if ($opt_pda && !$opt_repl && $pdr->[0]{len} != $pdr->[1]{len}) { +	  printf "0x%04x, 0x%04x,\n", 1, $pdr->[0]{code}; +      } +      print_pdr($pdr->[0], {prefix=>($opt_pda ? "#" : "").'- '}); +      print_pdr($pdr->[1], {prefix=>($opt_pda ? "" : "+ ")}); +    } +  } +  print "@@ Same:\n"; +  for my $pdr (@{$diff{same}}) { +    print_pdr($pdr->[0], {header=>!$opt_pda}); +  } +} else { +  for $pdr (sort {($a->{code} || $a->{code}+0x1000) <=> ($b->{code} || $b->{code}+0x1000)} @$src) { +    print_pdr($pdr); +  } +} +sub x2ascii_list { +  my ($pdr) = @_; +  my ($data) =  $pdr->{data}; +  $data =~ s/[\x0-\x1f\x80-\x9f]/sprintf "\\x%02x", $&/eg; +  return $data; +} + +sub x2hex_list { +  my ($pdr) = @_; + +  return join(':', map { sprintf "%02x", ord($_) } split //, $pdr->{data}); +} +sub x2dec_list { +  my ($pdr) = @_; + +  return join(',', unpack('C*', $pdr->{data})); +} +sub x2bit_list { +  my ($pdr) = @_; +  my ($start) = 1; + +  return join(',', map { $_ ? $start++ : scalar($start++, undef) }  +                       split //, unpack("b*", $pdr->{data})); +} + +sub print_pdr { +  my ($pdr, $opts) = @_; +  my $data; + +  if (exists($pdr_fmt->{$pdr->{code}})) { +     $data = &{$pdr_fmt->{$pdr->{code}}}($pdr); +  } +  printf "%s# %s (0x%04x/0x%04x) %s\n", $opts->{prefix}, +	 $pdr_codes->{$pdr->{code}}, $pdr->{code}, $pdr->{len}, $data && "= $data";  +  print $opts->{prefix}.join('', map {sprintf "0x%04x, ", $_} $pdr->{len}, $pdr->{code}, @{$pdr->{nums}})."\n" +    unless $opts->{header}; +} + +sub read_pda { +  my ($file) = @_; +  my (@pda, $pdrs); + +  open PDA, "$file" or die "$file: $!\n"; +  while (<PDA>) { +    s/[^\s\da-fx,].*//; +    push @pda, grep { /^0x[\da-z]+$/i } split /[^x\da-z]+/i; +  } +  close PDA; + +  my ($len, $op, @data); + +  for (my $i=0; $i < @pda; $i+=$len+1) { +    $len   = hex($pda[$i]); +    $code  = hex($pda[$i+1]); +    next unless $code; +    $nums  = [ map { hex } @pda[$i+2 .. $i+$len] ]; +    $data  = pack("v*", @$nums); + +    push @$pdrs, {len=>$len, code=>$code, data=>$data, nums=>$nums}; +  } +  return $pdrs; +} diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile new file mode 100644 index 0000000..7f37e49 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile @@ -0,0 +1,36 @@ +CURR_DIR :=$(shell pwd) + +export CURR_DIR + +.PHONY: get_version + +all: clean get_version get_options  + +get_version: +	@if [ ! -d $(KERNEL_SOURCE)/ ]; then \ +		echo "";\ +		echo "$(KERNEL_SOURCE) directory does not exist. Please edit the file 'config'";\ +		echo "in this directory and set KERNEL_SOURCE to the correct location of your ";\ +		echo "kernel source.";\ +		echo "";\ +		echo "You are currently running kernel version `uname -r`, the source code should";\ +		echo "be for this version.";\ +		echo "";\ +		exit 1;\ +	fi +	@if [ ! -f $(KERNEL_SOURCE)/include/linux/version.h ]; then \ +		echo "$(KERNEL_SOURCE)/include/linux/version.h is missing. Please run make config";\ +		echo "in your kernel source tree";\ +		exit 1;\ +	fi + +	$(CC) -I$(KERNEL_SOURCE)/include get_version.c -o get_version + +get_options: +	$(MAKE) -f $(CURR_DIR)/Makefile.get_options -C $(KERNEL_SOURCE) get_version_target + +clean: +	$(RM) get_version make.opts  + +distclean: clean + diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile.get_options b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile.get_options new file mode 100644 index 0000000..d8a1524 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile.get_options @@ -0,0 +1,10 @@ +KERNEL_VERSION := $(shell $(CURR_DIR)/get_version) +KERNEL_RELEASE := $(shell echo $(KERNEL_VERSION) | cut -d\" -f2| cut -c-5) + +include Makefile + +get_version_target: +	echo "KERNEL_RELEASE=$(KERNEL_VERSION)" >> $(CURR_DIR)/make.opts +	echo "CROSS_COMPILE='$(CROSS_COMPILE)'" >> $(CURR_DIR)/make.opts +	echo "HOST_CC='$(HOSTCC)'" >> $(CURR_DIR)/make.opts +	echo "HOST_CFLAGS='$(HOSTCFLAGS)'" >> $(CURR_DIR)/make.opts diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/get_version.c b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/get_version.c new file mode 100644 index 0000000..cde9707 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/get_version.c @@ -0,0 +1,11 @@ +#include <linux/version.h> + +#ifndef UTS_RELEASE +#include <linux/utsrelease.h> +#endif + +#include <stdio.h> +main() +{ +	printf("%s", UTS_RELEASE); +} diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/pda.pl b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/pda.pl new file mode 100755 index 0000000..4d2464f --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/pda.pl @@ -0,0 +1,167 @@ +#!/usr/bin/perl + +use Getopt::Long; +GetOptions(qw(pda! diff! repl! xdiff=s)); + +sub usage { +  print(q{ +Usage: +pda.pl pdafile  +or +pda.pl --pda --diff --xdiff=0x0104,0x0007 pda1 pda2 > diff-pda1-pda2.pda + +--diff     takes 2 filenams and prints a diff (2nd file will override the first on +           records that are present in both +--pda      saves output suitable for loading via prism2dl (mainly for --diff) +--repl     generates merged PDA, that could be used as a replacement (prism2dl -p) +--xdiff    exclude given PDR's from beeing overridden by dst PDA => those will be +           generated from src pdafile (comma separated hexlist) +}); +  exit(0); +}  + +$pdr_codes = { +	0x0001 => 'PCB_PARTNUM', 0x0002 => 'PCB_TRACENUM', 0x0003 => 'NIC_SERIAL', +	0x0004 => 'MKK_MEASUREMENTS', 0x0005 => 'NIC_RAMSIZE', 0x0006 => 'MFISUPRANGE', +	0x0007 => 'CFISUPRANGE', 0x0008 => 'NICID', 0x0010 => 'REFDAC_MEASUREMENTS', +	0x0020 => 'VGDAC_MEASUREMENTS', 0x0030 => 'LEVEL_COMP_MEASUREMENTS', +	0x0040 => 'MODEM_TRIMDAC_MEASUREMENTS', 0x0101 => 'MAC_ADDRESS', 0x0102 => 'MKK_CALLNAME', +	0x0103 => 'REGDOMAIN', 0x0104 => 'ALLOWED_CHANNEL', 0x0105 => 'DEFAULT_CHANNEL', +	0x0106 => 'PRIVACY_OPTION', 0x0107 => 'TEMPTYPE', 0x0110 => 'REFDAC_SETUP', +	0x0120 => 'VGDAC_SETUP', 0x0130 => 'LEVEL_COMP_SETUP', 0x0140 => 'TRIMDAC_SETUP', +	0x0200 => 'IFR_SETTING', 0x0201 => 'RFR_SETTING', 0x0202 => 'HFA3861_BASELINE', +	0x0203 => 'HFA3861_SHADOW', 0x0204 => 'HFA3861_IFRF', 0x0300 => 'HFA3861_CHCALSP', +	0x0301 => 'HFA3861_CHCALI', 0x0900 => 'HFA3861_MANF_TESTSP', 0x0901 => 'HFA3861_MANF_TESTI', +	0x0000 => 'END_OF_PDA', +}; + +$pdr_fmt = { +   0x0001 => \&x2ascii_list, 0x0002 => \&x2ascii_list, 0x0003 => \&x2ascii_list, +   0x0101 => \&x2hex_list,   0x0103 => \&x2dec_list,   0x0104 => \&x2bit_list, +   0x0001 => \&x2ascii_list, +}; + +$srcfile=$ARGV[0]; +$dstfile=$ARGV[1]; + +if (defined $opt_xdiff) { +  @xdiff = map {hex} split /\s*,\s*/, $opt_xdiff; +  print "@@ xdiff: $opt_xdiff\n"; +} + +if (!defined $srcfile) { +  usage(); +} +$src=read_pda($srcfile); + +if ($opt_diff) { +  if (!defined $dstfile) { +    usage(); +  } +  $dst=read_pda($dstfile); + +  map { $join{$_->{code}} = 1; $src{$_->{code}} = $_; } @$src; +  map { $join{$_->{code}} = 1; $dst{$_->{code}} = $_; } @$dst; + +  for $code (sort {($a || $a+0x1000) <=> ($b || $b+0x1000)} keys %join) { +    if (!defined $dst{$code}) { +       push @{$diff{src}}, $src{$code}; +    } elsif (!defined $src{$code}) { +       push @{$diff{dst}}, $dst{$code}; +    } elsif ($src{$code}{data} ne $dst{$code}{data}) { +       push @{$diff{diff}}, [$src{$code}, $dst{$code}]; +    } else { +       push @{$diff{same}}, [$src{$code}, $dst{$code}]; +    } +  } +  print "@@ Only in $srcfile:\n"; +  for my $pdr (@{$diff{src}}) { +    print_pdr($pdr, {prefix=>$opt_pda && !$opt_repl ? "#- " : ""}); +  } +  print "@@ Only in $dstfile:\n"; +  for my $pdr (@{$diff{dst}}) { +    print_pdr($pdr); +  } +  print "@@ Different:\n"; +  for my $pdr (@{$diff{diff}}) { +    if (grep {$_ == $pdr->[0]{code}} @xdiff) { +      print_pdr($pdr->[0]); +    } else { +      if ($opt_pda && !$opt_repl && $pdr->[0]{len} != $pdr->[1]{len}) { +	  printf "0x%04x, 0x%04x,\n", 1, $pdr->[0]{code}; +      } +      print_pdr($pdr->[0], {prefix=>($opt_pda ? "#" : "").'- '}); +      print_pdr($pdr->[1], {prefix=>($opt_pda ? "" : "+ ")}); +    } +  } +  print "@@ Same:\n"; +  for my $pdr (@{$diff{same}}) { +    print_pdr($pdr->[0], {header=>!$opt_pda}); +  } +} else { +  for $pdr (sort {($a->{code} || $a->{code}+0x1000) <=> ($b->{code} || $b->{code}+0x1000)} @$src) { +    print_pdr($pdr); +  } +} +sub x2ascii_list { +  my ($pdr) = @_; +  my ($data) =  $pdr->{data}; +  $data =~ s/[\x0-\x1f\x80-\x9f]/sprintf "\\x%02x", $&/eg; +  return $data; +} + +sub x2hex_list { +  my ($pdr) = @_; + +  return join(':', map { sprintf "%02x", ord($_) } split //, $pdr->{data}); +} +sub x2dec_list { +  my ($pdr) = @_; + +  return join(',', unpack('C*', $pdr->{data})); +} +sub x2bit_list { +  my ($pdr) = @_; +  my ($start) = 1; + +  return join(',', map { $_ ? $start++ : scalar($start++, undef) }  +                       split //, unpack("b*", $pdr->{data})); +} + +sub print_pdr { +  my ($pdr, $opts) = @_; +  my $data; + +  if (exists($pdr_fmt->{$pdr->{code}})) { +     $data = &{$pdr_fmt->{$pdr->{code}}}($pdr); +  } +  printf "%s# %s (0x%04x/0x%04x) %s\n", $opts->{prefix}, +	 $pdr_codes->{$pdr->{code}}, $pdr->{code}, $pdr->{len}, $data && "= $data";  +  print $opts->{prefix}.join('', map {sprintf "0x%04x, ", $_} $pdr->{len}, $pdr->{code}, @{$pdr->{nums}})."\n" +    unless $opts->{header}; +} + +sub read_pda { +  my ($file) = @_; +  my (@pda, $pdrs); + +  open PDA, "$file" or die "$file: $!\n"; +  while (<PDA>) { +    s/[^\s\da-fx,].*//; +    push @pda, grep { /^0x[\da-z]+$/i } split /[^x\da-z]+/i; +  } +  close PDA; + +  my ($len, $op, @data); + +  for (my $i=0; $i < @pda; $i+=$len+1) { +    $len   = hex($pda[$i]); +    $code  = hex($pda[$i+1]); +    next unless $code; +    $nums  = [ map { hex } @pda[$i+2 .. $i+$len] ]; +    $data  = pack("v*", @$nums); + +    push @$pdrs, {len=>$len, code=>$code, data=>$data, nums=>$nums}; +  } +  return $pdrs; +} diff --git a/abs/core-testing/wlan-ng26-utils/tmp/wlan-ng26-svn-r1870.tar.bz2 b/abs/core-testing/wlan-ng26-utils/tmp/wlan-ng26-svn-r1870.tar.bz2 Binary files differnew file mode 100644 index 0000000..93db584 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils/tmp/wlan-ng26-svn-r1870.tar.bz2 diff --git a/abs/core-testing/wlan-ng26/PKGBUILD b/abs/core-testing/wlan-ng26/PKGBUILD index c592386..7d4ff75 100644 --- a/abs/core-testing/wlan-ng26/PKGBUILD +++ b/abs/core-testing/wlan-ng26/PKGBUILD @@ -1,35 +1,38 @@ -# $Id: PKGBUILD 7952 2008-08-05 10:33:48Z tpowa $ +# $Id: PKGBUILD 14957 2008-10-11 20:14:56Z tpowa $  # Maintainer: Tom Killian <tom@archlinux.org> -pkgname=wlan-ng26 -pkgver=0.2.9 +pkgname=wlan-ng26-svn +pkgver=r1870  pkgrel=1 -_kernver=2.6.26-ARCH +_kernver=2.6.27-ARCH  pkgdesc="Wireless Lan usb modules. For kernel26."  arch=(i686 x86_64)  license=('MPL') -depends=('kernel26>=2.6.26-1' 'kernel26<2.6.27' 'wlan-ng26-utils') -source=(ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/linux-wlan-ng-$pkgver.tar.bz2 -	kernel-2.6.26.patch) +depends=('kernel26>=2.6.27-1' 'kernel26<2.6.28' 'wlan-ng26-utils') +source=(ftp://ftp.knoppmyth.net/R6/sources/wlan-ng26-svn-$pkgver.tar.bz2 +	kernel-2.6.26.patch +	kernel-2.6.27.patch)  url="ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/"  install=wlan-ng26.install  options=(!makeflags) +md5sums=('86af583059976c2f340e27911af49059' +         '7023c8c1f048659f95c2a41e5f1ae772' +         '9261df23043b181fd86c5e4100a84883')  build() { -   cd $startdir/src/linux-wlan-ng-$pkgver -   patch -Np0 -i ../kernel-2.6.26.patch || return 1 +#   cd $srcdir/linux-wlan-ng-$pkgver +   cd $srcdir/trunk +#   patch -Np0 -i ../kernel-2.6.26.patch || return 1 +#   patch -Np0 -i ../kernel-2.6.27.patch || return 1    # only built usb modules the rest is covered by hostap and orinoco driver, according to gentoo changelog     sed -i "s#PRISM2_PCMCIA=y#PRISM2_PCMCIA=n#;s#TARGET_ROOT_ON_HOST=#TARGET_ROOT_ON_HOST=$startdir/pkg#;s#PRISM2_PLX=y#PRISM2_PLX=n#;s#PRISM2_PCI=y#PRISM2_PCI=n#;s#PRISM2_USB=n#PRISM2_USB=y#;s%#LINUX_SRC=/usr/src/linux%LINUX_SRC=/lib/modules/${_kernver}/build%" config.in     make auto_config     make all || return 1     make install     sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/wlan-ng26.install -   rm -r $startdir/pkg/{etc,sbin,usr,init.d} +   rm -r $pkgdir/{etc,sbin,usr,init.d}     # fix module path -   mkdir -p $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/net/wireless -   mv $startdir/pkg/lib/modules/${_kernver}/linux-wlan-ng \ -      $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/net/wireless +   mkdir -p $pkgdir/lib/modules/${_kernver}/kernel/drivers/net/wireless +   mv $pkgdir/lib/modules/${_kernver}/linux-wlan-ng \ +      $pkgdir/lib/modules/${_kernver}/kernel/drivers/net/wireless  } - -md5sums=('96130b36f9674521b08fb3e2a6ac0382' -         '6ed5a5fefc2c149e0e0a98de211ba147') diff --git a/abs/core-testing/wlan-ng26/kernel-2.6.26.patch b/abs/core-testing/wlan-ng26/kernel-2.6.26.patch index ec306f0..28b61a0 100644 --- a/abs/core-testing/wlan-ng26/kernel-2.6.26.patch +++ b/abs/core-testing/wlan-ng26/kernel-2.6.26.patch @@ -11,4 +11,5 @@ Index: src/p80211/p80211netdev.c  +		dev_net_set(dev, &init_net);  +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) )   		dev->nd_net = &init_net; - #endif
\ No newline at end of file + #endif + diff --git a/abs/core-testing/wlan-ng26/kernel-2.6.27.patch b/abs/core-testing/wlan-ng26/kernel-2.6.27.patch new file mode 100644 index 0000000..7a17f17 --- /dev/null +++ b/abs/core-testing/wlan-ng26/kernel-2.6.27.patch @@ -0,0 +1,179 @@ +--- src/p80211/p80211wext.c	(revision 1865) ++++ src/p80211/p80211wext.c	(working copy) +@@ -81,6 +81,12 @@ + /* compatibility to wireless extensions */ + #ifdef WIRELESS_EXT +  ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27) && \ ++    !defined(IW_REQUEST_FLAG_COMPAT) ++#define iwe_stream_add_event(a, b, c, d, e) iwe_stream_add_event(b, c, d, e) ++#define iwe_stream_add_point(a, b, c, d, e) iwe_stream_add_point(b, c, d, e) ++#endif ++ + static UINT8 p80211_mhz_to_channel(UINT16 mhz) + { + 	if (mhz >= 5000) { +@@ -1520,7 +1526,8 @@ +  * airo driver code. +  */ + static char * +-wext_translate_bss(char *current_ev, char *end_buf, p80211msg_dot11req_scan_results_t *bss) ++wext_translate_bss(struct iw_request_info *info, char *current_ev, ++		   char *end_buf, p80211msg_dot11req_scan_results_t *bss) + { + 	struct iw_event iwe;	/* Temporary buffer */ +  +@@ -1528,7 +1535,8 @@ + 	memcpy(iwe.u.ap_addr.sa_data, bss->bssid.data.data, WLAN_BSSID_LEN); + 	iwe.u.ap_addr.sa_family = ARPHRD_ETHER; + 	iwe.cmd = SIOCGIWAP; +-	current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_ADDR_LEN); ++	current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe, ++					  IW_EV_ADDR_LEN); +  + 	/* The following entries will be displayed in the same order we give them */ +  +@@ -1544,7 +1552,8 @@ + 		iwe.u.data.length = size; + 		iwe.u.data.flags = 1; + 		iwe.cmd = SIOCGIWESSID; +-		current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, &essid[0]); ++		current_ev = iwe_stream_add_point(info, current_ev, end_buf, ++						  &iwe, &essid[0]); + 		WLAN_LOG_DEBUG(1, " essid size OK.\n"); + 	} +  +@@ -1563,7 +1572,8 @@ + 	} + 	iwe.cmd = SIOCGIWMODE; + 	if (iwe.u.mode) +-		current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_UINT_LEN); ++		current_ev = iwe_stream_add_event(info, current_ev, end_buf, ++						  &iwe, IW_EV_UINT_LEN); +  + 	/* Encryption capability */ + 	if (bss->privacy.data == P80211ENUM_truth_true) +@@ -1572,13 +1582,15 @@ + 		iwe.u.data.flags = IW_ENCODE_DISABLED; + 	iwe.u.data.length = 0; + 	iwe.cmd = SIOCGIWENCODE; +-	current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, NULL); ++	current_ev = iwe_stream_add_point(info, current_ev, end_buf, &iwe, ++					  NULL); +  + 	/* Add frequency. (short) bss->channel is the frequency in MHz */ + 	iwe.u.freq.m = bss->dschannel.data; + 	iwe.u.freq.e = 0; + 	iwe.cmd = SIOCGIWFREQ; +-	current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_FREQ_LEN); ++	current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe, ++					  IW_EV_FREQ_LEN); +  + 	/* Add quality statistics */ + 	iwe.u.qual.level = bss->signal.data; +@@ -1586,7 +1598,8 @@ + 	/* do a simple SNR for quality */ + 	iwe.u.qual.qual = qual_as_percent(bss->signal.data - bss->noise.data); + 	iwe.cmd = IWEVQUAL; +-	current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_QUAL_LEN); ++	current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe, ++					  IW_EV_QUAL_LEN); +  + 	return current_ev; + } +@@ -1627,7 +1640,8 @@ + 			break; + 		} + 		   +-		current_ev = wext_translate_bss(current_ev, extra + IW_SCAN_MAX_DATA, &msg); ++		current_ev = wext_translate_bss(info, current_ev, ++						extra + IW_SCAN_MAX_DATA, &msg); + 		scan_good = 1; + 		i++; + 	} while (i < IW_MAX_AP); +--- src/p80211/p80211netdev.c ++++ src/p80211/p80211netdev.c +@@ -869,6 +869,30 @@ static int wlan_change_mtu(netdevice_t *dev, int new_mtu) +         return 0; + } +  ++/*--------------------------------------------------------- ++ * wlan_alloc_netdev ++ * ++ * create a netdev properly over different kernel versions ++ * this should work with kernels earlier than 2.6.26, and if ++ * anyone cares they can change it ++----------------------------------------------------------*/    ++ ++static inline netdevice_t * wlan_alloc_netdev() { ++	netdevice_t *dev; ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ) ++	dev = alloc_netdev(0,"wlan%d",ether_setup); ++#else ++	dev = kmalloc(sizeof(netdevice_t), GFP_ATOMIC); ++	if ( dev ) { ++		memset( dev, 0, sizeof(netdevice_t)); ++		ether_setup(dev); ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) ) ++		dev->nd_net = &init_net; ++#endif ++	} ++#endif ++	return dev; ++} +  +  + /*---------------------------------------------------------------- +@@ -911,14 +935,12 @@ int wlan_setup(wlandevice_t *wlandev) + 		     p80211netdev_rx_bh,  + 		     (unsigned long)wlandev); +  +-	/* Allocate and initialize the struct device */ +-	dev = kmalloc(sizeof(netdevice_t), GFP_ATOMIC); ++	/* Allocate and initialize the struct net device */ ++	dev = wlan_alloc_netdev(); + 	if ( dev == NULL ) { + 		WLAN_LOG_ERROR("Failed to alloc netdev.\n"); + 		result = 1; + 	} else { +-		memset( dev, 0, sizeof(netdevice_t)); +-		ether_setup(dev); + 		wlandev->netdev = dev; + 		dev->priv = wlandev; + 		dev->hard_start_xmit =	p80211knetdev_hard_start_xmit; +@@ -946,10 +968,8 @@ int wlan_setup(wlandevice_t *wlandev) + 		dev->wireless_handlers = &p80211wext_handler_def; + #endif + #endif +-	 +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ) +-		dev_net_set(dev, &init_net); +-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) ) ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)) + 		dev->nd_net = &init_net; + #endif + 		 +@@ -1044,7 +1064,12 @@ int register_wlandev(wlandevice_t *wlandev) + 	netdevice_t	*dev = wlandev->netdev; +  + 	DBFENTER; +- ++/* alloc_netdev already sets up the name */ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ) ++	i = register_netdev(dev); ++	if (i)  ++		return i; ++#else + 	i = dev_alloc_name(wlandev->netdev, "wlan%d"); + 	if (i >= 0) { + 		i = register_netdev(wlandev->netdev); +@@ -1058,6 +1083,8 @@ int register_wlandev(wlandevice_t *wlandev) + #else + 	strcpy(wlandev->name, dev->name); + #endif ++#endif ++ +  + #ifdef CONFIG_PROC_FS + 	if (proc_p80211) { diff --git a/abs/core-testing/wlan-ng26/wlan-ng26.install b/abs/core-testing/wlan-ng26/wlan-ng26.install index fe7abaa..ff39264 100644 --- a/abs/core-testing/wlan-ng26/wlan-ng26.install +++ b/abs/core-testing/wlan-ng26/wlan-ng26.install @@ -8,7 +8,7 @@ post_install() {  post_upgrade() {    # updating module dependencies    echo ">>> Updating module dependencies. Please wait ..." -  KERNEL_VERSION=2.6.26-ARCH +  KERNEL_VERSION=2.6.27-ARCH    depmod -v $KERNEL_VERSION  > /dev/null 2>&1  } @@ -21,7 +21,7 @@ pre_remove() {  post_remove() {    # updating module dependencies    echo ">>> Updating module dependencies. Please wait ..." -  KERNEL_VERSION=2.6.26-ARCH +  KERNEL_VERSION=2.6.27-ARCH    depmod -v $KERNEL_VERSION  > /dev/null 2>&1  } diff --git a/abs/core-testing/xf86-input-aiptek/PKGBUILD b/abs/core-testing/xf86-input-aiptek/PKGBUILD index f3d5b39..509eba6 100644 --- a/abs/core-testing/xf86-input-aiptek/PKGBUILD +++ b/abs/core-testing/xf86-input-aiptek/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 10857 2008-08-31 13:24:55Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-aiptek -pkgver=1.0.1 -pkgrel=4 +pkgver=1.1.1 +pkgrel=1  pkgdesc="X.Org Aiptek USB Digital Tablet input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  options=('!libtool')  groups=('xorg-input-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('951b2b1a270f67d28e2e89fd2b9f15ae') +md5sums=('2aa75313ea5652a8cf93581c65ee6493')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } diff --git a/abs/core-testing/xf86-input-calcomp/PKGBUILD b/abs/core-testing/xf86-input-calcomp/PKGBUILD index b18d89c..2792455 100644 --- a/abs/core-testing/xf86-input-calcomp/PKGBUILD +++ b/abs/core-testing/xf86-input-calcomp/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11000 2008-08-31 13:46:51Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-calcomp -pkgver=1.1.1 +pkgver=1.1.2  pkgrel=1  pkgdesc="X.Org CalComp Drawing Board input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  options=('!libtool')  groups=('xorg-input-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('ebc9a64dc72ae3015c16011bbd2d3557')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } -md5sums=('689099e2ade8a8c9f68f82fdf569b3ad') diff --git a/abs/core-testing/xf86-input-digitaledge/PKGBUILD b/abs/core-testing/xf86-input-digitaledge/PKGBUILD index 2017d0f..fcdfd1a 100644 --- a/abs/core-testing/xf86-input-digitaledge/PKGBUILD +++ b/abs/core-testing/xf86-input-digitaledge/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11039 2008-08-31 13:50:33Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-digitaledge -pkgver=1.1.0 -pkgrel=4 +pkgver=1.1.1 +pkgrel=1  pkgdesc="X.Org Digital Edge Tablet input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  groups=('xorg-input-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('53461c34cc0712aacab92b820b9fcb84') +md5sums=('4c27e0f3c6447e76df39a837fd46a00f')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } diff --git a/abs/core-testing/xf86-input-dmc/PKGBUILD b/abs/core-testing/xf86-input-dmc/PKGBUILD index 5839019..afc4e86 100644 --- a/abs/core-testing/xf86-input-dmc/PKGBUILD +++ b/abs/core-testing/xf86-input-dmc/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11060 2008-08-31 13:52:40Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-dmc -pkgver=1.1.1 +pkgver=1.1.2  pkgrel=1  pkgdesc="X.Org DMC FIT10 serial input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  options=('!libtool')  groups=('xorg-input-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('91021ea8f3593221c0d9ee9cc14deb48')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } -md5sums=('f21f008220bc7687ce1c34ab557ec32f') diff --git a/abs/core-testing/xf86-input-dynapro/PKGBUILD b/abs/core-testing/xf86-input-dynapro/PKGBUILD index 467e05d..4043a9f 100644 --- a/abs/core-testing/xf86-input-dynapro/PKGBUILD +++ b/abs/core-testing/xf86-input-dynapro/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11063 2008-08-31 13:54:38Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-dynapro -pkgver=1.1.1 +pkgver=1.1.2  pkgrel=1  pkgdesc="X.org DynaPro Touch Screen input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  options=('!libtool')  groups=('xorg-input-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('ceb5efbd3d62e24ab3a5f9f180777f7c')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } -md5sums=('d47be12a230c44a05d56d6b79ebcfc38') diff --git a/abs/core-testing/xf86-input-elographics/PKGBUILD b/abs/core-testing/xf86-input-elographics/PKGBUILD index 374fcaa..1b48f31 100644 --- a/abs/core-testing/xf86-input-elographics/PKGBUILD +++ b/abs/core-testing/xf86-input-elographics/PKGBUILD @@ -1,26 +1,26 @@ -# $Id: PKGBUILD 3250 2008-06-21 18:18:33Z jgc $ +# $Id: PKGBUILD 17524 2008-10-30 22:03:55Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-elographics -pkgver=1.2.2 +pkgver=1.2.3  pkgrel=1  pkgdesc="X.org Elographics TouchScreen input driver"  arch=(i686 x86_64)  license=('custom')  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4.2') +makedepends=('pkgconfig' 'xorg-server>=1.5.2')  options=('!libtool')  groups=('xorg-input-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('50a9c32af12ca4733afe23042f012f9c') +md5sums=('cc2923460c8eff9652b01889a063058d')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1 -  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} -  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1 +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1  } diff --git a/abs/core-testing/xf86-input-evdev/PKGBUILD b/abs/core-testing/xf86-input-evdev/PKGBUILD index 0745861..1a1f167 100644 --- a/abs/core-testing/xf86-input-evdev/PKGBUILD +++ b/abs/core-testing/xf86-input-evdev/PKGBUILD @@ -1,22 +1,25 @@ -# $Id: PKGBUILD 3693 2008-06-29 11:05:37Z jgc $ +# $Id: PKGBUILD 20574 2008-12-05 20:53:20Z jgc $  # Maintainer: Alexander Baldeck <Alexander@archlinux.org  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-evdev -pkgver=2.0.1 +pkgver=2.1.0  pkgrel=1  pkgdesc="X.org evdev input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/" +license=('custom')  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4.2' 'inputproto>=1.4.3' 'randrproto>=1.2.1') +makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'inputproto>=1.4.4' 'randrproto>=1.2.1')  options=('!libtool')  groups=('xorg-input-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('061c4558316b1ec9ee71478bdf68b10c') +md5sums=('a6070ead29b2d81b5b386a96df2661b8')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1  } diff --git a/abs/core-testing/xf86-input-fpit/PKGBUILD b/abs/core-testing/xf86-input-fpit/PKGBUILD index c8931e9..280ca28 100644 --- a/abs/core-testing/xf86-input-fpit/PKGBUILD +++ b/abs/core-testing/xf86-input-fpit/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11093 2008-08-31 13:58:34Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-fpit -pkgver=1.1.0 -pkgrel=4 +pkgver=1.2.0 +pkgrel=1  pkgdesc="X.Org Fujitsu Stylistic Tablet PC input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  groups=('xorg-input-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('a31066a2076d18619ceaea67f6d89698') +md5sums=('0f3e013d5ff58e0aba3d9e1d18830291')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } diff --git a/abs/core-testing/xf86-input-hyperpen/PKGBUILD b/abs/core-testing/xf86-input-hyperpen/PKGBUILD index 8873552..b06636b 100644 --- a/abs/core-testing/xf86-input-hyperpen/PKGBUILD +++ b/abs/core-testing/xf86-input-hyperpen/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11115 2008-08-31 14:01:17Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-hyperpen -pkgver=1.1.0 -pkgrel=4 +pkgver=1.2.0 +pkgrel=1  pkgdesc="X.Org HyperPen Tablet input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  options=('!libtool')  groups=('xorg-input-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('1dfccb75069e61e0c6f990b47eb58c40') +md5sums=('175c1e1ad668ebbbe212c1e975dd14f9')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } diff --git a/abs/core-testing/xf86-input-jamstudio/PKGBUILD b/abs/core-testing/xf86-input-jamstudio/PKGBUILD index 28be4e1..35036e2 100644 --- a/abs/core-testing/xf86-input-jamstudio/PKGBUILD +++ b/abs/core-testing/xf86-input-jamstudio/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11114 2008-08-31 14:00:38Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-jamstudio -pkgver=1.1.0 -pkgrel=4 +pkgver=1.2.0 +pkgrel=1  pkgdesc="X.Org KB-Gear JamStudio pentablet input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  options=('!libtool')  groups=('xorg-input-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('a32e36a24545791a3408cdc5563b6523') +md5sums=('8011f90d7dd801d26e8c3dd058633978')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } diff --git a/abs/core-testing/xf86-input-joystick/PKGBUILD b/abs/core-testing/xf86-input-joystick/PKGBUILD index e2146e8..de6f6e3 100644 --- a/abs/core-testing/xf86-input-joystick/PKGBUILD +++ b/abs/core-testing/xf86-input-joystick/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 23023 2009-01-01 16:35:00Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-joystick -pkgver=1.3.1 +pkgver=1.4.0  pkgrel=1  pkgdesc="X.Org Joystick input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4') +makedepends=('pkgconfig' 'xorg-server>=1.5.3') +conflicts=('xorg-server<1.5.3')  groups=('xorg-input-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('600bca5bd96a0dee90e20b606aa1eb93')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } -md5sums=('ff25ea697cfa1570cc28f4b9cf9c761f') diff --git a/abs/core-testing/xf86-input-magellan/PKGBUILD b/abs/core-testing/xf86-input-magellan/PKGBUILD index 324c0be..9ed417a 100644 --- a/abs/core-testing/xf86-input-magellan/PKGBUILD +++ b/abs/core-testing/xf86-input-magellan/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11137 2008-08-31 14:03:11Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-magellan -pkgver=1.1.1 +pkgver=1.2.0  pkgrel=1  pkgdesc="X.Org Magellan Space mouse input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  groups=('xorg-input-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('9801ba10f15f8be2420dfb3f3b5d5d27')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } -md5sums=('8a966d3b74dc2a801ff09b895037090c') diff --git a/abs/core-testing/xf86-input-magictouch/PKGBUILD b/abs/core-testing/xf86-input-magictouch/PKGBUILD index fdd4a4a..70c417e 100644 --- a/abs/core-testing/xf86-input-magictouch/PKGBUILD +++ b/abs/core-testing/xf86-input-magictouch/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 20562 2008-12-05 20:36:01Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-magictouch @@ -15,9 +15,8 @@ source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)  md5sums=('d23f2791cd634ef85b7cc5e9da8f8407')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/core-testing/xf86-input-microtouch/PKGBUILD b/abs/core-testing/xf86-input-microtouch/PKGBUILD index be6b234..5984af1 100644 --- a/abs/core-testing/xf86-input-microtouch/PKGBUILD +++ b/abs/core-testing/xf86-input-microtouch/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11144 2008-08-31 14:03:49Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-microtouch -pkgver=1.1.1 +pkgver=1.2.0  pkgrel=1  pkgdesc="X.org microtouch input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  groups=('xorg-input-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('1ad1aee7d8df84b9ea832d1e75963257')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } -md5sums=('9843fbea6cc0c4129e96ce9a6c893cf6') diff --git a/abs/core-testing/xf86-input-mutouch/PKGBUILD b/abs/core-testing/xf86-input-mutouch/PKGBUILD index 36da1e3..ce27c8e 100644 --- a/abs/core-testing/xf86-input-mutouch/PKGBUILD +++ b/abs/core-testing/xf86-input-mutouch/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 15051 2008-10-12 12:28:57Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-mutouch -pkgver=1.1.0 -pkgrel=4 +pkgver=1.2.1 +pkgrel=1  pkgdesc="X.org mutouch input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.5.2')  groups=('xorg-input-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('98ae915c67cabf0e6d40a425dbdbe10b') +md5sums=('f28998cdfae2a4c41589299a4ee1f459')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/core-testing/xf86-input-palmax/PKGBUILD b/abs/core-testing/xf86-input-palmax/PKGBUILD index ff5c4b2..45c4da1 100644 --- a/abs/core-testing/xf86-input-palmax/PKGBUILD +++ b/abs/core-testing/xf86-input-palmax/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11159 2008-08-31 14:05:43Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-palmax -pkgver=1.1.0 -pkgrel=4 +pkgver=1.2.0 +pkgrel=1  pkgdesc="X.org palmax input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  groups=('xorg-input-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('0959dbf7972dfb95f56e4bd3f56447cf') +md5sums=('9655d2235569c5a6ac321c6fb89a6f3b')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } diff --git a/abs/core-testing/xf86-input-penmount/PKGBUILD b/abs/core-testing/xf86-input-penmount/PKGBUILD index 062401f..b036796 100644 --- a/abs/core-testing/xf86-input-penmount/PKGBUILD +++ b/abs/core-testing/xf86-input-penmount/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11167 2008-08-31 14:06:53Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-penmount -pkgver=1.2.1 +pkgver=1.3.0  pkgrel=1  pkgdesc="X.org penmount input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  groups=('xorg-input-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } -md5sums=('268af4dceda544d8c815b9b7e87d4536') +md5sums=('24594c0222e631fedccc7c540c420b03') diff --git a/abs/core-testing/xf86-input-summa/PKGBUILD b/abs/core-testing/xf86-input-summa/PKGBUILD index 9b0c9ef..abbae8a 100644 --- a/abs/core-testing/xf86-input-summa/PKGBUILD +++ b/abs/core-testing/xf86-input-summa/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11181 2008-08-31 14:11:07Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-summa -pkgver=1.1.0 -pkgrel=4 +pkgver=1.2.0 +pkgrel=1  pkgdesc="X.org summa input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  options=('!libtool')  groups=('xorg-input-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('b37a432fd87bb9f46d011622d6fce6b3') +md5sums=('7e17468c0d90dcbbb6202a8242efff4b')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } diff --git a/abs/core-testing/xf86-input-synaptics/PKGBUILD b/abs/core-testing/xf86-input-synaptics/PKGBUILD new file mode 100644 index 0000000..f92e0fd --- /dev/null +++ b/abs/core-testing/xf86-input-synaptics/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 22376 2008-12-26 16:24:10Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Tobias Powalowski  <tpowa@archlinux.org> +# Contributor: Thomas Bächler <thomas@archlinux.org> +# Contributor: Alexander Baldeck <alexander@archlinux.org> +pkgname=xf86-input-synaptics +pkgver=0.99.3 +pkgrel=1 +pkgdesc="synaptics driver for notebook touchpads" +arch=(i686 x86_64) +license=('custom') +url="http://w1.894.telia.com/~u89404340/touchpad/" +depends=('libx11') +makedepends=('pkgconfig' 'xorg-server>=1.5.3') +replaces=('synaptics') +provides=('synaptics') +conflicts=('synaptics') +options=(!libtool) +source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('735a798e0f68c65d98e3d6b092b56d29') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1 +  make || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  install -d "${pkgdir}/usr/share/hal/fdi/policy/10osvendor" +  install -m644 fdi/*.fdi "${pkgdir}/usr/share/hal/fdi/policy/10osvendor/" || return 1 +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1 +} diff --git a/abs/core-testing/xf86-input-tek4957/PKGBUILD b/abs/core-testing/xf86-input-tek4957/PKGBUILD index 2ea7a0f..afa4498 100644 --- a/abs/core-testing/xf86-input-tek4957/PKGBUILD +++ b/abs/core-testing/xf86-input-tek4957/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11210 2008-08-31 14:13:46Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-tek4957 -pkgver=1.1.0 -pkgrel=4 +pkgver=1.2.0 +pkgrel=1  pkgdesc="X.org tek4957 input driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  groups=('xorg-input-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('be8a4bd474ad6c85b93f66dd6fcfa6ee') +md5sums=('8103db1ca5c55726e0b58148e4b1fc06')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } diff --git a/abs/core-testing/xf86-input-ur98/PKGBUILD b/abs/core-testing/xf86-input-ur98/PKGBUILD index 8fcafc0..6c1ec76 100644 --- a/abs/core-testing/xf86-input-ur98/PKGBUILD +++ b/abs/core-testing/xf86-input-ur98/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 20489 2008-12-05 10:09:15Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-ur98 @@ -15,9 +15,8 @@ source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)  md5sums=('3cf8928411458baaa9e726e51772c550')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/core-testing/xf86-input-vmmouse/PKGBUILD b/abs/core-testing/xf86-input-vmmouse/PKGBUILD index 55eed97..6b0ef90 100644 --- a/abs/core-testing/xf86-input-vmmouse/PKGBUILD +++ b/abs/core-testing/xf86-input-vmmouse/PKGBUILD @@ -1,23 +1,26 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 22273 2008-12-25 16:56:34Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-vmmouse -pkgver=12.4.3 +pkgver=12.6.3  pkgrel=1  pkgdesc="X.org VMWare Mouse input driver"  arch=(i686 x86_64) +license=('custom')  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4') +makedepends=('pkgconfig' 'xorg-server>=1.5.3') +conflicts=('xorg-server<1.5.3')  groups=('xorg-input-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('f5933143d7789557983ecb527092d14e')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1  } -md5sums=('44730af795616ed4d4a0cd9a3a07935d') diff --git a/abs/core-testing/xf86-input-void/PKGBUILD b/abs/core-testing/xf86-input-void/PKGBUILD index d2d5b2b..ce4b0cf 100644 --- a/abs/core-testing/xf86-input-void/PKGBUILD +++ b/abs/core-testing/xf86-input-void/PKGBUILD @@ -1,23 +1,25 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11237 2008-08-31 14:17:19Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-input-void -pkgver=1.1.0 -pkgrel=2 +pkgver=1.1.1 +pkgrel=1  pkgdesc="X.org void input driver"  arch=(i686 x86_64) +license=('custom')  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  groups=('xorg-input-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('ea72a92d43b95f413347df96d6a73933') +md5sums=('862c230f5f6e0c545f232b4c0fa9537a')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1 +  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} +  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1  } diff --git a/abs/core-testing/xf86-video-amd/PKGBUILD b/abs/core-testing/xf86-video-amd/PKGBUILD index 1bf6f62..fa31ce0 100644 --- a/abs/core-testing/xf86-video-amd/PKGBUILD +++ b/abs/core-testing/xf86-video-amd/PKGBUILD @@ -1,27 +1,28 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11397 2008-08-31 14:36:04Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  pkgname=xf86-video-amd -pkgver=2.7.7.6 +pkgver=2.7.7.7  pkgrel=1  pkgdesc="X.org AMD/Geode LX & NX video driver"  # there is no 64bit geode yet!  arch=(i686) +license=('custom')  url="http://xorg.freedesktop.org/" -makedepends=('pkgconfig' 'xorg-server>=1.4') +depends=('glibc') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906') +conflicts=('xorg-server<1.4.99.906')  options=('!libtool') -license=('custom:amd')  groups=('xorg-video-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('2f3e8c3019afda926e7ab95b074c35e1')  build() {    cd ${startdir}/src/${pkgname}-${pkgver}    ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} \ -	      --enable-visibility +	      --enable-visibility || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1 -  install -D -m644 ${startdir}/src/${pkgname}-${pkgver}/COPYING \ -                   ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING +  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} +  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1  } -md5sums=('e839cc4552032b7bd44beb72e575980f') diff --git a/abs/core-testing/xf86-video-apm/PKGBUILD b/abs/core-testing/xf86-video-apm/PKGBUILD index 7808dbc..4ed1cff 100644 --- a/abs/core-testing/xf86-video-apm/PKGBUILD +++ b/abs/core-testing/xf86-video-apm/PKGBUILD @@ -1,22 +1,23 @@ -# $Id: PKGBUILD 3262 2008-06-21 18:38:40Z jgc $ +# $Id: PKGBUILD 22289 2008-12-25 17:19:55Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-apm -pkgver=1.2.0 +pkgver=1.2.1  pkgrel=1  pkgdesc="X.org Alliance ProMotion video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4.0.90') +makedepends=('pkgconfig' 'xorg-server>=1.5.3') +conflicts=('xorg-server<1.5.3')  groups=('xorg-video-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('673c93df004bb857dc89ae9c78ccf907')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } -md5sums=('4f78650d79656dc803a720049d65682e') diff --git a/abs/core-testing/xf86-video-ark/PKGBUILD b/abs/core-testing/xf86-video-ark/PKGBUILD index cbe38bd..288686c 100644 --- a/abs/core-testing/xf86-video-ark/PKGBUILD +++ b/abs/core-testing/xf86-video-ark/PKGBUILD @@ -1,22 +1,23 @@ -# $Id: PKGBUILD 3260 2008-06-21 18:36:28Z jgc $ +# $Id: PKGBUILD 22271 2008-12-25 16:54:52Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-ark -pkgver=0.7.0 +pkgver=0.7.1  pkgrel=1  pkgdesc="X.org ark video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4.0.90') +makedepends=('pkgconfig' 'xorg-server>=1.5.3') +conflicts=('xorg-server<1.5.3')  options=('!libtool')  groups=('xorg-video-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('be91391f061863617018403cdbd2944f')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } -md5sums=('6826c556ebe9a1248cbc7f7edd44f956') diff --git a/abs/core-testing/xf86-video-ati/PKGBUILD b/abs/core-testing/xf86-video-ati/PKGBUILD index c95c021..79faa91 100644 --- a/abs/core-testing/xf86-video-ati/PKGBUILD +++ b/abs/core-testing/xf86-video-ati/PKGBUILD @@ -1,51 +1,32 @@ -# $Id: PKGBUILD 3261 2008-06-21 18:38:23Z jgc $ -# Maintainer: Alexander Baldeck <alexander@archlinux.org> -# Contributor: Jan de Groot <jgc@archlinux.org> +# $Id: PKGBUILD 22423 2008-12-26 19:32:02Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Alexander Baldeck <alexander@archlinux.org>  pkgname=xf86-video-ati -pkgver=6.8.0 -pkgrel=4 -_mesaver="7.0.3" +pkgver=6.9.0 +pkgrel=6  pkgdesc="X.org ati video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/" -depends=('libdrm>=2.3.0') -makedepends=('pkgconfig' 'xorg-server>=1.4' 'imake' 'mesa>=7.0.3' -	     'glproto>=1.4.9' 'xf86driproto' 'diffutils') +depends=('libdrm>=2.3.1' 'libgl>=7.2' 'libpciaccess' 'ati-dri>=7.2') +makedepends=('pkgconfig' 'xorg-server>=1.5.0' 'fontsproto' +	     'glproto>=1.4.9' 'xf86driproto' 'diffutils' 'xorg-util-macros') +conflicts=('xorg-server<1.5.0')  groups=('xorg-video-drivers')  options=('!libtool') -license=('custom')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 -       http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2) +       git-20081021.patch) +md5sums=('afa4873f58ae6fa31fedeb9ed31531db' +	 'f2ce4e7fb4e266bbc61fb2d9c7c20a3b')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}" +  patch -Np1 -i "${srcdir}/git-20081021.patch" || return 1 +  libtoolize --force --copy || return 1 +  aclocal || return 1 +  autoconf || return 1 +  automake || return 1    ./configure --prefix=/usr \ -              --enable-dri +              --enable-dri || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 - -  cd ${startdir}/src/Mesa-${_mesaver}/configs - -  CONFIG="linux-dri-x86" -  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64" -  echo "EXTRA_LIB_PATH =" >> ${CONFIG} -  # currently commented, see FS#7590 for details -  #echo "OPT_FLAGS = ${CFLAGS} -fno-strict-aliasing" >> ${CONFIG} -  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG} -  echo "USING_EGL = 0" >> ${CONFIG} -  echo "PROGRAM_DIRS =" >> ${CONFIG} -  echo "MKDEP = makedepend" >> ${CONFIG} -  echo "DRI_DIRS = r128 radeon r200 r300" >> ${CONFIG} -  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG} -  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG} - -  ln -s ${CONFIG} current -  cd ${startdir}/src/Mesa-${_mesaver}/src/mesa -  make linux-solo || return 1 -  cd drivers/dri -  make DESTDIR=${startdir}/pkg install || return 1 +  make "DESTDIR=${pkgdir}" install || return 1  } -md5sums=('3c97c7925ebf4162eeb3463e23adc0e3' -         'e6e6379d7793af40a6bc3ce1bace572e') diff --git a/abs/core-testing/xf86-video-ati/git-20081021.patch b/abs/core-testing/xf86-video-ati/git-20081021.patch new file mode 100644 index 0000000..b3a1baf --- /dev/null +++ b/abs/core-testing/xf86-video-ati/git-20081021.patch @@ -0,0 +1,17245 @@ +diff --git a/man/radeon.man b/man/radeon.man +index 03622a0..68029ed 100644 +--- a/man/radeon.man ++++ b/man/radeon.man +@@ -283,7 +283,8 @@ The default value is + .BI "Option \*qEnablePageFlip\*q \*q" boolean \*q + Enable page flipping for 3D acceleration. This will increase performance + but not work correctly in some rare cases, hence the default is +-.B off. ++.B off.   ++It is currently only supported on r4xx and older hardware. + .TP + .BI "Option \*qForceMinDotClock\*q \*q" frequency \*q + Override minimum dot clock. Some Radeon BIOSes report a minimum dot +@@ -297,10 +298,9 @@ parameter may be specified as a float value with standard suffixes like + "k", "kHz", "M", "MHz". + .TP + .BI "Option \*qRenderAccel\*q \*q" boolean \*q +-Enables or disables hardware Render acceleration.  This driver does not +-support component alpha (subpixel) rendering.  It is only supported on +-Radeon series up to and including 9200 (9500/9700 and newer +-unsupported).  The default is to ++Enables or disables hardware Render acceleration.  It is supported on ++Radeon series up to and including r5xx for EXA and up to and  ++including r2xx for XAA.  The default is to + .B enable + Render acceleration. + .TP +diff --git a/src/AtomBios/CD_Operations.c b/src/AtomBios/CD_Operations.c +index 509aa0c..58c4ae9 100644 +--- a/src/AtomBios/CD_Operations.c ++++ b/src/AtomBios/CD_Operations.c +@@ -44,7 +44,6 @@ Revision History: + #include "xorg-server.h" +  + #include "Decoder.h" +-#include	"atombios.h" +  + VOID PutDataRegister(PARSER_TEMP_DATA STACK_BASED * pParserTempData); + VOID PutDataPS(PARSER_TEMP_DATA STACK_BASED * pParserTempData); +@@ -231,7 +230,7 @@ UINT32 IndirectInputOutput(PARSER_TEMP_DATA STACK_BASED * pParserTempData) + 		IndirectIOParserCommands[*pParserTempData->IndirectIOTablePointer].func(pParserTempData); + 		pParserTempData->IndirectIOTablePointer+=IndirectIOParserCommands[*pParserTempData->IndirectIOTablePointer].csize; + 	    } +-	    pParserTempData->IndirectIOTablePointer-=*(UINT16*)(pParserTempData->IndirectIOTablePointer+1); ++	    pParserTempData->IndirectIOTablePointer-=UINT16LE_TO_CPU(*(UINT16*)(pParserTempData->IndirectIOTablePointer+1)); + 	    pParserTempData->IndirectIOTablePointer++; + 	    return pParserTempData->IndirectData; + 	} else pParserTempData->IndirectIOTablePointer+=IndirectIOParserCommands[*pParserTempData->IndirectIOTablePointer].csize; +@@ -243,7 +242,7 @@ UINT32 IndirectInputOutput(PARSER_TEMP_DATA STACK_BASED * pParserTempData) +  + VOID PutDataRegister(PARSER_TEMP_DATA STACK_BASED * pParserTempData) + { +-    pParserTempData->Index=(UINT32)pParserTempData->pCmd->Parameters.WordXX.PA_Destination; ++    pParserTempData->Index=(UINT32)UINT16LE_TO_CPU(pParserTempData->pCmd->Parameters.WordXX.PA_Destination); +     pParserTempData->Index+=pParserTempData->CurrentRegBlock; +     switch(pParserTempData->Multipurpose.CurrentPort){ + 	case ATI_RegsPort: +@@ -269,16 +268,16 @@ VOID PutDataRegister(PARSER_TEMP_DATA STACK_BASED * pParserTempData) + VOID PutDataPS(PARSER_TEMP_DATA STACK_BASED * pParserTempData) + { +     *(pParserTempData->pDeviceData->pParameterSpace+pParserTempData->pCmd->Parameters.ByteXX.PA_Destination)= +-	pParserTempData->DestData32; ++	    CPU_TO_UINT32LE(pParserTempData->DestData32); + } +  + VOID PutDataWS(PARSER_TEMP_DATA STACK_BASED * pParserTempData) + { +     if (pParserTempData->pCmd->Parameters.ByteXX.PA_Destination < WS_QUOTIENT_C) +-	*(pParserTempData->pWorkingTableData->pWorkSpace+pParserTempData->pCmd->Parameters.ByteXX.PA_Destination) = pParserTempData->DestData32; ++      *(pParserTempData->pWorkingTableData->pWorkSpace+pParserTempData->pCmd->Parameters.ByteXX.PA_Destination) = pParserTempData->DestData32; +     else +-	switch (pParserTempData->pCmd->Parameters.ByteXX.PA_Destination) +-	{ ++	  switch (pParserTempData->pCmd->Parameters.ByteXX.PA_Destination) ++	  { + 	    case WS_REMINDER_C: + 		pParserTempData->MultiplicationOrDivision.Division.Reminder32=pParserTempData->DestData32; + 		break; +@@ -339,7 +338,7 @@ VOID SkipParameters16(PARSER_TEMP_DATA STACK_BASED *	pParserTempData) +  + UINT32 GetParametersRegister(PARSER_TEMP_DATA STACK_BASED *	pParserTempData) + { +-    pParserTempData->Index=*(UINT16*)pParserTempData->pWorkingTableData->IP; ++    pParserTempData->Index=UINT16LE_TO_CPU(*(UINT16*)pParserTempData->pWorkingTableData->IP); +     pParserTempData->pWorkingTableData->IP+=sizeof(UINT16); +     pParserTempData->Index+=pParserTempData->CurrentRegBlock; +     switch(pParserTempData->Multipurpose.CurrentPort) +@@ -361,9 +360,11 @@ UINT32 GetParametersRegister(PARSER_TEMP_DATA STACK_BASED *	pParserTempData) +  + UINT32 GetParametersPS(PARSER_TEMP_DATA STACK_BASED *	pParserTempData) + { ++    UINT32 data; +     pParserTempData->Index=*pParserTempData->pWorkingTableData->IP; +     pParserTempData->pWorkingTableData->IP+=sizeof(UINT8); +-    return *(pParserTempData->pDeviceData->pParameterSpace+pParserTempData->Index); ++    data = UINT32LE_TO_CPU(*(pParserTempData->pDeviceData->pParameterSpace+pParserTempData->Index)); ++    return data; + } +  + UINT32 GetParametersWS(PARSER_TEMP_DATA STACK_BASED *	pParserTempData) +@@ -419,9 +420,12 @@ UINT32 GetParametersMC(PARSER_TEMP_DATA STACK_BASED *	pParserTempData) +  + UINT32 GetParametersIndirect(PARSER_TEMP_DATA STACK_BASED *	pParserTempData) + { +-    pParserTempData->Index=*(UINT16*)pParserTempData->pWorkingTableData->IP; ++	  UINT32 ret; ++ ++    pParserTempData->Index=UINT16LE_TO_CPU(*(UINT16*)pParserTempData->pWorkingTableData->IP); +     pParserTempData->pWorkingTableData->IP+=sizeof(UINT16); +-    return *(UINT32*)(RELATIVE_TO_BIOS_IMAGE(pParserTempData->Index)+pParserTempData->CurrentDataBlock); ++    ret = UINT32LE_TO_CPU(*(UINT32*)(RELATIVE_TO_BIOS_IMAGE(pParserTempData->Index)+pParserTempData->CurrentDataBlock)); ++    return ret; + } +  + UINT32 GetParametersDirect8(PARSER_TEMP_DATA STACK_BASED *	pParserTempData) +@@ -435,7 +439,7 @@ UINT32 GetParametersDirect8(PARSER_TEMP_DATA STACK_BASED *	pParserTempData) + UINT32 GetParametersDirect16(PARSER_TEMP_DATA STACK_BASED *	pParserTempData) + { +     pParserTempData->CD_Mask.SrcAlignment=alignmentLowerWord; +-    pParserTempData->Index=*(UINT16*)pParserTempData->pWorkingTableData->IP; ++    pParserTempData->Index=UINT16LE_TO_CPU(*(UINT16*)pParserTempData->pWorkingTableData->IP); +     pParserTempData->pWorkingTableData->IP+=sizeof(UINT16); +     return pParserTempData->Index; + } +@@ -443,7 +447,7 @@ UINT32 GetParametersDirect16(PARSER_TEMP_DATA STACK_BASED *	pParserTempData) + UINT32 GetParametersDirect32(PARSER_TEMP_DATA STACK_BASED *	pParserTempData) + { +     pParserTempData->CD_Mask.SrcAlignment=alignmentDword; +-    pParserTempData->Index=*(UINT32*)pParserTempData->pWorkingTableData->IP; ++    pParserTempData->Index=UINT32LE_TO_CPU(*(UINT32*)pParserTempData->pWorkingTableData->IP); +     pParserTempData->pWorkingTableData->IP+=sizeof(UINT32); +     return pParserTempData->Index; + } +@@ -474,7 +478,7 @@ VOID ProcessMove(PARSER_TEMP_DATA STACK_BASED * pParserTempData) + { +     if (pParserTempData->CD_Mask.SrcAlignment!=alignmentDword) +     { +-	pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData); ++				pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData); +     } else +     { + 	SkipDestination[pParserTempData->ParametersType.Destination](pParserTempData); +@@ -664,7 +668,8 @@ VOID ProcessSwitch(PARSER_TEMP_DATA STACK_BASED * pParserTempData){ +     pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData); +     pParserTempData->SourceData32 >>= SourceAlignmentShift[pParserTempData->CD_Mask.SrcAlignment]; +     pParserTempData->SourceData32 &= AlignmentMask[pParserTempData->CD_Mask.SrcAlignment]; +-    while ( *(UINT16*)pParserTempData->pWorkingTableData->IP != (((UINT16)NOP_OPCODE << 8)+NOP_OPCODE)) ++ ++    while ( UINT16LE_TO_CPU(*(UINT16*)pParserTempData->pWorkingTableData->IP) != (((UINT16)NOP_OPCODE << 8)+NOP_OPCODE)) +     { + 	if (*pParserTempData->pWorkingTableData->IP == 'c') + 	{ +@@ -673,7 +678,7 @@ VOID ProcessSwitch(PARSER_TEMP_DATA STACK_BASED * pParserTempData){ + 	    pParserTempData->Index=GetParametersDirect16(pParserTempData); + 	    if (pParserTempData->SourceData32 == pParserTempData->DestData32) + 	    { +-		pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(pParserTempData->Index); ++ 	        pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(pParserTempData->Index); + 		return; + 	    } + 	} +@@ -695,7 +700,7 @@ VOID	cmdSetDataBlock(PARSER_TEMP_DATA STACK_BASED * pParserTempData) +         } else + 	{ + 	    pMasterDataTable = GetDataMasterTablePointer(pParserTempData->pDeviceData); +-	    pParserTempData->CurrentDataBlock= (TABLE_UNIT_TYPE)((PTABLE_UNIT_TYPE)pMasterDataTable)[value]; ++	    pParserTempData->CurrentDataBlock= UINT16LE_TO_CPU((TABLE_UNIT_TYPE)((PTABLE_UNIT_TYPE)pMasterDataTable)[value]); + 	} +     } +     pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_VALUE_BYTE); +@@ -704,13 +709,13 @@ VOID	cmdSetDataBlock(PARSER_TEMP_DATA STACK_BASED * pParserTempData) + VOID	cmdSet_ATI_Port(PARSER_TEMP_DATA STACK_BASED * pParserTempData) + { +     pParserTempData->Multipurpose.CurrentPort=ATI_RegsPort; +-    pParserTempData->CurrentPortID = (UINT8)((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination; ++    pParserTempData->CurrentPortID = (UINT8)UINT16LE_TO_CPU(((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination); +     pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16); + } +  + VOID	cmdSet_Reg_Block(PARSER_TEMP_DATA STACK_BASED * pParserTempData) + { +-    pParserTempData->CurrentRegBlock = ((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination; ++    pParserTempData->CurrentRegBlock = UINT16LE_TO_CPU(((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination); +     pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16); + } +  +@@ -754,19 +759,23 @@ VOID ProcessDebug(PARSER_TEMP_DATA STACK_BASED * pParserTempData) +  + VOID ProcessDS(PARSER_TEMP_DATA STACK_BASED * pParserTempData) + { +-    pParserTempData->pWorkingTableData->IP+=((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination+sizeof(COMMAND_TYPE_OPCODE_OFFSET16); ++    pParserTempData->pWorkingTableData->IP+=UINT16LE_TO_CPU(((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination)+sizeof(COMMAND_TYPE_OPCODE_OFFSET16); + } +  +  +-VOID	cmdCall_Table(PARSER_TEMP_DATA STACK_BASED * pParserTempData){ ++VOID	cmdCall_Table(PARSER_TEMP_DATA STACK_BASED * pParserTempData) ++{ +     UINT16*	MasterTableOffset; +     pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_VALUE_BYTE); +     MasterTableOffset = GetCommandMasterTablePointer(pParserTempData->pDeviceData); +     if(((PTABLE_UNIT_TYPE)MasterTableOffset)[((COMMAND_TYPE_OPCODE_VALUE_BYTE*)pParserTempData->pCmd)->Value]!=0 )  // if the offset is not ZERO +     { ++	ATOM_TABLE_ATTRIBUTE lTableAttr; ++ + 	pParserTempData->CommandSpecific.IndexInMasterTable=GetTrueIndexInMasterTable(pParserTempData,((COMMAND_TYPE_OPCODE_VALUE_BYTE*)pParserTempData->pCmd)->Value); +-	pParserTempData->Multipurpose.PS_SizeInDwordsUsedByCallingTable = +-	    (((ATOM_COMMON_ROM_COMMAND_TABLE_HEADER *)pParserTempData->pWorkingTableData->pTableHead)->TableAttribute.PS_SizeInBytes>>2); ++ ++	lTableAttr = GetCommandTableAttribute(pParserTempData->pWorkingTableData->pTableHead); ++	pParserTempData->Multipurpose.PS_SizeInDwordsUsedByCallingTable = (lTableAttr.PS_SizeInBytes >>2); + 	pParserTempData->pDeviceData->pParameterSpace+= + 	    pParserTempData->Multipurpose.PS_SizeInDwordsUsedByCallingTable; + 	pParserTempData->Status=CD_CALL_TABLE; +@@ -792,7 +801,7 @@ VOID ProcessJump(PARSER_TEMP_DATA STACK_BASED * pParserTempData) + 	(pParserTempData->ParametersType.Destination == pParserTempData->CompareFlags )) +     { +  +-	pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16); ++      pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(UINT16LE_TO_CPU(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16)); +     } else +     { + 	pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16); +@@ -805,7 +814,7 @@ VOID ProcessJumpE(PARSER_TEMP_DATA STACK_BASED * pParserTempData) + 	(pParserTempData->CompareFlags == pParserTempData->ParametersType.Destination)) +     { +  +-	pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16); ++      pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(UINT16LE_TO_CPU(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16)); +     } else +     { + 	pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16); +@@ -817,7 +826,7 @@ VOID ProcessJumpNE(PARSER_TEMP_DATA STACK_BASED * pParserTempData) +     if (pParserTempData->CompareFlags != Equal) +     { +  +-	pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16); ++      pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(UINT16LE_TO_CPU(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16)); +     } else +     { + 	pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16); +diff --git a/src/AtomBios/Decoder.c b/src/AtomBios/Decoder.c +index e8b3b6e..73aac94 100644 +--- a/src/AtomBios/Decoder.c ++++ b/src/AtomBios/Decoder.c +@@ -40,12 +40,9 @@ Revision History: + #endif +  + #include <X11/Xos.h> +- ++#include "xorg-server.h" +  + #include "Decoder.h" +-#include "atombios.h" +-#include "CD_binding.h" +-#include "CD_Common_Types.h" +  + #ifndef DISABLE_EASF + 	#include "easf.h" +@@ -77,13 +74,13 @@ UINT16* GetCommandMasterTablePointer(DEVICE_DATA STACK_BASED*  pDeviceData) +     /* +     make MasterTableOffset point to EASF_ASIC_SETUP_TABLE structure, including usSize. +     */ +-		MasterTableOffset = (UINT16 *) (pDeviceData->pBIOS_Image+((EASF_ASIC_DESCRIPTOR*)pDeviceData->pBIOS_Image)->usAsicSetupTable_Offset); ++		MasterTableOffset = (UINT16 *) (pDeviceData->pBIOS_Image+(UINT16LE_TO_CPU(((EASF_ASIC_DESCRIPTOR*)pDeviceData->pBIOS_Image)->usAsicSetupTable_Offset)); + 	} else + #endif + 	{ + #ifndef		UEFI_BUILD +-		MasterTableOffset = (UINT16 *)(*(UINT16 *)(pDeviceData->pBIOS_Image+OFFSET_TO_POINTER_TO_ATOM_ROM_HEADER) + pDeviceData->pBIOS_Image); +-		MasterTableOffset = (UINT16 *)((ULONG)((ATOM_ROM_HEADER *)MasterTableOffset)->usMasterCommandTableOffset + pDeviceData->pBIOS_Image ); ++		MasterTableOffset = (UINT16 *)(UINT16LE_TO_CPU(*(UINT16 *)(pDeviceData->pBIOS_Image+OFFSET_TO_POINTER_TO_ATOM_ROM_HEADER)) + pDeviceData->pBIOS_Image); ++		MasterTableOffset = (UINT16 *)((ULONG)UINT16LE_TO_CPU(((ATOM_ROM_HEADER *)MasterTableOffset)->usMasterCommandTableOffset) + pDeviceData->pBIOS_Image ); + 		MasterTableOffset =(UINT16 *) &(((ATOM_MASTER_COMMAND_TABLE *)MasterTableOffset)->ListOfCommandTables); + #else + 	MasterTableOffset = (UINT16 *)(&(GetCommandMasterTable( )->ListOfCommandTables)); +@@ -97,8 +94,8 @@ UINT16* GetDataMasterTablePointer(DEVICE_DATA STACK_BASED*  pDeviceData) + 	UINT16		*MasterTableOffset; + 	 + #ifndef		UEFI_BUILD +-	MasterTableOffset = (UINT16 *)(*(UINT16 *)(pDeviceData->pBIOS_Image+OFFSET_TO_POINTER_TO_ATOM_ROM_HEADER) + pDeviceData->pBIOS_Image); +-	MasterTableOffset = (UINT16 *)((ULONG)((ATOM_ROM_HEADER *)MasterTableOffset)->usMasterDataTableOffset + pDeviceData->pBIOS_Image ); ++	MasterTableOffset = (UINT16 *)(UINT16LE_TO_CPU(*(UINT16 *)(pDeviceData->pBIOS_Image+OFFSET_TO_POINTER_TO_ATOM_ROM_HEADER)) + pDeviceData->pBIOS_Image); ++	MasterTableOffset = (UINT16 *)((ULONG)(UINT16LE_TO_CPU(((ATOM_ROM_HEADER *)MasterTableOffset)->usMasterDataTableOffset)) + pDeviceData->pBIOS_Image ); + 	MasterTableOffset =(UINT16 *) &(((ATOM_MASTER_DATA_TABLE *)MasterTableOffset)->ListOfDataTables); + #else + 	MasterTableOffset = (UINT16 *)(&(GetDataMasterTable( )->ListOfDataTables)); +@@ -129,11 +126,29 @@ UINT8 GetTrueIndexInMasterTable(PARSER_TEMP_DATA STACK_BASED * pParserTempData, + 	} + } +  ++ATOM_TABLE_ATTRIBUTE GetCommandTableAttribute(UINT8 *pTableHeader) ++{ ++  ATOM_TABLE_ATTRIBUTE_ACCESS lTableAccess; ++ ++  /* It's unclear whether this union trick breaks C aliasing rules, ++   * however, it's explicitely permitted by gcc, and we have other ++   * case where the code relies on a union being accessed by either ++   * of the "ways" and stay consistent so if a compiler breaks this ++   * assumption, it will probably need us to compile without strict ++   * aliasing enforcement ++	 */ ++	lTableAccess.sbfAccess = ((ATOM_COMMON_ROM_COMMAND_TABLE_HEADER *)pTableHeader)->TableAttribute; ++	lTableAccess.susAccess = UINT16LE_TO_CPU(lTableAccess.susAccess); ++ ++	return lTableAccess.sbfAccess; ++} ++ + CD_STATUS ParseTable(DEVICE_DATA STACK_BASED* pDeviceData, UINT8 IndexInMasterTable) + { + 	PARSER_TEMP_DATA	ParserTempData; +   WORKING_TABLE_DATA STACK_BASED* prevWorkingTableData; +  ++  memset(&ParserTempData, 0, sizeof(PARSER_TEMP_DATA)); +   ParserTempData.pDeviceData=(DEVICE_DATA*)pDeviceData; + #ifndef DISABLE_EASF +   if (pDeviceData->format == TABLE_FORMAT_EASF) +@@ -143,7 +158,7 @@ CD_STATUS ParseTable(DEVICE_DATA STACK_BASED* pDeviceData, UINT8 IndexInMasterTa + #endif +   { +     ParserTempData.pCmd=(GENERIC_ATTRIBUTE_COMMAND*)GetDataMasterTablePointer(pDeviceData); +-    ParserTempData.IndirectIOTablePointer=(UINT8*)((ULONG)(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[INDIRECT_IO_TABLE]) + pDeviceData->pBIOS_Image); ++    ParserTempData.IndirectIOTablePointer=(UINT8*)((ULONG)(UINT16LE_TO_CPU(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[INDIRECT_IO_TABLE])) + pDeviceData->pBIOS_Image); +     ParserTempData.IndirectIOTablePointer+=sizeof(ATOM_COMMON_TABLE_HEADER); +   } +  +@@ -160,65 +175,66 @@ CD_STATUS ParseTable(DEVICE_DATA STACK_BASED* pDeviceData, UINT8 IndexInMasterTa + 		ParserTempData.Status=CD_CALL_TABLE; +  + 		do{ +- ++			 + 			if (ParserTempData.Status==CD_CALL_TABLE) +-      { ++			{ + 				IndexInMasterTable=ParserTempData.CommandSpecific.IndexInMasterTable; + 				if(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable]!=0)  // if the offset is not ZERO +-					{ ++				{ ++				  ATOM_TABLE_ATTRIBUTE lTableAttr; ++				  lTableAttr = GetCommandTableAttribute(UINT16LE_TO_CPU(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable])+pDeviceData->pBIOS_Image); + #ifndef		UEFI_BUILD +   					ParserTempData.pWorkingTableData =(WORKING_TABLE_DATA STACK_BASED*) AllocateWorkSpace(pDeviceData, +-								((ATOM_COMMON_ROM_COMMAND_TABLE_HEADER*)(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable]+pDeviceData->pBIOS_Image))->TableAttribute.WS_SizeInBytes+sizeof(WORKING_TABLE_DATA)); ++															      lTableAttr.WS_SizeInBytes+sizeof(WORKING_TABLE_DATA)); + #else +-  					ParserTempData.pWorkingTableData =(WORKING_TABLE_DATA STACK_BASED*) AllocateWorkSpace(pDeviceData, +-								((ATOM_COMMON_ROM_COMMAND_TABLE_HEADER*)(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable]))->TableAttribute.WS_SizeInBytes+sizeof(WORKING_TABLE_DATA)); ++				  ParserTempData.pWorkingTableData =(WORKING_TABLE_DATA STACK_BASED*) AllocateWorkSpace(pDeviceData, ++															lTableAttr.WS_SizeInBytes+sizeof(WORKING_TABLE_DATA)); + #endif +-            if (ParserTempData.pWorkingTableData!=NULL) +-            { +-						  ParserTempData.pWorkingTableData->pWorkSpace=(WORKSPACE_POINTER STACK_BASED*)((UINT8*)ParserTempData.pWorkingTableData+sizeof(WORKING_TABLE_DATA)); ++					if (ParserTempData.pWorkingTableData!=NULL) ++					{ ++						ParserTempData.pWorkingTableData->pWorkSpace=(WORKSPACE_POINTER STACK_BASED*)((UINT8*)ParserTempData.pWorkingTableData+sizeof(WORKING_TABLE_DATA)); + #ifndef		UEFI_BUILD +-						  ParserTempData.pWorkingTableData->pTableHead  = (UINT8 *)(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable]+pDeviceData->pBIOS_Image); ++				      ParserTempData.pWorkingTableData->pTableHead  = (UINT8 *)(UINT16LE_TO_CPU(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable])+pDeviceData->pBIOS_Image); + #else +-						  ParserTempData.pWorkingTableData->pTableHead  = (UINT8 *)(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable]); ++				      ParserTempData.pWorkingTableData->pTableHead  = (UINT8 *)(UINT16LE_TO_CPU(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable])); + #endif +-	 					  ParserTempData.pWorkingTableData->IP=((UINT8*)ParserTempData.pWorkingTableData->pTableHead)+sizeof(ATOM_COMMON_ROM_COMMAND_TABLE_HEADER); +-              ParserTempData.pWorkingTableData->prevWorkingTableData=prevWorkingTableData; +-              prevWorkingTableData=ParserTempData.pWorkingTableData; +-              ParserTempData.Status = CD_SUCCESS; +-            } else ParserTempData.Status = CD_UNEXPECTED_BEHAVIOR; +-					} else ParserTempData.Status = CD_EXEC_TABLE_NOT_FOUND; ++						ParserTempData.pWorkingTableData->IP=((UINT8*)ParserTempData.pWorkingTableData->pTableHead)+sizeof(ATOM_COMMON_ROM_COMMAND_TABLE_HEADER); ++						ParserTempData.pWorkingTableData->prevWorkingTableData=prevWorkingTableData; ++						prevWorkingTableData=ParserTempData.pWorkingTableData; ++						ParserTempData.Status = CD_SUCCESS; ++					} else ParserTempData.Status = CD_UNEXPECTED_BEHAVIOR; ++				} else ParserTempData.Status = CD_EXEC_TABLE_NOT_FOUND; + 			} + 			if (!CD_ERROR(ParserTempData.Status)) + 			{ +-        ParserTempData.Status = CD_SUCCESS; ++				ParserTempData.Status = CD_SUCCESS; + 				while (!CD_ERROR_OR_COMPLETED(ParserTempData.Status))   +-        { +- ++				{ + 					if (IS_COMMAND_VALID(((COMMAND_HEADER*)ParserTempData.pWorkingTableData->IP)->Opcode)) +-          { ++					{ + 						ParserTempData.pCmd = (GENERIC_ATTRIBUTE_COMMAND*)ParserTempData.pWorkingTableData->IP; +- ++						 + 						if (IS_END_OF_TABLE(((COMMAND_HEADER*)ParserTempData.pWorkingTableData->IP)->Opcode)) + 						{ + 							ParserTempData.Status=CD_COMPLETED; +-              prevWorkingTableData=ParserTempData.pWorkingTableData->prevWorkingTableData; +- ++							prevWorkingTableData=ParserTempData.pWorkingTableData->prevWorkingTableData; ++							 + 							FreeWorkSpace(pDeviceData, ParserTempData.pWorkingTableData); +-              ParserTempData.pWorkingTableData=prevWorkingTableData; +-              if (prevWorkingTableData!=NULL) +-              { +-							  ParserTempData.pDeviceData->pParameterSpace-= +-								  		(((ATOM_COMMON_ROM_COMMAND_TABLE_HEADER*)ParserTempData.pWorkingTableData-> +-									  		pTableHead)->TableAttribute.PS_SizeInBytes>>2); +-              }  +-						// if there is a parent table where to return, then restore PS_pointer to the original state ++							ParserTempData.pWorkingTableData=prevWorkingTableData; ++							if (prevWorkingTableData!=NULL) ++							{ ++								ATOM_TABLE_ATTRIBUTE lTableAttr; ++								lTableAttr = GetCommandTableAttribute(ParserTempData.pWorkingTableData->pTableHead); ++								ParserTempData.pDeviceData->pParameterSpace-=(lTableAttr.PS_SizeInBytes>>2); ++							}  ++							// if there is a parent table where to return, then restore PS_pointer to the original state + 						} + 						else + 						{ +-              IndexInMasterTable=ProcessCommandProperties((PARSER_TEMP_DATA STACK_BASED *)&ParserTempData); ++							IndexInMasterTable=ProcessCommandProperties((PARSER_TEMP_DATA STACK_BASED *)&ParserTempData); + 							(*CallTable[IndexInMasterTable].function)((PARSER_TEMP_DATA STACK_BASED *)&ParserTempData); + #if (PARSER_TYPE!=DRIVER_TYPE_PARSER) +-              BIOS_STACK_MODIFIER(); ++							BIOS_STACK_MODIFIER(); + #endif + 						} + 					} +@@ -227,13 +243,13 @@ CD_STATUS ParseTable(DEVICE_DATA STACK_BASED* pDeviceData, UINT8 IndexInMasterTa + 						ParserTempData.Status=CD_INVALID_OPCODE; + 						break; + 					} +- ++					 + 				}	// while + 			}	// if + 			else + 				break; + 		} while (prevWorkingTableData!=NULL); +-    if (ParserTempData.Status == CD_COMPLETED) return CD_SUCCESS; ++		if (ParserTempData.Status == CD_COMPLETED) return CD_SUCCESS; + 		return ParserTempData.Status; + 	} else return CD_SUCCESS; + } +diff --git a/src/AtomBios/hwserv_drv.c b/src/AtomBios/hwserv_drv.c +index a5f5a5b..9f2b6b9 100644 +--- a/src/AtomBios/hwserv_drv.c ++++ b/src/AtomBios/hwserv_drv.c +@@ -34,8 +34,14 @@ Revision History: +  + 	NEG:27.09.2002	Initiated. + --*/ +-#include "CD_binding.h" +-#include "CD_hw_services.h" ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include <X11/Xos.h> ++#include "xorg-server.h" ++ ++#include "Decoder.h" +  + //trace settings + #if DEBUG_OUTPUT_DEVICE & 1 +@@ -249,12 +255,12 @@ VOID	WriteReg32(PARSER_TEMP_DATA STACK_BASED * pWorkingTableData) +  + VOID	ReadIndReg32 (PARSER_TEMP_DATA STACK_BASED * pWorkingTableData) + { +-    pWorkingTableData->IndirectData = CailReadATIRegister(pWorkingTableData->pDeviceData->CAIL,*(UINT16*)(pWorkingTableData->IndirectIOTablePointer+1)); ++    pWorkingTableData->IndirectData = CailReadATIRegister(pWorkingTableData->pDeviceData->CAIL,UINT16LE_TO_CPU(*(UINT16*)(pWorkingTableData->IndirectIOTablePointer+1))); + } +  + VOID	WriteIndReg32(PARSER_TEMP_DATA STACK_BASED * pWorkingTableData) + { +-    CailWriteATIRegister(pWorkingTableData->pDeviceData->CAIL,*(UINT16*)(pWorkingTableData->IndirectIOTablePointer+1),pWorkingTableData->IndirectData ); ++    CailWriteATIRegister(pWorkingTableData->pDeviceData->CAIL,UINT16LE_TO_CPU(*(UINT16*)(pWorkingTableData->IndirectIOTablePointer+1)),pWorkingTableData->IndirectData); + } +  + #endif +diff --git a/src/AtomBios/includes/CD_Common_Types.h b/src/AtomBios/includes/CD_Common_Types.h +index c60b652..071b8fd 100644 +--- a/src/AtomBios/includes/CD_Common_Types.h ++++ b/src/AtomBios/includes/CD_Common_Types.h +@@ -155,6 +155,18 @@ typedef unsigned long ULONG_PTR; + #ifndef FGL_LINUX + #pragma warning ( default : 4142 ) + #endif ++ ++#ifndef ATOM_BIG_ENDIAN ++#ifdef X_BYTE_ORDER ++#if X_BYTE_ORDER == X_BIG_ENDIAN ++#define ATOM_BIG_ENDIAN		1 ++#endif ++#endif ++#endif ++#ifndef ATOM_BIG_ENDIAN ++#define ATOM_BIG_ENDIAN		0 ++#endif ++ + #endif // _COMMON_TYPES_H_ +  + // EOF +diff --git a/src/AtomBios/includes/CD_Definitions.h b/src/AtomBios/includes/CD_Definitions.h +index 98fd495..c00e93e 100644 +--- a/src/AtomBios/includes/CD_Definitions.h ++++ b/src/AtomBios/includes/CD_Definitions.h +@@ -39,11 +39,12 @@ NEG:27.08.2002	Initiated. + #ifndef _CD_DEFINITIONS_H + #define _CD_DEFINITIONS_H_ + #ifdef DRIVER_PARSER +-VOID *AllocateMemory(VOID *, UINT16); ++VOID *AllocateMemory(DEVICE_DATA *, UINT16); + VOID ReleaseMemory(DEVICE_DATA * , WORKING_TABLE_DATA* ); + #endif + CD_STATUS ParseTable(DEVICE_DATA* pDeviceData, UINT8 IndexInMasterTable); + //CD_STATUS CD_MainLoop(PARSER_TEMP_DATA_POINTER pParserTempData); + CD_STATUS Main_Loop(DEVICE_DATA* pDeviceData,UINT16 *MasterTableOffset,UINT8 IndexInMasterTable); + UINT16* GetCommandMasterTablePointer(DEVICE_DATA*  pDeviceData); ++ATOM_TABLE_ATTRIBUTE GetCommandTableAttribute(UINT8 *pTableHeader); + #endif //CD_DEFINITIONS +diff --git a/src/AtomBios/includes/CD_Structs.h b/src/AtomBios/includes/CD_Structs.h +index c43f81d..01fb80e 100644 +--- a/src/AtomBios/includes/CD_Structs.h ++++ b/src/AtomBios/includes/CD_Structs.h +@@ -35,10 +35,18 @@ Revision History: + NEG:26.08.2002	Initiated. + --*/ +  +-#include "CD_binding.h" + #ifndef _CD_STRUCTS_H_ + #define _CD_STRUCTS_H_ +  ++#include "CD_binding.h" ++ ++/* Endaianness should be specified before inclusion, ++ * default to little endian ++ */ ++#ifndef ATOM_BIG_ENDIAN ++#error Endian not specified ++#endif ++ + #ifdef		UEFI_BUILD + typedef	UINT16**	PTABLE_UNIT_TYPE; + typedef	UINTN		TABLE_UNIT_TYPE; +@@ -304,9 +312,15 @@ typedef union _PARAMETER_ACCESS { + }PARAMETER_ACCESS; +  + typedef	struct _COMMAND_ATTRIBUTE { ++#if ATOM_BIG_ENDIAN ++    UINT8		DestinationAlignment:2; ++    UINT8		SourceAlignment:3; ++    UINT8		Source:3; ++#else +     UINT8		Source:3; +     UINT8		SourceAlignment:3; +     UINT8		DestinationAlignment:2; ++#endif + }COMMAND_ATTRIBUTE; +  + typedef struct _SOURCE_DESTINATION_ALIGNMENT{ +@@ -363,11 +377,19 @@ typedef union  _COMMAND_SPECIFIC_UNION{ +  +  + typedef struct _CD_GENERIC_BYTE{ ++#if ATOM_BIG_ENDIAN ++    UINT16					PS_SizeInDwordsUsedByCallingTable:5; ++    UINT16					CurrentPort:2; ++    UINT16					CommandAccessType:3; ++    UINT16					CurrentParameterSize:3; ++    UINT16					CommandType:3; ++#else +     UINT16					CommandType:3; +     UINT16					CurrentParameterSize:3; +     UINT16					CommandAccessType:3; +     UINT16					CurrentPort:2; +     UINT16					PS_SizeInDwordsUsedByCallingTable:5; ++#endif + }CD_GENERIC_BYTE; +  + typedef UINT8	COMMAND_TYPE_OPCODE_ONLY; +diff --git a/src/AtomBios/includes/Decoder.h b/src/AtomBios/includes/Decoder.h +index 24c25fc..1e143f0 100644 +--- a/src/AtomBios/includes/Decoder.h ++++ b/src/AtomBios/includes/Decoder.h +@@ -47,12 +47,32 @@ NEG:27.08.2002	Initiated. + #define PARSER_VERSION_MAJOR                   0x00000000 + #define PARSER_VERSION_MINOR                   0x0000000E + #define PARSER_VERSION                         (PARSER_VERSION_MAJOR | PARSER_VERSION_MINOR) +-#include "CD_binding.h" ++ + #include "CD_Common_Types.h" ++ ++#include "atombios.h" ++ ++/* these depends on some struct defined in atombios.h */ ++#include "CD_binding.h" + #include "CD_hw_services.h" + #include "CD_Structs.h" +-#include "CD_Definitions.h" + #include "CD_Opcodes.h" ++#include "CD_Definitions.h" ++ ++#if ATOM_BIG_ENDIAN ++extern UINT16 ATOM_BSWAP16(UINT16 x); ++extern UINT32 ATOM_BSWAP32(UINT32 x); ++ ++#define CPU_TO_UINT16LE(x)	ATOM_BSWAP16(x) ++#define CPU_TO_UINT32LE(x)	ATOM_BSWAP32(x) ++#define UINT16LE_TO_CPU(x)	ATOM_BSWAP16(x) ++#define UINT32LE_TO_CPU(x)	ATOM_BSWAP32(x) ++#else ++#define CPU_TO_UINT16LE(x)	(x) ++#define CPU_TO_UINT32LE(x)	(x) ++#define UINT16LE_TO_CPU(x)	(x) ++#define UINT32LE_TO_CPU(x)	(x) ++#endif +  + #define	SOURCE_ONLY_CMD_TYPE		0//0xFE + #define SOURCE_DESTINATION_CMD_TYPE	1//0xFD +diff --git a/src/AtomBios/includes/ObjectID.h b/src/AtomBios/includes/ObjectID.h +index 4b106cf..f1f18a4 100644 +--- a/src/AtomBios/includes/ObjectID.h ++++ b/src/AtomBios/includes/ObjectID.h +@@ -78,6 +78,10 @@ + #define ENCODER_OBJECT_ID_DP_DP501                0x1D + #define ENCODER_OBJECT_ID_INTERNAL_UNIPHY         0x1E + #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA   0x1F ++#define ENCODER_OBJECT_ID_INTERNAL_UNIPHY1        0x20 ++#define ENCODER_OBJECT_ID_INTERNAL_UNIPHY2        0x21 ++ ++#define ENCODER_OBJECT_ID_GENERAL_EXTERNAL_DVO    0xFF +  + /****************************************************/ + /* Connector Object ID Definition                   */ +@@ -118,6 +122,8 @@ + #define GRAPH_OBJECT_ENUM_ID2                     0x02 + #define GRAPH_OBJECT_ENUM_ID3                     0x03 + #define GRAPH_OBJECT_ENUM_ID4                     0x04 ++#define GRAPH_OBJECT_ENUM_ID5                     0x05 ++#define GRAPH_OBJECT_ENUM_ID6                     0x06 +  + /****************************************************/ + /* Graphics Object ID Bit definition                */ +@@ -173,7 +179,7 @@ + #define ENCODER_SI178_ENUM_ID1                   0x2117  + #define ENCODER_MVPU_FPGA_ENUM_ID1               0x2118 + #define ENCODER_INTERNAL_DDI_ENUM_ID1            0x2119 +-#define ENCODER_VT1625_ENUM_ID1               0x211A ++#define ENCODER_VT1625_ENUM_ID1                  0x211A + #define ENCODER_HDMI_SI1932_ENUM_ID1             0x211B + #define ENCODER_ENCODER_DP_AN9801_ENUM_ID1       0x211C + #define ENCODER_DP_DP501_ENUM_ID1                0x211D +@@ -323,6 +329,26 @@ +                                                  GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ +                                                  ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA << OBJECT_ID_SHIFT)   +  ++#define ENCODER_INTERNAL_UNIPHY1_ENUM_ID1         ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ ++                                                 GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ ++                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT) ++ ++#define ENCODER_INTERNAL_UNIPHY1_ENUM_ID2         ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ ++                                                 GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ ++                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT) ++ ++#define ENCODER_INTERNAL_UNIPHY2_ENUM_ID1         ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ ++                                                 GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ ++                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT) ++ ++#define ENCODER_INTERNAL_UNIPHY2_ENUM_ID2         ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ ++                                                 GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ ++                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT) ++ ++#define ENCODER_GENERAL_EXTERNAL_DVO_ENUM_ID1    ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ ++                                                  GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ ++                                                  ENCODER_OBJECT_ID_GENERAL_EXTERNAL_DVO << OBJECT_ID_SHIFT) ++ + /****************************************************/ + /* Connector Object ID definition - Shared with BIOS */ + /****************************************************/ +@@ -453,6 +479,14 @@ +                                                  GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ +                                                  CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT) +  ++#define CONNECTOR_DISPLAYPORT_ENUM_ID3         ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ ++                                                 GRAPH_OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\ ++                                                 CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT) ++ ++#define CONNECTOR_DISPLAYPORT_ENUM_ID4         ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ ++                                                 GRAPH_OBJECT_ENUM_ID4 << ENUM_ID_SHIFT |\ ++                                                 CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT) ++ + /****************************************************/ + /* Router Object ID definition - Shared with BIOS   */ + /****************************************************/ +diff --git a/src/AtomBios/includes/atombios.h b/src/AtomBios/includes/atombios.h +index 17483a6..9932b09 100644 +--- a/src/AtomBios/includes/atombios.h ++++ b/src/AtomBios/includes/atombios.h +@@ -34,6 +34,12 @@ +  + #define ATOM_HEADER_VERSION (ATOM_VERSION_MAJOR | ATOM_VERSION_MINOR) +  ++/* Endianness should be specified before inclusion, ++ * default to little endian ++ */ ++#ifndef ATOM_BIG_ENDIAN ++#error Endian not specified ++#endif +  + #ifdef _H2INC +   #ifndef ULONG  +@@ -260,7 +266,7 @@ typedef struct _ATOM_MASTER_LIST_OF_COMMAND_TABLES{ +   USHORT SetCRTC_UsingDTDTiming;                 //Atomic Table,  directly used by various SW components,latest version 1.1 +   USHORT ExternalEncoderControl;                 //Atomic Table,  directly used by various SW components,latest version 2.1 +   USHORT LVTMAOutputControl;                     //Atomic Table,  directly used by various SW components,latest version 1.1 +-  USHORT VRAM_BlockDetectionByStrap; ++  USHORT VRAM_BlockDetectionByStrap;             //Atomic Table,  used only by Bios +   USHORT MemoryCleanUp;                          //Atomic Table,  only used by Bios     +   USHORT ProcessI2cChannelTransaction;           //Function Table,only used by Bios +   USHORT WriteOneByteToHWAssistedI2C;            //Function Table,indirectly used by various SW components  +@@ -270,9 +276,9 @@ typedef struct _ATOM_MASTER_LIST_OF_COMMAND_TABLES{ +   USHORT MC_Synchronization;                     //Atomic Table,  indirectly used by various SW components,called from SetMemoryClock +   USHORT ComputeMemoryEnginePLL;                 //Atomic Table,  indirectly used by various SW components,called from SetMemory/EngineClock +   USHORT MemoryRefreshConversion;                //Atomic Table,  indirectly used by various SW components,called from SetMemory or SetEngineClock +-  USHORT VRAM_GetCurrentInfoBlock; ++  USHORT VRAM_GetCurrentInfoBlock;               //Atomic Table,  used only by Bios +   USHORT DynamicMemorySettings;                  //Atomic Table,  indirectly used by various SW components,called from SetMemoryClock +-  USHORT MemoryTraining; ++  USHORT MemoryTraining;                         //Atomic Table,  used only by Bios +   USHORT EnableSpreadSpectrumOnPPLL;             //Atomic Table,  directly used by various SW components,latest version 1.2 +   USHORT TMDSAOutputControl;                     //Atomic Table,  directly used by various SW components,latest version 1.1 +   USHORT SetVoltage;                             //Function Table,directly and/or indirectly used by various SW components,latest version 1.1 +@@ -290,11 +296,12 @@ typedef struct _ATOM_MASTER_LIST_OF_COMMAND_TABLES{ +   USHORT DPEncoderService;											 //Function Table,only used by Bios + }ATOM_MASTER_LIST_OF_COMMAND_TABLES;    +  ++// For backward compatible  + #define ReadEDIDFromHWAssistedI2C                ProcessI2cChannelTransaction +- + #define UNIPHYTransmitterControl						     DIG1TransmitterControl + #define LVTMATransmitterControl							     DIG2TransmitterControl +-#define SetCRTC_DPM_State                                    GetConditionalGoldenSetting ++#define SetCRTC_DPM_State                        GetConditionalGoldenSetting ++#define SetUniphyInstance                        ASIC_StaticPwrMgtStatusChange +  + typedef struct _ATOM_MASTER_COMMAND_TABLE + { +@@ -302,9 +309,12 @@ typedef struct _ATOM_MASTER_COMMAND_TABLE +   ATOM_MASTER_LIST_OF_COMMAND_TABLES ListOfCommandTables; + }ATOM_MASTER_COMMAND_TABLE; +  ++/****************************************************************************/	 ++// Structures used in every command table ++/****************************************************************************/	 + typedef struct _ATOM_TABLE_ATTRIBUTE + { +-#if X_BYTE_ORDER == X_BIG_ENDIAN ++#if ATOM_BIG_ENDIAN +   USHORT  UpdatedByUtility:1;         //[15]=Table updated by utility flag +   USHORT  PS_SizeInBytes:7;           //[14:8]=Size of parameter space in Bytes (multiple of a dword),  +   USHORT  WS_SizeInBytes:8;           //[7:0]=Size of workspace in Bytes (in multiple of a dword),  +@@ -315,23 +325,26 @@ typedef struct _ATOM_TABLE_ATTRIBUTE + #endif + }ATOM_TABLE_ATTRIBUTE; +  +-// Common header for all command tables. +-//Every table pointed by _ATOM_MASTER_COMMAND_TABLE has this common header.  +-//And the pointer actually points to this header. ++typedef union _ATOM_TABLE_ATTRIBUTE_ACCESS ++{ ++  ATOM_TABLE_ATTRIBUTE sbfAccess; ++  USHORT               susAccess; ++}ATOM_TABLE_ATTRIBUTE_ACCESS; +  ++/****************************************************************************/	 ++// Common header for all command tables. ++// Every table pointed by _ATOM_MASTER_COMMAND_TABLE has this common header.  ++// And the pointer actually points to this header. ++/****************************************************************************/	 + typedef struct _ATOM_COMMON_ROM_COMMAND_TABLE_HEADER + { +   ATOM_COMMON_TABLE_HEADER CommonHeader; +   ATOM_TABLE_ATTRIBUTE     TableAttribute;	 + }ATOM_COMMON_ROM_COMMAND_TABLE_HEADER; +  +- +-typedef struct _ASIC_INIT_PARAMETERS +-{ +-  ULONG ulDefaultEngineClock;         //In 10Khz unit +-  ULONG ulDefaultMemoryClock;         //In 10Khz unit +-}ASIC_INIT_PARAMETERS; +- ++/****************************************************************************/	 ++// Structures used by ComputeMemoryEnginePLLTable ++/****************************************************************************/	 + #define COMPUTE_MEMORY_PLL_PARAM        1 + #define COMPUTE_ENGINE_PLL_PARAM        2 +  +@@ -368,6 +381,57 @@ typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V2 + #define b3FIRST_TIME_CHANGE_CLOCK									0x08       //Applicable to both memory and engine clock change,when set, it means this is 1st time to change clock after ASIC bootup + #define b3SKIP_SW_PROGRAM_PLL											0x10			 //Applicable to both memory and engine clock change, when set, it means the table will not program SPLL/MPLL +  ++typedef struct _ATOM_COMPUTE_CLOCK_FREQ ++{ ++#if ATOM_BIG_ENDIAN ++  ULONG ulComputeClockFlag:8;                 // =1: COMPUTE_MEMORY_PLL_PARAM, =2: COMPUTE_ENGINE_PLL_PARAM ++  ULONG ulClockFreq:24;                       // in unit of 10kHz ++#else ++  ULONG ulClockFreq:24;                       // in unit of 10kHz ++  ULONG ulComputeClockFlag:8;                 // =1: COMPUTE_MEMORY_PLL_PARAM, =2: COMPUTE_ENGINE_PLL_PARAM ++#endif ++}ATOM_COMPUTE_CLOCK_FREQ; ++ ++typedef struct _ATOM_S_MPLL_FB_DIVIDER ++{ ++  USHORT usFbDivFrac;   ++  USHORT usFbDiv;   ++}ATOM_S_MPLL_FB_DIVIDER; ++ ++typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V3 ++{ ++  union ++  { ++    ATOM_COMPUTE_CLOCK_FREQ  ulClock;         //Input Parameter ++    ATOM_S_MPLL_FB_DIVIDER   ulFbDiv;         //Output Parameter ++  }; ++  UCHAR   ucRefDiv;                           //Output Parameter       ++  UCHAR   ucPostDiv;                          //Output Parameter       ++  UCHAR   ucCntlFlag;                         //Output Parameter       ++  UCHAR   ucReserved; ++}COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V3; ++ ++// ucCntlFlag ++#define ATOM_PLL_CNTL_FLAG_PLL_POST_DIV_EN          1 ++#define ATOM_PLL_CNTL_FLAG_MPLL_VCO_MODE            2 ++#define ATOM_PLL_CNTL_FLAG_FRACTION_DISABLE         4 ++ ++typedef struct _DYNAMICE_MEMORY_SETTINGS_PARAMETER ++{ ++  ATOM_COMPUTE_CLOCK_FREQ ulClock; ++  ULONG ulReserved[2]; ++}DYNAMICE_MEMORY_SETTINGS_PARAMETER; ++ ++typedef struct _DYNAMICE_ENGINE_SETTINGS_PARAMETER ++{ ++  ATOM_COMPUTE_CLOCK_FREQ ulClock; ++  ULONG ulMemoryClock; ++  ULONG ulReserved; ++}DYNAMICE_ENGINE_SETTINGS_PARAMETER; ++ ++/****************************************************************************/	 ++// Structures used by SetEngineClockTable ++/****************************************************************************/	 + typedef struct _SET_ENGINE_CLOCK_PARAMETERS + { +   ULONG ulTargetEngineClock;          //In 10Khz unit +@@ -379,7 +443,9 @@ typedef struct _SET_ENGINE_CLOCK_PS_ALLOCATION +   COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_PS_ALLOCATION sReserved; + }SET_ENGINE_CLOCK_PS_ALLOCATION; +  +- ++/****************************************************************************/	 ++// Structures used by SetMemoryClockTable ++/****************************************************************************/	 + typedef struct _SET_MEMORY_CLOCK_PARAMETERS + { +   ULONG ulTargetMemoryClock;          //In 10Khz unit +@@ -391,13 +457,24 @@ typedef struct _SET_MEMORY_CLOCK_PS_ALLOCATION +   COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_PS_ALLOCATION sReserved; + }SET_MEMORY_CLOCK_PS_ALLOCATION; +  ++/****************************************************************************/	 ++// Structures used by ASIC_Init.ctb ++/****************************************************************************/	 ++typedef struct _ASIC_INIT_PARAMETERS ++{ ++  ULONG ulDefaultEngineClock;         //In 10Khz unit ++  ULONG ulDefaultMemoryClock;         //In 10Khz unit ++}ASIC_INIT_PARAMETERS; ++ + typedef struct _ASIC_INIT_PS_ALLOCATION + { +   ASIC_INIT_PARAMETERS sASICInitClocks; +   SET_ENGINE_CLOCK_PS_ALLOCATION sReserved; //Caller doesn't need to init this structure + }ASIC_INIT_PS_ALLOCATION; +  +- ++/****************************************************************************/	 ++// Structure used by DynamicClockGatingTable.ctb ++/****************************************************************************/	 + typedef struct _DYNAMIC_CLOCK_GATING_PARAMETERS  + { +   UCHAR ucEnable;                     // ATOM_ENABLE or ATOM_DISABLE +@@ -405,7 +482,9 @@ typedef struct _DYNAMIC_CLOCK_GATING_PARAMETERS + }DYNAMIC_CLOCK_GATING_PARAMETERS; + #define  DYNAMIC_CLOCK_GATING_PS_ALLOCATION  DYNAMIC_CLOCK_GATING_PARAMETERS +  +- ++/****************************************************************************/	 ++// Structure used by EnableASIC_StaticPwrMgtTable.ctb ++/****************************************************************************/	 + typedef struct _ENABLE_ASIC_STATIC_PWR_MGT_PARAMETERS + { +   UCHAR ucEnable;                     // ATOM_ENABLE or ATOM_DISABLE +@@ -413,7 +492,9 @@ typedef struct _ENABLE_ASIC_STATIC_PWR_MGT_PARAMETERS + }ENABLE_ASIC_STATIC_PWR_MGT_PARAMETERS; + #define ENABLE_ASIC_STATIC_PWR_MGT_PS_ALLOCATION  ENABLE_ASIC_STATIC_PWR_MGT_PARAMETERS +  +- ++/****************************************************************************/	 ++// Structures used by DAC_LoadDetectionTable.ctb ++/****************************************************************************/	 + typedef struct _DAC_LOAD_DETECTION_PARAMETERS + { +   USHORT usDeviceID;                  //{ATOM_DEVICE_CRTx_SUPPORT,ATOM_DEVICE_TVx_SUPPORT,ATOM_DEVICE_CVx_SUPPORT} +@@ -424,14 +505,15 @@ typedef struct _DAC_LOAD_DETECTION_PARAMETERS + // DAC_LOAD_DETECTION_PARAMETERS.ucMisc + #define DAC_LOAD_MISC_YPrPb						0x01 +  +- + typedef struct _DAC_LOAD_DETECTION_PS_ALLOCATION + { +   DAC_LOAD_DETECTION_PARAMETERS            sDacload; +   ULONG                                    Reserved[2];// Don't set this one, allocation for EXT DAC + }DAC_LOAD_DETECTION_PS_ALLOCATION; +  +- ++/****************************************************************************/	 ++// Structures used by DAC1EncoderControlTable.ctb and DAC2EncoderControlTable.ctb ++/****************************************************************************/	 + typedef struct _DAC_ENCODER_CONTROL_PARAMETERS  + { +   USHORT usPixelClock;                // in 10KHz; for bios convenient +@@ -443,14 +525,11 @@ typedef struct _DAC_ENCODER_CONTROL_PARAMETERS +  + #define DAC_ENCODER_CONTROL_PS_ALLOCATION  DAC_ENCODER_CONTROL_PARAMETERS +  +-typedef struct _TV_ENCODER_CONTROL_PARAMETERS +-{ +-  USHORT usPixelClock;                // in 10KHz; for bios convenient +-  UCHAR  ucTvStandard;                // See definition "ATOM_TV_NTSC ..." +-  UCHAR  ucAction;                    // 0: turn off encoder +-                                      // 1: setup and turn on encoder +-}TV_ENCODER_CONTROL_PARAMETERS; +- ++/****************************************************************************/	 ++// Structures used by DIG1EncoderControlTable ++//                    DIG2EncoderControlTable ++//                    ExternalEncoderControlTable ++/****************************************************************************/	 + typedef struct _DIG_ENCODER_CONTROL_PARAMETERS + { +   USHORT usPixelClock;		// in 10KHz; for bios convenient +@@ -475,7 +554,6 @@ typedef struct _DIG_ENCODER_CONTROL_PARAMETERS + }DIG_ENCODER_CONTROL_PARAMETERS; + #define DIG_ENCODER_CONTROL_PS_ALLOCATION			  DIG_ENCODER_CONTROL_PARAMETERS + #define EXTERNAL_ENCODER_CONTROL_PARAMETER			DIG_ENCODER_CONTROL_PARAMETERS +-#define EXTERNAL_ENCODER_CONTROL_PS_ALLOCATION	DIG_ENCODER_CONTROL_PS_ALLOCATION +  + //ucConfig + #define ATOM_ENCODER_CONFIG_DPLINKRATE_MASK				0x01 +@@ -506,6 +584,56 @@ typedef struct _DIG_ENCODER_CONTROL_PARAMETERS + #define ATOM_ENCODER_MODE_CV											14 + #define ATOM_ENCODER_MODE_CRT											15 +  ++typedef struct _ATOM_DIG_ENCODER_CONFIG_V2 ++{ ++#if ATOM_BIG_ENDIAN ++    UCHAR ucReserved1:2; ++    UCHAR ucTransmitterSel:2;     // =0: UniphyAB, =1: UniphyCD  =2: UniphyEF ++    UCHAR ucLinkSel:1;            // =0: linkA/C/E =1: linkB/D/F ++    UCHAR ucReserved:1; ++    UCHAR ucDPLinkRate:1;         // =0: 1.62Ghz, =1: 2.7Ghz ++#else ++    UCHAR ucDPLinkRate:1;         // =0: 1.62Ghz, =1: 2.7Ghz ++    UCHAR ucReserved:1; ++    UCHAR ucLinkSel:1;            // =0: linkA/C/E =1: linkB/D/F ++    UCHAR ucTransmitterSel:2;     // =0: UniphyAB, =1: UniphyCD  =2: UniphyEF ++    UCHAR ucReserved1:2; ++#endif ++}ATOM_DIG_ENCODER_CONFIG_V2; ++ ++ ++typedef struct _DIG_ENCODER_CONTROL_PARAMETERS_V2 ++{ ++  USHORT usPixelClock;      // in 10KHz; for bios convenient ++  ATOM_DIG_ENCODER_CONFIG_V2 acConfig; ++  UCHAR ucAction;                                        ++  UCHAR ucEncoderMode; ++                            // =0: DP   encoder       ++                            // =1: LVDS encoder           ++                            // =2: DVI  encoder   ++                            // =3: HDMI encoder ++                            // =4: SDVO encoder ++  UCHAR ucLaneNum;          // how many lanes to enable ++  UCHAR ucReserved[2]; ++}DIG_ENCODER_CONTROL_PARAMETERS_V2; ++ ++//ucConfig ++#define ATOM_ENCODER_CONFIG_V2_DPLINKRATE_MASK				0x01 ++#define ATOM_ENCODER_CONFIG_V2_DPLINKRATE_1_62GHZ		  0x00 ++#define ATOM_ENCODER_CONFIG_V2_DPLINKRATE_2_70GHZ		  0x01 ++#define ATOM_ENCODER_CONFIG_V2_LINK_SEL_MASK				  0x04 ++#define ATOM_ENCODER_CONFIG_V2_LINKA								  0x00 ++#define ATOM_ENCODER_CONFIG_V2_LINKB								  0x04 ++#define ATOM_ENCODER_CONFIG_V2_TRANSMITTER_SEL_MASK	  0x18 ++#define ATOM_ENCODER_CONFIG_V2_TRANSMITTER1				    0x00 ++#define ATOM_ENCODER_CONFIG_V2_TRANSMITTER2				    0x08 ++#define ATOM_ENCODER_CONFIG_V2_TRANSMITTER3				    0x10 ++ ++/****************************************************************************/	 ++// Structures used by UNIPHYTransmitterControlTable ++//                    LVTMATransmitterControlTable ++//                    DVOOutputControlTable ++/****************************************************************************/	 + typedef struct _ATOM_DP_VS_MODE + { +   UCHAR ucLaneSel; +@@ -583,7 +711,82 @@ typedef struct _DIG_TRANSMITTER_CONTROL_PARAMETERS + #define ATOM_TRANSMITTER_ACTION_SETUP						       10 + #define ATOM_TRANSMITTER_ACTION_SETUP_VSEMPH           11 +  +-/****************************Device Output Control Command Table Definitions**********************/ ++ ++// Following are used for DigTransmitterControlTable ver1.2 ++typedef struct _ATOM_DIG_TRANSMITTER_CONFIG_V2 ++{ ++#if ATOM_BIG_ENDIAN ++  UCHAR ucTransmitterSel:2;         //bit7:6: =0 Dig Transmitter 1 ( Uniphy AB ) ++                                    //        =1 Dig Transmitter 2 ( Uniphy CD ) ++                                    //        =2 Dig Transmitter 3 ( Uniphy EF ) ++  UCHAR ucReserved:1;                ++  UCHAR fDPConnector:1;             //bit4=0: DP connector  =1: None DP connector ++  UCHAR ucEncoderSel:1;             //bit3=0: Data/Clk path source from DIGA( DIG inst0 ). =1: Data/clk path source from DIGB ( DIG inst1 ) ++  UCHAR ucLinkSel:1;                //bit2=0: Uniphy LINKA or C or E when fDualLinkConnector=0. when fDualLinkConnector=1, it means master link of dual link is A or C or E ++                                    //    =1: Uniphy LINKB or D or F when fDualLinkConnector=0. when fDualLinkConnector=1, it means master link of dual link is B or D or F ++ ++  UCHAR fCoherentMode:1;            //bit1=1: Coherent Mode ( for DVI/HDMI mode ) ++  UCHAR fDualLinkConnector:1;       //bit0=1: Dual Link DVI connector ++#else ++  UCHAR fDualLinkConnector:1;       //bit0=1: Dual Link DVI connector ++  UCHAR fCoherentMode:1;            //bit1=1: Coherent Mode ( for DVI/HDMI mode ) ++  UCHAR ucLinkSel:1;                //bit2=0: Uniphy LINKA or C or E when fDualLinkConnector=0. when fDualLinkConnector=1, it means master link of dual link is A or C or E ++                                    //    =1: Uniphy LINKB or D or F when fDualLinkConnector=0. when fDualLinkConnector=1, it means master link of dual link is B or D or F ++  UCHAR ucEncoderSel:1;             //bit3=0: Data/Clk path source from DIGA( DIG inst0 ). =1: Data/clk path source from DIGB ( DIG inst1 ) ++  UCHAR fDPConnector:1;             //bit4=0: DP connector  =1: None DP connector ++  UCHAR ucReserved:1;                ++  UCHAR ucTransmitterSel:2;         //bit7:6: =0 Dig Transmitter 1 ( Uniphy AB ) ++                                    //        =1 Dig Transmitter 2 ( Uniphy CD ) ++                                    //        =2 Dig Transmitter 3 ( Uniphy EF ) ++#endif ++}ATOM_DIG_TRANSMITTER_CONFIG_V2; ++ ++//ucConfig  ++//Bit0 ++#define ATOM_TRANSMITTER_CONFIG_V2_DUAL_LINK_CONNECTOR			0x01 ++ ++//Bit1 ++#define ATOM_TRANSMITTER_CONFIG_V2_COHERENT				          0x02 ++ ++//Bit2 ++#define ATOM_TRANSMITTER_CONFIG_V2_LINK_SEL_MASK		        0x04 ++#define ATOM_TRANSMITTER_CONFIG_V2_LINKA  			            0x00			 ++#define ATOM_TRANSMITTER_CONFIG_V2_LINKB				            0x04 ++ ++// Bit3 ++#define ATOM_TRANSMITTER_CONFIG_V2_ENCODER_SEL_MASK	        0x08 ++#define ATOM_TRANSMITTER_CONFIG_V2_DIG1_ENCODER		          0x00				// only used when ucAction == ATOM_TRANSMITTER_ACTION_ENABLE or ATOM_TRANSMITTER_ACTION_SETUP ++#define ATOM_TRANSMITTER_CONFIG_V2_DIG2_ENCODER		          0x08				// only used when ucAction == ATOM_TRANSMITTER_ACTION_ENABLE or ATOM_TRANSMITTER_ACTION_SETUP ++ ++// Bit4 ++#define ATOM_TRASMITTER_CONFIG_V2_DP_CONNECTOR			        0x10 ++ ++// Bit7:6 ++#define ATOM_TRANSMITTER_CONFIG_V2_TRANSMITTER_SEL_MASK     0xC0 ++#define ATOM_TRANSMITTER_CONFIG_V2_TRANSMITTER1           	0x00	//AB ++#define ATOM_TRANSMITTER_CONFIG_V2_TRANSMITTER2           	0x40	//CD ++#define ATOM_TRANSMITTER_CONFIG_V2_TRANSMITTER3           	0x80	//EF ++ ++typedef struct _DIG_TRANSMITTER_CONTROL_PARAMETERS_V2 ++{ ++	union ++	{ ++  USHORT usPixelClock;		// in 10KHz; for bios convenient ++	USHORT usInitInfo;			// when init uniphy,lower 8bit is used for connector type defined in objectid.h ++  ATOM_DP_VS_MODE asMode; // DP Voltage swing mode ++	}; ++  ATOM_DIG_TRANSMITTER_CONFIG_V2 acConfig; ++	UCHAR ucAction;				  // define as ATOM_TRANSMITER_ACTION_XXX	                        ++  UCHAR ucReserved[4]; ++}DIG_TRANSMITTER_CONTROL_PARAMETERS_V2; ++ ++ ++/****************************************************************************/	 ++// Structures used by DAC1OuputControlTable ++//                    DAC2OuputControlTable ++//                    LVTMAOutputControlTable  (Before DEC30) ++//                    TMDSAOutputControlTable  (Before DEC30) ++/****************************************************************************/	 + typedef struct _DISPLAY_DEVICE_OUTPUT_CONTROL_PARAMETERS + { +   UCHAR  ucAction;                    // Possible input:ATOM_ENABLE||ATOMDISABLE +@@ -622,7 +825,9 @@ typedef struct _DISPLAY_DEVICE_OUTPUT_CONTROL_PARAMETERS + #define DVO_OUTPUT_CONTROL_PS_ALLOCATION   DIG_TRANSMITTER_CONTROL_PS_ALLOCATION + #define DVO_OUTPUT_CONTROL_PARAMETERS_V3	 DIG_TRANSMITTER_CONTROL_PARAMETERS +  +-/**************************************************************************/ ++/****************************************************************************/	 ++// Structures used by BlankCRTCTable ++/****************************************************************************/	 + typedef struct _BLANK_CRTC_PARAMETERS + { +   UCHAR  ucCRTC;                    	// ATOM_CRTC1 or ATOM_CRTC2 +@@ -633,7 +838,11 @@ typedef struct _BLANK_CRTC_PARAMETERS + }BLANK_CRTC_PARAMETERS; + #define BLANK_CRTC_PS_ALLOCATION    BLANK_CRTC_PARAMETERS +  +- ++/****************************************************************************/	 ++// Structures used by EnableCRTCTable ++//                    EnableCRTCMemReqTable ++//                    UpdateCRTC_DoubleBufferRegistersTable ++/****************************************************************************/	 + typedef struct _ENABLE_CRTC_PARAMETERS + { +   UCHAR ucCRTC;                    	  // ATOM_CRTC1 or ATOM_CRTC2 +@@ -642,7 +851,9 @@ typedef struct _ENABLE_CRTC_PARAMETERS + }ENABLE_CRTC_PARAMETERS; + #define ENABLE_CRTC_PS_ALLOCATION   ENABLE_CRTC_PARAMETERS +  +- ++/****************************************************************************/	 ++// Structures used by SetCRTC_OverScanTable ++/****************************************************************************/	 + typedef struct _SET_CRTC_OVERSCAN_PARAMETERS + { +   USHORT usOverscanRight;             // right +@@ -654,7 +865,9 @@ typedef struct _SET_CRTC_OVERSCAN_PARAMETERS + }SET_CRTC_OVERSCAN_PARAMETERS; + #define SET_CRTC_OVERSCAN_PS_ALLOCATION  SET_CRTC_OVERSCAN_PARAMETERS +  +- ++/****************************************************************************/	 ++// Structures used by SetCRTC_ReplicationTable ++/****************************************************************************/	 + typedef struct _SET_CRTC_REPLICATION_PARAMETERS + { +   UCHAR ucH_Replication;              // horizontal replication +@@ -664,7 +877,9 @@ typedef struct _SET_CRTC_REPLICATION_PARAMETERS + }SET_CRTC_REPLICATION_PARAMETERS; + #define SET_CRTC_REPLICATION_PS_ALLOCATION  SET_CRTC_REPLICATION_PARAMETERS +  +- ++/****************************************************************************/	 ++// Structures used by SelectCRTC_SourceTable ++/****************************************************************************/	 + typedef struct _SELECT_CRTC_SOURCE_PARAMETERS + { +   UCHAR ucCRTC;                    	  // ATOM_CRTC1 or ATOM_CRTC2 +@@ -701,6 +916,10 @@ typedef struct _SELECT_CRTC_SOURCE_PARAMETERS_V2 + //#define ATOM_ENCODER_MODE_CV										14 + //#define ATOM_ENCODER_MODE_CRT										15 +  ++/****************************************************************************/	 ++// Structures used by SetPixelClockTable ++//                    GetPixelClockTable  ++/****************************************************************************/	 + //Major revision=1., Minor revision=1 + typedef struct _PIXEL_CLOCK_PARAMETERS + { +@@ -716,7 +935,6 @@ typedef struct _PIXEL_CLOCK_PARAMETERS +   UCHAR  ucPadding; + }PIXEL_CLOCK_PARAMETERS; +  +- + //Major revision=1., Minor revision=2, add ucMiscIfno + //ucMiscInfo: + #define MISC_FORCE_REPROG_PIXEL_CLOCK 0x1 +@@ -787,6 +1005,9 @@ typedef struct _PIXEL_CLOCK_PARAMETERS_V3 + #define PIXEL_CLOCK_PARAMETERS_LAST			PIXEL_CLOCK_PARAMETERS_V2 + #define GET_PIXEL_CLOCK_PS_ALLOCATION		PIXEL_CLOCK_PARAMETERS_LAST +  ++/****************************************************************************/	 ++// Structures used by AdjustDisplayPllTable ++/****************************************************************************/	 + typedef struct _ADJUST_DISPLAY_PLL_PARAMETERS + { + 	USHORT usPixelClock; +@@ -804,6 +1025,9 @@ typedef struct _ADJUST_DISPLAY_PLL_PARAMETERS +  + #define ADJUST_DISPLAY_PLL_PS_ALLOCATION			ADJUST_DISPLAY_PLL_PARAMETERS +  ++/****************************************************************************/	 ++// Structures used by EnableYUVTable ++/****************************************************************************/	 + typedef struct _ENABLE_YUV_PARAMETERS + { +   UCHAR ucEnable;                     // ATOM_ENABLE:Enable YUV or ATOM_DISABLE:Disable YUV (RGB) +@@ -812,20 +1036,27 @@ typedef struct _ENABLE_YUV_PARAMETERS + }ENABLE_YUV_PARAMETERS; + #define ENABLE_YUV_PS_ALLOCATION ENABLE_YUV_PARAMETERS +  ++/****************************************************************************/	 ++// Structures used by GetMemoryClockTable ++/****************************************************************************/	 + typedef struct _GET_MEMORY_CLOCK_PARAMETERS + { +   ULONG ulReturnMemoryClock;          // current memory speed in 10KHz unit + } GET_MEMORY_CLOCK_PARAMETERS; + #define GET_MEMORY_CLOCK_PS_ALLOCATION  GET_MEMORY_CLOCK_PARAMETERS +  +- ++/****************************************************************************/	 ++// Structures used by GetEngineClockTable ++/****************************************************************************/	 + typedef struct _GET_ENGINE_CLOCK_PARAMETERS + { +   ULONG ulReturnEngineClock;          // current engine speed in 10KHz unit + } GET_ENGINE_CLOCK_PARAMETERS; + #define GET_ENGINE_CLOCK_PS_ALLOCATION  GET_ENGINE_CLOCK_PARAMETERS +  +- ++/****************************************************************************/	 ++// Following Structures and constant may be obsolete ++/****************************************************************************/	 + //Maxium 8 bytes,the data read in will be placed in the parameter space. + //Read operaion successeful when the paramter space is non-zero, otherwise read operation failed + typedef struct _READ_EDID_FROM_HW_I2C_DATA_PARAMETERS +@@ -875,6 +1106,9 @@ typedef struct _SET_UP_HW_I2C_DATA_PARAMETERS + /**************************************************************************/ + #define SPEED_FAN_CONTROL_PS_ALLOCATION   WRITE_ONE_BYTE_HW_I2C_DATA_PARAMETERS +  ++/****************************************************************************/	 ++// Structures used by PowerConnectorDetectionTable ++/****************************************************************************/	 + typedef struct	_POWER_CONNECTOR_DETECTION_PARAMETERS + { +   UCHAR   ucPowerConnectorStatus;      //Used for return value 0: detected, 1:not detected +@@ -891,6 +1125,10 @@ typedef struct POWER_CONNECTOR_DETECTION_PS_ALLOCATION + }POWER_CONNECTOR_DETECTION_PS_ALLOCATION; +  + /****************************LVDS SS Command Table Definitions**********************/ ++ ++/****************************************************************************/	 ++// Structures used by EnableSpreadSpectrumOnPPLLTable ++/****************************************************************************/	 + typedef struct	_ENABLE_LVDS_SS_PARAMETERS + { +   USHORT  usSpreadSpectrumPercentage;        +@@ -936,6 +1174,9 @@ typedef struct _SET_PIXEL_CLOCK_PS_ALLOCATION +  + #define ENABLE_VGA_RENDER_PS_ALLOCATION   SET_PIXEL_CLOCK_PS_ALLOCATION +  ++/****************************************************************************/	 ++// Structures used by ### ++/****************************************************************************/	 + typedef struct	_MEMORY_TRAINING_PARAMETERS + { +   ULONG ulTargetMemoryClock;          //In 10Khz unit +@@ -943,8 +1184,14 @@ typedef struct	_MEMORY_TRAINING_PARAMETERS + #define MEMORY_TRAINING_PS_ALLOCATION MEMORY_TRAINING_PARAMETERS +  +  +- + /****************************LVDS and other encoder command table definitions **********************/ ++ ++ ++/****************************************************************************/	 ++// Structures used by LVDSEncoderControlTable   (Before DCE30) ++//                    LVTMAEncoderControlTable  (Before DCE30) ++//                    TMDSAEncoderControlTable  (Before DCE30) ++/****************************************************************************/	 + typedef struct _LVDS_ENCODER_CONTROL_PARAMETERS + { +   USHORT usPixelClock;  // in 10KHz; for bios convenient +@@ -964,19 +1211,6 @@ typedef struct _LVDS_ENCODER_CONTROL_PARAMETERS + #define TMDS2_ENCODER_CONTROL_PARAMETERS    TMDS1_ENCODER_CONTROL_PARAMETERS + #define TMDS2_ENCODER_CONTROL_PS_ALLOCATION TMDS2_ENCODER_CONTROL_PARAMETERS +  +-typedef struct _ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS +-{                                +-  UCHAR    ucEnable;            // Enable or Disable External TMDS encoder +-  UCHAR    ucMisc;              // Bit0=0:Enable Single link;=1:Enable Dual link;Bit1 {=0:666RGB, =1:888RGB} +-  UCHAR    ucPadding[2]; +-}ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS; +- +-typedef struct _ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION +-{                                +-  ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS    sXTmdsEncoder; +-  WRITE_ONE_BYTE_HW_I2C_DATA_PS_ALLOCATION   sReserved;     //Caller doesn't need to init this portion +-}ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION; +- +  + //ucTableFormatRevision=1,ucTableContentRevision=2 + typedef struct _LVDS_ENCODER_CONTROL_PARAMETERS_V2 +@@ -1016,6 +1250,32 @@ typedef struct _LVDS_ENCODER_CONTROL_PARAMETERS_V2 +    + #define TMDS2_ENCODER_CONTROL_PARAMETERS_V2    TMDS1_ENCODER_CONTROL_PARAMETERS_V2 + #define TMDS2_ENCODER_CONTROL_PS_ALLOCATION_V2 TMDS2_ENCODER_CONTROL_PARAMETERS_V2 ++ ++#define LVDS_ENCODER_CONTROL_PARAMETERS_V3     LVDS_ENCODER_CONTROL_PARAMETERS_V2 ++#define LVDS_ENCODER_CONTROL_PS_ALLOCATION_V3  LVDS_ENCODER_CONTROL_PARAMETERS_V3 ++ ++#define TMDS1_ENCODER_CONTROL_PARAMETERS_V3    LVDS_ENCODER_CONTROL_PARAMETERS_V3 ++#define TMDS1_ENCODER_CONTROL_PS_ALLOCATION_V3 TMDS1_ENCODER_CONTROL_PARAMETERS_V3 ++ ++#define TMDS2_ENCODER_CONTROL_PARAMETERS_V3    LVDS_ENCODER_CONTROL_PARAMETERS_V3 ++#define TMDS2_ENCODER_CONTROL_PS_ALLOCATION_V3 TMDS2_ENCODER_CONTROL_PARAMETERS_V3 ++ ++/****************************************************************************/	 ++// Structures used by ### ++/****************************************************************************/	 ++typedef struct _ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS ++{                                ++  UCHAR    ucEnable;            // Enable or Disable External TMDS encoder ++  UCHAR    ucMisc;              // Bit0=0:Enable Single link;=1:Enable Dual link;Bit1 {=0:666RGB, =1:888RGB} ++  UCHAR    ucPadding[2]; ++}ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS; ++ ++typedef struct _ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION ++{                                ++  ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS    sXTmdsEncoder; ++  WRITE_ONE_BYTE_HW_I2C_DATA_PS_ALLOCATION   sReserved;     //Caller doesn't need to init this portion ++}ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION; ++ + #define ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS_V2  LVDS_ENCODER_CONTROL_PARAMETERS_V2 +  + typedef struct _ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION_V2 +@@ -1024,7 +1284,15 @@ typedef struct _ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION_V2 +   WRITE_ONE_BYTE_HW_I2C_DATA_PS_ALLOCATION      sReserved;     //Caller doesn't need to init this portion + }ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION_V2; +  ++typedef struct _EXTERNAL_ENCODER_CONTROL_PS_ALLOCATION ++{ ++  DIG_ENCODER_CONTROL_PARAMETERS            sDigEncoder; ++  WRITE_ONE_BYTE_HW_I2C_DATA_PS_ALLOCATION sReserved; ++}EXTERNAL_ENCODER_CONTROL_PS_ALLOCATION; +  ++/****************************************************************************/	 ++// Structures used by DVOEncoderControlTable ++/****************************************************************************/	 + //ucTableFormatRevision=1,ucTableContentRevision=3 +  + //ucDVOConfig: +@@ -1050,15 +1318,6 @@ typedef struct _DVO_ENCODER_CONTROL_PARAMETERS_V3 + // bit1=0: non-coherent mode + //     =1: coherent mode +  +-#define LVDS_ENCODER_CONTROL_PARAMETERS_V3     LVDS_ENCODER_CONTROL_PARAMETERS_V2 +-#define LVDS_ENCODER_CONTROL_PS_ALLOCATION_V3  LVDS_ENCODER_CONTROL_PARAMETERS_V3 +- +-#define TMDS1_ENCODER_CONTROL_PARAMETERS_V3    LVDS_ENCODER_CONTROL_PARAMETERS_V3 +-#define TMDS1_ENCODER_CONTROL_PS_ALLOCATION_V3 TMDS1_ENCODER_CONTROL_PARAMETERS_V3 +- +-#define TMDS2_ENCODER_CONTROL_PARAMETERS_V3    LVDS_ENCODER_CONTROL_PARAMETERS_V3 +-#define TMDS2_ENCODER_CONTROL_PS_ALLOCATION_V3 TMDS2_ENCODER_CONTROL_PARAMETERS_V3 +- + //========================================================================================== + //Only change is here next time when changing encoder parameter definitions again! + #define LVDS_ENCODER_CONTROL_PARAMETERS_LAST     LVDS_ENCODER_CONTROL_PARAMETERS_V3 +@@ -1102,20 +1361,23 @@ typedef struct _DVO_ENCODER_CONTROL_PARAMETERS_V3 + #define PANEL_ENCODER_75FRC_E                  0x00 + #define PANEL_ENCODER_75FRC_F                  0x80 +  +-/**************************************************************************/ +- ++/****************************************************************************/	 ++// Structures used by SetVoltageTable ++/****************************************************************************/	 + #define SET_VOLTAGE_TYPE_ASIC_VDDC             1 + #define SET_VOLTAGE_TYPE_ASIC_MVDDC            2 + #define SET_VOLTAGE_TYPE_ASIC_MVDDQ            3 + #define SET_VOLTAGE_TYPE_ASIC_VDDCI            4 ++#define SET_VOLTAGE_INIT_MODE                  5 ++#define SET_VOLTAGE_GET_MAX_VOLTAGE            6					//Gets the Max. voltage for the soldered Asic +  + #define SET_ASIC_VOLTAGE_MODE_ALL_SOURCE       0x1 + #define SET_ASIC_VOLTAGE_MODE_SOURCE_A         0x2 + #define SET_ASIC_VOLTAGE_MODE_SOURCE_B         0x4 +  +-#define	SET_ASIC_VOLTAGE_MODE_SET_VOLTAGE			 0x0 +-#define	SET_ASIC_VOLTAGE_MODE_GET_GPIOVAL			 0x1	 +-#define	SET_ASIC_VOLTAGE_MODE_GET_GPIOMASK		 0x2 ++#define	SET_ASIC_VOLTAGE_MODE_SET_VOLTAGE      0x0 ++#define	SET_ASIC_VOLTAGE_MODE_GET_GPIOVAL      0x1	 ++#define	SET_ASIC_VOLTAGE_MODE_GET_GPIOMASK     0x2 +  + typedef struct	_SET_VOLTAGE_PARAMETERS + { +@@ -1125,7 +1387,6 @@ typedef struct	_SET_VOLTAGE_PARAMETERS +   UCHAR    ucReserved;           + }SET_VOLTAGE_PARAMETERS; +  +- + typedef struct	_SET_VOLTAGE_PARAMETERS_V2 + { +   UCHAR    ucVoltageType;               // To tell which voltage to set up, VDDC/MVDDC/MVDDQ +@@ -1133,13 +1394,23 @@ typedef struct	_SET_VOLTAGE_PARAMETERS_V2 +   USHORT   usVoltageLevel;              // real voltage level + }SET_VOLTAGE_PARAMETERS_V2; +  +- + typedef struct _SET_VOLTAGE_PS_ALLOCATION + { +   SET_VOLTAGE_PARAMETERS sASICSetVoltage; +   WRITE_ONE_BYTE_HW_I2C_DATA_PS_ALLOCATION sReserved; + }SET_VOLTAGE_PS_ALLOCATION; +  ++/****************************************************************************/	 ++// Structures used by TVEncoderControlTable ++/****************************************************************************/	 ++typedef struct _TV_ENCODER_CONTROL_PARAMETERS ++{ ++  USHORT usPixelClock;                // in 10KHz; for bios convenient ++  UCHAR  ucTvStandard;                // See definition "ATOM_TV_NTSC ..." ++  UCHAR  ucAction;                    // 0: turn off encoder ++                                      // 1: setup and turn on encoder ++}TV_ENCODER_CONTROL_PARAMETERS; ++ + typedef struct _TV_ENCODER_CONTROL_PS_ALLOCATION + { +   TV_ENCODER_CONTROL_PARAMETERS sTVEncoder;           +@@ -1153,6 +1424,9 @@ typedef struct _TV_ENCODER_CONTROL_PS_ALLOCATION + 	#define	USHORT	void* + #endif +  ++/****************************************************************************/	 ++// Structure used in Data.mtb ++/****************************************************************************/	 + typedef struct _ATOM_MASTER_LIST_OF_DATA_TABLES + { +   USHORT        UtilityPipeLine;	        // Offest for the utility to get parser info,Don't change this position! +@@ -1195,14 +1469,15 @@ typedef struct _ATOM_MASTER_LIST_OF_DATA_TABLES + 	#define	USHORT	UTEMP + #endif +  +- + typedef struct _ATOM_MASTER_DATA_TABLE + {  +   ATOM_COMMON_TABLE_HEADER sHeader;   +   ATOM_MASTER_LIST_OF_DATA_TABLES   ListOfDataTables; + }ATOM_MASTER_DATA_TABLE; +  +- ++/****************************************************************************/	 ++// Structure used in MultimediaCapabilityInfoTable ++/****************************************************************************/	 + typedef struct _ATOM_MULTIMEDIA_CAPABILITY_INFO + { +   ATOM_COMMON_TABLE_HEADER sHeader;   +@@ -1213,7 +1488,9 @@ typedef struct _ATOM_MULTIMEDIA_CAPABILITY_INFO +   UCHAR                    ucHostPortInfo;   // Provides host port configuration information + }ATOM_MULTIMEDIA_CAPABILITY_INFO; +  +- ++/****************************************************************************/	 ++// Structure used in MultimediaConfigInfoTable ++/****************************************************************************/	 + typedef struct _ATOM_MULTIMEDIA_CONFIG_INFO + { +   ATOM_COMMON_TABLE_HEADER sHeader; +@@ -1232,7 +1509,9 @@ typedef struct _ATOM_MULTIMEDIA_CONFIG_INFO +   UCHAR                    ucVideoInput4Info;// Video Input 4 Type (1:0) F/B setting (2) physical connector ID (5:3) reserved (7:6) + }ATOM_MULTIMEDIA_CONFIG_INFO; +  +-/****************************Firmware Info Table Definitions**********************/ ++/****************************************************************************/	 ++// Structures used in FirmwareInfoTable ++/****************************************************************************/	 +  + // usBIOSCapability Defintion: + // Bit 0 = 0: Bios image is not Posted, =1:Bios image is Posted;  +@@ -1258,7 +1537,7 @@ typedef struct _ATOM_MULTIMEDIA_CONFIG_INFO + //Please don't add or expand this bitfield structure below, this one will retire soon.! + typedef struct _ATOM_FIRMWARE_CAPABILITY + { +-#if X_BYTE_ORDER == X_BIG_ENDIAN ++#if ATOM_BIG_ENDIAN +   USHORT Reserved:3; +   USHORT HyperMemory_Size:4; +   USHORT HyperMemory_Support:1; +@@ -1447,6 +1726,9 @@ typedef struct _ATOM_FIRMWARE_INFO_V1_4 +  + #define ATOM_FIRMWARE_INFO_LAST  ATOM_FIRMWARE_INFO_V1_4 +  ++/****************************************************************************/	 ++// Structures used in IntegratedSystemInfoTable ++/****************************************************************************/	 + #define IGP_CAP_FLAG_DYNAMIC_CLOCK_EN      0x2 + #define IGP_CAP_FLAG_AC_CARD               0x4 + #define IGP_CAP_FLAG_SDVO_CARD             0x8 +@@ -1528,11 +1810,11 @@ typedef struct _ATOM_INTEGRATED_SYSTEM_INFO_V2 + { +   ATOM_COMMON_TABLE_HEADER   sHeader; +   ULONG	                     ulBootUpEngineClock;       //in 10kHz unit +-  ULONG			                 ulReserved1[2];            //must be 0x0 for the reserved ++  ULONG			     ulReserved1[2];            //must be 0x0 for the reserved +   ULONG	                     ulBootUpUMAClock;          //in 10kHz unit +   ULONG	                     ulBootUpSidePortClock;     //in 10kHz unit +   ULONG	                     ulMinSidePortClock;        //in 10kHz unit +-  ULONG			                 ulReserved2[6];            //must be 0x0 for the reserved ++  ULONG			     ulReserved2[6];            //must be 0x0 for the reserved +   ULONG                      ulSystemConfig;            //see explanation below +   ULONG                      ulBootUpReqDisplayVector; +   ULONG                      ulOtherDisplayMisc; +@@ -1555,7 +1837,13 @@ typedef struct _ATOM_INTEGRATED_SYSTEM_INFO_V2 +   USHORT                     usUMADataReturnTime; +   USHORT                     usLinkStatusZeroTime; +   USHORT                     usReserved; +-  ULONG                      ulReserved3[101];          //must be 0x0 ++  ULONG                      ulHighVoltageHTLinkFreq;     // in 10Khz ++  ULONG                      ulLowVoltageHTLinkFreq;      // in 10Khz ++  USHORT                     usMaxUpStreamHTLinkWidth; ++  USHORT                     usMaxDownStreamHTLinkWidth; ++  USHORT                     usMinUpStreamHTLinkWidth; ++  USHORT                     usMinDownStreamHTLinkWidth; ++  ULONG                      ulReserved3[97];          //must be 0x0 + }ATOM_INTEGRATED_SYSTEM_INFO_V2;    +  + /* +@@ -1564,8 +1852,20 @@ ulBootUpUMAClock:      Boot-up UMA Clock in 10Khz; it must be 0x0 when UMA is no + ulBootUpSidePortClock: Boot-up SidePort Clock in 10Khz; it must be 0x0 when SidePort Memory is not present,this could be equal to or less than maximum supported Sideport memory clock +  + ulSystemConfig:   +-Bit[0]: =1 PowerExpress mode =0 Non-PowerExpress mode;  +-Bit[1]=1: system is running at overdrived engine clock =0:system is not running at overdrived engine clock ++Bit[0]=1: PowerExpress mode =0 Non-PowerExpress mode;  ++Bit[1]=1: system boots up at AMD overdrived state or user customized  mode. In this case, driver will just stick to this boot-up mode. No other PowerPlay state ++      =0: system boots up at driver control state. Power state depends on PowerPlay table. ++Bit[2]=1: PWM method is used on NB voltage control. =0: GPIO method is used. ++Bit[3]=1: Only one power state(Performance) will be supported. ++      =0: Multiple power states supported from PowerPlay table. ++Bit[4]=1: CLMC is supported and enabled on current system.  ++      =0: CLMC is not supported or enabled on current system. SBIOS need to support HT link/freq change through ATIF interface.   ++Bit[5]=1: Enable CDLW for all driver control power states. Max HT width is from SBIOS, while Min HT width is determined by display requirement.   ++      =0: CDLW is disabled. If CLMC is enabled case, Min HT width will be set equal to Max HT width. If CLMC disabled case, Max HT width will be applied. ++Bit[6]=1: High Voltage requested for all power states. In this case, voltage will be forced at 1.1v and powerplay table voltage drop/throttling request will be ignored. ++      =0: Voltage settings is determined by powerplay table. ++Bit[7]=1: Enable CLMC as hybrid Mode. CDLD and CILR will be disabled in this case and we're using legacy C1E. This is workaround for CPU(Griffin) performance issue. ++      =0: Enable CLMC as regular mode, CDLD and CILR will be enabled. +  + ulBootUpReqDisplayVector: This dword is a bit vector indicates what display devices are requested during boot-up. Refer to ATOM_DEVICE_xxx_SUPPORT for the bit vector definitions. +  +@@ -1594,16 +1894,21 @@ ucDockingPinBit:     which bit in this register to read the pin status; + ucDockingPinPolarity:Polarity of the pin when docked; +  + ulCPUCapInfo:        [7:0]=1:Griffin;[7:0]=2:Greyhound;[7:0]=3:K8, other bits reserved for now and must be 0x0 +-  ++ + usNumberOfCyclesInPeriod:Indicate how many cycles when PWM duty is 100%. +-usMaxNBVoltage:Voltage regulator dependent PWM value.Set this one to 0xFF if VC without PWM. Set this to 0x0 if no VC at all. +-usMinNBVoltage:Voltage regulator dependent PWM value.Set this one to 0x00 if VC without PWM or no VC at all. ++usMaxNBVoltage:Max. voltage control value in either PWM or GPIO mode.  ++usMinNBVoltage:Min. voltage control value in either PWM or GPIO mode. ++                    GPIO mode: both usMaxNBVoltage & usMinNBVoltage have a valid value ulSystemConfig.SYSTEM_CONFIG_USE_PWM_ON_VOLTAGE=0 ++                    PWM mode: both usMaxNBVoltage & usMinNBVoltage have a valid value ulSystemConfig.SYSTEM_CONFIG_USE_PWM_ON_VOLTAGE=1 ++                    GPU SW don't control mode: usMaxNBVoltage & usMinNBVoltage=0 and no care about ulSystemConfig.SYSTEM_CONFIG_USE_PWM_ON_VOLTAGE + usBootUpNBVoltage:Boot-up voltage regulator dependent PWM value. +  ++ulHTLinkFreq:       Bootup HT link Frequency in 10Khz. ++usMinHTLinkWidth:   Bootup minimum HT link width. If CDLW disabled, this is equal to usMaxHTLinkWidth.  ++                    If CDLW enabled, both upstream and downstream width should be the same during bootup. ++usMaxHTLinkWidth:   Bootup maximum HT link width. If CDLW disabled, this is equal to usMinHTLinkWidth.  ++                    If CDLW enabled, both upstream and downstream width should be the same during bootup.   +  +-ulHTLinkFreq:        Current HT link Frequency in 10Khz. +-usMinHTLinkWidth:    +-usMaxHTLinkWidth: + usUMASyncStartDelay: Memory access latency, required for watermark calculation  + usUMADataReturnTime: Memory access latency, required for watermark calculation + usLinkStatusZeroTime:Memory access latency required for watermark calculation, set this to 0x0 for K8 CPU, set a proper value in 0.01 the unit of us  +@@ -1612,10 +1917,27 @@ for Griffin or Greyhound. SBIOS needs to convert to actual time by: +                      if T0Ttime [5:4]=01b, then usLinkStatusZeroTime=T0Ttime [3:0]*0.5us (0.0 to 7.5us) +                      if T0Ttime [5:4]=10b, then usLinkStatusZeroTime=T0Ttime [3:0]*2.0us (0.0 to 30us) +                      if T0Ttime [5:4]=11b, and T0Ttime [3:0]=0x0 to 0xa, then usLinkStatusZeroTime=T0Ttime [3:0]*20us (0.0 to 200us) ++ ++ulHighVoltageHTLinkFreq:     HT link frequency for power state with low voltage. If boot up runs in HT1, this must be 0. ++                             This must be less than or equal to ulHTLinkFreq(bootup frequency).  ++ulLowVoltageHTLinkFreq:      HT link frequency for power state with low voltage or voltage scaling 1.0v~1.1v. If boot up runs in HT1, this must be 0. ++                             This must be less than or equal to ulHighVoltageHTLinkFreq. ++ ++usMaxUpStreamHTLinkWidth:    Asymmetric link width support in the future, to replace usMaxHTLinkWidth. Not used for now. ++usMaxDownStreamHTLinkWidth:  same as above. ++usMinUpStreamHTLinkWidth:    Asymmetric link width support in the future, to replace usMinHTLinkWidth. Not used for now. ++usMinDownStreamHTLinkWidth:  same as above. + */ +  ++ + #define SYSTEM_CONFIG_POWEREXPRESS_ENABLE                 0x00000001 + #define SYSTEM_CONFIG_RUN_AT_OVERDRIVE_ENGINE             0x00000002 ++#define SYSTEM_CONFIG_USE_PWM_ON_VOLTAGE                  0x00000004  ++#define SYSTEM_CONFIG_PERFORMANCE_POWERSTATE_ONLY         0x00000008 ++#define SYSTEM_CONFIG_CLMC_ENABLED                        0x00000010 ++#define SYSTEM_CONFIG_CDLW_ENABLED                        0x00000020 ++#define SYSTEM_CONFIG_HIGH_VOLTAGE_REQUESTED              0x00000040 ++#define SYSTEM_CONFIG_CLMC_HYBRID_MODE_ENABLED            0x00000080 +  + #define IGP_DDI_SLOT_LANE_CONFIG_MASK                     0x000000FF +  +@@ -1671,14 +1993,16 @@ for Griffin or Greyhound. SBIOS needs to convert to actual time by: + #define ATOM_DEVICE_DFP2_INDEX                            0x00000007 + #define ATOM_DEVICE_CV_INDEX                              0x00000008 + #define ATOM_DEVICE_DFP3_INDEX														0x00000009 +-#define ATOM_DEVICE_RESERVEDA_INDEX                       0x0000000A +-#define ATOM_DEVICE_RESERVEDB_INDEX                       0x0000000B ++#define ATOM_DEVICE_DFP4_INDEX														0x0000000A ++#define ATOM_DEVICE_DFP5_INDEX														0x0000000B + #define ATOM_DEVICE_RESERVEDC_INDEX                       0x0000000C + #define ATOM_DEVICE_RESERVEDD_INDEX                       0x0000000D + #define ATOM_DEVICE_RESERVEDE_INDEX                       0x0000000E + #define ATOM_DEVICE_RESERVEDF_INDEX                       0x0000000F +-#define ATOM_MAX_SUPPORTED_DEVICE_INFO                    (ATOM_DEVICE_CV_INDEX+2) ++#define ATOM_MAX_SUPPORTED_DEVICE_INFO                    (ATOM_DEVICE_DFP3_INDEX+1) + #define ATOM_MAX_SUPPORTED_DEVICE_INFO_2                  ATOM_MAX_SUPPORTED_DEVICE_INFO ++#define ATOM_MAX_SUPPORTED_DEVICE_INFO_3                  (ATOM_DEVICE_DFP5_INDEX + 1 ) ++ + #define ATOM_MAX_SUPPORTED_DEVICE                         (ATOM_DEVICE_RESERVEDF_INDEX+1) +  + #define ATOM_DEVICE_CRT1_SUPPORT                          (0x1L << ATOM_DEVICE_CRT1_INDEX ) +@@ -1691,9 +2015,11 @@ for Griffin or Greyhound. SBIOS needs to convert to actual time by: + #define ATOM_DEVICE_DFP2_SUPPORT                          (0x1L << ATOM_DEVICE_DFP2_INDEX) + #define ATOM_DEVICE_CV_SUPPORT                            (0x1L << ATOM_DEVICE_CV_INDEX   ) + #define ATOM_DEVICE_DFP3_SUPPORT													(0x1L << ATOM_DEVICE_DFP3_INDEX ) ++#define ATOM_DEVICE_DFP4_SUPPORT													(0x1L << ATOM_DEVICE_DFP4_INDEX ) ++#define ATOM_DEVICE_DFP5_SUPPORT													(0x1L << ATOM_DEVICE_DFP5_INDEX ) +  + #define ATOM_DEVICE_CRT_SUPPORT                           ATOM_DEVICE_CRT1_SUPPORT | ATOM_DEVICE_CRT2_SUPPORT +-#define ATOM_DEVICE_DFP_SUPPORT                           ATOM_DEVICE_DFP1_SUPPORT | ATOM_DEVICE_DFP2_SUPPORT |  ATOM_DEVICE_DFP3_SUPPORT ++#define ATOM_DEVICE_DFP_SUPPORT                           ATOM_DEVICE_DFP1_SUPPORT | ATOM_DEVICE_DFP2_SUPPORT |  ATOM_DEVICE_DFP3_SUPPORT | ATOM_DEVICE_DFP4_SUPPORT | ATOM_DEVICE_DFP5_SUPPORT + #define ATOM_DEVICE_TV_SUPPORT                            ATOM_DEVICE_TV1_SUPPORT  | ATOM_DEVICE_TV2_SUPPORT + #define ATOM_DEVICE_LCD_SUPPORT                           ATOM_DEVICE_LCD1_SUPPORT | ATOM_DEVICE_LCD2_SUPPORT +  +@@ -1764,10 +2090,9 @@ for Griffin or Greyhound. SBIOS needs to convert to actual time by: + //                          =	3-7	Reserved for future I2C engines + //		[3-0] - I2C_LINE_MUX  = A Mux number when it's HW assisted I2C or GPIO ID when it's SW I2C +  +- + typedef struct _ATOM_I2C_ID_CONFIG + { +-#if X_BYTE_ORDER == X_BIG_ENDIAN ++#if ATOM_BIG_ENDIAN +   UCHAR   bfHW_Capable:1; +   UCHAR   bfHW_EngineID:3; +   UCHAR   bfI2C_LineMux:4; +@@ -1785,6 +2110,9 @@ typedef union _ATOM_I2C_ID_CONFIG_ACCESS + }ATOM_I2C_ID_CONFIG_ACCESS; +     +  ++/****************************************************************************/	 ++// Structure used in GPIO_I2C_InfoTable ++/****************************************************************************/	 + typedef struct _ATOM_GPIO_I2C_ASSIGMENT + { +   USHORT                    usClkMaskRegisterIndex; +@@ -1814,13 +2142,16 @@ typedef struct _ATOM_GPIO_I2C_INFO +   ATOM_GPIO_I2C_ASSIGMENT   asGPIO_Info[ATOM_MAX_SUPPORTED_DEVICE]; + }ATOM_GPIO_I2C_INFO; +  ++/****************************************************************************/	 ++// Common Structure used in other structures ++/****************************************************************************/	 +  + #ifndef _H2INC +    + //Please don't add or expand this bitfield structure below, this one will retire soon.! + typedef struct _ATOM_MODE_MISC_INFO + {  +-#if X_BYTE_ORDER == X_BIG_ENDIAN ++#if ATOM_BIG_ENDIAN +   USHORT Reserved:6; +   USHORT RGB888:1; +   USHORT DoubleClock:1; +@@ -1896,7 +2227,9 @@ typedef union _ATOM_MODE_MISC_INFO_ACCESS + //	VESA_HSYNC_WIDTH	=	VESA_HSYNC_TIME	=	EDID_HSPW + //	VESA_BORDER			=	EDID_BORDER +  +- ++/****************************************************************************/	 ++// Structure used in SetCRTC_UsingDTDTimingTable ++/****************************************************************************/	 + typedef struct _SET_CRTC_USING_DTD_TIMING_PARAMETERS + { +   USHORT  usH_Size; +@@ -1914,6 +2247,9 @@ typedef struct _SET_CRTC_USING_DTD_TIMING_PARAMETERS +   UCHAR   ucPadding[3]; + }SET_CRTC_USING_DTD_TIMING_PARAMETERS; +  ++/****************************************************************************/	 ++// Structure used in SetCRTC_TimingTable ++/****************************************************************************/	 + typedef struct _SET_CRTC_TIMING_PARAMETERS + { +   USHORT                      usH_Total;        // horizontal total +@@ -1934,7 +2270,11 @@ typedef struct _SET_CRTC_TIMING_PARAMETERS + }SET_CRTC_TIMING_PARAMETERS; + #define SET_CRTC_TIMING_PARAMETERS_PS_ALLOCATION SET_CRTC_TIMING_PARAMETERS +  +- ++/****************************************************************************/	 ++// Structure used in StandardVESA_TimingTable ++//                   AnalogTV_InfoTable  ++//                   ComponentVideoInfoTable ++/****************************************************************************/	 + typedef struct _ATOM_MODE_TIMING + { +   USHORT  usCRTC_H_Total; +@@ -1956,7 +2296,6 @@ typedef struct _ATOM_MODE_TIMING +   UCHAR   ucRefreshRate; + }ATOM_MODE_TIMING; +  +-  + typedef struct _ATOM_DTD_FORMAT + { +   USHORT  usPixClk; +@@ -1977,12 +2316,19 @@ typedef struct _ATOM_DTD_FORMAT +   UCHAR   ucRefreshRate; + }ATOM_DTD_FORMAT; +  ++/****************************************************************************/	 ++// Structure used in LVDS_InfoTable  ++//  * Need a document to describe this table ++/****************************************************************************/	 + #define SUPPORTED_LCD_REFRESHRATE_30Hz          0x0004 + #define SUPPORTED_LCD_REFRESHRATE_40Hz          0x0008 + #define SUPPORTED_LCD_REFRESHRATE_50Hz          0x0010 + #define SUPPORTED_LCD_REFRESHRATE_60Hz          0x0020 +  +-/****************************LVDS Info Table Definitions **********************/ ++//Once DAL sees this CAP is set, it will read EDID from LCD on its own instead of using sLCDTiming in ATOM_LVDS_INFO_V12.  ++//Other entries in ATOM_LVDS_INFO_V12 are still valid/useful to DAL  ++#define	LCDPANEL_CAP_READ_EDID									0x1 ++ + //ucTableFormatRevision=1 + //ucTableContentRevision=1 + typedef struct _ATOM_LVDS_INFO +@@ -2111,9 +2457,9 @@ typedef struct _ATOM_SPREAD_SPECTRUM_INFO +   ATOM_SPREAD_SPECTRUM_ASSIGNMENT   asSS_Info[ATOM_MAX_SS_ENTRY]; + }ATOM_SPREAD_SPECTRUM_INFO; +  +- +- +- ++/****************************************************************************/	 ++// Structure used in AnalogTV_InfoTable (Top level) ++/****************************************************************************/	 + //ucTVBootUpDefaultStd definiton: +  + //ATOM_TV_NTSC                1 +@@ -2125,7 +2471,6 @@ typedef struct _ATOM_SPREAD_SPECTRUM_INFO + //ATOM_TV_PAL60               7 + //ATOM_TV_SECAM               8 +  +- + //ucTVSuppportedStd definition: + #define NTSC_SUPPORT          0x1 + #define NTSCJ_SUPPORT         0x2 +@@ -2215,7 +2560,15 @@ typedef struct _ATOM_ANALOG_TV_INFO + #define ATOM_DFP3_DTD_MODE_TBL_ADDR     (ATOM_DFP3_EDID_ADDR + ATOM_EDID_RAW_DATASIZE) + #define ATOM_DFP3_STD_MODE_TBL_ADDR     (ATOM_DFP3_DTD_MODE_TBL_ADDR + ATOM_DTD_MODE_SUPPORT_TBL_SIZE) +  +-#define ATOM_DP_TRAINING_TBL_ADDR				(ATOM_DFP3_STD_MODE_TBL_ADDR+ATOM_STD_MODE_SUPPORT_TBL_SIZE)        ++#define ATOM_DFP4_EDID_ADDR             (ATOM_DFP3_STD_MODE_TBL_ADDR + ATOM_STD_MODE_SUPPORT_TBL_SIZE) ++#define ATOM_DFP4_DTD_MODE_TBL_ADDR     (ATOM_DFP4_EDID_ADDR + ATOM_EDID_RAW_DATASIZE) ++#define ATOM_DFP4_STD_MODE_TBL_ADDR     (ATOM_DFP4_DTD_MODE_TBL_ADDR + ATOM_DTD_MODE_SUPPORT_TBL_SIZE) ++ ++#define ATOM_DFP5_EDID_ADDR             (ATOM_DFP4_STD_MODE_TBL_ADDR + ATOM_STD_MODE_SUPPORT_TBL_SIZE) ++#define ATOM_DFP5_DTD_MODE_TBL_ADDR     (ATOM_DFP5_EDID_ADDR + ATOM_EDID_RAW_DATASIZE) ++#define ATOM_DFP5_STD_MODE_TBL_ADDR     (ATOM_DFP5_DTD_MODE_TBL_ADDR + ATOM_DTD_MODE_SUPPORT_TBL_SIZE) ++ ++#define ATOM_DP_TRAINING_TBL_ADDR				(ATOM_DFP5_STD_MODE_TBL_ADDR+ATOM_STD_MODE_SUPPORT_TBL_SIZE)        +  + #define ATOM_STACK_STORAGE_START        (ATOM_DP_TRAINING_TBL_ADDR+256)        + #define ATOM_STACK_STORAGE_END          ATOM_STACK_STORAGE_START+512         +@@ -2228,6 +2581,15 @@ typedef struct _ATOM_ANALOG_TV_INFO + #define	ATOM_VRAM_BLOCK_NEEDS_NO_RESERVATION   0x1 + #define	ATOM_VRAM_BLOCK_NEEDS_RESERVATION      0x0 +  ++/***********************************************************************************/	 ++// Structure used in VRAM_UsageByFirmwareTable ++// Note1: This table is filled by SetBiosReservationStartInFB in CoreCommSubs.asm ++//        at running time.    ++// note2: From RV770, the memory is more than 32bit addressable, so we will change  ++//        ucTableFormatRevision=1,ucTableContentRevision=4, the strcuture remains  ++//        exactly same as 1.1 and 1.2 (1.3 is never in use), but ulStartAddrUsedByFirmware  ++//        (in offset to start of memory address) is KB aligned instead of byte aligend. ++/***********************************************************************************/	 + #define ATOM_MAX_FIRMWARE_VRAM_USAGE_INFO			1 +  + typedef struct _ATOM_FIRMWARE_VRAM_RESERVE_INFO +@@ -2243,8 +2605,9 @@ typedef struct _ATOM_VRAM_USAGE_BY_FIRMWARE +   ATOM_FIRMWARE_VRAM_RESERVE_INFO	asFirmwareVramReserveInfo[ATOM_MAX_FIRMWARE_VRAM_USAGE_INFO]; + }ATOM_VRAM_USAGE_BY_FIRMWARE; +  +-/**************************************************************************/ +-//GPIO Pin lut table definition ++/****************************************************************************/	 ++// Structure used in GPIO_Pin_LUTTable ++/****************************************************************************/	 + typedef struct _ATOM_GPIO_PIN_ASSIGNMENT + { +   USHORT                   usGpioPin_AIndex; +@@ -2258,9 +2621,9 @@ typedef struct _ATOM_GPIO_PIN_LUT +   ATOM_GPIO_PIN_ASSIGNMENT	asGPIO_Pin[1]; + }ATOM_GPIO_PIN_LUT; +  +-/**************************************************************************/ +- +- ++/****************************************************************************/	 ++// Structure used in ComponentVideoInfoTable	 ++/****************************************************************************/	 + #define GPIO_PIN_ACTIVE_HIGH          0x1 +  + #define MAX_SUPPORTED_CV_STANDARDS    5 +@@ -2350,8 +2713,9 @@ typedef struct _ATOM_COMPONENT_VIDEO_INFO_V21 +  + #define ATOM_COMPONENT_VIDEO_INFO_LAST  ATOM_COMPONENT_VIDEO_INFO_V21 +  +-/**************************************************************************/ +-//Object table starts here ++/****************************************************************************/	 ++// Structure used in object_InfoTable ++/****************************************************************************/	 + typedef struct _ATOM_OBJECT_HEADER + {  +   ATOM_COMMON_TABLE_HEADER	sHeader; +@@ -2596,9 +2960,9 @@ typedef struct _ATOM_ROUTER_DATA_CLOCK_PATH_SELECT_RECORD + #define ATOM_ROUTER_MUX_PIN_STATE_MASK								0x0f + #define ATOM_ROUTER_MUX_PIN_SINGLE_STATE_COMPLEMENT		0x01 +  +-/**************************************************************************/ +-//ASIC voltage data table starts here +- ++/****************************************************************************/	 ++// ASIC voltage data table ++/****************************************************************************/	 + typedef struct  _ATOM_VOLTAGE_INFO_HEADER + { +    USHORT   usVDDCBaseLevel;                //In number of 50mv unit +@@ -2824,13 +3188,16 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S0_CV_DIN                  0x00002000L + #define ATOM_S0_CV_MASK                 (ATOM_S0_CV+ATOM_S0_CV_DIN) +  +- + #define ATOM_S0_DFP1                    0x00010000L + #define ATOM_S0_DFP2                    0x00020000L + #define ATOM_S0_LCD1                    0x00040000L + #define ATOM_S0_LCD2                    0x00080000L + #define ATOM_S0_TV2                     0x00100000L + #define ATOM_S0_DFP3										0x00200000L ++#define ATOM_S0_DFP4										0x00400000L ++#define ATOM_S0_DFP5										0x00800000L ++ ++#define ATOM_S0_DFP_MASK                ATOM_S0_DFP1 | ATOM_S0_DFP2 | ATOM_S0_DFP3 | ATOM_S0_DFP4 | ATOM_S0_DFP5 +  + #define ATOM_S0_FAD_REGISTER_BUG        0x02000000L // If set, indicates we are running a PCIE asic with  +                                                     // the FAD/HDP reg access bug.  Bit is read by DAL +@@ -2888,7 +3255,6 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S1_ROM_LOCATION_MASK       0x0000FFFFL + #define ATOM_S1_PCI_BUS_DEV_MASK        0xFFFF0000L +  +-      + //	BIOS_2_SCRATCH Definition + #define ATOM_S2_TV1_STANDARD_MASK       0x0000000FL + #define ATOM_S2_CURRENT_BL_LEVEL_MASK   0x0000FF00L +@@ -2904,12 +3270,14 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S2_DFP2_DPMS_STATE         0x00800000L + #define ATOM_S2_CV_DPMS_STATE           0x01000000L + #define ATOM_S2_DFP3_DPMS_STATE					0x02000000L ++#define ATOM_S2_DFP4_DPMS_STATE					0x04000000L ++#define ATOM_S2_DFP5_DPMS_STATE					0x08000000L +  +-#define ATOM_S2_DEVICE_DPMS_STATE       (ATOM_S2_CRT1_DPMS_STATE+ATOM_S2_LCD1_DPMS_STATE+ATOM_S2_TV1_DPMS_STATE+\ +-                                        ATOM_S2_DFP1I_DPMS_STATE+ATOM_S2_CRT2_DPMS_STATE+ATOM_S2_LCD2_DPMS_STATE+\ +-                                        ATOM_S2_TV2_DPMS_STATE+ATOM_S2_DFP1X_DPMS_STATE+ATOM_S2_CV_DPMS_STATE+\ +-                                        ATOM_S2_DFP3_DPMS_STATE) ++#define ATOM_S2_DFP_DPM_STATE           ATOM_S2_DFP1_DPMS_STATE | ATOM_S2_DFP2_DPMS_STATE | ATOM_S2_DFP3_DPMS_STATE | ATOM_S2_DFP4_DPMS_STATE | ATOM_S2_DFP5_DPMS_STATE +  ++#define ATOM_S2_DEVICE_DPMS_STATE       (ATOM_S2_CRT1_DPMS_STATE+ATOM_S2_LCD1_DPMS_STATE+ATOM_S2_TV1_DPMS_STATE+\ ++                                        ATOM_S2_DFP_DPMS_STATE+ATOM_S2_CRT2_DPMS_STATE+ATOM_S2_LCD2_DPMS_STATE+\ ++                                        ATOM_S2_TV2_DPMS_STATE+ATOM_S2_CV_DPMS_STATE +  + #define ATOM_S2_FORCEDLOWPWRMODE_STATE_MASK       0x0C000000L + #define ATOM_S2_FORCEDLOWPWRMODE_STATE_MASK_SHIFT 26 +@@ -2938,6 +3306,8 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S2_DFP2_DPMS_STATEb2       0x80 + #define ATOM_S2_CV_DPMS_STATEb3         0x01 + #define ATOM_S2_DFP3_DPMS_STATEb3				0x02 ++#define ATOM_S2_DFP4_DPMS_STATEb3				0x04 ++#define ATOM_S2_DFP5_DPMS_STATEb3				0x08 +  + #define ATOM_S2_DEVICE_DPMS_MASKw1      0x3FF + #define ATOM_S2_FORCEDLOWPWRMODE_STATE_MASKb3     0x0C +@@ -2957,6 +3327,8 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S3_DFP2_ACTIVE             0x00000080L + #define ATOM_S3_CV_ACTIVE               0x00000100L + #define ATOM_S3_DFP3_ACTIVE							0x00000200L ++#define ATOM_S3_DFP4_ACTIVE							0x00000400L ++#define ATOM_S3_DFP5_ACTIVE							0x00000800L +  + #define ATOM_S3_DEVICE_ACTIVE_MASK      0x000003FFL +  +@@ -2973,8 +3345,10 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S3_DFP2_CRTC_ACTIVE        0x00800000L + #define ATOM_S3_CV_CRTC_ACTIVE          0x01000000L + #define ATOM_S3_DFP3_CRTC_ACTIVE				0x02000000L ++#define ATOM_S3_DFP4_CRTC_ACTIVE				0x04000000L ++#define ATOM_S3_DFP5_CRTC_ACTIVE				0x08000000L +  +-#define ATOM_S3_DEVICE_CRTC_ACTIVE_MASK 0x03FF0000L ++#define ATOM_S3_DEVICE_CRTC_ACTIVE_MASK 0x0FFF0000L + #define ATOM_S3_ASIC_GUI_ENGINE_HUNG    0x20000000L + #define ATOM_S3_ALLOW_FAST_PWR_SWITCH   0x40000000L + #define ATOM_S3_RQST_GPU_USE_MIN_PWR    0x80000000L +@@ -2990,8 +3364,10 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S3_DFP2_ACTIVEb0           0x80 + #define ATOM_S3_CV_ACTIVEb1             0x01 + #define ATOM_S3_DFP3_ACTIVEb1						0x02 ++#define ATOM_S3_DFP4_ACTIVEb1						0x04 ++#define ATOM_S3_DFP5_ACTIVEb1						0x08 +  +-#define ATOM_S3_ACTIVE_CRTC1w0          0x3FF ++#define ATOM_S3_ACTIVE_CRTC1w0          0xFFF +  + #define ATOM_S3_CRT1_CRTC_ACTIVEb2      0x01 + #define ATOM_S3_LCD1_CRTC_ACTIVEb2      0x02 +@@ -3003,8 +3379,10 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S3_DFP2_CRTC_ACTIVEb2      0x80 + #define ATOM_S3_CV_CRTC_ACTIVEb3        0x01 + #define ATOM_S3_DFP3_CRTC_ACTIVEb3			0x02 ++#define ATOM_S3_DFP4_CRTC_ACTIVEb3			0x04 ++#define ATOM_S3_DFP5_CRTC_ACTIVEb3			0x08 +  +-#define ATOM_S3_ACTIVE_CRTC2w1          0x3FF ++#define ATOM_S3_ACTIVE_CRTC2w1          0xFFF +  + #define ATOM_S3_ASIC_GUI_ENGINE_HUNGb3	0x20 + #define ATOM_S3_ALLOW_FAST_PWR_SWITCHb3 0x40 +@@ -3015,13 +3393,11 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S4_LCD1_REFRESH_MASK       0x0000FF00L + #define ATOM_S4_LCD1_REFRESH_SHIFT      8 +  +- + //Byte aligned defintion for BIOS usage + #define ATOM_S4_LCD1_PANEL_ID_MASKb0	  0x0FF + #define ATOM_S4_LCD1_REFRESH_MASKb1		  ATOM_S4_LCD1_PANEL_ID_MASKb0 + #define ATOM_S4_VRAM_INFO_MASKb2        ATOM_S4_LCD1_PANEL_ID_MASKb0 +  +- + // BIOS_5_SCRATCH Definition, BIOS_5_SCRATCH is used by Firmware only !!!! + #define ATOM_S5_DOS_REQ_CRT1b0          0x01 + #define ATOM_S5_DOS_REQ_LCD1b0          0x02 +@@ -3033,6 +3409,8 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S5_DOS_REQ_DFP2b0          0x80 + #define ATOM_S5_DOS_REQ_CVb1            0x01 + #define ATOM_S5_DOS_REQ_DFP3b1					0x02 ++#define ATOM_S5_DOS_REQ_DFP4b1					0x04 ++#define ATOM_S5_DOS_REQ_DFP5b1					0x08 +  + #define ATOM_S5_DOS_REQ_DEVICEw0        0x03FF +  +@@ -3046,6 +3424,8 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S5_DOS_REQ_DFP2            0x0080 + #define ATOM_S5_DOS_REQ_CV              0x0100 + #define ATOM_S5_DOS_REQ_DFP3						0x0200 ++#define ATOM_S5_DOS_REQ_DFP4						0x0400 ++#define ATOM_S5_DOS_REQ_DFP5						0x0800 +  + #define ATOM_S5_DOS_FORCE_CRT1b2        ATOM_S5_DOS_REQ_CRT1b0 + #define ATOM_S5_DOS_FORCE_TV1b2         ATOM_S5_DOS_REQ_TV1b0 +@@ -3073,7 +3453,6 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S6_DISPLAY_STATE_CHANGE    0x00004000L        //This bit is recycled when ATOM_BIOS_INFO_BIOS_SCRATCH6_SCL2_REDEFINE is set,previously it's SCL2_H_expansion + #define ATOM_S6_I2C_STATE_CHANGE        0x00008000L        //This bit is recycled,when ATOM_BIOS_INFO_BIOS_SCRATCH6_SCL2_REDEFINE is set,previously it's SCL2_V_expansion +  +- + #define ATOM_S6_ACC_REQ_CRT1            0x00010000L + #define ATOM_S6_ACC_REQ_LCD1            0x00020000L + #define ATOM_S6_ACC_REQ_TV1             0x00040000L +@@ -3084,8 +3463,10 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S6_ACC_REQ_DFP2            0x00800000L + #define ATOM_S6_ACC_REQ_CV              0x01000000L + #define ATOM_S6_ACC_REQ_DFP3						0x02000000L ++#define ATOM_S6_ACC_REQ_DFP4						0x04000000L ++#define ATOM_S6_ACC_REQ_DFP5						0x08000000L +  +-#define ATOM_S6_ACC_REQ_MASK                0x03FF0000L ++#define ATOM_S6_ACC_REQ_MASK                0x0FFF0000L + #define ATOM_S6_SYSTEM_POWER_MODE_CHANGE    0x10000000L + #define ATOM_S6_ACC_BLOCK_DISPLAY_SWITCH    0x20000000L + #define ATOM_S6_VRI_BRIGHTNESS_CHANGE       0x40000000L +@@ -3117,6 +3498,8 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{ + #define ATOM_S6_ACC_REQ_DFP2b2          0x80 + #define ATOM_S6_ACC_REQ_CVb3            0x01 + #define ATOM_S6_ACC_REQ_DFP3b3					0x02 ++#define ATOM_S6_ACC_REQ_DFP4b3					0x04 ++#define ATOM_S6_ACC_REQ_DFP5b3					0x08 +  + #define ATOM_S6_ACC_REQ_DEVICEw1        ATOM_S5_DOS_REQ_DEVICEw0 + #define ATOM_S6_SYSTEM_POWER_MODE_CHANGEb3 0x10 +@@ -3391,7 +3774,7 @@ typedef struct _ATOM_TV_MODE_SCALER_PTR + typedef struct _ATOM_STANDARD_VESA_TIMING + { +   ATOM_COMMON_TABLE_HEADER sHeader;   +-  ATOM_MODE_TIMING				 aModeTimings[16];      // 16 is not the real array number, just for initial allocation ++  ATOM_DTD_FORMAT 				 aModeTimings[16];      // 16 is not the real array number, just for initial allocation + }ATOM_STANDARD_VESA_TIMING; +  +  +@@ -3426,7 +3809,7 @@ typedef struct _ATOM_MEMORY_VENDOR_BLOCK{ +  +  + typedef struct _ATOM_MEMORY_SETTING_ID_CONFIG{ +-#if X_BYTE_ORDER == X_BIG_ENDIAN ++#if ATOM_BIG_ENDIAN + 	ULONG												ucMemBlkId:8; + 	ULONG												ulMemClockRange:24; + #else +@@ -3470,6 +3853,11 @@ typedef struct _ATOM_INIT_REG_BLOCK{ + #define VALUE_SAME_AS_ABOVE     0 + #define VALUE_MASK_DWORD        0x84 +  ++#define INDEX_ACCESS_RANGE_BEGIN	    (VALUE_DWORD + 1) ++#define INDEX_ACCESS_RANGE_END		    (INDEX_ACCESS_RANGE_BEGIN + 1) ++#define VALUE_INDEX_ACCESS_SINGLE	    (INDEX_ACCESS_RANGE_END + 1) ++ ++ + typedef struct _ATOM_MC_INIT_PARAM_TABLE + {  +   ATOM_COMMON_TABLE_HEADER		sHeader; +@@ -3508,6 +3896,28 @@ typedef struct _ATOM_MC_INIT_PARAM_TABLE + #define QIMONDA             INFINEON + #define PROMOS              MOSEL +  ++/////////////Support for GDDR5 MC uCode to reside in upper 64K of ROM///////////// ++ ++#define UCODE_ROM_START_ADDRESS		0x1c000 ++#define	UCODE_SIGNATURE			0x4375434d // 'MCuC' - MC uCode ++ ++//uCode block header for reference ++ ++typedef struct _MCuCodeHeader ++{ ++  ULONG  ulSignature; ++  UCHAR  ucRevision; ++  UCHAR  ucChecksum; ++  UCHAR  ucReserved1; ++  UCHAR  ucReserved2; ++  USHORT usParametersLength; ++  USHORT usUCodeLength; ++  USHORT usReserved1; ++  USHORT usReserved2; ++} MCuCodeHeader; ++ ++////////////////////////////////////////////////////////////////////////////////// ++ + #define ATOM_MAX_NUMBER_OF_VRAM_MODULE	16 +  + #define ATOM_VRAM_MODULE_MEMORY_VENDOR_ID_MASK	0xF +@@ -3564,6 +3974,42 @@ typedef struct _ATOM_VRAM_MODULE_V2 + typedef	struct _ATOM_MEMORY_TIMING_FORMAT + { + 	ULONG											 ulClkRange;				// memory clock in 10kHz unit, when target memory clock is below this clock, use this memory timing 	 ++  union{ ++	  USHORT										 usMRS;							// mode register						 ++    USHORT                     usDDR3_MR0; ++  }; ++  union{ ++	  USHORT										 usEMRS;						// extended mode register ++    USHORT                     usDDR3_MR1; ++  }; ++	UCHAR											 ucCL;							// CAS latency ++	UCHAR											 ucWL;							// WRITE Latency				 ++	UCHAR											 uctRAS;						// tRAS ++	UCHAR											 uctRC;							// tRC	 ++	UCHAR											 uctRFC;						// tRFC ++	UCHAR											 uctRCDR;						// tRCDR	 ++	UCHAR											 uctRCDW;						// tRCDW ++	UCHAR											 uctRP;							// tRP ++	UCHAR											 uctRRD;						// tRRD	 ++	UCHAR											 uctWR;							// tWR ++	UCHAR											 uctWTR;						// tWTR ++	UCHAR											 uctPDIX;						// tPDIX ++	UCHAR											 uctFAW;						// tFAW ++	UCHAR											 uctAOND;						// tAOND ++  union  ++  { ++    struct { ++	    UCHAR											 ucflag;						// flag to control memory timing calculation. bit0= control EMRS2 Infineon  ++	    UCHAR											 ucReserved;						 ++    }; ++    USHORT                   usDDR3_MR2; ++  }; ++}ATOM_MEMORY_TIMING_FORMAT; ++ ++ ++typedef	struct _ATOM_MEMORY_TIMING_FORMAT_V1 ++{ ++	ULONG											 ulClkRange;				// memory clock in 10kHz unit, when target memory clock is below this clock, use this memory timing 	 + 	USHORT										 usMRS;							// mode register						 + 	USHORT										 usEMRS;						// extended mode register + 	UCHAR											 ucCL;							// CAS latency +@@ -3581,16 +4027,31 @@ typedef	struct _ATOM_MEMORY_TIMING_FORMAT + 	UCHAR											 uctFAW;						// tFAW + 	UCHAR											 uctAOND;						// tAOND + 	UCHAR											 ucflag;						// flag to control memory timing calculation. bit0= control EMRS2 Infineon  +-	UCHAR											 ucReserved;				//  +-}ATOM_MEMORY_TIMING_FORMAT; ++////////////////////////////////////GDDR parameters/////////////////////////////////// ++	UCHAR											 uctCCDL;						//  ++	UCHAR											 uctCRCRL;						//  ++	UCHAR											 uctCRCWL;						//  ++	UCHAR											 uctCKE;						//  ++	UCHAR											 uctCKRSE;						//  ++	UCHAR											 uctCKRSX;						//  ++	UCHAR											 uctFAW32;						//  ++	UCHAR											 ucReserved1;					//  ++	UCHAR											 ucReserved2;					//  ++	UCHAR											 ucTerminator; ++}ATOM_MEMORY_TIMING_FORMAT_V1; +  +-#define	MEM_TIMING_FLAG_APP_MODE								0x01									// =0 mid clock range  =1 high clock range +  + typedef	struct _ATOM_MEMORY_FORMAT + { + 	ULONG											 ulDllDisClock;			// memory DLL will be disable when target memory clock is below this clock +-  USHORT                     usEMRS2Value;      // EMRS2 Value is used for GDDR2 and GDDR4 memory type +-  USHORT                     usEMRS3Value;      // EMRS3 Value is used for GDDR2 and GDDR4 memory type ++  union{ ++    USHORT                     usEMRS2Value;      // EMRS2 Value is used for GDDR2 and GDDR4 memory type ++    USHORT                     usDDR3_Reserved;   // Not used for DDR3 memory ++  }; ++  union{ ++    USHORT                     usEMRS3Value;      // EMRS3 Value is used for GDDR2 and GDDR4 memory type ++    USHORT                     usDDR3_MR3;        // Used for DDR3 memory ++  }; +   UCHAR                      ucMemoryType;      // [7:4]=0x1:DDR1;=0x2:DDR2;=0x3:DDR3;=0x4:DDR4;[3:0] - must not be used for now; +   UCHAR                      ucMemoryVenderID;  // Predefined,never change across designs or memory type/vender. If not predefined, vendor detection table gets executed +   UCHAR                      ucRow;             // Number of Row,in power of 2; +@@ -3629,6 +4090,79 @@ typedef struct _ATOM_VRAM_MODULE_V3 +  + #define ATOM_VRAM_MODULE		 ATOM_VRAM_MODULE_V3 +  ++typedef struct _ATOM_VRAM_MODULE_V4 ++{ ++  ULONG	  ulChannelMapCfg;	                // board dependent parameter: Channel combination ++  USHORT  usModuleSize;                     // size of ATOM_VRAM_MODULE_V4, make it easy for VBIOS to look for next entry of VRAM_MODULE ++  USHORT  usPrivateReserved;                // BIOS internal reserved space to optimize code size, updated by the compiler, shouldn't be modified manually!! ++                                            // MC_ARB_RAMCFG (includes NOOFBANK,NOOFRANKS,NOOFROWS,NOOFCOLS) ++  USHORT  usReserved; ++  UCHAR   ucExtMemoryID;    		            // An external indicator (by hardcode, callback or pin) to tell what is the current memory module ++  UCHAR   ucMemoryType;                     // [7:4]=0x1:DDR1;=0x2:DDR2;=0x3:DDR3;=0x4:DDR4; 0x5:DDR5 [3:0] - Must be 0x0 for now; ++  UCHAR   ucChannelNum;                     // Number of channels present in this module config ++  UCHAR   ucChannelWidth;                   // 0 - 32 bits; 1 - 64 bits ++	UCHAR   ucDensity;                        // _8Mx32, _16Mx32, _16Mx16, _32Mx16 ++	UCHAR	  ucFlag;						                // To enable/disable functionalities based on memory type ++	UCHAR	  ucMisc;						                // bit0: 0 - single rank; 1 - dual rank;   bit2: 0 - burstlength 4, 1 - burstlength 8 ++  UCHAR		ucVREFI;                          // board dependent parameter ++  UCHAR   ucNPL_RT;                         // board dependent parameter:NPL round trip delay, used for calculate memory timing parameters ++  UCHAR		ucPreamble;                       // [7:4] Write Preamble, [3:0] Read Preamble ++  UCHAR   ucMemorySize;                     // BIOS internal reserved space to optimize code size, updated by the compiler, shouldn't be modified manually!! ++                                            // Total memory size in unit of 16MB for CONFIG_MEMSIZE - bit[23:0] zeros ++  UCHAR   ucReserved[3]; ++ ++//compare with V3, we flat the struct by merging ATOM_MEMORY_FORMAT (as is) into V4 as the same level ++  union{ ++    USHORT	usEMRS2Value;                   // EMRS2 Value is used for GDDR2 and GDDR4 memory type ++    USHORT  usDDR3_Reserved; ++  }; ++  union{ ++    USHORT	usEMRS3Value;                   // EMRS3 Value is used for GDDR2 and GDDR4 memory type ++    USHORT  usDDR3_MR3;                     // Used for DDR3 memory ++  };   ++  UCHAR   ucMemoryVenderID;  		            // Predefined, If not predefined, vendor detection table gets executed ++  UCHAR	  ucRefreshRateFactor;              // [1:0]=RefreshFactor (00=8ms, 01=16ms, 10=32ms,11=64ms) ++  UCHAR   ucReserved2[2]; ++  ATOM_MEMORY_TIMING_FORMAT  asMemTiming[5];//Memory Timing block sort from lower clock to higher clock ++}ATOM_VRAM_MODULE_V4; ++ ++#define VRAM_MODULE_V4_MISC_RANK_MASK       0x3 ++#define VRAM_MODULE_V4_MISC_DUAL_RANK       0x1 ++#define VRAM_MODULE_V4_MISC_BL_MASK         0x4 ++#define VRAM_MODULE_V4_MISC_BL8             0x4 ++#define VRAM_MODULE_V4_MISC_DUAL_CS         0x10 ++ ++typedef struct _ATOM_VRAM_MODULE_V5 ++{ ++  ULONG	  ulChannelMapCfg;	                // board dependent parameter: Channel combination ++  USHORT  usModuleSize;                     // size of ATOM_VRAM_MODULE_V4, make it easy for VBIOS to look for next entry of VRAM_MODULE ++  USHORT  usPrivateReserved;                // BIOS internal reserved space to optimize code size, updated by the compiler, shouldn't be modified manually!! ++                                            // MC_ARB_RAMCFG (includes NOOFBANK,NOOFRANKS,NOOFROWS,NOOFCOLS) ++  USHORT  usReserved; ++  UCHAR   ucExtMemoryID;    		            // An external indicator (by hardcode, callback or pin) to tell what is the current memory module ++  UCHAR   ucMemoryType;                     // [7:4]=0x1:DDR1;=0x2:DDR2;=0x3:DDR3;=0x4:DDR4; 0x5:DDR5 [3:0] - Must be 0x0 for now; ++  UCHAR   ucChannelNum;                     // Number of channels present in this module config ++  UCHAR   ucChannelWidth;                   // 0 - 32 bits; 1 - 64 bits ++	UCHAR   ucDensity;                        // _8Mx32, _16Mx32, _16Mx16, _32Mx16 ++	UCHAR	  ucFlag;						                // To enable/disable functionalities based on memory type ++	UCHAR	  ucMisc;						                // bit0: 0 - single rank; 1 - dual rank;   bit2: 0 - burstlength 4, 1 - burstlength 8 ++  UCHAR		ucVREFI;                          // board dependent parameter ++  UCHAR   ucNPL_RT;                         // board dependent parameter:NPL round trip delay, used for calculate memory timing parameters ++  UCHAR		ucPreamble;                       // [7:4] Write Preamble, [3:0] Read Preamble ++  UCHAR   ucMemorySize;                     // BIOS internal reserved space to optimize code size, updated by the compiler, shouldn't be modified manually!! ++                                            // Total memory size in unit of 16MB for CONFIG_MEMSIZE - bit[23:0] zeros ++  UCHAR   ucReserved[3]; ++ ++//compare with V3, we flat the struct by merging ATOM_MEMORY_FORMAT (as is) into V4 as the same level ++  USHORT	usEMRS2Value;      		            // EMRS2 Value is used for GDDR2 and GDDR4 memory type ++  USHORT	usEMRS3Value;      		            // EMRS3 Value is used for GDDR2 and GDDR4 memory type ++  UCHAR   ucMemoryVenderID;  		            // Predefined, If not predefined, vendor detection table gets executed ++  UCHAR	  ucRefreshRateFactor;              // [1:0]=RefreshFactor (00=8ms, 01=16ms, 10=32ms,11=64ms) ++  UCHAR	  ucFIFODepth;			                // FIFO depth supposes to be detected during vendor detection, but if we dont do vendor detection we have to hardcode FIFO Depth ++  UCHAR   ucCDR_Bandwidth;		   // [0:3]=Read CDR bandwidth, [4:7] - Write CDR Bandwidth ++  ATOM_MEMORY_TIMING_FORMAT_V1  asMemTiming[5];//Memory Timing block sort from lower clock to higher clock ++}ATOM_VRAM_MODULE_V5; ++ + typedef struct _ATOM_VRAM_INFO_V2 + { +   ATOM_COMMON_TABLE_HEADER   sHeader; +@@ -3651,6 +4185,21 @@ typedef struct _ATOM_VRAM_INFO_V3 +  + #define	ATOM_VRAM_INFO_LAST	     ATOM_VRAM_INFO_V3 +  ++typedef struct _ATOM_VRAM_INFO_V4 ++{ ++  ATOM_COMMON_TABLE_HEADER   sHeader; ++	USHORT										 usMemAdjustTblOffset;													 // offset of ATOM_INIT_REG_BLOCK structure for memory vendor specific MC adjust setting ++	USHORT										 usMemClkPatchTblOffset;												 //	offset of ATOM_INIT_REG_BLOCK structure for memory clock specific MC setting ++	USHORT										 usRerseved; ++	UCHAR           	         ucMemDQ7_0ByteRemap;													   // DQ line byte remap, =0: Memory Data line BYTE0, =1: BYTE1, =2: BYTE2, =3: BYTE3 ++  ULONG                      ulMemDQ7_0BitRemap;                             // each DQ line ( 7~0) use 3bits, like: DQ0=Bit[2:0], DQ1:[5:3], ... DQ7:[23:21] ++  UCHAR                      ucReservde[4];  ++  UCHAR                      ucNumOfVRAMModule; ++  ATOM_VRAM_MODULE_V4		     aVramInfo[ATOM_MAX_NUMBER_OF_VRAM_MODULE];      // just for allocation, real number of blocks is in ucNumOfVRAMModule; ++	ATOM_INIT_REG_BLOCK				 asMemPatch;																		 // for allocation ++																																						 //	ATOM_INIT_REG_BLOCK				 aMemAdjust; ++}ATOM_VRAM_INFO_V4; ++ + typedef struct _ATOM_VRAM_GPIO_DETECTION_INFO + { +   ATOM_COMMON_TABLE_HEADER   sHeader; +@@ -3954,6 +4503,7 @@ typedef struct _DP_ENCODER_SERVICE_PARAMETERS + #define ATOM_DP_ACTION_TRAINING_PATTERN_SEL				0x04 + #define ATOM_DP_ACTION_SET_VSWING_PREEMP					0x05 + #define ATOM_DP_ACTION_GET_VSWING_PREEMP					0x06 ++#define ATOM_DP_ACTION_BLANKING                   0x07 +  + // ucConfig + #define ATOM_DP_CONFIG_ENCODER_SEL_MASK						0x03 +@@ -4072,7 +4622,7 @@ typedef struct  _COMPASSIONATE_DATA +  + typedef struct _ATOM_CONNECTOR_INFO + { +-#if X_BYTE_ORDER == X_BIG_ENDIAN ++#if ATOM_BIG_ENDIAN +   UCHAR   bfConnectorType:4; +   UCHAR   bfAssociatedDAC:4; + #else +@@ -4469,17 +5019,6 @@ typedef struct  _ATOM_POWERPLAY_INFO_V3 + #define ENABLE_LVDS_SS_PARAMETERS_V3  ENABLE_SPREAD_SPECTRUM_ON_PPLL   +  + /*********************************************************************************/ +-#define ATOM_S3_SCALER2_ACTIVE_H          0x00004000L +-#define ATOM_S3_SCALER2_ACTIVE_V          0x00008000L +-#define ATOM_S6_REQ_SCALER2_H             0x00004000L +-#define ATOM_S6_REQ_SCALER2_V             0x00008000L +-  +-#define ATOM_S3_SCALER1_ACTIVE_H          ATOM_S3_LCD_FULLEXPANSION_ACTIVE +-#define ATOM_S3_SCALER1_ACTIVE_V          ATOM_S3_LCD_EXPANSION_ASPEC_RATIO_ACTIVE +-  +-#define ATOM_S6_REQ_SCALER1_H             ATOM_S6_REQ_LCD_EXPANSION_FULL +-#define ATOM_S6_REQ_SCALER1_V             ATOM_S6_REQ_LCD_EXPANSION_ASPEC_RATIO +-//========================================================================================== +  + #pragma pack() // BIOS data must use byte aligment +  +diff --git a/src/Makefile.am b/src/Makefile.am +index 5333495..d65a3e4 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -26,8 +26,11 @@ + # _ladir passes a dummy rpath to libtool so the thing will actually link + # TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc. +  ++radeon_drv_la_LIBADD = ++ + if DRI + RADEON_DRI_SRCS = radeon_dri.c ++radeon_drv_la_LIBADD += $(DRI_LIBS) + endif +  + RADEON_ATOMBIOS_SOURCES = \ +@@ -70,6 +73,11 @@ AM_CFLAGS = @XORG_CFLAGS@ @DRI_CFLAGS@ @XMODES_CFLAGS@ -DDISABLE_EASF -DENABLE_A +  + INCLUDES = -I$(srcdir)/AtomBios/includes +  ++if XSERVER_LIBPCIACCESS ++ati_drv_la_LIBADD = $(PCIACCESS_LIBS) ++radeon_drv_la_LIBADD += $(PCIACCESS_LIBS) ++endif ++ + ati_drv_la_LTLIBRARIES = ati_drv.la + ati_drv_la_LDFLAGS = -module -avoid-version + ati_drv_ladir = @moduledir@/drivers +@@ -80,7 +88,7 @@ radeon_drv_la_LTLIBRARIES = radeon_drv.la + radeon_drv_la_LDFLAGS = -module -avoid-version + radeon_drv_ladir = @moduledir@/drivers + radeon_drv_la_SOURCES = \ +-	radeon_accel.c radeon_cursor.c radeon_dga.c \ ++	radeon_accel.c radeon_cursor.c radeon_dga.c radeon_legacy_memory.c \ + 	radeon_driver.c radeon_video.c radeon_bios.c radeon_mm_i2c.c \ + 	radeon_vip.c radeon_misc.c radeon_probe.c \ + 	legacy_crtc.c legacy_output.c \ +@@ -120,7 +128,6 @@ EXTRA_DIST = \ + 	radeon_render.c \ + 	radeon_accelfuncs.c \ + 	radeon_textured_videofuncs.c \ +-	\ + 	ati.h \ + 	ativersion.h \ + 	generic_bus.h \ +diff --git a/src/ati_pciids_gen.h b/src/ati_pciids_gen.h +index a740df8..633c5d3 100644 +--- a/src/ati_pciids_gen.h ++++ b/src/ati_pciids_gen.h +@@ -1,4 +1,5 @@ + #define PCI_CHIP_RV380_3150 0x3150 ++#define PCI_CHIP_RV380_3151 0x3151 + #define PCI_CHIP_RV380_3152 0x3152 + #define PCI_CHIP_RV380_3154 0x3154 + #define PCI_CHIP_RV380_3E50 0x3E50 +@@ -330,6 +331,9 @@ + #define PCI_CHIP_R600_940A 0x940A + #define PCI_CHIP_R600_940B 0x940B + #define PCI_CHIP_R600_940F 0x940F ++#define PCI_CHIP_RV770_9440 0x9440 ++#define PCI_CHIP_RV770_9441 0x9441 ++#define PCI_CHIP_RV770_9442 0x9442 + #define PCI_CHIP_RV610_94C0 0x94C0 + #define PCI_CHIP_RV610_94C1 0x94C1 + #define PCI_CHIP_RV610_94C3 0x94C3 +@@ -347,6 +351,7 @@ + #define PCI_CHIP_RV670_9507 0x9507 + #define PCI_CHIP_RV670_950F 0x950F + #define PCI_CHIP_RV670_9511 0x9511 ++#define PCI_CHIP_RV670_9515 0x9515 + #define PCI_CHIP_RV630_9580 0x9580 + #define PCI_CHIP_RV630_9581 0x9581 + #define PCI_CHIP_RV630_9583 0x9583 +diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c +index 363addf..4e2395f 100644 +--- a/src/atombios_crtc.c ++++ b/src/atombios_crtc.c +@@ -43,11 +43,33 @@ +  + #ifdef XF86DRI + #define _XF86DRI_SERVER_ +-#include "radeon_dri.h" +-#include "radeon_sarea.h" ++#include "radeon_drm.h" + #include "sarea.h" + #endif +  ++AtomBiosResult ++atombios_lock_crtc(atomBiosHandlePtr atomBIOS, int crtc, int lock) ++{ ++    ENABLE_CRTC_PS_ALLOCATION crtc_data; ++    AtomBiosArgRec data; ++    unsigned char *space; ++ ++    crtc_data.ucCRTC = crtc; ++    crtc_data.ucEnable = lock; ++ ++    data.exec.index = GetIndexIntoMasterTable(COMMAND, UpdateCRTC_DoubleBufferRegisters); ++    data.exec.dataSpace = (void *)&space; ++    data.exec.pspace = &crtc_data; ++ ++    if (RHDAtomBiosFunc(atomBIOS->scrnIndex, atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { ++	ErrorF("%s CRTC %d success\n", lock? "Lock":"Unlock", crtc); ++	return ATOM_SUCCESS ; ++    } ++ ++    ErrorF("Lock CRTC failed\n"); ++    return ATOM_NOT_IMPLEMENTED; ++} ++ + static AtomBiosResult + atombios_enable_crtc(atomBiosHandlePtr atomBIOS, int crtc, int state) + { +@@ -105,7 +127,7 @@ atombios_blank_crtc(atomBiosHandlePtr atomBIOS, int crtc, int state) +     crtc_data.ucCRTC = crtc; +     crtc_data.ucBlanking = state; +  +-    data.exec.index = offsetof(ATOM_MASTER_LIST_OF_COMMAND_TABLES, BlankCRTC) / sizeof(unsigned short); ++    data.exec.index = GetIndexIntoMasterTable(COMMAND, BlankCRTC); +     data.exec.dataSpace = (void *)&space; +     data.exec.pspace = &crtc_data; +  +@@ -146,10 +168,27 @@ atombios_set_crtc_timing(atomBiosHandlePtr atomBIOS, SET_CRTC_TIMING_PARAMETERS_ + { +     AtomBiosArgRec data; +     unsigned char *space; ++    SET_CRTC_TIMING_PARAMETERS_PS_ALLOCATION conv_param; ++ ++    conv_param.usH_Total		= cpu_to_le16(crtc_param->usH_Total); ++    conv_param.usH_Disp			= cpu_to_le16(crtc_param->usH_Disp); ++    conv_param.usH_SyncStart		= cpu_to_le16(crtc_param->usH_SyncStart); ++    conv_param.usH_SyncWidth		= cpu_to_le16(crtc_param->usH_SyncWidth); ++    conv_param.usV_Total		= cpu_to_le16(crtc_param->usV_Total); ++    conv_param.usV_Disp			= cpu_to_le16(crtc_param->usV_Disp); ++    conv_param.usV_SyncStart		= cpu_to_le16(crtc_param->usV_SyncStart); ++    conv_param.usV_SyncWidth		= cpu_to_le16(crtc_param->usV_SyncWidth); ++    conv_param.susModeMiscInfo.usAccess = cpu_to_le16(crtc_param->susModeMiscInfo.usAccess); ++    conv_param.ucCRTC			= crtc_param->ucCRTC; ++    conv_param.ucOverscanRight		= crtc_param->ucOverscanRight; ++    conv_param.ucOverscanLeft		= crtc_param->ucOverscanLeft; ++    conv_param.ucOverscanBottom		= crtc_param->ucOverscanBottom; ++    conv_param.ucOverscanTop		= crtc_param->ucOverscanTop;  ++    conv_param.ucReserved		= crtc_param->ucReserved; +  +     data.exec.index = GetIndexIntoMasterTable(COMMAND, SetCRTC_Timing); +     data.exec.dataSpace = (void *)&space; +-    data.exec.pspace = crtc_param; ++    data.exec.pspace = &conv_param; +  +     if (RHDAtomBiosFunc(atomBIOS->scrnIndex, atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + 	ErrorF("Set CRTC Timing success\n"); +@@ -185,7 +224,11 @@ atombios_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode, int pll_flags) +     if (IS_AVIVO_VARIANT) { + 	uint32_t temp; +  +-	pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV; ++	if (IS_DCE3_VARIANT && mode->Clock > 200000) /* range limits??? */ ++	    pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV; ++	else ++	    pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV; ++ +  + 	RADEONComputePLL(&info->pll, mode->Clock, &temp, &fb_div, &ref_div, &post_div, pll_flags); + 	sclock = temp; +@@ -235,9 +278,9 @@ atombios_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode, int pll_flags) + 	case 1: + 	case 2: + 	    spc2_ptr = (PIXEL_CLOCK_PARAMETERS_V2*)&spc_param.sPCLKInput; +-	    spc2_ptr->usPixelClock = sclock; +-	    spc2_ptr->usRefDiv = ref_div; +-	    spc2_ptr->usFbDiv = fb_div; ++	    spc2_ptr->usPixelClock = cpu_to_le16(sclock); ++	    spc2_ptr->usRefDiv = cpu_to_le16(ref_div); ++	    spc2_ptr->usFbDiv = cpu_to_le16(fb_div); + 	    spc2_ptr->ucPostDiv = post_div; + 	    spc2_ptr->ucPpll = radeon_crtc->crtc_id ? ATOM_PPLL2 : ATOM_PPLL1; + 	    spc2_ptr->ucCRTC = radeon_crtc->crtc_id; +@@ -246,9 +289,9 @@ atombios_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode, int pll_flags) + 	    break; + 	case 3: + 	    spc3_ptr = (PIXEL_CLOCK_PARAMETERS_V3*)&spc_param.sPCLKInput; +-	    spc3_ptr->usPixelClock = sclock; +-	    spc3_ptr->usRefDiv = ref_div; +-	    spc3_ptr->usFbDiv = fb_div; ++	    spc3_ptr->usPixelClock = cpu_to_le16(sclock); ++	    spc3_ptr->usRefDiv = cpu_to_le16(ref_div); ++	    spc3_ptr->usFbDiv = cpu_to_le16(fb_div); + 	    spc3_ptr->ucPostDiv = post_div; + 	    spc3_ptr->ucPpll = radeon_crtc->crtc_id ? ATOM_PPLL2 : ATOM_PPLL1; + 	    spc3_ptr->ucMiscInfo = (radeon_crtc->crtc_id << 2); +@@ -442,9 +485,6 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc, + 	    fb_location = fb_location + (char *)crtc->rotatedData - (char *)info->FB; + 	} +  +-	/* lock the grph regs */ +-	OUTREG(AVIVO_D1GRPH_UPDATE + radeon_crtc->crtc_offset, AVIVO_D1GRPH_UPDATE_LOCK); +- + 	OUTREG(AVIVO_D1GRPH_PRIMARY_SURFACE_ADDRESS + radeon_crtc->crtc_offset, fb_location); + 	OUTREG(AVIVO_D1GRPH_SECONDARY_SURFACE_ADDRESS + radeon_crtc->crtc_offset, fb_location); + 	OUTREG(AVIVO_D1GRPH_CONTROL + radeon_crtc->crtc_offset, fb_format); +@@ -459,26 +499,27 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc, + 	       crtc->scrn->displayWidth); + 	OUTREG(AVIVO_D1GRPH_ENABLE + radeon_crtc->crtc_offset, 1); +  +-	/* unlock the grph regs */ +-	OUTREG(AVIVO_D1GRPH_UPDATE + radeon_crtc->crtc_offset, 0); +- +-	/* lock the mode regs */ +-	OUTREG(AVIVO_D1SCL_UPDATE + radeon_crtc->crtc_offset, AVIVO_D1SCL_UPDATE_LOCK); +- + 	OUTREG(AVIVO_D1MODE_DESKTOP_HEIGHT + radeon_crtc->crtc_offset, + 	       		mode->VDisplay); + 	OUTREG(AVIVO_D1MODE_VIEWPORT_START + radeon_crtc->crtc_offset, (x << 16) | y); + 	OUTREG(AVIVO_D1MODE_VIEWPORT_SIZE + radeon_crtc->crtc_offset, + 	       (mode->HDisplay << 16) | mode->VDisplay); +-	/* unlock the mode regs */ +-	OUTREG(AVIVO_D1SCL_UPDATE + radeon_crtc->crtc_offset, 0); +  ++	if (adjusted_mode->Flags & V_INTERLACE) ++	    OUTREG(AVIVO_D1MODE_DATA_FORMAT + radeon_crtc->crtc_offset, ++		   AVIVO_D1MODE_INTERLEAVE_EN); ++	else ++	    OUTREG(AVIVO_D1MODE_DATA_FORMAT + radeon_crtc->crtc_offset, ++		   0); +     } +  +     atombios_crtc_set_pll(crtc, adjusted_mode, pll_flags); +  +     atombios_set_crtc_timing(info->atomBIOS, &crtc_timing); +  ++    if (info->DispPriority) ++	RADEONInitDispBandwidth(pScrn); ++ +     if (tilingChanged) { + 	/* need to redraw front buffer, I guess this can be considered a hack ? */ + 	/* if this is called during ScreenInit() we don't have pScrn->pScreen yet */ +@@ -492,3 +533,126 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc, +  + } +  ++/* Calculate display buffer watermark to prevent buffer underflow */ ++void ++RADEONInitDispBandwidthAVIVO(ScrnInfoPtr pScrn, ++			      DisplayModePtr mode1, int pixel_bytes1, ++			      DisplayModePtr mode2, int pixel_bytes2) ++{ ++    RADEONInfoPtr info = RADEONPTR(pScrn); ++    RADEONEntPtr pRADEONEnt   = RADEONEntPriv(pScrn); ++    unsigned char *RADEONMMIO = info->MMIO; ++ ++    uint32_t dc_lb_memory_split; ++    float mem_bw, peak_disp_bw; ++    float min_mem_eff = 0.8; /* XXX: taken from legacy method */ ++    float pix_clk, pix_clk2; /* in MHz */ ++ ++    /* ++     * Set display0/1 priority up in the memory controller for ++     * modes if the user specifies HIGH for displaypriority ++     * option. ++     */ ++    if (info->DispPriority == 2) { ++	uint32_t mc_init_misc_lat_timer = 0; ++	if (info->ChipFamily == CHIP_FAMILY_RV515) ++	    mc_init_misc_lat_timer = INMC(pScrn, RV515_MC_INIT_MISC_LAT_TIMER); ++	else if (info->ChipFamily == CHIP_FAMILY_RS690) ++	    mc_init_misc_lat_timer = INMC(pScrn, RS690_MC_INIT_MISC_LAT_TIMER); ++ ++	mc_init_misc_lat_timer &= ~(R300_MC_DISP1R_INIT_LAT_MASK << R300_MC_DISP1R_INIT_LAT_SHIFT); ++	mc_init_misc_lat_timer &= ~(R300_MC_DISP0R_INIT_LAT_MASK << R300_MC_DISP0R_INIT_LAT_SHIFT); ++ ++	if (pRADEONEnt->pCrtc[1]->enabled) ++	    mc_init_misc_lat_timer |= (1 << R300_MC_DISP1R_INIT_LAT_SHIFT); /* display 1 */ ++	if (pRADEONEnt->pCrtc[0]->enabled) ++	    mc_init_misc_lat_timer |= (1 << R300_MC_DISP0R_INIT_LAT_SHIFT); /* display 0 */ ++ ++	if (info->ChipFamily == CHIP_FAMILY_RV515) ++	    OUTMC(pScrn, RV515_MC_INIT_MISC_LAT_TIMER, mc_init_misc_lat_timer); ++	else if (info->ChipFamily == CHIP_FAMILY_RS690) ++	    OUTMC(pScrn, RS690_MC_INIT_MISC_LAT_TIMER, mc_init_misc_lat_timer); ++    } ++ ++    /* XXX: fix me for AVIVO ++     * Determine if there is enough bandwidth for current display mode ++     */ ++    mem_bw = info->mclk * (info->RamWidth / 8) * (info->IsDDR ? 2 : 1); ++ ++    pix_clk = 0; ++    pix_clk2 = 0; ++    peak_disp_bw = 0; ++    if (mode1) { ++	pix_clk = mode1->Clock/1000.0; ++	peak_disp_bw += (pix_clk * pixel_bytes1); ++    } ++    if (mode2) { ++	pix_clk2 = mode2->Clock/1000.0; ++	peak_disp_bw += (pix_clk2 * pixel_bytes2); ++    } ++ ++    if (peak_disp_bw >= mem_bw * min_mem_eff) { ++	xf86DrvMsg(pScrn->scrnIndex, X_WARNING, ++		   "You may not have enough display bandwidth for current mode\n" ++		   "If you have flickering problem, try to lower resolution, refresh rate, or color depth\n"); ++    } ++ ++    /* ++     * Line Buffer Setup ++     * There is a single line buffer shared by both display controllers. ++     * DC_LB_MEMORY_SPLIT controls how that line buffer is shared between the display ++     * controllers.  The paritioning can either be done manually or via one of four ++     * preset allocations specified in bits 1:0: ++     * 0 - line buffer is divided in half and shared between each display controller ++     * 1 - D1 gets 3/4 of the line buffer, D2 gets 1/4 ++     * 2 - D1 gets the whole buffer ++     * 3 - D1 gets 1/4 of the line buffer, D2 gets 3/4 ++     * Setting bit 2 of DC_LB_MEMORY_SPLIT controls switches to manual allocation mode. ++     * In manual allocation mode, D1 always starts at 0, D1 end/2 is specified in bits ++     * 14:4; D2 allocation follows D1. ++     */ ++ ++    /* is auto or manual better ? */ ++    dc_lb_memory_split = INREG(AVIVO_DC_LB_MEMORY_SPLIT) & ~AVIVO_DC_LB_MEMORY_SPLIT_MASK; ++    dc_lb_memory_split &= ~AVIVO_DC_LB_MEMORY_SPLIT_SHIFT_MODE; ++#if 1 ++    /* auto */ ++    if (mode1 && mode2) { ++	if (mode1->HDisplay > mode2->HDisplay) { ++	    if (mode1->HDisplay > 2560) ++		dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1_3Q_D2_1Q; ++	    else ++		dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1HALF_D2HALF; ++	} else if (mode2->HDisplay > mode1->HDisplay) { ++	    if (mode2->HDisplay > 2560) ++		dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1_1Q_D2_3Q; ++	    else ++		dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1HALF_D2HALF; ++	} else ++	    dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1HALF_D2HALF; ++    } else if (mode1) { ++	dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1_ONLY; ++    } else if (mode2) { ++	dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1_1Q_D2_3Q; ++    } ++#else ++    /* manual */ ++    dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_SHIFT_MODE; ++    dc_lb_memory_split &= ~(AVIVO_DC_LB_DISP1_END_ADR_MASK << AVIVO_DC_LB_DISP1_END_ADR_SHIFT); ++    if (mode1) { ++	dc_lb_memory_split |= ((((mode1->HDisplay / 2) + 64 /*???*/) & AVIVO_DC_LB_DISP1_END_ADR_MASK) ++			       << AVIVO_DC_LB_DISP1_END_ADR_SHIFT); ++    } else if (mode2) { ++	dc_lb_memory_split |= (0 << AVIVO_DC_LB_DISP1_END_ADR_SHIFT); ++    } ++    OUTREG(AVIVO_DC_LB_MEMORY_SPLIT, dc_lb_memory_split); ++#endif ++ ++    /* ++     * Watermark setup ++     * TODO... ++     * Unforunately, I haven't been able to dig up the avivo watermark programming ++     * guide yet. -AGD ++     */ ++ ++} +diff --git a/src/atombios_output.c b/src/atombios_output.c +index 51be301..49de04f 100644 +--- a/src/atombios_output.c ++++ b/src/atombios_output.c +@@ -43,6 +43,8 @@ + #include "radeon_macros.h" + #include "radeon_atombios.h" +  ++#include "ati_pciids_gen.h" ++ + static int + atombios_output_dac1_setup(xf86OutputPtr output, DisplayModePtr mode) + { +@@ -78,7 +80,7 @@ atombios_output_dac1_setup(xf86OutputPtr output, DisplayModePtr mode) + 	} +     } +  +-    disp_data.usPixelClock = mode->Clock / 10; ++    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10); +     data.exec.index = GetIndexIntoMasterTable(COMMAND, DAC1EncoderControl); +     data.exec.dataSpace = (void *)&space; +     data.exec.pspace = &disp_data; +@@ -128,7 +130,7 @@ atombios_output_dac2_setup(xf86OutputPtr output, DisplayModePtr mode) + 	} +     } +  +-    disp_data.usPixelClock = mode->Clock / 10; ++    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10); +     data.exec.index = GetIndexIntoMasterTable(COMMAND, DAC2EncoderControl); +     data.exec.dataSpace = (void *)&space; +     data.exec.pspace = &disp_data; +@@ -188,7 +190,7 @@ atombios_output_tv1_setup(xf86OutputPtr output, DisplayModePtr mode) + 	} +     } +  +-    disp_data.sTVEncoder.usPixelClock = mode->Clock / 10; ++    disp_data.sTVEncoder.usPixelClock = cpu_to_le16(mode->Clock / 10); +     data.exec.index = GetIndexIntoMasterTable(COMMAND, TVEncoderControl); +     data.exec.dataSpace = (void *)&space; +     data.exec.pspace = &disp_data; +@@ -206,7 +208,8 @@ atombios_output_tv1_setup(xf86OutputPtr output, DisplayModePtr mode) + int + atombios_external_tmds_setup(xf86OutputPtr output, DisplayModePtr mode) + { +-    RADEONInfoPtr info       = RADEONPTR(output->scrn); ++    ScrnInfoPtr pScrn = output->scrn; ++    RADEONInfoPtr info       = RADEONPTR(pScrn); +     ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION disp_data; +     AtomBiosArgRec data; +     unsigned char *space; +@@ -218,7 +221,7 @@ atombios_external_tmds_setup(xf86OutputPtr output, DisplayModePtr mode) +     else + 	disp_data.sXTmdsEncoder.ucMisc = 0; +  +-    if (!info->dac6bits) ++    if (pScrn->rgbBits == 8) + 	disp_data.sXTmdsEncoder.ucMisc |= (1 << 1); +  +     data.exec.index = GetIndexIntoMasterTable(COMMAND, DVOEncoderControl); +@@ -243,7 +246,7 @@ atombios_output_ddia_setup(xf86OutputPtr output, DisplayModePtr mode) +     unsigned char *space; +  +     disp_data.sDVOEncoder.ucAction = ATOM_ENABLE; +-    disp_data.sDVOEncoder.usPixelClock = mode->Clock / 10; ++    disp_data.sDVOEncoder.usPixelClock = cpu_to_le16(mode->Clock / 10); +  +     if (mode->Clock > 165000) + 	disp_data.sDVOEncoder.usDevAttr.sDigAttrib.ucAttribute = PANEL_ENCODER_MISC_DUAL; +@@ -264,84 +267,110 @@ atombios_output_ddia_setup(xf86OutputPtr output, DisplayModePtr mode) + } +  + static int +-atombios_output_tmds1_setup(xf86OutputPtr output, DisplayModePtr mode) ++atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr mode) + { +-    RADEONInfoPtr info       = RADEONPTR(output->scrn); +-    TMDS1_ENCODER_CONTROL_PS_ALLOCATION disp_data; ++    RADEONOutputPrivatePtr radeon_output = output->driver_private; ++    ScrnInfoPtr pScrn = output->scrn; ++    RADEONInfoPtr info       = RADEONPTR(pScrn); ++    LVDS_ENCODER_CONTROL_PS_ALLOCATION disp_data; ++    LVDS_ENCODER_CONTROL_PS_ALLOCATION_V2 disp_data2; +     AtomBiosArgRec data; +     unsigned char *space; ++    int index; ++    int major, minor; +  +-    disp_data.ucAction = 1; +-    if (mode->Clock > 165000) +-	disp_data.ucMisc = 1; +-    else +-	disp_data.ucMisc = 0; +-    disp_data.usPixelClock = mode->Clock / 10; +-    data.exec.index = GetIndexIntoMasterTable(COMMAND, TMDS1EncoderControl); +-    data.exec.dataSpace = (void *)&space; +-    data.exec.pspace = &disp_data; +- +-    if (RHDAtomBiosFunc(info->atomBIOS->scrnIndex, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { +-	ErrorF("Output TMDS1 setup success\n"); +-	return ATOM_SUCCESS; ++    switch (device) { ++    case ATOM_DEVICE_DFP1_INDEX: ++	index = GetIndexIntoMasterTable(COMMAND, TMDS1EncoderControl); ++	break; ++    case ATOM_DEVICE_LCD1_INDEX: ++	index = GetIndexIntoMasterTable(COMMAND, LVDSEncoderControl); ++	break; ++    case ATOM_DEVICE_DFP3_INDEX: ++	index = GetIndexIntoMasterTable(COMMAND, TMDS2EncoderControl); ++	break; ++    default: ++	return ATOM_NOT_IMPLEMENTED; ++	break; +     } +  +-    ErrorF("Output TMDS1 setup failed\n"); +-    return ATOM_NOT_IMPLEMENTED; +- +-} +- +-static int +-atombios_output_tmds2_setup(xf86OutputPtr output, DisplayModePtr mode) +-{ +-    RADEONInfoPtr info       = RADEONPTR(output->scrn); +-    TMDS2_ENCODER_CONTROL_PS_ALLOCATION disp_data; +-    AtomBiosArgRec data; +-    unsigned char *space; +- +-    disp_data.ucAction = 1; +-    if (mode->Clock > 165000) +-	disp_data.ucMisc = 1; +-    else +-	disp_data.ucMisc = 0; +-    disp_data.usPixelClock = mode->Clock / 10; +-    data.exec.index = GetIndexIntoMasterTable(COMMAND, TMDS2EncoderControl); +-    data.exec.dataSpace = (void *)&space; +-    data.exec.pspace = &disp_data; ++    atombios_get_command_table_version(info->atomBIOS, index, &major, &minor); +  +-    if (RHDAtomBiosFunc(info->atomBIOS->scrnIndex, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { +-	ErrorF("Output TMDS2 setup success\n"); +-	return ATOM_SUCCESS; ++    /*ErrorF("table is %d %d\n", major, minor);*/ ++    switch (major) { ++    case 0: ++    case 1: ++	switch (minor) { ++	case 1: ++	    disp_data.ucMisc = 0; ++	    disp_data.ucAction = PANEL_ENCODER_ACTION_ENABLE; ++	    if (radeon_output->type == OUTPUT_HDMI) ++		disp_data.ucMisc |= PANEL_ENCODER_MISC_HDMI_TYPE; ++	    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10); ++	    if (device == ATOM_DEVICE_LCD1_INDEX) { ++		if (radeon_output->lvds_misc & (1 << 0)) ++		    disp_data.ucMisc |= PANEL_ENCODER_MISC_DUAL; ++		if (radeon_output->lvds_misc & (1 << 1)) ++		    disp_data.ucMisc |= (1 << 1); ++	    } else { ++		if (mode->Clock > 165000) ++		    disp_data.ucMisc |= PANEL_ENCODER_MISC_DUAL; ++		if (pScrn->rgbBits == 8) ++		    disp_data.ucMisc |= (1 << 1); ++	    } ++	    data.exec.pspace = &disp_data; ++	    break; ++	case 2: ++	case 3: ++	    disp_data2.ucMisc = 0; ++	    disp_data2.ucAction = PANEL_ENCODER_ACTION_ENABLE; ++	    if (minor == 3) { ++		if (radeon_output->coherent_mode) { ++		    disp_data2.ucMisc |= PANEL_ENCODER_MISC_COHERENT; ++		    xf86DrvMsg(output->scrn->scrnIndex, X_INFO, "Coherent Mode enabled\n"); ++		} ++	    } ++	    if (radeon_output->type == OUTPUT_HDMI) ++		disp_data2.ucMisc |= PANEL_ENCODER_MISC_HDMI_TYPE; ++	    disp_data2.usPixelClock = cpu_to_le16(mode->Clock / 10); ++	    disp_data2.ucTruncate = 0; ++	    disp_data2.ucSpatial = 0; ++	    disp_data2.ucTemporal = 0; ++	    disp_data2.ucFRC = 0; ++	    if (device == ATOM_DEVICE_LCD1_INDEX) { ++		if (radeon_output->lvds_misc & (1 << 0)) ++		    disp_data2.ucMisc |= PANEL_ENCODER_MISC_DUAL; ++		if (radeon_output->lvds_misc & (1 << 5)) { ++		    disp_data2.ucSpatial = PANEL_ENCODER_SPATIAL_DITHER_EN; ++		    if (radeon_output->lvds_misc & (1 << 1)) ++			disp_data2.ucSpatial |= PANEL_ENCODER_SPATIAL_DITHER_DEPTH; ++		} ++		if (radeon_output->lvds_misc & (1 << 6)) { ++		    disp_data2.ucTemporal = PANEL_ENCODER_TEMPORAL_DITHER_EN; ++		    if (radeon_output->lvds_misc & (1 << 1)) ++			disp_data2.ucTemporal |= PANEL_ENCODER_TEMPORAL_DITHER_DEPTH; ++		    if (((radeon_output->lvds_misc >> 2) & 0x3) == 2) ++			disp_data2.ucTemporal |= PANEL_ENCODER_TEMPORAL_LEVEL_4; ++		} ++	    } else { ++		if (mode->Clock > 165000) ++		    disp_data2.ucMisc |= PANEL_ENCODER_MISC_DUAL; ++	    } ++	    data.exec.pspace = &disp_data2; ++	    break; ++	} ++	break; +     } +  +-    ErrorF("Output TMDS2 setup failed\n"); +-    return ATOM_NOT_IMPLEMENTED; +-} +- +-static int +-atombios_output_lvds_setup(xf86OutputPtr output, DisplayModePtr mode) +-{ +-    RADEONInfoPtr info       = RADEONPTR(output->scrn); +-    LVDS_ENCODER_CONTROL_PS_ALLOCATION disp_data; +-    AtomBiosArgRec data; +-    unsigned char *space; +- +-    disp_data.ucAction = 1; +-    if (mode->Clock > 165000) +-	disp_data.ucMisc = 1; +-    else +-	disp_data.ucMisc = 0; +-    disp_data.usPixelClock = mode->Clock / 10; +-    data.exec.index = GetIndexIntoMasterTable(COMMAND, LVDSEncoderControl); ++    data.exec.index = index; +     data.exec.dataSpace = (void *)&space; +-    data.exec.pspace = &disp_data; +  +     if (RHDAtomBiosFunc(info->atomBIOS->scrnIndex, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { +-	ErrorF("Output LVDS setup success\n"); ++	ErrorF("Output digital setup success\n"); + 	return ATOM_SUCCESS; +     } +  +-    ErrorF("Output LVDS setup failed\n"); ++    ErrorF("Output digital setup failed\n"); +     return ATOM_NOT_IMPLEMENTED; + } +  +@@ -355,7 +384,7 @@ atombios_output_dig1_setup(xf86OutputPtr output, DisplayModePtr mode) +     unsigned char *space; +  +     disp_data.ucAction = 1; +-    disp_data.usPixelClock = mode->Clock / 10; ++    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10); +     disp_data.ucConfig = ATOM_ENCODER_CONFIG_TRANSMITTER1; +     if (OUTPUT_IS_DVI || (radeon_output->type == OUTPUT_HDMI)) { + 	if (radeon_output->coherent_mode) { +@@ -406,7 +435,7 @@ atombios_output_dig1_transmitter_setup(xf86OutputPtr output, DisplayModePtr mode +     unsigned char *space; +  +     disp_data.ucAction = ATOM_TRANSMITTER_ACTION_ENABLE; +-    disp_data.usPixelClock = mode->Clock / 10; ++    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10); +     disp_data.ucConfig = ATOM_TRANSMITTER_CONFIG_DIG1_ENCODER | ATOM_TRANSMITTER_CONFIG_CLKSRC_PPLL; +  +     if (info->IsIGP && (radeon_output->TMDSType == TMDS_UNIPHY)) { +@@ -464,7 +493,7 @@ atombios_output_dig2_setup(xf86OutputPtr output, DisplayModePtr mode) +     unsigned char *space; +  +     disp_data.ucAction = 1; +-    disp_data.usPixelClock = mode->Clock / 10; ++    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10); +     disp_data.ucConfig = ATOM_ENCODER_CONFIG_TRANSMITTER2; +     if (OUTPUT_IS_DVI || (radeon_output->type == OUTPUT_HDMI)) { + 	if (radeon_output->coherent_mode) { +@@ -515,7 +544,7 @@ atombios_output_dig2_transmitter_setup(xf86OutputPtr output, DisplayModePtr mode +     unsigned char *space; +  +     disp_data.ucAction = ATOM_TRANSMITTER_ACTION_ENABLE; +-    disp_data.usPixelClock = mode->Clock / 10; ++    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10); +     disp_data.ucConfig = ATOM_TRANSMITTER_CONFIG_DIG2_ENCODER | ATOM_TRANSMITTER_CONFIG_CLKSRC_PPLL; +  +     if (info->IsIGP && (radeon_output->TMDSType == TMDS_UNIPHY)) { +@@ -600,34 +629,6 @@ atombios_output_scaler_setup(xf86OutputPtr output, DisplayModePtr mode) +  + } +  +-static void +-dfp_disable_dither(xf86OutputPtr output, int device) +-{ +-    RADEONInfoPtr info       = RADEONPTR(output->scrn); +-    unsigned char *RADEONMMIO = info->MMIO; +- +-    switch (device) { +-    case ATOM_DEVICE_DFP1_SUPPORT: +-	OUTREG(AVIVO_TMDSA_BIT_DEPTH_CONTROL, 0); /* TMDSA */ +-	break; +-    case ATOM_DEVICE_DFP2_SUPPORT: +-	if ((info->ChipFamily == CHIP_FAMILY_RS600) || +-	    (info->ChipFamily == CHIP_FAMILY_RS690) || +-	    (info->ChipFamily == CHIP_FAMILY_RS740)) +-	    OUTREG(AVIVO_DDIA_BIT_DEPTH_CONTROL, 0); /* DDIA */ +-	else +-	    OUTREG(AVIVO_DVOA_BIT_DEPTH_CONTROL, 0); /* DVO */ +-	break; +-    /*case ATOM_DEVICE_LCD1_SUPPORT:*/ /* LVDS panels need dither enabled */ +-    case ATOM_DEVICE_DFP3_SUPPORT: +-	OUTREG(AVIVO_LVTMA_BIT_DEPTH_CONTROL, 0); /* LVTMA */ +-	break; +-    default: +-	break; +-    } +- +-} +- + static AtomBiosResult + atombios_display_device_control(atomBiosHandlePtr atomBIOS, int device, Bool state) + { +@@ -896,6 +897,30 @@ atombios_set_output_crtc_source(xf86OutputPtr output) +     return; + } +  ++static void ++atombios_apply_output_quirks(xf86OutputPtr output) ++{ ++    RADEONOutputPrivatePtr radeon_output = output->driver_private; ++    RADEONInfoPtr info       = RADEONPTR(output->scrn); ++    unsigned char *RADEONMMIO = info->MMIO; ++ ++    /* Funky macbooks */ ++    if ((info->Chipset == PCI_CHIP_RV530_71C5) && ++	(PCI_SUB_VENDOR_ID(info->PciInfo) == 0x106b) && ++	(PCI_SUB_DEVICE_ID(info->PciInfo) == 0x0080)) { ++	if (radeon_output->MonType == MT_LCD) { ++	    if (radeon_output->devices & ATOM_DEVICE_LCD1_SUPPORT) { ++		uint32_t lvtma_bit_depth_control = INREG(AVIVO_LVTMA_BIT_DEPTH_CONTROL); ++ ++		lvtma_bit_depth_control &= ~AVIVO_LVTMA_BIT_DEPTH_CONTROL_TRUNCATE_EN; ++		lvtma_bit_depth_control &= ~AVIVO_LVTMA_BIT_DEPTH_CONTROL_SPATIAL_DITHER_EN; ++ ++		OUTREG(AVIVO_LVTMA_BIT_DEPTH_CONTROL, lvtma_bit_depth_control); ++	    } ++	} ++    } ++} ++ + void + atombios_output_mode_set(xf86OutputPtr output, + 			 DisplayModePtr mode, +@@ -920,10 +945,8 @@ atombios_output_mode_set(xf86OutputPtr output, + 	    if (IS_DCE3_VARIANT) { + 		atombios_output_dig1_setup(output, adjusted_mode); + 		atombios_output_dig1_transmitter_setup(output, adjusted_mode); +-	    } else { +-		atombios_output_tmds1_setup(output, adjusted_mode); +-		dfp_disable_dither(output, ATOM_DEVICE_DFP1_SUPPORT); +-	    } ++	    } else ++		atombios_output_digital_setup(output, ATOM_DEVICE_DFP1_INDEX, adjusted_mode); + 	} else if (radeon_output->devices & ATOM_DEVICE_DFP2_SUPPORT) { + 	    if (IS_DCE3_VARIANT) { + 		// fix me +@@ -934,26 +957,21 @@ atombios_output_mode_set(xf86OutputPtr output, + 		    atombios_output_ddia_setup(output, adjusted_mode); + 		else + 		    atombios_external_tmds_setup(output, adjusted_mode); +-		dfp_disable_dither(output, ATOM_DEVICE_DFP2_SUPPORT); + 	    } + 	} else if (radeon_output->devices & ATOM_DEVICE_DFP3_SUPPORT) { + 	    if (IS_DCE3_VARIANT) { + 		atombios_output_dig2_setup(output, adjusted_mode); + 		atombios_output_dig2_transmitter_setup(output, adjusted_mode); +-	    } else { +-		atombios_output_tmds2_setup(output, adjusted_mode); +-		dfp_disable_dither(output, ATOM_DEVICE_DFP3_SUPPORT); +-	    } ++	    } else ++		atombios_output_digital_setup(output, ATOM_DEVICE_DFP3_INDEX, adjusted_mode); + 	} +     } else if (radeon_output->MonType == MT_LCD) { + 	if (radeon_output->devices & ATOM_DEVICE_LCD1_SUPPORT) { + 	    if (IS_DCE3_VARIANT) { + 		atombios_output_dig2_setup(output, adjusted_mode); + 		atombios_output_dig2_transmitter_setup(output, adjusted_mode); +-	    } else { +-		atombios_output_lvds_setup(output, adjusted_mode); +-		dfp_disable_dither(output, ATOM_DEVICE_LCD1_SUPPORT); +-	    } ++	    } else ++		atombios_output_digital_setup(output, ATOM_DEVICE_LCD1_INDEX, adjusted_mode); + 	} +     } else if ((radeon_output->MonType == MT_CTV) || + 	       (radeon_output->MonType == MT_STV) || +@@ -964,7 +982,7 @@ atombios_output_mode_set(xf86OutputPtr output, + 	    atombios_output_dac2_setup(output, adjusted_mode); + 	atombios_output_tv1_setup(output, adjusted_mode); +     } +- ++    atombios_apply_output_quirks(output); + } +  + static AtomBiosResult +@@ -979,19 +997,19 @@ atom_bios_dac_load_detect(atomBiosHandlePtr atomBIOS, xf86OutputPtr output) +     dac_data.sDacload.ucMisc = 0; +  +     if (radeon_output->devices & ATOM_DEVICE_CRT1_SUPPORT) { +-	dac_data.sDacload.usDeviceID = ATOM_DEVICE_CRT1_SUPPORT; ++	dac_data.sDacload.usDeviceID = cpu_to_le16(ATOM_DEVICE_CRT1_SUPPORT); + 	if (radeon_output->DACType == DAC_PRIMARY) + 	    dac_data.sDacload.ucDacType = ATOM_DAC_A; + 	else if (radeon_output->DACType == DAC_TVDAC) + 	    dac_data.sDacload.ucDacType = ATOM_DAC_B; +     } else if (radeon_output->devices & ATOM_DEVICE_CRT2_SUPPORT) { +-	dac_data.sDacload.usDeviceID = ATOM_DEVICE_CRT2_SUPPORT; ++	dac_data.sDacload.usDeviceID = cpu_to_le16(ATOM_DEVICE_CRT2_SUPPORT); + 	if (radeon_output->DACType == DAC_PRIMARY) + 	    dac_data.sDacload.ucDacType = ATOM_DAC_A; + 	else if (radeon_output->DACType == DAC_TVDAC) + 	    dac_data.sDacload.ucDacType = ATOM_DAC_B; +     } else if (radeon_output->devices & ATOM_DEVICE_CV_SUPPORT) { +-	dac_data.sDacload.usDeviceID = ATOM_DEVICE_CV_SUPPORT; ++	dac_data.sDacload.usDeviceID = cpu_to_le16(ATOM_DEVICE_CV_SUPPORT); + 	if (radeon_output->DACType == DAC_PRIMARY) + 	    dac_data.sDacload.ucDacType = ATOM_DAC_A; + 	else if (radeon_output->DACType == DAC_TVDAC) +@@ -999,7 +1017,7 @@ atom_bios_dac_load_detect(atomBiosHandlePtr atomBIOS, xf86OutputPtr output) + 	if (IS_DCE3_VARIANT) + 	    dac_data.sDacload.ucMisc = 1; +     } else if (radeon_output->devices & ATOM_DEVICE_TV1_SUPPORT) { +-	dac_data.sDacload.usDeviceID = ATOM_DEVICE_TV1_SUPPORT; ++	dac_data.sDacload.usDeviceID = cpu_to_le16(ATOM_DEVICE_TV1_SUPPORT); + 	if (radeon_output->DACType == DAC_PRIMARY) + 	    dac_data.sDacload.ucDacType = ATOM_DAC_A; + 	else if (radeon_output->DACType == DAC_TVDAC) +diff --git a/src/bicubic_table.h b/src/bicubic_table.h +new file mode 100644 +index 0000000..765cfff +--- /dev/null ++++ b/src/bicubic_table.h +@@ -0,0 +1,646 @@ ++static const uint16_t bicubic_tex_512[] = { ++	0xb266, 0x3c00, 0x3aaa, 0x3155, ++	0xb287, 0x3bf0, 0x3aa2, 0x3175, ++	0xb2a9, 0x3be0, 0x3a9a, 0x3196, ++	0xb2cc, 0x3bd0, 0x3a92, 0x31b7, ++	0xb2ee, 0x3bc0, 0x3a89, 0x31d9, ++	0xb312, 0x3bb0, 0x3a81, 0x31fb, ++	0xb335, 0x3ba0, 0x3a78, 0x321e, ++	0xb359, 0x3b90, 0x3a6f, 0x3241, ++	0xb37d, 0x3b80, 0x3a66, 0x3264, ++	0xb3a2, 0x3b70, 0x3a5d, 0x3288, ++	0xb3c7, 0x3b60, 0x3a54, 0x32ad, ++	0xb3ed, 0x3b51, 0x3a4b, 0x32d1, ++	0xb409, 0x3b41, 0x3a42, 0x32f7, ++	0xb41c, 0x3b31, 0x3a38, 0x331c, ++	0xb42f, 0x3b21, 0x3a2f, 0x3342, ++	0xb443, 0x3b12, 0x3a25, 0x3369, ++	0xb456, 0x3b02, 0x3a1c, 0x3390, ++	0xb46a, 0x3af3, 0x3a12, 0x33b7, ++	0xb47e, 0x3ae3, 0x3a08, 0x33de, ++	0xb492, 0x3ad4, 0x39fe, 0x3403, ++	0xb4a6, 0x3ac5, 0x39f4, 0x3417, ++	0xb4bb, 0x3ab5, 0x39ea, 0x342b, ++	0xb4cf, 0x3aa6, 0x39df, 0x3440, ++	0xb4e4, 0x3a97, 0x39d5, 0x3454, ++	0xb4f9, 0x3a88, 0x39cb, 0x3469, ++	0xb50e, 0x3a79, 0x39c0, 0x347e, ++	0xb523, 0x3a6a, 0x39b6, 0x3493, ++	0xb539, 0x3a5a, 0x39ab, 0x34a8, ++	0xb54e, 0x3a4c, 0x39a0, 0x34be, ++	0xb564, 0x3a3d, 0x3996, 0x34d3, ++	0xb57a, 0x3a2e, 0x398b, 0x34e9, ++	0xb590, 0x3a1f, 0x3980, 0x34ff, ++	0xb5a6, 0x3a10, 0x3975, 0x3515, ++	0xb5bc, 0x3a02, 0x396a, 0x352b, ++	0xb5d2, 0x39f3, 0x395f, 0x3541, ++	0xb5e9, 0x39e4, 0x3954, 0x3557, ++	0xb5ff, 0x39d6, 0x3948, 0x356e, ++	0xb616, 0x39c7, 0x393d, 0x3584, ++	0xb62d, 0x39b9, 0x3932, 0x359b, ++	0xb644, 0x39ab, 0x3926, 0x35b2, ++	0xb65b, 0x399c, 0x391b, 0x35c9, ++	0xb672, 0x398e, 0x3910, 0x35df, ++	0xb68a, 0x3980, 0x3904, 0x35f6, ++	0xb6a1, 0x3972, 0x38f8, 0x360e, ++	0xb6b9, 0x3964, 0x38ed, 0x3625, ++	0xb6d1, 0x3956, 0x38e1, 0x363c, ++	0xb6e8, 0x3948, 0x38d6, 0x3653, ++	0xb700, 0x393a, 0x38ca, 0x366b, ++	0xb719, 0x392c, 0x38be, 0x3682, ++	0xb731, 0x391e, 0x38b2, 0x369a, ++	0xb749, 0x3910, 0x38a7, 0x36b1, ++	0xb762, 0x3902, 0x389b, 0x36c9, ++	0xb77a, 0x38f5, 0x388f, 0x36e1, ++	0xb793, 0x38e7, 0x3883, 0x36f8, ++	0xb7ac, 0x38da, 0x3877, 0x3710, ++	0xb7c5, 0x38cc, 0x386b, 0x3728, ++	0xb7de, 0x38bf, 0x385f, 0x3740, ++	0xb7f7, 0x38b1, 0x3853, 0x3758, ++	0xb808, 0x38a4, 0x3847, 0x3770, ++	0xb815, 0x3897, 0x383b, 0x3788, ++	0xb821, 0x3889, 0x382f, 0x37a0, ++	0xb82e, 0x387c, 0x3823, 0x37b8, ++	0xb83b, 0x386f, 0x3817, 0x37d0, ++	0xb848, 0x3862, 0x380b, 0x37e8, ++	0xb855, 0x3855, 0x3800, 0x3800, ++	0xb862, 0x3848, 0x37e8, 0x380b, ++	0xb86f, 0x383b, 0x37d0, 0x3817, ++	0xb87c, 0x382e, 0x37b8, 0x3823, ++	0xb889, 0x3821, 0x37a0, 0x382f, ++	0xb897, 0x3815, 0x3788, 0x383b, ++	0xb8a4, 0x3808, 0x3770, 0x3847, ++	0xb8b1, 0x37f7, 0x3758, 0x3853, ++	0xb8bf, 0x37de, 0x3740, 0x385f, ++	0xb8cc, 0x37c5, 0x3728, 0x386b, ++	0xb8da, 0x37ac, 0x3710, 0x3877, ++	0xb8e7, 0x3793, 0x36f8, 0x3883, ++	0xb8f5, 0x377a, 0x36e1, 0x388f, ++	0xb902, 0x3762, 0x36c9, 0x389b, ++	0xb910, 0x3749, 0x36b1, 0x38a7, ++	0xb91e, 0x3731, 0x369a, 0x38b2, ++	0xb92c, 0x3719, 0x3682, 0x38be, ++	0xb93a, 0x3700, 0x366b, 0x38ca, ++	0xb948, 0x36e8, 0x3653, 0x38d6, ++	0xb956, 0x36d1, 0x363c, 0x38e1, ++	0xb964, 0x36b9, 0x3625, 0x38ed, ++	0xb972, 0x36a1, 0x360e, 0x38f8, ++	0xb980, 0x368a, 0x35f6, 0x3904, ++	0xb98e, 0x3672, 0x35df, 0x3910, ++	0xb99c, 0x365b, 0x35c9, 0x391b, ++	0xb9ab, 0x3644, 0x35b2, 0x3926, ++	0xb9b9, 0x362d, 0x359b, 0x3932, ++	0xb9c7, 0x3616, 0x3584, 0x393d, ++	0xb9d6, 0x35ff, 0x356e, 0x3948, ++	0xb9e4, 0x35e9, 0x3557, 0x3954, ++	0xb9f3, 0x35d2, 0x3541, 0x395f, ++	0xba02, 0x35bc, 0x352b, 0x396a, ++	0xba10, 0x35a6, 0x3515, 0x3975, ++	0xba1f, 0x3590, 0x34ff, 0x3980, ++	0xba2e, 0x357a, 0x34e9, 0x398b, ++	0xba3d, 0x3564, 0x34d3, 0x3996, ++	0xba4c, 0x354e, 0x34be, 0x39a0, ++	0xba5a, 0x3539, 0x34a8, 0x39ab, ++	0xba6a, 0x3523, 0x3493, 0x39b6, ++	0xba79, 0x350e, 0x347e, 0x39c0, ++	0xba88, 0x34f9, 0x3469, 0x39cb, ++	0xba97, 0x34e4, 0x3454, 0x39d5, ++	0xbaa6, 0x34cf, 0x3440, 0x39df, ++	0xbab5, 0x34bb, 0x342b, 0x39ea, ++	0xbac5, 0x34a6, 0x3417, 0x39f4, ++	0xbad4, 0x3492, 0x3403, 0x39fe, ++	0xbae3, 0x347e, 0x33de, 0x3a08, ++	0xbaf3, 0x346a, 0x33b7, 0x3a12, ++	0xbb02, 0x3456, 0x3390, 0x3a1c, ++	0xbb12, 0x3443, 0x3369, 0x3a25, ++	0xbb21, 0x342f, 0x3342, 0x3a2f, ++	0xbb31, 0x341c, 0x331c, 0x3a38, ++	0xbb41, 0x3409, 0x32f7, 0x3a42, ++	0xbb51, 0x33ed, 0x32d1, 0x3a4b, ++	0xbb60, 0x33c7, 0x32ad, 0x3a54, ++	0xbb70, 0x33a2, 0x3288, 0x3a5d, ++	0xbb80, 0x337d, 0x3264, 0x3a66, ++	0xbb90, 0x3359, 0x3241, 0x3a6f, ++	0xbba0, 0x3335, 0x321e, 0x3a78, ++	0xbbb0, 0x3312, 0x31fb, 0x3a81, ++	0xbbc0, 0x32ee, 0x31d9, 0x3a89, ++	0xbbd0, 0x32cc, 0x31b7, 0x3a92, ++	0xbbe0, 0x32a9, 0x3196, 0x3a9a, ++	0xbbf0, 0x3287, 0x3175, 0x3aa2, ++	0 }; ++ ++static const uint16_t bicubic_tex_2048[] = { ++	0xb266, 0x3c00, 0x3aaa, 0x3155, ++	0xb26e, 0x3bfc, 0x3aa8, 0x315d, ++	0xb277, 0x3bf8, 0x3aa6, 0x3165, ++	0xb27f, 0x3bf4, 0x3aa4, 0x316d, ++	0xb287, 0x3bf0, 0x3aa2, 0x3175, ++	0xb290, 0x3bec, 0x3aa0, 0x317d, ++	0xb298, 0x3be8, 0x3a9e, 0x3185, ++	0xb2a1, 0x3be4, 0x3a9c, 0x318e, ++	0xb2a9, 0x3be0, 0x3a9a, 0x3196, ++	0xb2b2, 0x3bdc, 0x3a98, 0x319e, ++	0xb2ba, 0x3bd8, 0x3a96, 0x31a6, ++	0xb2c3, 0x3bd4, 0x3a94, 0x31af, ++	0xb2cc, 0x3bd0, 0x3a92, 0x31b7, ++	0xb2d4, 0x3bcc, 0x3a90, 0x31bf, ++	0xb2dd, 0x3bc8, 0x3a8d, 0x31c8, ++	0xb2e6, 0x3bc4, 0x3a8b, 0x31d0, ++	0xb2ee, 0x3bc0, 0x3a89, 0x31d9, ++	0xb2f7, 0x3bbc, 0x3a87, 0x31e1, ++	0xb300, 0x3bb8, 0x3a85, 0x31ea, ++	0xb309, 0x3bb4, 0x3a83, 0x31f2, ++	0xb312, 0x3bb0, 0x3a81, 0x31fb, ++	0xb31a, 0x3bac, 0x3a7e, 0x3204, ++	0xb323, 0x3ba8, 0x3a7c, 0x320c, ++	0xb32c, 0x3ba4, 0x3a7a, 0x3215, ++	0xb335, 0x3ba0, 0x3a78, 0x321e, ++	0xb33e, 0x3b9c, 0x3a76, 0x3226, ++	0xb347, 0x3b98, 0x3a74, 0x322f, ++	0xb350, 0x3b94, 0x3a71, 0x3238, ++	0xb359, 0x3b90, 0x3a6f, 0x3241, ++	0xb362, 0x3b8c, 0x3a6d, 0x3249, ++	0xb36b, 0x3b88, 0x3a6b, 0x3252, ++	0xb374, 0x3b84, 0x3a69, 0x325b, ++	0xb37d, 0x3b80, 0x3a66, 0x3264, ++	0xb387, 0x3b7c, 0x3a64, 0x326d, ++	0xb390, 0x3b78, 0x3a62, 0x3276, ++	0xb399, 0x3b74, 0x3a60, 0x327f, ++	0xb3a2, 0x3b70, 0x3a5d, 0x3288, ++	0xb3ab, 0x3b6c, 0x3a5b, 0x3291, ++	0xb3b5, 0x3b68, 0x3a59, 0x329a, ++	0xb3be, 0x3b64, 0x3a57, 0x32a3, ++	0xb3c7, 0x3b60, 0x3a54, 0x32ad, ++	0xb3d0, 0x3b5c, 0x3a52, 0x32b6, ++	0xb3da, 0x3b58, 0x3a50, 0x32bf, ++	0xb3e3, 0x3b54, 0x3a4d, 0x32c8, ++	0xb3ed, 0x3b51, 0x3a4b, 0x32d1, ++	0xb3f6, 0x3b4d, 0x3a49, 0x32db, ++	0xb3ff, 0x3b49, 0x3a46, 0x32e4, ++	0xb404, 0x3b45, 0x3a44, 0x32ed, ++	0xb409, 0x3b41, 0x3a42, 0x32f7, ++	0xb40e, 0x3b3d, 0x3a3f, 0x3300, ++	0xb412, 0x3b39, 0x3a3d, 0x3309, ++	0xb417, 0x3b35, 0x3a3b, 0x3313, ++	0xb41c, 0x3b31, 0x3a38, 0x331c, ++	0xb421, 0x3b2d, 0x3a36, 0x3326, ++	0xb426, 0x3b29, 0x3a34, 0x332f, ++	0xb42a, 0x3b25, 0x3a31, 0x3339, ++	0xb42f, 0x3b21, 0x3a2f, 0x3342, ++	0xb434, 0x3b1e, 0x3a2c, 0x334c, ++	0xb439, 0x3b1a, 0x3a2a, 0x3355, ++	0xb43e, 0x3b16, 0x3a28, 0x335f, ++	0xb443, 0x3b12, 0x3a25, 0x3369, ++	0xb448, 0x3b0e, 0x3a23, 0x3372, ++	0xb44d, 0x3b0a, 0x3a20, 0x337c, ++	0xb451, 0x3b06, 0x3a1e, 0x3386, ++	0xb456, 0x3b02, 0x3a1c, 0x3390, ++	0xb45b, 0x3afe, 0x3a19, 0x3399, ++	0xb460, 0x3afb, 0x3a17, 0x33a3, ++	0xb465, 0x3af7, 0x3a14, 0x33ad, ++	0xb46a, 0x3af3, 0x3a12, 0x33b7, ++	0xb46f, 0x3aef, 0x3a0f, 0x33c1, ++	0xb474, 0x3aeb, 0x3a0d, 0x33ca, ++	0xb479, 0x3ae7, 0x3a0a, 0x33d4, ++	0xb47e, 0x3ae3, 0x3a08, 0x33de, ++	0xb483, 0x3ae0, 0x3a05, 0x33e8, ++	0xb488, 0x3adc, 0x3a03, 0x33f2, ++	0xb48d, 0x3ad8, 0x3a00, 0x33fc, ++	0xb492, 0x3ad4, 0x39fe, 0x3403, ++	0xb497, 0x3ad0, 0x39fb, 0x3408, ++	0xb49c, 0x3acc, 0x39f9, 0x340d, ++	0xb4a1, 0x3ac8, 0x39f6, 0x3412, ++	0xb4a6, 0x3ac5, 0x39f4, 0x3417, ++	0xb4ac, 0x3ac1, 0x39f1, 0x341c, ++	0xb4b1, 0x3abd, 0x39ef, 0x3421, ++	0xb4b6, 0x3ab9, 0x39ec, 0x3426, ++	0xb4bb, 0x3ab5, 0x39ea, 0x342b, ++	0xb4c0, 0x3ab1, 0x39e7, 0x3430, ++	0xb4c5, 0x3aae, 0x39e5, 0x3435, ++	0xb4ca, 0x3aaa, 0x39e2, 0x343b, ++	0xb4cf, 0x3aa6, 0x39df, 0x3440, ++	0xb4d5, 0x3aa2, 0x39dd, 0x3445, ++	0xb4da, 0x3a9e, 0x39da, 0x344a, ++	0xb4df, 0x3a9b, 0x39d8, 0x344f, ++	0xb4e4, 0x3a97, 0x39d5, 0x3454, ++	0xb4e9, 0x3a93, 0x39d2, 0x345a, ++	0xb4ef, 0x3a8f, 0x39d0, 0x345f, ++	0xb4f4, 0x3a8b, 0x39cd, 0x3464, ++	0xb4f9, 0x3a88, 0x39cb, 0x3469, ++	0xb4fe, 0x3a84, 0x39c8, 0x346e, ++	0xb504, 0x3a80, 0x39c5, 0x3474, ++	0xb509, 0x3a7c, 0x39c3, 0x3479, ++	0xb50e, 0x3a79, 0x39c0, 0x347e, ++	0xb513, 0x3a75, 0x39be, 0x3483, ++	0xb519, 0x3a71, 0x39bb, 0x3489, ++	0xb51e, 0x3a6d, 0x39b8, 0x348e, ++	0xb523, 0x3a6a, 0x39b6, 0x3493, ++	0xb529, 0x3a66, 0x39b3, 0x3499, ++	0xb52e, 0x3a62, 0x39b0, 0x349e, ++	0xb533, 0x3a5e, 0x39ae, 0x34a3, ++	0xb539, 0x3a5a, 0x39ab, 0x34a8, ++	0xb53e, 0x3a57, 0x39a8, 0x34ae, ++	0xb543, 0x3a53, 0x39a6, 0x34b3, ++	0xb549, 0x3a4f, 0x39a3, 0x34b9, ++	0xb54e, 0x3a4c, 0x39a0, 0x34be, ++	0xb554, 0x3a48, 0x399e, 0x34c3, ++	0xb559, 0x3a44, 0x399b, 0x34c9, ++	0xb55e, 0x3a40, 0x3998, 0x34ce, ++	0xb564, 0x3a3d, 0x3996, 0x34d3, ++	0xb569, 0x3a39, 0x3993, 0x34d9, ++	0xb56f, 0x3a35, 0x3990, 0x34de, ++	0xb574, 0x3a32, 0x398d, 0x34e4, ++	0xb57a, 0x3a2e, 0x398b, 0x34e9, ++	0xb57f, 0x3a2a, 0x3988, 0x34ef, ++	0xb585, 0x3a26, 0x3985, 0x34f4, ++	0xb58a, 0x3a23, 0x3983, 0x34f9, ++	0xb590, 0x3a1f, 0x3980, 0x34ff, ++	0xb595, 0x3a1b, 0x397d, 0x3504, ++	0xb59b, 0x3a18, 0x397a, 0x350a, ++	0xb5a0, 0x3a14, 0x3978, 0x350f, ++	0xb5a6, 0x3a10, 0x3975, 0x3515, ++	0xb5ab, 0x3a0d, 0x3972, 0x351a, ++	0xb5b1, 0x3a09, 0x396f, 0x3520, ++	0xb5b6, 0x3a05, 0x396d, 0x3525, ++	0xb5bc, 0x3a02, 0x396a, 0x352b, ++	0xb5c1, 0x39fe, 0x3967, 0x3530, ++	0xb5c7, 0x39fa, 0x3964, 0x3536, ++	0xb5cd, 0x39f7, 0x3961, 0x353c, ++	0xb5d2, 0x39f3, 0x395f, 0x3541, ++	0xb5d8, 0x39ef, 0x395c, 0x3547, ++	0xb5dd, 0x39ec, 0x3959, 0x354c, ++	0xb5e3, 0x39e8, 0x3956, 0x3552, ++	0xb5e9, 0x39e4, 0x3954, 0x3557, ++	0xb5ee, 0x39e1, 0x3951, 0x355d, ++	0xb5f4, 0x39dd, 0x394e, 0x3563, ++	0xb5fa, 0x39d9, 0x394b, 0x3568, ++	0xb5ff, 0x39d6, 0x3948, 0x356e, ++	0xb605, 0x39d2, 0x3946, 0x3573, ++	0xb60b, 0x39cf, 0x3943, 0x3579, ++	0xb610, 0x39cb, 0x3940, 0x357f, ++	0xb616, 0x39c7, 0x393d, 0x3584, ++	0xb61c, 0x39c4, 0x393a, 0x358a, ++	0xb621, 0x39c0, 0x3937, 0x3590, ++	0xb627, 0x39bd, 0x3935, 0x3595, ++	0xb62d, 0x39b9, 0x3932, 0x359b, ++	0xb633, 0x39b5, 0x392f, 0x35a1, ++	0xb638, 0x39b2, 0x392c, 0x35a6, ++	0xb63e, 0x39ae, 0x3929, 0x35ac, ++	0xb644, 0x39ab, 0x3926, 0x35b2, ++	0xb64a, 0x39a7, 0x3924, 0x35b7, ++	0xb64f, 0x39a3, 0x3921, 0x35bd, ++	0xb655, 0x39a0, 0x391e, 0x35c3, ++	0xb65b, 0x399c, 0x391b, 0x35c9, ++	0xb661, 0x3999, 0x3918, 0x35ce, ++	0xb667, 0x3995, 0x3915, 0x35d4, ++	0xb66c, 0x3992, 0x3912, 0x35da, ++	0xb672, 0x398e, 0x3910, 0x35df, ++	0xb678, 0x398a, 0x390d, 0x35e5, ++	0xb67e, 0x3987, 0x390a, 0x35eb, ++	0xb684, 0x3983, 0x3907, 0x35f1, ++	0xb68a, 0x3980, 0x3904, 0x35f6, ++	0xb68f, 0x397c, 0x3901, 0x35fc, ++	0xb695, 0x3979, 0x38fe, 0x3602, ++	0xb69b, 0x3975, 0x38fb, 0x3608, ++	0xb6a1, 0x3972, 0x38f8, 0x360e, ++	0xb6a7, 0x396e, 0x38f6, 0x3613, ++	0xb6ad, 0x396b, 0x38f3, 0x3619, ++	0xb6b3, 0x3967, 0x38f0, 0x361f, ++	0xb6b9, 0x3964, 0x38ed, 0x3625, ++	0xb6bf, 0x3960, 0x38ea, 0x362b, ++	0xb6c5, 0x395d, 0x38e7, 0x3630, ++	0xb6cb, 0x3959, 0x38e4, 0x3636, ++	0xb6d1, 0x3956, 0x38e1, 0x363c, ++	0xb6d6, 0x3952, 0x38de, 0x3642, ++	0xb6dc, 0x394f, 0x38db, 0x3648, ++	0xb6e2, 0x394b, 0x38d9, 0x364d, ++	0xb6e8, 0x3948, 0x38d6, 0x3653, ++	0xb6ee, 0x3944, 0x38d3, 0x3659, ++	0xb6f4, 0x3941, 0x38d0, 0x365f, ++	0xb6fa, 0x393d, 0x38cd, 0x3665, ++	0xb700, 0x393a, 0x38ca, 0x366b, ++	0xb706, 0x3936, 0x38c7, 0x3671, ++	0xb70c, 0x3933, 0x38c4, 0x3676, ++	0xb712, 0x392f, 0x38c1, 0x367c, ++	0xb719, 0x392c, 0x38be, 0x3682, ++	0xb71f, 0x3928, 0x38bb, 0x3688, ++	0xb725, 0x3925, 0x38b8, 0x368e, ++	0xb72b, 0x3921, 0x38b5, 0x3694, ++	0xb731, 0x391e, 0x38b2, 0x369a, ++	0xb737, 0x391a, 0x38af, 0x36a0, ++	0xb73d, 0x3917, 0x38ad, 0x36a5, ++	0xb743, 0x3914, 0x38aa, 0x36ab, ++	0xb749, 0x3910, 0x38a7, 0x36b1, ++	0xb74f, 0x390d, 0x38a4, 0x36b7, ++	0xb755, 0x3909, 0x38a1, 0x36bd, ++	0xb75b, 0x3906, 0x389e, 0x36c3, ++	0xb762, 0x3902, 0x389b, 0x36c9, ++	0xb768, 0x38ff, 0x3898, 0x36cf, ++	0xb76e, 0x38fc, 0x3895, 0x36d5, ++	0xb774, 0x38f8, 0x3892, 0x36db, ++	0xb77a, 0x38f5, 0x388f, 0x36e1, ++	0xb780, 0x38f1, 0x388c, 0x36e7, ++	0xb787, 0x38ee, 0x3889, 0x36ec, ++	0xb78d, 0x38eb, 0x3886, 0x36f2, ++	0xb793, 0x38e7, 0x3883, 0x36f8, ++	0xb799, 0x38e4, 0x3880, 0x36fe, ++	0xb79f, 0x38e0, 0x387d, 0x3704, ++	0xb7a5, 0x38dd, 0x387a, 0x370a, ++	0xb7ac, 0x38da, 0x3877, 0x3710, ++	0xb7b2, 0x38d6, 0x3874, 0x3716, ++	0xb7b8, 0x38d3, 0x3871, 0x371c, ++	0xb7be, 0x38cf, 0x386e, 0x3722, ++	0xb7c5, 0x38cc, 0x386b, 0x3728, ++	0xb7cb, 0x38c9, 0x3868, 0x372e, ++	0xb7d1, 0x38c5, 0x3865, 0x3734, ++	0xb7d7, 0x38c2, 0x3862, 0x373a, ++	0xb7de, 0x38bf, 0x385f, 0x3740, ++	0xb7e4, 0x38bb, 0x385c, 0x3746, ++	0xb7ea, 0x38b8, 0x3859, 0x374c, ++	0xb7f1, 0x38b5, 0x3856, 0x3752, ++	0xb7f7, 0x38b1, 0x3853, 0x3758, ++	0xb7fd, 0x38ae, 0x3850, 0x375e, ++	0xb801, 0x38aa, 0x384d, 0x3764, ++	0xb805, 0x38a7, 0x384a, 0x376a, ++	0xb808, 0x38a4, 0x3847, 0x3770, ++	0xb80b, 0x38a0, 0x3844, 0x3776, ++	0xb80e, 0x389d, 0x3841, 0x377c, ++	0xb811, 0x389a, 0x383e, 0x3782, ++	0xb815, 0x3897, 0x383b, 0x3788, ++	0xb818, 0x3893, 0x3838, 0x378e, ++	0xb81b, 0x3890, 0x3835, 0x3794, ++	0xb81e, 0x388d, 0x3832, 0x379a, ++	0xb821, 0x3889, 0x382f, 0x37a0, ++	0xb824, 0x3886, 0x382c, 0x37a6, ++	0xb828, 0x3883, 0x3829, 0x37ac, ++	0xb82b, 0x387f, 0x3826, 0x37b2, ++	0xb82e, 0x387c, 0x3823, 0x37b8, ++	0xb831, 0x3879, 0x3820, 0x37be, ++	0xb835, 0x3876, 0x381d, 0x37c4, ++	0xb838, 0x3872, 0x381a, 0x37ca, ++	0xb83b, 0x386f, 0x3817, 0x37d0, ++	0xb83e, 0x386c, 0x3814, 0x37d6, ++	0xb841, 0x3868, 0x3811, 0x37dc, ++	0xb845, 0x3865, 0x380e, 0x37e2, ++	0xb848, 0x3862, 0x380b, 0x37e8, ++	0xb84b, 0x385f, 0x3808, 0x37ee, ++	0xb84e, 0x385b, 0x3806, 0x37f4, ++	0xb852, 0x3858, 0x3803, 0x37fa, ++	0xb855, 0x3855, 0x3800, 0x3800, ++	0xb858, 0x3852, 0x37fa, 0x3803, ++	0xb85b, 0x384e, 0x37f4, 0x3806, ++	0xb85f, 0x384b, 0x37ee, 0x3808, ++	0xb862, 0x3848, 0x37e8, 0x380b, ++	0xb865, 0x3845, 0x37e2, 0x380e, ++	0xb868, 0x3841, 0x37dc, 0x3811, ++	0xb86c, 0x383e, 0x37d6, 0x3814, ++	0xb86f, 0x383b, 0x37d0, 0x3817, ++	0xb872, 0x3838, 0x37ca, 0x381a, ++	0xb876, 0x3835, 0x37c4, 0x381d, ++	0xb879, 0x3831, 0x37be, 0x3820, ++	0xb87c, 0x382e, 0x37b8, 0x3823, ++	0xb87f, 0x382b, 0x37b2, 0x3826, ++	0xb883, 0x3828, 0x37ac, 0x3829, ++	0xb886, 0x3824, 0x37a6, 0x382c, ++	0xb889, 0x3821, 0x37a0, 0x382f, ++	0xb88d, 0x381e, 0x379a, 0x3832, ++	0xb890, 0x381b, 0x3794, 0x3835, ++	0xb893, 0x3818, 0x378e, 0x3838, ++	0xb897, 0x3815, 0x3788, 0x383b, ++	0xb89a, 0x3811, 0x3782, 0x383e, ++	0xb89d, 0x380e, 0x377c, 0x3841, ++	0xb8a0, 0x380b, 0x3776, 0x3844, ++	0xb8a4, 0x3808, 0x3770, 0x3847, ++	0xb8a7, 0x3805, 0x376a, 0x384a, ++	0xb8aa, 0x3801, 0x3764, 0x384d, ++	0xb8ae, 0x37fd, 0x375e, 0x3850, ++	0xb8b1, 0x37f7, 0x3758, 0x3853, ++	0xb8b5, 0x37f1, 0x3752, 0x3856, ++	0xb8b8, 0x37ea, 0x374c, 0x3859, ++	0xb8bb, 0x37e4, 0x3746, 0x385c, ++	0xb8bf, 0x37de, 0x3740, 0x385f, ++	0xb8c2, 0x37d7, 0x373a, 0x3862, ++	0xb8c5, 0x37d1, 0x3734, 0x3865, ++	0xb8c9, 0x37cb, 0x372e, 0x3868, ++	0xb8cc, 0x37c5, 0x3728, 0x386b, ++	0xb8cf, 0x37be, 0x3722, 0x386e, ++	0xb8d3, 0x37b8, 0x371c, 0x3871, ++	0xb8d6, 0x37b2, 0x3716, 0x3874, ++	0xb8da, 0x37ac, 0x3710, 0x3877, ++	0xb8dd, 0x37a5, 0x370a, 0x387a, ++	0xb8e0, 0x379f, 0x3704, 0x387d, ++	0xb8e4, 0x3799, 0x36fe, 0x3880, ++	0xb8e7, 0x3793, 0x36f8, 0x3883, ++	0xb8eb, 0x378d, 0x36f2, 0x3886, ++	0xb8ee, 0x3787, 0x36ec, 0x3889, ++	0xb8f1, 0x3780, 0x36e7, 0x388c, ++	0xb8f5, 0x377a, 0x36e1, 0x388f, ++	0xb8f8, 0x3774, 0x36db, 0x3892, ++	0xb8fc, 0x376e, 0x36d5, 0x3895, ++	0xb8ff, 0x3768, 0x36cf, 0x3898, ++	0xb902, 0x3762, 0x36c9, 0x389b, ++	0xb906, 0x375b, 0x36c3, 0x389e, ++	0xb909, 0x3755, 0x36bd, 0x38a1, ++	0xb90d, 0x374f, 0x36b7, 0x38a4, ++	0xb910, 0x3749, 0x36b1, 0x38a7, ++	0xb914, 0x3743, 0x36ab, 0x38aa, ++	0xb917, 0x373d, 0x36a5, 0x38ad, ++	0xb91a, 0x3737, 0x36a0, 0x38af, ++	0xb91e, 0x3731, 0x369a, 0x38b2, ++	0xb921, 0x372b, 0x3694, 0x38b5, ++	0xb925, 0x3725, 0x368e, 0x38b8, ++	0xb928, 0x371f, 0x3688, 0x38bb, ++	0xb92c, 0x3719, 0x3682, 0x38be, ++	0xb92f, 0x3712, 0x367c, 0x38c1, ++	0xb933, 0x370c, 0x3676, 0x38c4, ++	0xb936, 0x3706, 0x3671, 0x38c7, ++	0xb93a, 0x3700, 0x366b, 0x38ca, ++	0xb93d, 0x36fa, 0x3665, 0x38cd, ++	0xb941, 0x36f4, 0x365f, 0x38d0, ++	0xb944, 0x36ee, 0x3659, 0x38d3, ++	0xb948, 0x36e8, 0x3653, 0x38d6, ++	0xb94b, 0x36e2, 0x364d, 0x38d9, ++	0xb94f, 0x36dc, 0x3648, 0x38db, ++	0xb952, 0x36d6, 0x3642, 0x38de, ++	0xb956, 0x36d1, 0x363c, 0x38e1, ++	0xb959, 0x36cb, 0x3636, 0x38e4, ++	0xb95d, 0x36c5, 0x3630, 0x38e7, ++	0xb960, 0x36bf, 0x362b, 0x38ea, ++	0xb964, 0x36b9, 0x3625, 0x38ed, ++	0xb967, 0x36b3, 0x361f, 0x38f0, ++	0xb96b, 0x36ad, 0x3619, 0x38f3, ++	0xb96e, 0x36a7, 0x3613, 0x38f6, ++	0xb972, 0x36a1, 0x360e, 0x38f8, ++	0xb975, 0x369b, 0x3608, 0x38fb, ++	0xb979, 0x3695, 0x3602, 0x38fe, ++	0xb97c, 0x368f, 0x35fc, 0x3901, ++	0xb980, 0x368a, 0x35f6, 0x3904, ++	0xb983, 0x3684, 0x35f1, 0x3907, ++	0xb987, 0x367e, 0x35eb, 0x390a, ++	0xb98a, 0x3678, 0x35e5, 0x390d, ++	0xb98e, 0x3672, 0x35df, 0x3910, ++	0xb992, 0x366c, 0x35da, 0x3912, ++	0xb995, 0x3667, 0x35d4, 0x3915, ++	0xb999, 0x3661, 0x35ce, 0x3918, ++	0xb99c, 0x365b, 0x35c9, 0x391b, ++	0xb9a0, 0x3655, 0x35c3, 0x391e, ++	0xb9a3, 0x364f, 0x35bd, 0x3921, ++	0xb9a7, 0x364a, 0x35b7, 0x3924, ++	0xb9ab, 0x3644, 0x35b2, 0x3926, ++	0xb9ae, 0x363e, 0x35ac, 0x3929, ++	0xb9b2, 0x3638, 0x35a6, 0x392c, ++	0xb9b5, 0x3633, 0x35a1, 0x392f, ++	0xb9b9, 0x362d, 0x359b, 0x3932, ++	0xb9bd, 0x3627, 0x3595, 0x3935, ++	0xb9c0, 0x3621, 0x3590, 0x3937, ++	0xb9c4, 0x361c, 0x358a, 0x393a, ++	0xb9c7, 0x3616, 0x3584, 0x393d, ++	0xb9cb, 0x3610, 0x357f, 0x3940, ++	0xb9cf, 0x360b, 0x3579, 0x3943, ++	0xb9d2, 0x3605, 0x3573, 0x3946, ++	0xb9d6, 0x35ff, 0x356e, 0x3948, ++	0xb9d9, 0x35fa, 0x3568, 0x394b, ++	0xb9dd, 0x35f4, 0x3563, 0x394e, ++	0xb9e1, 0x35ee, 0x355d, 0x3951, ++	0xb9e4, 0x35e9, 0x3557, 0x3954, ++	0xb9e8, 0x35e3, 0x3552, 0x3956, ++	0xb9ec, 0x35dd, 0x354c, 0x3959, ++	0xb9ef, 0x35d8, 0x3547, 0x395c, ++	0xb9f3, 0x35d2, 0x3541, 0x395f, ++	0xb9f7, 0x35cd, 0x353c, 0x3961, ++	0xb9fa, 0x35c7, 0x3536, 0x3964, ++	0xb9fe, 0x35c1, 0x3530, 0x3967, ++	0xba02, 0x35bc, 0x352b, 0x396a, ++	0xba05, 0x35b6, 0x3525, 0x396d, ++	0xba09, 0x35b1, 0x3520, 0x396f, ++	0xba0d, 0x35ab, 0x351a, 0x3972, ++	0xba10, 0x35a6, 0x3515, 0x3975, ++	0xba14, 0x35a0, 0x350f, 0x3978, ++	0xba18, 0x359b, 0x350a, 0x397a, ++	0xba1b, 0x3595, 0x3504, 0x397d, ++	0xba1f, 0x3590, 0x34ff, 0x3980, ++	0xba23, 0x358a, 0x34f9, 0x3983, ++	0xba26, 0x3585, 0x34f4, 0x3985, ++	0xba2a, 0x357f, 0x34ef, 0x3988, ++	0xba2e, 0x357a, 0x34e9, 0x398b, ++	0xba32, 0x3574, 0x34e4, 0x398d, ++	0xba35, 0x356f, 0x34de, 0x3990, ++	0xba39, 0x3569, 0x34d9, 0x3993, ++	0xba3d, 0x3564, 0x34d3, 0x3996, ++	0xba40, 0x355e, 0x34ce, 0x3998, ++	0xba44, 0x3559, 0x34c9, 0x399b, ++	0xba48, 0x3554, 0x34c3, 0x399e, ++	0xba4c, 0x354e, 0x34be, 0x39a0, ++	0xba4f, 0x3549, 0x34b9, 0x39a3, ++	0xba53, 0x3543, 0x34b3, 0x39a6, ++	0xba57, 0x353e, 0x34ae, 0x39a8, ++	0xba5a, 0x3539, 0x34a8, 0x39ab, ++	0xba5e, 0x3533, 0x34a3, 0x39ae, ++	0xba62, 0x352e, 0x349e, 0x39b0, ++	0xba66, 0x3529, 0x3499, 0x39b3, ++	0xba6a, 0x3523, 0x3493, 0x39b6, ++	0xba6d, 0x351e, 0x348e, 0x39b8, ++	0xba71, 0x3519, 0x3489, 0x39bb, ++	0xba75, 0x3513, 0x3483, 0x39be, ++	0xba79, 0x350e, 0x347e, 0x39c0, ++	0xba7c, 0x3509, 0x3479, 0x39c3, ++	0xba80, 0x3504, 0x3474, 0x39c5, ++	0xba84, 0x34fe, 0x346e, 0x39c8, ++	0xba88, 0x34f9, 0x3469, 0x39cb, ++	0xba8b, 0x34f4, 0x3464, 0x39cd, ++	0xba8f, 0x34ef, 0x345f, 0x39d0, ++	0xba93, 0x34e9, 0x345a, 0x39d2, ++	0xba97, 0x34e4, 0x3454, 0x39d5, ++	0xba9b, 0x34df, 0x344f, 0x39d8, ++	0xba9e, 0x34da, 0x344a, 0x39da, ++	0xbaa2, 0x34d5, 0x3445, 0x39dd, ++	0xbaa6, 0x34cf, 0x3440, 0x39df, ++	0xbaaa, 0x34ca, 0x343b, 0x39e2, ++	0xbaae, 0x34c5, 0x3435, 0x39e5, ++	0xbab1, 0x34c0, 0x3430, 0x39e7, ++	0xbab5, 0x34bb, 0x342b, 0x39ea, ++	0xbab9, 0x34b6, 0x3426, 0x39ec, ++	0xbabd, 0x34b1, 0x3421, 0x39ef, ++	0xbac1, 0x34ac, 0x341c, 0x39f1, ++	0xbac5, 0x34a6, 0x3417, 0x39f4, ++	0xbac8, 0x34a1, 0x3412, 0x39f6, ++	0xbacc, 0x349c, 0x340d, 0x39f9, ++	0xbad0, 0x3497, 0x3408, 0x39fb, ++	0xbad4, 0x3492, 0x3403, 0x39fe, ++	0xbad8, 0x348d, 0x33fc, 0x3a00, ++	0xbadc, 0x3488, 0x33f2, 0x3a03, ++	0xbae0, 0x3483, 0x33e8, 0x3a05, ++	0xbae3, 0x347e, 0x33de, 0x3a08, ++	0xbae7, 0x3479, 0x33d4, 0x3a0a, ++	0xbaeb, 0x3474, 0x33ca, 0x3a0d, ++	0xbaef, 0x346f, 0x33c1, 0x3a0f, ++	0xbaf3, 0x346a, 0x33b7, 0x3a12, ++	0xbaf7, 0x3465, 0x33ad, 0x3a14, ++	0xbafb, 0x3460, 0x33a3, 0x3a17, ++	0xbafe, 0x345b, 0x3399, 0x3a19, ++	0xbb02, 0x3456, 0x3390, 0x3a1c, ++	0xbb06, 0x3451, 0x3386, 0x3a1e, ++	0xbb0a, 0x344d, 0x337c, 0x3a20, ++	0xbb0e, 0x3448, 0x3372, 0x3a23, ++	0xbb12, 0x3443, 0x3369, 0x3a25, ++	0xbb16, 0x343e, 0x335f, 0x3a28, ++	0xbb1a, 0x3439, 0x3355, 0x3a2a, ++	0xbb1e, 0x3434, 0x334c, 0x3a2c, ++	0xbb21, 0x342f, 0x3342, 0x3a2f, ++	0xbb25, 0x342a, 0x3339, 0x3a31, ++	0xbb29, 0x3426, 0x332f, 0x3a34, ++	0xbb2d, 0x3421, 0x3326, 0x3a36, ++	0xbb31, 0x341c, 0x331c, 0x3a38, ++	0xbb35, 0x3417, 0x3313, 0x3a3b, ++	0xbb39, 0x3412, 0x3309, 0x3a3d, ++	0xbb3d, 0x340e, 0x3300, 0x3a3f, ++	0xbb41, 0x3409, 0x32f7, 0x3a42, ++	0xbb45, 0x3404, 0x32ed, 0x3a44, ++	0xbb49, 0x33ff, 0x32e4, 0x3a46, ++	0xbb4d, 0x33f6, 0x32db, 0x3a49, ++	0xbb51, 0x33ed, 0x32d1, 0x3a4b, ++	0xbb54, 0x33e3, 0x32c8, 0x3a4d, ++	0xbb58, 0x33da, 0x32bf, 0x3a50, ++	0xbb5c, 0x33d0, 0x32b6, 0x3a52, ++	0xbb60, 0x33c7, 0x32ad, 0x3a54, ++	0xbb64, 0x33be, 0x32a3, 0x3a57, ++	0xbb68, 0x33b5, 0x329a, 0x3a59, ++	0xbb6c, 0x33ab, 0x3291, 0x3a5b, ++	0xbb70, 0x33a2, 0x3288, 0x3a5d, ++	0xbb74, 0x3399, 0x327f, 0x3a60, ++	0xbb78, 0x3390, 0x3276, 0x3a62, ++	0xbb7c, 0x3387, 0x326d, 0x3a64, ++	0xbb80, 0x337d, 0x3264, 0x3a66, ++	0xbb84, 0x3374, 0x325b, 0x3a69, ++	0xbb88, 0x336b, 0x3252, 0x3a6b, ++	0xbb8c, 0x3362, 0x3249, 0x3a6d, ++	0xbb90, 0x3359, 0x3241, 0x3a6f, ++	0xbb94, 0x3350, 0x3238, 0x3a71, ++	0xbb98, 0x3347, 0x322f, 0x3a74, ++	0xbb9c, 0x333e, 0x3226, 0x3a76, ++	0xbba0, 0x3335, 0x321e, 0x3a78, ++	0xbba4, 0x332c, 0x3215, 0x3a7a, ++	0xbba8, 0x3323, 0x320c, 0x3a7c, ++	0xbbac, 0x331a, 0x3204, 0x3a7e, ++	0xbbb0, 0x3312, 0x31fb, 0x3a81, ++	0xbbb4, 0x3309, 0x31f2, 0x3a83, ++	0xbbb8, 0x3300, 0x31ea, 0x3a85, ++	0xbbbc, 0x32f7, 0x31e1, 0x3a87, ++	0xbbc0, 0x32ee, 0x31d9, 0x3a89, ++	0xbbc4, 0x32e6, 0x31d0, 0x3a8b, ++	0xbbc8, 0x32dd, 0x31c8, 0x3a8d, ++	0xbbcc, 0x32d4, 0x31bf, 0x3a90, ++	0xbbd0, 0x32cc, 0x31b7, 0x3a92, ++	0xbbd4, 0x32c3, 0x31af, 0x3a94, ++	0xbbd8, 0x32ba, 0x31a6, 0x3a96, ++	0xbbdc, 0x32b2, 0x319e, 0x3a98, ++	0xbbe0, 0x32a9, 0x3196, 0x3a9a, ++	0xbbe4, 0x32a1, 0x318e, 0x3a9c, ++	0xbbe8, 0x3298, 0x3185, 0x3a9e, ++	0xbbec, 0x3290, 0x317d, 0x3aa0, ++	0xbbf0, 0x3287, 0x3175, 0x3aa2, ++	0xbbf4, 0x327f, 0x316d, 0x3aa4, ++	0xbbf8, 0x3277, 0x3165, 0x3aa6, ++	0xbbfc, 0x326e, 0x315d, 0x3aa8, ++	0 }; ++ +diff --git a/src/bicubic_table.py b/src/bicubic_table.py +new file mode 100755 +index 0000000..232ccb7 +--- /dev/null ++++ b/src/bicubic_table.py +@@ -0,0 +1,72 @@ ++#!/usr/bin/python ++ ++import struct ++ ++def half(i): ++ fs, fe, fm = ((i >> 31) & 0x1, (i >> 23) & 0xff, i & 0x7fffff) ++ s, e, m = (fs, 0, 0) ++ ++ if (fe == 0x0): ++  pass ++ if ((fe == 0xff) and (fm == 0x0)): ++  e = 31 ++ elif (fe == 0xff): ++  m = 1 ++  e = 31 ++ else: ++  exp = fe - 127; ++  if (exp < -24): ++   pass ++  elif (exp < -14): ++   temp = 10 - (-14 - exp) ++   m = 2**temp + (m >> (23 - temp)) ++  elif (exp > 15): ++   e = 31 ++  else: ++   e = exp + 15 ++   m = fm >> 13 ++ ++ return ((s << 15) | (e << 10) | m) ++ ++def texgen(pix): ++ ++ tex = [] ++ ++ for i in range(0,pix,4): ++ ++  a = i / float(pix) ++  a2 = a ** 2 ++  a3 = a ** 3 ++ ++  w0 = 1 / 6.0 * (-a3 + 3 * a2 + -3 * a + 1) ++  w1 = 1 / 6.0 * (3 * a3 + -6 * a2 + 4) ++  w2 = 1 / 6.0 * (-3 * a3 + 3 * a2 + 3 * a + 1) ++  w3 = 1 / 6.0 * a3 ++ ++  tex.append(-(1 - (w1 / (w0 + w1)) + a)) ++  tex.append(1 + (w3 / (w2 + w3)) - a) ++  tex.append(w0 + w1) ++  tex.append(w2 + w3) ++ ++ return tex ++ ++def printrow(l, offset): ++ ++ seq = [ struct.unpack('<I',struct.pack('f',i))[0] for i in l[offset:offset+4] ] ++ seq = [ hex(half(i)) for i in seq ] ++ return "\t" + ", ".join(seq) + "," ++ ++def maketable(pix): ++ ++ l = texgen(pix) ++ ++ print "static const uint16_t bicubic_tex_" + str(pix) + "[] = {" ++ ++ for i in range(0, pix, 4): ++ ++  print printrow(l, i) ++ ++ print "\t0 };\n" ++ ++maketable(512) ++maketable(2048) +diff --git a/src/legacy_crtc.c b/src/legacy_crtc.c +index 3df61a7..75ab6c8 100644 +--- a/src/legacy_crtc.c ++++ b/src/legacy_crtc.c +@@ -48,8 +48,7 @@ +  + #ifdef XF86DRI + #define _XF86DRI_SERVER_ +-#include "radeon_dri.h" +-#include "radeon_sarea.h" ++#include "radeon_drm.h" + #include "sarea.h" + #ifdef DRM_IOCTL_MODESET_CTL + #include <sys/ioctl.h> +@@ -624,11 +623,17 @@ radeon_crtc_modeset_ioctl(xf86CrtcPtr crtc, Bool post) +     RADEONInfoPtr info = RADEONPTR(crtc->scrn); +     RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; +     struct drm_modeset_ctl modeset; ++    unsigned char *RADEONMMIO = info->MMIO; ++ ++    if (!info->directRenderingEnabled) ++	return; +  +     modeset.crtc = radeon_crtc->crtc_id; +     modeset.cmd = post ? _DRM_POST_MODESET : _DRM_PRE_MODESET; +  +-    ioctl(info->drmFD, DRM_IOCTL_MODESET_CTL, &modeset); ++    ioctl(info->dri->drmFD, DRM_IOCTL_MODESET_CTL, &modeset); ++ ++    info->ModeReg->gen_int_cntl = INREG( RADEON_GEN_INT_CNTL ); + #endif + } +  +@@ -752,13 +757,13 @@ RADEONInitCrtcBase(xf86CrtcPtr crtc, RADEONSavePtr save, +     RADEONInfoPtr  info       = RADEONPTR(pScrn); +     int    Base; + #ifdef XF86DRI +-    RADEONSAREAPrivPtr pSAREAPriv; ++    drm_radeon_sarea_t *pSAREAPriv; +     XF86DRISAREAPtr pSAREA; + #endif +  +     save->crtc_offset      = pScrn->fbOffset; + #ifdef XF86DRI +-    if (info->allowPageFlip) ++    if (info->dri && info->dri->allowPageFlip) + 	save->crtc_offset_cntl = RADEON_CRTC_OFFSET_FLIP_CNTL; +     else + #endif +@@ -851,7 +856,7 @@ RADEONInitCrtcBase(xf86CrtcPtr crtc, RADEONSavePtr save, + 	pSAREA->frame.height = pScrn->frameY1 - y + 1; +  + 	if (pSAREAPriv->pfCurrentPage == 1) { +-	    Base += info->backOffset - info->frontOffset; ++	    Base += info->dri->backOffset - info->dri->frontOffset; + 	} +     } + #endif +@@ -970,7 +975,7 @@ RADEONInitCrtc2Base(xf86CrtcPtr crtc, RADEONSavePtr save, +     RADEONInfoPtr  info       = RADEONPTR(pScrn); +     int    Base; + #ifdef XF86DRI +-    RADEONSAREAPrivPtr pSAREAPriv; ++    drm_radeon_sarea_t *pSAREAPriv; +     XF86DRISAREAPtr pSAREA; + #endif +  +@@ -978,7 +983,7 @@ RADEONInitCrtc2Base(xf86CrtcPtr crtc, RADEONSavePtr save, +      */ +     save->crtc2_offset      = pScrn->fbOffset; + #ifdef XF86DRI +-    if (info->allowPageFlip) ++    if (info->dri && info->dri->allowPageFlip) + 	save->crtc2_offset_cntl = RADEON_CRTC_OFFSET_FLIP_CNTL; +     else + #endif +@@ -1065,7 +1070,7 @@ RADEONInitCrtc2Base(xf86CrtcPtr crtc, RADEONSavePtr save, + 	pSAREAPriv->crtc2_base = Base; +  + 	if (pSAREAPriv->pfCurrentPage == 1) { +-	    Base += info->backOffset - info->frontOffset; ++	    Base += info->dri->backOffset - info->dri->frontOffset; + 	} +     } + #endif +@@ -1327,9 +1332,12 @@ radeon_update_tv_routing(ScrnInfoPtr pScrn, RADEONSavePtr restore) + } +  + /* Calculate display buffer watermark to prevent buffer underflow */ +-static void +-RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2, DisplayModePtr mode1, DisplayModePtr mode2) ++void ++RADEONInitDispBandwidthLegacy(ScrnInfoPtr pScrn, ++			      DisplayModePtr mode1, int pixel_bytes1, ++			      DisplayModePtr mode2, int pixel_bytes2) + { ++    RADEONInfoPtr info = RADEONPTR(pScrn); +     RADEONEntPtr pRADEONEnt   = RADEONEntPriv(pScrn); +     unsigned char *RADEONMMIO = info->MMIO; +  +@@ -1352,10 +1360,10 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2 +     float min_mem_eff = 0.8; +     float sclk_eff, sclk_delay; +     float mc_latency_mclk, mc_latency_sclk, cur_latency_mclk, cur_latency_sclk; +-    float disp_latency, disp_latency_overhead, disp_drain_rate, disp_drain_rate2; ++    float disp_latency, disp_latency_overhead, disp_drain_rate = 0, disp_drain_rate2; +     float pix_clk, pix_clk2; /* in MHz */ +     int cur_size = 16;       /* in octawords */ +-    int critical_point, critical_point2; ++    int critical_point = 0, critical_point2; +     int stop_req, max_stop_req; +     float read_return_rate, time_disp1_drop_priority; +  +@@ -1366,15 +1374,15 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2 +      */ +     if ((info->DispPriority == 2) && IS_R300_VARIANT) { + 	uint32_t mc_init_misc_lat_timer = INREG(R300_MC_INIT_MISC_LAT_TIMER); +-	if (pRADEONEnt->pCrtc[1]->enabled) { +-	    mc_init_misc_lat_timer |= 0x1100; /* display 0 and 1 */ +-	} else { +-	    mc_init_misc_lat_timer |= 0x0100; /* display 0 only */ +-	} ++	mc_init_misc_lat_timer &= ~(R300_MC_DISP1R_INIT_LAT_MASK << R300_MC_DISP1R_INIT_LAT_SHIFT); ++	mc_init_misc_lat_timer &= ~(R300_MC_DISP0R_INIT_LAT_MASK << R300_MC_DISP0R_INIT_LAT_SHIFT); ++	if (pRADEONEnt->pCrtc[1]->enabled) ++	    mc_init_misc_lat_timer |= (1 << R300_MC_DISP1R_INIT_LAT_SHIFT); /* display 1 */ ++	if (pRADEONEnt->pCrtc[0]->enabled) ++	    mc_init_misc_lat_timer |= (1 << R300_MC_DISP0R_INIT_LAT_SHIFT); /* display 0 */ + 	OUTREG(R300_MC_INIT_MISC_LAT_TIMER, mc_init_misc_lat_timer); +     } +  +- +     /* R420 and RV410 family not supported yet */ +     if (info->ChipFamily == CHIP_FAMILY_R420 || info->ChipFamily == CHIP_FAMILY_RV410) return;  +  +@@ -1383,15 +1391,17 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2 +      */ +     mem_bw = info->mclk * (info->RamWidth / 8) * (info->IsDDR ? 2 : 1); +  +-    pix_clk = mode1->Clock/1000.0; +-    if (mode2) ++    pix_clk = 0; ++    pix_clk2 = 0; ++    peak_disp_bw = 0; ++    if (mode1) { ++	pix_clk = mode1->Clock/1000.0; ++	peak_disp_bw += (pix_clk * pixel_bytes1); ++    } ++    if (mode2) { + 	pix_clk2 = mode2->Clock/1000.0; +-    else +-	pix_clk2 = 0; +- +-    peak_disp_bw = (pix_clk * info->CurrentLayout.pixel_bytes); +-    if (pixel_bytes2) +-      peak_disp_bw += (pix_clk2 * pixel_bytes2); ++	peak_disp_bw += (pix_clk2 * pixel_bytes2); ++    } +  +     if (peak_disp_bw >= mem_bw * min_mem_eff) { + 	xf86DrvMsg(pScrn->scrnIndex, X_WARNING, +@@ -1399,20 +1409,6 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2 + 		   "If you have flickering problem, try to lower resolution, refresh rate, or color depth\n"); +     } +  +-    /*  CRTC1 +-        Set GRPH_BUFFER_CNTL register using h/w defined optimal values. +-	GRPH_STOP_REQ <= MIN[ 0x7C, (CRTC_H_DISP + 1) * (bit depth) / 0x10 ] +-    */ +-    stop_req = mode1->HDisplay * info->CurrentLayout.pixel_bytes / 16; +- +-    /* setup Max GRPH_STOP_REQ default value */ +-    if (IS_RV100_VARIANT) +-	max_stop_req = 0x5c; +-    else +-	max_stop_req  = 0x7c; +-    if (stop_req > max_stop_req) +-	stop_req = max_stop_req; +- +     /*  Get values from the EXT_MEM_CNTL register...converting its contents. */ +     temp = INREG(RADEON_MEM_TIMING_CNTL); +     if ((info->ChipFamily == CHIP_FAMILY_RV100) || info->IsIGP) { /* RV100, M6, IGPs */ +@@ -1435,9 +1431,8 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2 +     } +  +     if (IS_R300_VARIANT) { +- + 	/* on the R300, Tcas is included in Trbs. +-	*/ ++	 */ + 	temp = INREG(RADEON_MEM_CNTL); + 	data = (R300_MEM_NUM_CHANNELS_MASK & temp); + 	if (data == 1) { +@@ -1467,13 +1462,14 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2 +     } else { + #ifdef XF86DRI + 	if (info->directRenderingEnabled) +-	    sclk_eff = info->sclk - (info->agpMode * 50.0 / 3.0); ++	    sclk_eff = info->sclk - (info->dri->agpMode * 50.0 / 3.0); + 	else + #endif + 	    sclk_eff = info->sclk; +     } +  +-    /* Find the memory controller latency for the display client. ++    /* ++      Find the memory controller latency for the display client. +     */ +     if (IS_R300_VARIANT) { + 	/*not enough for R350 ???*/ +@@ -1527,89 +1523,107 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2 +     mc_latency_sclk = mc_latency_sclk + disp_latency_overhead + cur_latency_sclk; +     disp_latency = MAX(mc_latency_mclk, mc_latency_sclk); +  +-    /* +-      Find the drain rate of the display buffer. +-    */ +-    disp_drain_rate = pix_clk / (16.0/info->CurrentLayout.pixel_bytes); +-    if (pixel_bytes2) +-	disp_drain_rate2 = pix_clk2 / (16.0/pixel_bytes2); ++    /* setup Max GRPH_STOP_REQ default value */ ++    if (IS_RV100_VARIANT) ++	max_stop_req = 0x5c; +     else +-	disp_drain_rate2 = 0; ++	max_stop_req  = 0x7c; +  +-    /* +-      Find the critical point of the display buffer. +-    */ +-    critical_point= (uint32_t)(disp_drain_rate * disp_latency + 0.5); ++    if (mode1) { ++	/*  CRTC1 ++	    Set GRPH_BUFFER_CNTL register using h/w defined optimal values. ++	    GRPH_STOP_REQ <= MIN[ 0x7C, (CRTC_H_DISP + 1) * (bit depth) / 0x10 ] ++	*/ ++	stop_req = mode1->HDisplay * pixel_bytes1 / 16; +  +-    /* ???? */ +-    /* +-    temp = (info->SavedReg.grph_buffer_cntl & RADEON_GRPH_CRITICAL_POINT_MASK) >> RADEON_GRPH_CRITICAL_POINT_SHIFT; +-    if (critical_point < temp) critical_point = temp; +-    */ +-    if (info->DispPriority == 2) { +-	critical_point = 0; +-    } ++	if (stop_req > max_stop_req) ++	    stop_req = max_stop_req; +  +-    /* +-      The critical point should never be above max_stop_req-4.  Setting +-      GRPH_CRITICAL_CNTL = 0 will thus force high priority all the time. +-    */ +-    if (max_stop_req - critical_point < 4) critical_point = 0; ++	/* ++	  Find the drain rate of the display buffer. ++	*/ ++	disp_drain_rate = pix_clk / (16.0/pixel_bytes1); +  +-    if (critical_point == 0 && mode2 && info->ChipFamily == CHIP_FAMILY_R300) { +-	/* some R300 cards have problem with this set to 0, when CRTC2 is enabled.*/ +-	critical_point = 0x10; +-    } ++	/* ++	  Find the critical point of the display buffer. ++	*/ ++	critical_point= (uint32_t)(disp_drain_rate * disp_latency + 0.5); +  +-    temp = info->SavedReg->grph_buffer_cntl; +-    temp &= ~(RADEON_GRPH_STOP_REQ_MASK); +-    temp |= (stop_req << RADEON_GRPH_STOP_REQ_SHIFT); +-    temp &= ~(RADEON_GRPH_START_REQ_MASK); +-    if ((info->ChipFamily == CHIP_FAMILY_R350) && +-	(stop_req > 0x15)) { +-	stop_req -= 0x10; +-    } +-    temp |= (stop_req << RADEON_GRPH_START_REQ_SHIFT); ++	/* ???? */ ++	/* ++	  temp = (info->SavedReg.grph_buffer_cntl & RADEON_GRPH_CRITICAL_POINT_MASK) >> RADEON_GRPH_CRITICAL_POINT_SHIFT; ++	  if (critical_point < temp) critical_point = temp; ++	*/ ++	if (info->DispPriority == 2) { ++	    critical_point = 0; ++	} +  +-    temp |= RADEON_GRPH_BUFFER_SIZE; +-    temp &= ~(RADEON_GRPH_CRITICAL_CNTL   | +-	      RADEON_GRPH_CRITICAL_AT_SOF | +-	      RADEON_GRPH_STOP_CNTL); +-    /* +-      Write the result into the register. +-    */ +-    OUTREG(RADEON_GRPH_BUFFER_CNTL, ((temp & ~RADEON_GRPH_CRITICAL_POINT_MASK) | +-				     (critical_point << RADEON_GRPH_CRITICAL_POINT_SHIFT))); ++	/* ++	  The critical point should never be above max_stop_req-4.  Setting ++	  GRPH_CRITICAL_CNTL = 0 will thus force high priority all the time. ++	*/ ++	if (max_stop_req - critical_point < 4) critical_point = 0; ++ ++	if (critical_point == 0 && mode2 && info->ChipFamily == CHIP_FAMILY_R300) { ++	    /* some R300 cards have problem with this set to 0, when CRTC2 is enabled.*/ ++	    critical_point = 0x10; ++	} ++ ++	temp = info->SavedReg->grph_buffer_cntl; ++	temp &= ~(RADEON_GRPH_STOP_REQ_MASK); ++	temp |= (stop_req << RADEON_GRPH_STOP_REQ_SHIFT); ++	temp &= ~(RADEON_GRPH_START_REQ_MASK); ++	if ((info->ChipFamily == CHIP_FAMILY_R350) && ++	    (stop_req > 0x15)) { ++	    stop_req -= 0x10; ++	} ++	temp |= (stop_req << RADEON_GRPH_START_REQ_SHIFT); ++ ++	temp |= RADEON_GRPH_BUFFER_SIZE; ++	temp &= ~(RADEON_GRPH_CRITICAL_CNTL   | ++		  RADEON_GRPH_CRITICAL_AT_SOF | ++		  RADEON_GRPH_STOP_CNTL); ++	/* ++	  Write the result into the register. ++	*/ ++	OUTREG(RADEON_GRPH_BUFFER_CNTL, ((temp & ~RADEON_GRPH_CRITICAL_POINT_MASK) | ++					 (critical_point << RADEON_GRPH_CRITICAL_POINT_SHIFT))); +  + #if 0 +-    if ((info->ChipFamily == CHIP_FAMILY_RS400) || +-	(info->ChipFamily == CHIP_FAMILY_RS480)) { +-	/* attempt to program RS400 disp regs correctly ??? */ +-	temp = info->SavedReg->disp1_req_cntl1; +-	temp &= ~(RS400_DISP1_START_REQ_LEVEL_MASK | +-		  RS400_DISP1_STOP_REQ_LEVEL_MASK); +-	OUTREG(RS400_DISP1_REQ_CNTL1, (temp | +-				       (critical_point << RS400_DISP1_START_REQ_LEVEL_SHIFT) | +-				       (critical_point << RS400_DISP1_STOP_REQ_LEVEL_SHIFT))); +-	temp = info->SavedReg->dmif_mem_cntl1; +-	temp &= ~(RS400_DISP1_CRITICAL_POINT_START_MASK | +-		  RS400_DISP1_CRITICAL_POINT_STOP_MASK); +-	OUTREG(RS400_DMIF_MEM_CNTL1, (temp | +-				      (critical_point << RS400_DISP1_CRITICAL_POINT_START_SHIFT) | +-				      (critical_point << RS400_DISP1_CRITICAL_POINT_STOP_SHIFT))); +-    } ++	if ((info->ChipFamily == CHIP_FAMILY_RS400) || ++	    (info->ChipFamily == CHIP_FAMILY_RS480)) { ++	    /* attempt to program RS400 disp regs correctly ??? */ ++	    temp = info->SavedReg->disp1_req_cntl1; ++	    temp &= ~(RS400_DISP1_START_REQ_LEVEL_MASK | ++		      RS400_DISP1_STOP_REQ_LEVEL_MASK); ++	    OUTREG(RS400_DISP1_REQ_CNTL1, (temp | ++					   (critical_point << RS400_DISP1_START_REQ_LEVEL_SHIFT) | ++					   (critical_point << RS400_DISP1_STOP_REQ_LEVEL_SHIFT))); ++	    temp = info->SavedReg->dmif_mem_cntl1; ++	    temp &= ~(RS400_DISP1_CRITICAL_POINT_START_MASK | ++		      RS400_DISP1_CRITICAL_POINT_STOP_MASK); ++	    OUTREG(RS400_DMIF_MEM_CNTL1, (temp | ++					  (critical_point << RS400_DISP1_CRITICAL_POINT_START_SHIFT) | ++					  (critical_point << RS400_DISP1_CRITICAL_POINT_STOP_SHIFT))); ++	} + #endif +  +-    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, +-		   "GRPH_BUFFER_CNTL from %x to %x\n", +-		   (unsigned int)info->SavedReg->grph_buffer_cntl, +-		   (unsigned int)INREG(RADEON_GRPH_BUFFER_CNTL)); ++	xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, ++		       "GRPH_BUFFER_CNTL from %x to %x\n", ++		       (unsigned int)info->SavedReg->grph_buffer_cntl, ++		       (unsigned int)INREG(RADEON_GRPH_BUFFER_CNTL)); ++    } +  +     if (mode2) { + 	stop_req = mode2->HDisplay * pixel_bytes2 / 16; +  + 	if (stop_req > max_stop_req) stop_req = max_stop_req; +  ++	/* ++	  Find the drain rate of the display buffer. ++	*/ ++	disp_drain_rate2 = pix_clk2 / (16.0/pixel_bytes2); ++ + 	temp = info->SavedReg->grph2_buffer_cntl; + 	temp &= ~(RADEON_GRPH_STOP_REQ_MASK); + 	temp |= (stop_req << RADEON_GRPH_STOP_REQ_SHIFT); +@@ -1629,7 +1643,10 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2 + 	    critical_point2 = 0; + 	else { + 	    read_return_rate = MIN(info->sclk, info->mclk*(info->RamWidth*(info->IsDDR+1)/128)); +-	    time_disp1_drop_priority = critical_point / (read_return_rate - disp_drain_rate); ++	    if (mode1) ++		time_disp1_drop_priority = critical_point / (read_return_rate - disp_drain_rate); ++	    else ++		time_disp1_drop_priority = 0; +  + 	    critical_point2 = (uint32_t)((disp_latency + time_disp1_drop_priority +  + 					disp_latency) * disp_drain_rate2 + 0.5); +@@ -1681,45 +1698,6 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2 + } +  + void +-RADEONInitDispBandwidth(ScrnInfoPtr pScrn) +-{ +-    RADEONInfoPtr info = RADEONPTR(pScrn); +-    xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); +-    DisplayModePtr mode1, mode2; +-    int pixel_bytes2 = 0; +- +-    if (info->IsPrimary || info->IsSecondary) +-	mode1 = &xf86_config->crtc[0]->mode; +-    else +-	mode1 = info->CurrentLayout.mode; +-    mode2 = NULL; +-    pixel_bytes2 = info->CurrentLayout.pixel_bytes; +- +-    if (xf86_config->num_crtc == 2) { +-      pixel_bytes2 = 0; +-      mode2 = NULL; +- +-      if (xf86_config->crtc[1]->enabled && xf86_config->crtc[0]->enabled) { +-	pixel_bytes2 = info->CurrentLayout.pixel_bytes; +-	mode1 = &xf86_config->crtc[0]->mode; +-	mode2 = &xf86_config->crtc[1]->mode; +-      } else if (xf86_config->crtc[0]->enabled) { +-	mode1 = &xf86_config->crtc[0]->mode; +-      } else if (xf86_config->crtc[1]->enabled) { +-	mode1 = &xf86_config->crtc[1]->mode; +-      } else +-	return; +-    } else { +-	if (xf86_config->crtc[0]->enabled) +-	    mode1 = &xf86_config->crtc[0]->mode; +-	else +-	    return; +-    } +- +-    RADEONInitDispBandwidth2(pScrn, info, pixel_bytes2, mode1, mode2); +-} +- +-void + legacy_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode, + 		     DisplayModePtr adjusted_mode, int x, int y) + { +@@ -1729,10 +1707,15 @@ legacy_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode, +     RADEONInfoPtr info = RADEONPTR(pScrn); +     int i = 0; +     double dot_clock = 0; +-    int pll_flags = RADEON_PLL_LEGACY | RADEON_PLL_PREFER_LOW_REF_DIV; ++    int pll_flags = RADEON_PLL_LEGACY; +     Bool update_tv_routing = FALSE; +     Bool tilingChanged = FALSE; +  ++    if (adjusted_mode->Clock > 200000) /* range limits??? */ ++	pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV; ++    else ++	pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV; ++ +     if (info->allowColorTiling) { + 	radeon_crtc->can_tile = (adjusted_mode->Flags & (V_DBLSCAN | V_INTERLACE)) ? FALSE : TRUE; + 	tilingChanged = RADEONSetTiling(pScrn); +diff --git a/src/legacy_output.c b/src/legacy_output.c +index 9c9ebb9..e5ddf1f 100644 +--- a/src/legacy_output.c ++++ b/src/legacy_output.c +@@ -48,6 +48,8 @@ + #include "radeon_tv.h" + #include "radeon_atombios.h" +  ++#include "ati_pciids_gen.h" ++ + static RADEONMonitorType radeon_detect_tv(ScrnInfoPtr pScrn); + static RADEONMonitorType radeon_detect_primary_dac(ScrnInfoPtr pScrn, Bool color); + static RADEONMonitorType radeon_detect_tv_dac(ScrnInfoPtr pScrn, Bool color); +@@ -277,16 +279,12 @@ static void + RADEONRestoreDVOChip(ScrnInfoPtr pScrn, xf86OutputPtr output) + { +     RADEONInfoPtr info = RADEONPTR(pScrn); +-    unsigned char *RADEONMMIO = info->MMIO; +     RADEONOutputPrivatePtr radeon_output = output->driver_private; +  +     if (!radeon_output->DVOChip) + 	return; +  +-    OUTREG(radeon_output->dvo_i2c.mask_clk_reg, +-	   INREG(radeon_output->dvo_i2c.mask_clk_reg) & +-	   (uint32_t)~(RADEON_GPIO_A_0 | RADEON_GPIO_A_1)); +- ++    RADEONI2CDoLock(output, TRUE); +     if (!RADEONInitExtTMDSInfoFromBIOS(output)) { + 	if (radeon_output->DVOChip) { + 	    switch(info->ext_tmds_chip) { +@@ -316,6 +314,7 @@ RADEONRestoreDVOChip(ScrnInfoPtr pScrn, xf86OutputPtr output) + 	    } + 	} +     } ++    RADEONI2CDoLock(output, FALSE); + } +  + #if 0 +@@ -727,14 +726,6 @@ RADEONEnableDisplay(xf86OutputPtr output, BOOL bEnable) + 		    save->crtc2_gen_cntl |= RADEON_CRTC2_CRT2_ON; + 		} + 		tv_dac_change = 1; +-		/* IGP chips seem to use a mix of Primary and TVDAC controls */ +-		if (info->IsIGP) { +-		    tmp = INREG(RADEON_CRTC_EXT_CNTL); +-		    tmp |= RADEON_CRTC_CRT_ON; +-		    OUTREG(RADEON_CRTC_EXT_CNTL, tmp); +-		    save->crtc_ext_cntl |= RADEON_CRTC_CRT_ON; +-		    RADEONDacPowerSet(pScrn, bEnable, TRUE); +-		} + 	    } + 	} else if (radeon_output->MonType == MT_DFP) { + 	    if (radeon_output->TMDSType == TMDS_INT) { +@@ -815,14 +806,6 @@ RADEONEnableDisplay(xf86OutputPtr output, BOOL bEnable) + 			save->crtc2_gen_cntl &= ~RADEON_CRTC2_CRT2_ON; + 		    } + 		} +-		/* IGP chips seem to use a mix of Primary and TVDAC controls */ +-		if (info->IsIGP) { +-		    tmp = INREG(RADEON_CRTC_EXT_CNTL); +-		    tmp &= ~RADEON_CRTC_CRT_ON; +-		    OUTREG(RADEON_CRTC_EXT_CNTL, tmp); +-		    save->crtc_ext_cntl &= ~RADEON_CRTC_CRT_ON; +-		    RADEONDacPowerSet(pScrn, bEnable, TRUE); +-		} + 	    } + 	} else if (radeon_output->MonType == MT_DFP) { + 	    if (radeon_output->TMDSType == TMDS_INT) { +@@ -1033,9 +1016,14 @@ RADEONInitFP2Registers(xf86OutputPtr output, RADEONSavePtr save, + 			    RADEON_FP2_DVO_RATE_SEL_SDR); +  +  +-    /* XXX: these may be oem specific */ ++    /* XXX: these are oem specific */ +     if (IS_R300_VARIANT) { +-	save->fp2_gen_cntl |= RADEON_FP2_PAD_FLOP_EN | R300_FP2_DVO_CLOCK_MODE_SINGLE; ++	if ((info->Chipset == PCI_CHIP_RV350_NP) && ++	    (PCI_SUB_VENDOR_ID(info->PciInfo) == 0x1028) && ++	    (PCI_SUB_DEVICE_ID(info->PciInfo) == 0x2001)) ++	    save->fp2_gen_cntl |= R300_FP2_DVO_CLOCK_MODE_SINGLE; /* Dell Inspiron 8600 */ ++	else ++	    save->fp2_gen_cntl |= RADEON_FP2_PAD_FLOP_EN | R300_FP2_DVO_CLOCK_MODE_SINGLE; + #if 0 + 	if (mode->Clock > 165000) + 	    save->fp2_gen_cntl |= R300_FP2_DVO_DUAL_CHANNEL_EN; +@@ -1383,7 +1371,6 @@ RADEONInitOutputRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save, + { +     Bool IsPrimary = crtc_num == 0 ? TRUE : FALSE; +     RADEONOutputPrivatePtr radeon_output = output->driver_private; +-    RADEONInfoPtr info = RADEONPTR(pScrn); +  +     if (crtc_num == 0) + 	RADEONInitRMXRegisters(output, save, mode); +@@ -1393,9 +1380,6 @@ RADEONInitOutputRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save, + 	    RADEONInitDACRegisters(output, save, mode, IsPrimary); + 	} else { + 	    RADEONInitDAC2Registers(output, save, mode, IsPrimary); +-	    /* IGP chips seem to use a mix of primary and TVDAC controls */ +-	    if (info->IsIGP) +-		RADEONInitDACRegisters(output, save, mode, IsPrimary); + 	} +     } else if (radeon_output->MonType == MT_LCD) { + 	RADEONInitLVDSRegisters(output, save, mode, IsPrimary); +@@ -1456,8 +1440,8 @@ legacy_output_mode_set(xf86OutputPtr output, DisplayModePtr mode, + 		} + 		OUTREG(RADEON_FP2_GEN_CNTL, fp2_gen_cntl); + 	    } else { +-		RADEONRestoreDVOChip(pScrn, output); + 		RADEONRestoreFP2Registers(pScrn, info->ModeReg); ++		RADEONRestoreDVOChip(pScrn, output); + 	    } + 	} + 	break; +diff --git a/src/pcidb/ati_pciids.csv b/src/pcidb/ati_pciids.csv +index 1f6fa82..07e71a3 100644 +--- a/src/pcidb/ati_pciids.csv ++++ b/src/pcidb/ati_pciids.csv +@@ -1,5 +1,6 @@ + "#pciid","define","family","mobility","igp","nocrtc2","Nointtvout","singledac","name" + "0x3150","RV380_3150","RV380",1,,,,,"ATI Radeon Mobility X600 (M24) 3150 (PCIE)" ++"0x3151","RV380_3151","RV380",,,,,,"ATI FireMV 2400 (PCI)" + "0x3152","RV380_3152","RV380",1,,,,,"ATI Radeon Mobility X300 (M24) 3152 (PCIE)" + "0x3154","RV380_3154","RV380",1,,,,,"ATI FireGL M24 GL 3154 (PCIE)" + "0x3E50","RV380_3E50","RV380",,,,,,"ATI Radeon X600 (RV380) 3E50 (PCIE)" +@@ -331,6 +332,9 @@ + "0x940A","R600_940A","R600",,,,,,"ATI FireGL V8650" + "0x940B","R600_940B","R600",,,,,,"ATI FireGL V8600" + "0x940F","R600_940F","R600",,,,,,"ATI FireGL V7600" ++"0x9440","RV770_9440","RV770",,,,,,"ATI Radeon 4800 Series" ++"0x9441","RV770_9441","RV770",,,,,,"ATI Radeon HD 4870 x2" ++"0x9442","RV770_9442","RV770",,,,,,"ATI Radeon 4800 Series" + "0x94C0","RV610_94C0","RV610",,,,,,"ATI RV610" + "0x94C1","RV610_94C1","RV610",,,,,,"ATI Radeon HD 2400 XT" + "0x94C3","RV610_94C3","RV610",,,,,,"ATI Radeon HD 2400 Pro" +@@ -348,6 +352,7 @@ + "0x9507","RV670_9507","RV670",,,,,,"ATI RV670" + "0x950F","RV670_950F","RV670",,,,,,"ATI Radeon HD3870 X2" + "0x9511","RV670_9511","RV670",,,,,,"ATI FireGL V7700" ++"0x9515","RV670_9515","RV670",,,,,,"ATI Radeon HD3850" + "0x9580","RV630_9580","RV630",,,,,,"ATI RV630" + "0x9581","RV630_9581","RV630",1,,,,,"ATI Mobility Radeon HD 2600" + "0x9583","RV630_9583","RV630",1,,,,,"ATI Mobility Radeon HD 2600 XT" +diff --git a/src/radeon.h b/src/radeon.h +index 4f77c3b..f7ae1a8 100644 +--- a/src/radeon.h ++++ b/src/radeon.h +@@ -72,9 +72,10 @@ + 				/* DRI support */ + #ifdef XF86DRI + #define _XF86DRI_SERVER_ +-#include "radeon_dripriv.h" + #include "dri.h" + #include "GL/glxint.h" ++#include "xf86drm.h" ++ + #ifdef DAMAGE + #include "damage.h" + #include "globals.h" +@@ -98,6 +99,36 @@ + #define MIN(a,b) ((a)>(b)?(b):(a)) + #endif +  ++#if HAVE_BYTESWAP_H ++#include <byteswap.h> ++#elif defined(USE_SYS_ENDIAN_H) ++#include <sys/endian.h> ++#else ++#define bswap_16(value)  \ ++        ((((value) & 0xff) << 8) | ((value) >> 8)) ++ ++#define bswap_32(value) \ ++        (((uint32_t)bswap_16((uint16_t)((value) & 0xffff)) << 16) | \ ++        (uint32_t)bswap_16((uint16_t)((value) >> 16))) ++  ++#define bswap_64(value) \ ++        (((uint64_t)bswap_32((uint32_t)((value) & 0xffffffff)) \ ++            << 32) | \ ++        (uint64_t)bswap_32((uint32_t)((value) >> 32))) ++#endif ++ ++#if X_BYTE_ORDER == X_BIG_ENDIAN ++#define le32_to_cpu(x) bswap_32(x) ++#define le16_to_cpu(x) bswap_16(x) ++#define cpu_to_le32(x) bswap_32(x) ++#define cpu_to_le16(x) bswap_16(x) ++#else ++#define le32_to_cpu(x) (x) ++#define le16_to_cpu(x) (x) ++#define cpu_to_le32(x) (x) ++#define cpu_to_le16(x) (x) ++#endif ++ + /* Provide substitutes for gcc's __FUNCTION__ on other compilers */ + #if !defined(__GNUC__) && !defined(__FUNCTION__) + # define __FUNCTION__ __func__		/* C99 */ +@@ -220,7 +251,12 @@ typedef struct { + #define RADEON_PLL_NO_ODD_POST_DIV (1 << 1) + #define RADEON_PLL_USE_REF_DIV     (1 << 2) + #define RADEON_PLL_LEGACY          (1 << 3) +-#define RADEON_PLL_PREFER_LOW_REF_DIV (1 << 4) ++#define RADEON_PLL_PREFER_LOW_REF_DIV   (1 << 4) ++#define RADEON_PLL_PREFER_HIGH_REF_DIV  (1 << 5) ++#define RADEON_PLL_PREFER_LOW_FB_DIV    (1 << 6) ++#define RADEON_PLL_PREFER_HIGH_FB_DIV   (1 << 7) ++#define RADEON_PLL_PREFER_LOW_POST_DIV  (1 << 8) ++#define RADEON_PLL_PREFER_HIGH_POST_DIV (1 << 9) +  + typedef struct { +     uint16_t          reference_freq; +@@ -287,6 +323,7 @@ typedef enum { +     CHIP_FAMILY_RV620, +     CHIP_FAMILY_RV635, +     CHIP_FAMILY_RS780, ++    CHIP_FAMILY_RV770, +     CHIP_FAMILY_LAST + } RADEONChipFamily; +  +@@ -377,156 +414,45 @@ typedef struct { +     int singledac; + } RADEONCardInfo; +  +-typedef struct { +-    EntityInfoPtr     pEnt; +-    pciVideoPtr       PciInfo; +-    PCITAG            PciTag; +-    int               Chipset; +-    RADEONChipFamily  ChipFamily; +-    RADEONErrata      ChipErrata; +- +-    unsigned long     LinearAddr;       /* Frame buffer physical address     */ +-    unsigned long     MMIOAddr;         /* MMIO region physical address      */ +-    unsigned long     BIOSAddr;         /* BIOS physical address             */ +-    uint32_t          fbLocation; +-    uint32_t          gartLocation; +-    uint32_t          mc_fb_location; +-    uint32_t          mc_agp_location; +-    uint32_t          mc_agp_location_hi; +- +-    void              *MMIO;            /* Map of MMIO region                */ +-    void              *FB;              /* Map of frame buffer               */ +-    uint8_t           *VBIOS;           /* Video BIOS pointer                */ +- +-    Bool              IsAtomBios;       /* New BIOS used in R420 etc.        */ +-    int               ROMHeaderStart;   /* Start of the ROM Info Table       */ +-    int               MasterDataStart;  /* Offset for Master Data Table for ATOM BIOS */ +- +-    uint32_t          MemCntl; +-    uint32_t          BusCntl; +-    unsigned long     MMIOSize;         /* MMIO region physical address      */ +-    unsigned long     FbMapSize;        /* Size of frame buffer, in bytes    */ +-    unsigned long     FbSecureSize;     /* Size of secured fb area at end of +-                                           framebuffer */ +- +-    Bool              IsMobility;       /* Mobile chips for laptops */ +-    Bool              IsIGP;            /* IGP chips */ +-    Bool              HasSingleDAC;     /* only TVDAC on chip */ +-    Bool              ddc_mode;         /* Validate mode by matching exactly +-					 * the modes supported in DDC data +-					 */ +-    Bool              R300CGWorkaround; +- +-				/* EDID or BIOS values for FPs */ +-    int               RefDivider; +-    int               FeedbackDivider; +-    int               PostDivider; +-    Bool              UseBiosDividers; +-				/* EDID data using DDC interface */ +-    Bool              ddc_bios; +-    Bool              ddc1; +-    Bool              ddc2; +- +-    RADEONPLLRec      pll; +- +-    int               RamWidth; +-    float	      sclk;		/* in MHz */ +-    float	      mclk;		/* in MHz */ +-    Bool	      IsDDR; +-    int               DispPriority; +- +-    RADEONSavePtr     SavedReg;         /* Original (text) mode              */ +-    RADEONSavePtr     ModeReg;          /* Current mode                      */ +-    Bool              (*CloseScreen)(int, ScreenPtr); +- +-    void              (*BlockHandler)(int, pointer, pointer, pointer); +- +-    Bool              PaletteSavedOnVT; /* Palette saved on last VT switch   */ +- +-#ifdef USE_EXA +-    ExaDriverPtr      exa; +-    int               exaSyncMarker; +-    int               exaMarkerSynced; +-    int               engineMode; +-#define EXA_ENGINEMODE_UNKNOWN 0 +-#define EXA_ENGINEMODE_2D      1 +-#define EXA_ENGINEMODE_3D      2 + #ifdef XF86DRI +-    Bool              accelDFS; +-#endif +-#endif +-#ifdef USE_XAA +-    XAAInfoRecPtr     accel; +-#endif +-    Bool              accelOn; +-    xf86CursorInfoPtr cursor; +-    Bool              allowColorTiling; +-    Bool              tilingEnabled; /* mirror of sarea->tiling_enabled */ +-#ifdef ARGB_CURSOR +-    Bool	      cursor_argb; +-#endif +-    int               cursor_fg; +-    int               cursor_bg; ++struct radeon_cp { ++    Bool              CPRuns;           /* CP is running */ ++    Bool              CPInUse;          /* CP has been used by X server */ ++    Bool              CPStarted;        /* CP has started */ ++    int               CPMode;           /* CP mode that server/clients use */ ++    int               CPFifoSize;       /* Size of the CP command FIFO */ ++    int               CPusecTimeout;    /* CP timeout in usecs */ ++    Bool              needCacheFlush; +  +-#ifdef USE_XAA +-    /* +-     * XAAForceTransBlit is used to change the behavior of the XAA +-     * SetupForScreenToScreenCopy function, to make it DGA-friendly. +-     */ +-    Bool              XAAForceTransBlit; +-#endif ++    /* CP accleration */ ++    drmBufPtr         indirectBuffer; ++    int               indirectStart; +  +-    int               fifo_slots;       /* Free slots in the FIFO (64 max)   */ +-    int               pix24bpp;         /* Depth of pixmap for 24bpp fb      */ +-    Bool              dac6bits;         /* Use 6 bit DAC?                    */ ++    /* Debugging info for BEGIN_RING/ADVANCE_RING pairs. */ ++    int               dma_begin_count; ++    char              *dma_debug_func; ++    int               dma_debug_lineno; +  +-				/* Computed values for Radeon */ +-    int               pitch; +-    int               datatype; +-    uint32_t          dp_gui_master_cntl; +-    uint32_t          dp_gui_master_cntl_clip; +-    uint32_t          trans_color; ++    }; +  +-				/* Saved values for ScreenToScreenCopy */ +-    int               xdir; +-    int               ydir; ++typedef struct { ++    /* Nothing here yet */ ++    int dummy; ++} RADEONConfigPrivRec, *RADEONConfigPrivPtr; +  +-#ifdef USE_XAA +-				/* ScanlineScreenToScreenColorExpand support */ +-    unsigned char     *scratch_buffer[1]; +-    unsigned char     *scratch_save; +-    int               scanline_x; +-    int               scanline_y; +-    int               scanline_w; +-    int               scanline_h; +-    int               scanline_h_w; +-    int               scanline_words; +-    int               scanline_direct; +-    int               scanline_bpp;     /* Only used for ImageWrite */ +-    int               scanline_fg; +-    int               scanline_bg; +-    int               scanline_hpass; +-    int               scanline_x1clip; +-    int               scanline_x2clip; ++typedef struct { ++#ifdef PER_CONTEXT_SAREA ++    drm_context_t ctx_id; ++    drm_handle_t sarea_handle; ++#else ++    /* Nothing here yet */ ++    int dummy; + #endif +-				/* Saved values for DashedTwoPointLine */ +-    int               dashLen; +-    uint32_t          dashPattern; +-    int               dash_fg; +-    int               dash_bg; ++} RADEONDRIContextRec, *RADEONDRIContextPtr; +  +-    DGAModePtr        DGAModes; +-    int               numDGAModes; +-    Bool              DGAactive; +-    int               DGAViewportStatus; +-    DGAFunctionRec    DGAFuncs; ++struct radeon_dri { ++    Bool              noBackBuffer; +  +-    RADEONFBLayout    CurrentLayout; +-    uint32_t          dst_pitch_offset; +-#ifdef XF86DRI +-    Bool              noBackBuffer;	 +-    Bool              directRenderingEnabled; +-    Bool              directRenderingInited; +     Bool              newMemoryMap; +     drmVersionPtr     pLibDRMVersion; +     drmVersionPtr     pKernelDRMVersion; +@@ -542,7 +468,6 @@ typedef struct { +     drmSize           registerSize; +     drm_handle_t      registerHandle; +  +-    RADEONCardType    cardType;            /* Current card is a PCI card */ +     drmSize           pciSize; +     drm_handle_t      pciMemHandle; +     unsigned char     *PCI;             /* Map */ +@@ -564,15 +489,7 @@ typedef struct { +  +     uint32_t          pciCommand; +  +-    Bool              CPRuns;           /* CP is running */ +-    Bool              CPInUse;          /* CP has been used by X server */ +-    Bool              CPStarted;        /* CP has started */ +-    int               CPMode;           /* CP mode that server/clients use */ +-    int               CPFifoSize;       /* Size of the CP command FIFO */ +-    int               CPusecTimeout;    /* CP timeout in usecs */ +-    Bool              needCacheFlush; +- +-				/* CP ring buffer data */ ++    /* CP ring buffer data */ +     unsigned long     ringStart;        /* Offset into GART space */ +     drm_handle_t      ringHandle;       /* Handle from drmAddMap */ +     drmSize           ringMapSize;      /* Size of map */ +@@ -585,7 +502,7 @@ typedef struct { +     drmSize           ringReadMapSize;  /* Size of map */ +     drmAddress        ringReadPtr;      /* Map */ +  +-				/* CP vertex/indirect buffer data */ ++    /* CP vertex/indirect buffer data */ +     unsigned long     bufStart;         /* Offset into GART space */ +     drm_handle_t      bufHandle;        /* Handle from drmAddMap */ +     drmSize           bufMapSize;       /* Size of map */ +@@ -594,7 +511,7 @@ typedef struct { +     int               bufNumBufs;       /* Number of buffers */ +     drmBufMapPtr      buffers;          /* Buffer map */ +  +-				/* CP GART Texture data */ ++    /* CP GART Texture data */ +     unsigned long     gartTexStart;      /* Offset into GART space */ +     drm_handle_t      gartTexHandle;     /* Handle from drmAddMap */ +     drmSize           gartTexMapSize;    /* Size of map */ +@@ -602,11 +519,7 @@ typedef struct { +     drmAddress        gartTex;           /* Map */ +     int               log2GARTTexGran; +  +-				/* CP accleration */ +-    drmBufPtr         indirectBuffer; +-    int               indirectStart; +- +-				/* DRI screen private data */ ++    /* DRI screen private data */ +     int               fbX; +     int               fbY; +     int               backX; +@@ -628,43 +541,215 @@ typedef struct { +     int               pciGartSize; +     uint32_t          pciGartOffset; +     void              *pciGartBackup; ++ ++    int               irq; ++ ++#ifdef PER_CONTEXT_SAREA ++    int               perctx_sarea_size; ++#endif ++ + #ifdef USE_XAA +     uint32_t          frontPitchOffset; +     uint32_t          backPitchOffset; +     uint32_t          depthPitchOffset; +  +-				/* offscreen memory management */ ++    /* offscreen memory management */ +     int               backLines; +     FBAreaPtr         backArea; +     int               depthTexLines; +     FBAreaPtr         depthTexArea; + #endif +  +-				/* Saved scissor values */ +-    uint32_t          sc_left; +-    uint32_t          sc_right; +-    uint32_t          sc_top; +-    uint32_t          sc_bottom; ++}; ++#endif ++ ++struct radeon_accel_state { ++    /* common accel data */ ++    int               fifo_slots;       /* Free slots in the FIFO (64 max)   */ ++				/* Computed values for Radeon */ ++    uint32_t          dp_gui_master_cntl; ++    uint32_t          dp_gui_master_cntl_clip; ++    uint32_t          trans_color; ++				/* Saved values for ScreenToScreenCopy */ ++    int               xdir; ++    int               ydir; ++    uint32_t          dst_pitch_offset; ++ ++    /* render accel */ ++    unsigned short    texW[2]; ++    unsigned short    texH[2]; ++    Bool              XInited3D; /* X itself has the 3D context */ ++    int               num_gb_pipes; ++    Bool              has_tcl; ++ ++#ifdef USE_EXA ++    /* EXA */ ++    ExaDriverPtr      exa; ++    int               exaSyncMarker; ++    int               exaMarkerSynced; ++    int               engineMode; ++#define EXA_ENGINEMODE_UNKNOWN 0 ++#define EXA_ENGINEMODE_2D      1 ++#define EXA_ENGINEMODE_3D      2 ++ ++    Bool              is_transform[2]; ++    PictTransform     *transform[2]; ++    Bool              has_mask; ++    /* Whether we are tiling horizontally and vertically */ ++    Bool              need_src_tile_x; ++    Bool              need_src_tile_y; ++    /* Size of tiles ... set to 65536x65536 if not tiling in that direction */ ++    Bool              src_tile_width; ++    Bool              src_tile_height; ++#endif ++ ++#ifdef USE_XAA ++    /* XAA */ ++    XAAInfoRecPtr     accel; ++				/* ScanlineScreenToScreenColorExpand support */ ++    unsigned char     *scratch_buffer[1]; ++    unsigned char     *scratch_save; ++    int               scanline_x; ++    int               scanline_y; ++    int               scanline_w; ++    int               scanline_h; ++    int               scanline_h_w; ++    int               scanline_words; ++    int               scanline_direct; ++    int               scanline_bpp;     /* Only used for ImageWrite */ ++    int               scanline_fg; ++    int               scanline_bg; ++    int               scanline_hpass; ++    int               scanline_x1clip; ++    int               scanline_x2clip; ++				/* Saved values for DashedTwoPointLine */ ++    int               dashLen; ++    uint32_t          dashPattern; ++    int               dash_fg; ++    int               dash_bg; ++ ++    FBLinearPtr       RenderTex; ++    void              (*RenderCallback)(ScrnInfoPtr); ++    Time              RenderTimeout; ++    /* ++     * XAAForceTransBlit is used to change the behavior of the XAA ++     * SetupForScreenToScreenCopy function, to make it DGA-friendly. ++     */ ++    Bool              XAAForceTransBlit; ++#endif ++ ++}; +  +-    uint32_t          re_top_left; +-    uint32_t          re_width_height; ++typedef struct { ++    EntityInfoPtr     pEnt; ++    pciVideoPtr       PciInfo; ++    PCITAG            PciTag; ++    int               Chipset; ++    RADEONChipFamily  ChipFamily; ++    RADEONErrata      ChipErrata; ++ ++    unsigned long     LinearAddr;       /* Frame buffer physical address     */ ++    unsigned long     MMIOAddr;         /* MMIO region physical address      */ ++    unsigned long     BIOSAddr;         /* BIOS physical address             */ ++    uint32_t          fbLocation; ++    uint32_t          gartLocation; ++    uint32_t          mc_fb_location; ++    uint32_t          mc_agp_location; ++    uint32_t          mc_agp_location_hi; +  +-    uint32_t          aux_sc_cntl; ++    void              *MMIO;            /* Map of MMIO region                */ ++    void              *FB;              /* Map of frame buffer               */ ++    uint8_t           *VBIOS;           /* Video BIOS pointer                */ +  +-    int               irq; ++    Bool              IsAtomBios;       /* New BIOS used in R420 etc.        */ ++    int               ROMHeaderStart;   /* Start of the ROM Info Table       */ ++    int               MasterDataStart;  /* Offset for Master Data Table for ATOM BIOS */ +  +-    Bool              DMAForXv; ++    uint32_t          MemCntl; ++    uint32_t          BusCntl; ++    unsigned long     MMIOSize;         /* MMIO region physical address      */ ++    unsigned long     FbMapSize;        /* Size of frame buffer, in bytes    */ ++    unsigned long     FbSecureSize;     /* Size of secured fb area at end of ++                                           framebuffer */ +  +-#ifdef PER_CONTEXT_SAREA +-    int               perctx_sarea_size; ++    Bool              IsMobility;       /* Mobile chips for laptops */ ++    Bool              IsIGP;            /* IGP chips */ ++    Bool              HasSingleDAC;     /* only TVDAC on chip */ ++    Bool              ddc_mode;         /* Validate mode by matching exactly ++					 * the modes supported in DDC data ++					 */ ++    Bool              R300CGWorkaround; ++ ++				/* EDID or BIOS values for FPs */ ++    int               RefDivider; ++    int               FeedbackDivider; ++    int               PostDivider; ++    Bool              UseBiosDividers; ++				/* EDID data using DDC interface */ ++    Bool              ddc_bios; ++    Bool              ddc1; ++    Bool              ddc2; ++ ++    RADEONPLLRec      pll; ++ ++    int               RamWidth; ++    float	      sclk;		/* in MHz */ ++    float	      mclk;		/* in MHz */ ++    Bool	      IsDDR; ++    int               DispPriority; ++ ++    RADEONSavePtr     SavedReg;         /* Original (text) mode              */ ++    RADEONSavePtr     ModeReg;          /* Current mode                      */ ++    Bool              (*CloseScreen)(int, ScreenPtr); ++ ++    void              (*BlockHandler)(int, pointer, pointer, pointer); ++ ++    Bool              PaletteSavedOnVT; /* Palette saved on last VT switch   */ ++ ++    xf86CursorInfoPtr cursor; ++#ifdef ARGB_CURSOR ++    Bool	      cursor_argb; + #endif ++    int               cursor_fg; ++    int               cursor_bg; +  +-    /* Debugging info for BEGIN_RING/ADVANCE_RING pairs. */ +-    int               dma_begin_count; +-    char              *dma_debug_func; +-    int               dma_debug_lineno; ++    int               pix24bpp;         /* Depth of pixmap for 24bpp fb      */ ++    Bool              dac6bits;         /* Use 6 bit DAC?                    */ ++ ++    DGAModePtr        DGAModes; ++    int               numDGAModes; ++    Bool              DGAactive; ++    int               DGAViewportStatus; ++    DGAFunctionRec    DGAFuncs; ++ ++    RADEONFBLayout    CurrentLayout; ++ ++#ifdef XF86DRI ++    Bool              directRenderingEnabled; ++    Bool              directRenderingInited; ++    RADEONCardType    cardType;            /* Current card is a PCI card */ ++    struct radeon_cp  *cp; ++    struct radeon_dri  *dri; ++#ifdef USE_EXA ++    Bool              accelDFS; ++#endif ++    Bool              DMAForXv; + #endif /* XF86DRI */ +  ++    /* accel */ ++    Bool              RenderAccel; /* Render */ ++    Bool              allowColorTiling; ++    Bool              tilingEnabled; /* mirror of sarea->tiling_enabled */ ++    struct radeon_accel_state *accel_state; ++    Bool              accelOn; ++    Bool              useEXA; ++#ifdef USE_EXA ++    XF86ModReqInfo    exaReq; ++#endif ++#ifdef USE_XAA ++    XF86ModReqInfo    xaaReq; ++#endif ++ + 				/* XVideo */ +     XF86VideoAdaptorPtr adaptor; +     void              (*VideoTimerCallback)(ScrnInfoPtr, Time); +@@ -693,31 +778,10 @@ typedef struct { +     int overlay_scaler_buffer_width; +     int ecp_div; +  +-    /* Render */ +-    Bool              RenderAccel; +-    unsigned short    texW[2]; +-    unsigned short    texH[2]; +-#ifdef USE_XAA +-    FBLinearPtr       RenderTex; +-    void              (*RenderCallback)(ScrnInfoPtr); +-    Time              RenderTimeout; +-#endif +- +     /* general */ +     Bool              showCache; +     OptionInfoPtr     Options; +  +-    Bool              useEXA; +-#ifdef USE_EXA +-    XF86ModReqInfo    exaReq; +-#endif +-#ifdef USE_XAA +-    XF86ModReqInfo    xaaReq; +-#endif +- +-    /* X itself has the 3D context */ +-    Bool              XInited3D; +- +     DisplayModePtr currentMode, savedCurrentMode; +  +     /* special handlings for DELL triple-head server */ +@@ -772,22 +836,19 @@ typedef struct { +     Bool              r600_shadow_fb; +     void *fb_shadow; +  +-    int num_gb_pipes; +-    Bool has_tcl; + } RADEONInfoRec, *RADEONInfoPtr; +  + #define RADEONWaitForFifo(pScrn, entries)				\ + do {									\ +-    if (info->fifo_slots < entries)					\ ++    if (info->accel_state->fifo_slots < entries)			\ + 	RADEONWaitForFifoFunction(pScrn, entries);			\ +-    info->fifo_slots -= entries;					\ ++    info->accel_state->fifo_slots -= entries;				\ + } while (0) +  + /* legacy_crtc.c */ + extern void legacy_crtc_dpms(xf86CrtcPtr crtc, int mode); + extern void legacy_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode, + 				 DisplayModePtr adjusted_mode, int x, int y); +-extern void RADEONInitDispBandwidth(ScrnInfoPtr pScrn); + extern void RADEONRestoreCommonRegisters(ScrnInfoPtr pScrn, + 					 RADEONSavePtr restore); + extern void RADEONRestoreCrtcRegisters(ScrnInfoPtr pScrn, +@@ -872,6 +933,7 @@ extern Bool RADEONGetTMDSInfoFromBIOS(xf86OutputPtr output); + extern Bool RADEONGetTVInfoFromBIOS(xf86OutputPtr output); + extern Bool RADEONInitExtTMDSInfoFromBIOS (xf86OutputPtr output); + extern Bool RADEONPostCardFromBIOSTables(ScrnInfoPtr pScrn); ++extern Bool radeon_card_posted(ScrnInfoPtr pScrn); +  + /* radeon_commonfuncs.c */ + #ifdef XF86DRI +@@ -894,6 +956,7 @@ extern DisplayModePtr RADEONCrtcFindClosestMode(xf86CrtcPtr crtc, + 						DisplayModePtr pMode); + extern void RADEONUnblank(ScrnInfoPtr pScrn); + extern Bool RADEONSetTiling(ScrnInfoPtr pScrn); ++extern void RADEONInitDispBandwidth(ScrnInfoPtr pScrn); +  + /* radeon_cursor.c */ + extern Bool RADEONCursorInit(ScreenPtr pScreen); +@@ -983,6 +1046,8 @@ extern void RADEONPrintPortMap(ScrnInfoPtr pScrn); + extern void RADEONSetOutputType(ScrnInfoPtr pScrn, + 				RADEONOutputPrivatePtr radeon_output); + extern Bool RADEONSetupConnectors(ScrnInfoPtr pScrn); ++extern Bool RADEONI2CDoLock(xf86OutputPtr output, Bool lock_state); ++ +  + /* radeon_tv.c */ + extern void RADEONSaveTVRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save); +@@ -1003,6 +1068,16 @@ extern void RADEONUpdateHVPosition(xf86OutputPtr output, DisplayModePtr mode); + extern void RADEONInitVideo(ScreenPtr pScreen); + extern void RADEONResetVideo(ScrnInfoPtr pScrn); +  ++/* radeon_legacy_memory.c */ ++extern uint32_t ++radeon_legacy_allocate_memory(ScrnInfoPtr pScrn, ++			      void **mem_struct, ++			      int size, ++			      int align); ++extern void ++radeon_legacy_free_memory(ScrnInfoPtr pScrn, ++		          void *mem_struct); ++ + #ifdef XF86DRI + #  ifdef USE_XAA + /* radeon_accelfuncs.c */ +@@ -1011,72 +1086,58 @@ extern void RADEONAccelInitCP(ScreenPtr pScreen, XAAInfoRecPtr a); +  + #define RADEONCP_START(pScrn, info)					\ + do {									\ +-    int _ret = drmCommandNone(info->drmFD, DRM_RADEON_CP_START);	\ ++    int _ret = drmCommandNone(info->dri->drmFD, DRM_RADEON_CP_START);	\ +     if (_ret) {								\ + 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,				\ + 		   "%s: CP start %d\n", __FUNCTION__, _ret);		\ +     }									\ +-    info->CPStarted = TRUE;                                             \ ++    info->cp->CPStarted = TRUE;                                         \ + } while (0) +  + #define RADEONCP_RELEASE(pScrn, info)					\ + do {									\ +-    if (info->CPInUse) {						\ ++    if (info->cp->CPInUse) {						\ + 	RADEON_PURGE_CACHE();						\ + 	RADEON_WAIT_UNTIL_IDLE();					\ + 	RADEONCPReleaseIndirect(pScrn);					\ +-	info->CPInUse = FALSE;						\ ++	info->cp->CPInUse = FALSE;				        \ +     }									\ + } while (0) +  + #define RADEONCP_STOP(pScrn, info)					\ + do {									\ +     int _ret;								\ +-     if (info->CPStarted) {						\ ++     if (info->cp->CPStarted) {						\ +         _ret = RADEONCPStop(pScrn, info);				\ +         if (_ret) {							\ + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,			\ + 		   "%s: CP stop %d\n", __FUNCTION__, _ret);		\ +         }								\ +-        info->CPStarted = FALSE;                                        \ ++        info->cp->CPStarted = FALSE;                                    \ +    }									\ +     RADEONEngineRestore(pScrn);						\ +-    info->CPRuns = FALSE;						\ ++    info->cp->CPRuns = FALSE;						\ + } while (0) +  + #define RADEONCP_RESET(pScrn, info)					\ + do {									\ +-    if (RADEONCP_USE_RING_BUFFER(info->CPMode)) {			\ +-	int _ret = drmCommandNone(info->drmFD, DRM_RADEON_CP_RESET);	\ ++	int _ret = drmCommandNone(info->dri->drmFD, DRM_RADEON_CP_RESET);	\ + 	if (_ret) {							\ + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,			\ + 		       "%s: CP reset %d\n", __FUNCTION__, _ret);	\ + 	}								\ +-    }									\ + } while (0) +  + #define RADEONCP_REFRESH(pScrn, info)					\ + do {									\ +-    if (!info->CPInUse) {						\ +-	if (info->needCacheFlush) {					\ ++    if (!info->cp->CPInUse) {						\ ++	if (info->cp->needCacheFlush) {					\ + 	    RADEON_PURGE_CACHE();					\ + 	    RADEON_PURGE_ZCACHE();					\ +-	    info->needCacheFlush = FALSE;				\ ++	    info->cp->needCacheFlush = FALSE;				\ + 	}								\ + 	RADEON_WAIT_UNTIL_IDLE();					\ +-        if (info->ChipFamily <= CHIP_FAMILY_RV280) {                    \ +-	    BEGIN_RING(6);						\ +-	    OUT_RING_REG(RADEON_RE_TOP_LEFT,     info->re_top_left);	\ +-	    OUT_RING_REG(RADEON_RE_WIDTH_HEIGHT, info->re_width_height); \ +-	    OUT_RING_REG(RADEON_AUX_SC_CNTL,     info->aux_sc_cntl);	\ +-	    ADVANCE_RING();						\ +-        } else {                                                        \ +-            BEGIN_RING(4);                                              \ +-            OUT_RING_REG(R300_SC_SCISSOR0, info->re_top_left);          \ +-	    OUT_RING_REG(R300_SC_SCISSOR1, info->re_width_height);      \ +-            ADVANCE_RING();                                             \ +-	}                                                               \ +-	info->CPInUse = TRUE;						\ ++	info->cp->CPInUse = TRUE;					\ +     }									\ + } while (0) +  +@@ -1100,33 +1161,33 @@ do {									\ + 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,				\ + 		   "BEGIN_RING(%d) in %s\n", (unsigned int)n, __FUNCTION__);\ +     }									\ +-    if (++info->dma_begin_count != 1) {					\ ++    if (++info->cp->dma_begin_count != 1) {				\ + 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,				\ + 		   "BEGIN_RING without end at %s:%d\n",			\ +-		   info->dma_debug_func, info->dma_debug_lineno);	\ +-	info->dma_begin_count = 1;					\ ++		   info->cp->dma_debug_func, info->cp->dma_debug_lineno);	\ ++	info->cp->dma_begin_count = 1;					\ +     }									\ +-    info->dma_debug_func = __FILE__;					\ +-    info->dma_debug_lineno = __LINE__;					\ +-    if (!info->indirectBuffer) {					\ +-	info->indirectBuffer = RADEONCPGetBuffer(pScrn);		\ +-	info->indirectStart = 0;					\ +-    } else if (info->indirectBuffer->used + (n) * (int)sizeof(uint32_t) >	\ +-	       info->indirectBuffer->total) {				\ ++    info->cp->dma_debug_func = __FILE__;				\ ++    info->cp->dma_debug_lineno = __LINE__;				\ ++    if (!info->cp->indirectBuffer) {					\ ++	info->cp->indirectBuffer = RADEONCPGetBuffer(pScrn);		\ ++	info->cp->indirectStart = 0;					\ ++    } else if (info->cp->indirectBuffer->used + (n) * (int)sizeof(uint32_t) >	\ ++	       info->cp->indirectBuffer->total) {		        \ + 	RADEONCPFlushIndirect(pScrn, 1);				\ +     }									\ +     __expected = n;							\ +-    __head = (pointer)((char *)info->indirectBuffer->address +		\ +-		       info->indirectBuffer->used);			\ ++    __head = (pointer)((char *)info->cp->indirectBuffer->address +	\ ++		       info->cp->indirectBuffer->used);			\ +     __count = 0;							\ + } while (0) +  + #define ADVANCE_RING() do {						\ +-    if (info->dma_begin_count-- != 1) {					\ ++    if (info->cp->dma_begin_count-- != 1) {				\ + 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,				\ + 		   "ADVANCE_RING without begin at %s:%d\n",		\ + 		   __FILE__, __LINE__);					\ +-	info->dma_begin_count = 0;					\ ++	info->cp->dma_begin_count = 0;					\ +     }									\ +     if (__count != __expected) {					\ + 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,				\ +@@ -1136,11 +1197,11 @@ do {									\ +     if (RADEON_VERBOSE) {						\ + 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,				\ + 		   "ADVANCE_RING() start: %d used: %d count: %d\n",	\ +-		   info->indirectStart,					\ +-		   info->indirectBuffer->used,				\ ++		   info->cp->indirectStart,				\ ++		   info->cp->indirectBuffer->used,			\ + 		   __count * (int)sizeof(uint32_t));			\ +     }									\ +-    info->indirectBuffer->used += __count * (int)sizeof(uint32_t);	\ ++    info->cp->indirectBuffer->used += __count * (int)sizeof(uint32_t);	\ + } while (0) +  + #define OUT_RING(x) do {						\ +@@ -1162,7 +1223,7 @@ do {									\ +     if (RADEON_VERBOSE)							\ + 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,				\ + 		   "FLUSH_RING in %s\n", __FUNCTION__);			\ +-    if (info->indirectBuffer) {						\ ++    if (info->cp->indirectBuffer) {					\ + 	RADEONCPFlushIndirect(pScrn, 0);				\ +     }									\ + } while (0) +@@ -1236,19 +1297,19 @@ static __inline__ void RADEON_MARK_SYNC(RADEONInfoPtr info, ScrnInfoPtr pScrn) + #endif + #ifdef USE_XAA +     if (!info->useEXA) +-	SET_SYNC_FLAG(info->accel); ++	SET_SYNC_FLAG(info->accel_state->accel); + #endif + } +  + static __inline__ void RADEON_SYNC(RADEONInfoPtr info, ScrnInfoPtr pScrn) + { + #ifdef USE_EXA +-    if (info->useEXA) ++    if (info->useEXA && pScrn->pScreen) + 	exaWaitSync(pScrn->pScreen); + #endif + #ifdef USE_XAA +-    if (!info->useEXA && info->accel) +-	info->accel->Sync(pScrn); ++    if (!info->useEXA && info->accel_state->accel) ++	info->accel_state->accel->Sync(pScrn); + #endif + } +  +diff --git a/src/radeon_accel.c b/src/radeon_accel.c +index 65ad33d..a6e332d 100644 +--- a/src/radeon_accel.c ++++ b/src/radeon_accel.c +@@ -83,9 +83,7 @@ + #include "radeon_version.h" + #ifdef XF86DRI + #define _XF86DRI_SERVER_ +-#include "radeon_dri.h" +-#include "radeon_common.h" +-#include "radeon_sarea.h" ++#include "radeon_drm.h" + #endif +  + 				/* Line support */ +@@ -130,9 +128,9 @@ void RADEONWaitForFifoFunction(ScrnInfoPtr pScrn, int entries) +  +     for (;;) { + 	for (i = 0; i < RADEON_TIMEOUT; i++) { +-	    info->fifo_slots = ++	    info->accel_state->fifo_slots = + 		INREG(RADEON_RBBM_STATUS) & RADEON_RBBM_FIFOCNT_MASK; +-	    if (info->fifo_slots >= entries) return; ++	    if (info->accel_state->fifo_slots >= entries) return; + 	} + 	xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, + 		       "FIFO timed out: %u entries, stat=0x%08x\n", +@@ -324,8 +322,8 @@ void RADEONEngineRestore(ScrnInfoPtr pScrn) +      * in the wrong place (happened). +      */ +     RADEONWaitForFifo(pScrn, 2); +-    OUTREG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset); +-    OUTREG(RADEON_SRC_PITCH_OFFSET, info->dst_pitch_offset); ++    OUTREG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset); ++    OUTREG(RADEON_SRC_PITCH_OFFSET, info->accel_state->dst_pitch_offset); +  +     RADEONWaitForFifo(pScrn, 1); + #if X_BYTE_ORDER == X_BIG_ENDIAN +@@ -343,7 +341,7 @@ void RADEONEngineRestore(ScrnInfoPtr pScrn) +     OUTREG(RADEON_DEFAULT_SC_BOTTOM_RIGHT, (RADEON_DEFAULT_SC_RIGHT_MAX + 					    | RADEON_DEFAULT_SC_BOTTOM_MAX)); +     RADEONWaitForFifo(pScrn, 1); +-    OUTREG(RADEON_DP_GUI_MASTER_CNTL, (info->dp_gui_master_cntl ++    OUTREG(RADEON_DP_GUI_MASTER_CNTL, (info->accel_state->dp_gui_master_cntl + 				       | RADEON_GMC_BRUSH_SOLID_COLOR + 				       | RADEON_GMC_SRC_DATATYPE_COLOR)); +  +@@ -356,7 +354,7 @@ void RADEONEngineRestore(ScrnInfoPtr pScrn) +  +     RADEONWaitForIdleMMIO(pScrn); +  +-    info->XInited3D = FALSE; ++    info->accel_state->XInited3D = FALSE; + } +  + /* Initialize the acceleration hardware */ +@@ -364,6 +362,7 @@ void RADEONEngineInit(ScrnInfoPtr pScrn) + { +     RADEONInfoPtr  info       = RADEONPTR(pScrn); +     unsigned char *RADEONMMIO = info->MMIO; ++    int datatype = 0; +  +     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, + 		   "EngineInit (%d/%d)\n", +@@ -372,21 +371,21 @@ void RADEONEngineInit(ScrnInfoPtr pScrn) +  + #ifdef XF86DRI +     if (info->directRenderingEnabled && (IS_R300_3D || IS_R500_3D)) { +-	drmRadeonGetParam np; ++	drm_radeon_getparam_t np; + 	int num_pipes; +  + 	memset(&np, 0, sizeof(np)); + 	np.param = RADEON_PARAM_NUM_GB_PIPES; + 	np.value = &num_pipes; +  +-	if (drmCommandWriteRead(info->drmFD, DRM_RADEON_GETPARAM, &np, ++	if (drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_GETPARAM, &np, + 				sizeof(np)) < 0) { + 	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + 		       "Failed to determine num pipes from DRM, falling back to " + 		       "manual look-up!\n"); +-	    info->num_gb_pipes = 0; ++	    info->accel_state->num_gb_pipes = 0; + 	} else { +-	    info->num_gb_pipes = num_pipes; ++	    info->accel_state->num_gb_pipes = num_pipes; + 	} +     } + #endif +@@ -399,34 +398,34 @@ void RADEONEngineInit(ScrnInfoPtr pScrn) + 	(info->ChipFamily == CHIP_FAMILY_RS400) || + 	(info->ChipFamily == CHIP_FAMILY_RS480) || + 	IS_R500_3D) { +-	if (info->num_gb_pipes == 0) { ++	if (info->accel_state->num_gb_pipes == 0) { + 	    uint32_t gb_pipe_sel = INREG(R400_GB_PIPE_SELECT); +  +-	    info->num_gb_pipes = ((gb_pipe_sel >> 12) & 0x3) + 1; ++	    info->accel_state->num_gb_pipes = ((gb_pipe_sel >> 12) & 0x3) + 1; + 	    if (IS_R500_3D) + 		OUTPLL(pScrn, R500_DYN_SCLK_PWMEM_PIPE, (1 | ((gb_pipe_sel >> 8) & 0xf) << 4)); + 	} +     } else { +-	if (info->num_gb_pipes == 0) { ++	if (info->accel_state->num_gb_pipes == 0) { + 	    if ((info->ChipFamily == CHIP_FAMILY_R300) || + 		(info->ChipFamily == CHIP_FAMILY_R350)) { + 		/* R3xx chips */ +-		info->num_gb_pipes = 2; ++		info->accel_state->num_gb_pipes = 2; + 	    } else { + 		/* RV3xx chips */ +-		info->num_gb_pipes = 1; ++		info->accel_state->num_gb_pipes = 1; + 	    } + 	} +     } +  +     if (IS_R300_3D || IS_R500_3D) + 	xf86DrvMsg(pScrn->scrnIndex, X_INFO, +-		   "num pipes is %d\n", info->num_gb_pipes); ++		   "num quad-pipes is %d\n", info->accel_state->num_gb_pipes); +  +     if (IS_R300_3D || IS_R500_3D) { + 	uint32_t gb_tile_config = (R300_ENABLE_TILING | R300_TILE_SIZE_16 | R300_SUBPIXEL_1_16); +  +-	switch(info->num_gb_pipes) { ++	switch(info->accel_state->num_gb_pipes) { + 	case 2: gb_tile_config |= R300_PIPE_COUNT_R300; break; + 	case 3: gb_tile_config |= R300_PIPE_COUNT_R420_3P; break; + 	case 4: gb_tile_config |= R300_PIPE_COUNT_R420; break; +@@ -446,11 +445,11 @@ void RADEONEngineInit(ScrnInfoPtr pScrn) +     RADEONEngineReset(pScrn); +  +     switch (info->CurrentLayout.pixel_code) { +-    case 8:  info->datatype = 2; break; +-    case 15: info->datatype = 3; break; +-    case 16: info->datatype = 4; break; +-    case 24: info->datatype = 5; break; +-    case 32: info->datatype = 6; break; ++    case 8:  datatype = 2; break; ++    case 15: datatype = 3; break; ++    case 16: datatype = 4; break; ++    case 24: datatype = 5; break; ++    case 32: datatype = 6; break; +     default: + 	xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, + 		       "Unknown depth/bpp = %d/%d (code = %d)\n", +@@ -458,34 +457,12 @@ void RADEONEngineInit(ScrnInfoPtr pScrn) + 		       info->CurrentLayout.bitsPerPixel, + 		       info->CurrentLayout.pixel_code); +     } +-    info->pitch = ((info->CurrentLayout.displayWidth / 8) * +-		   (info->CurrentLayout.pixel_bytes == 3 ? 3 : 1)); +  +-    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, +-		   "Pitch for acceleration = %d\n", info->pitch); +- +-    info->dp_gui_master_cntl = +-	((info->datatype << RADEON_GMC_DST_DATATYPE_SHIFT) ++    info->accel_state->dp_gui_master_cntl = ++	((datatype << RADEON_GMC_DST_DATATYPE_SHIFT) + 	 | RADEON_GMC_CLR_CMP_CNTL_DIS + 	 | RADEON_GMC_DST_PITCH_OFFSET_CNTL); +  +-#ifdef XF86DRI +-    info->sc_left         = 0x00000000; +-    info->sc_right        = RADEON_DEFAULT_SC_RIGHT_MAX; +-    info->sc_top          = 0x00000000; +-    info->sc_bottom       = RADEON_DEFAULT_SC_BOTTOM_MAX; +- +-    info->re_top_left     = 0x00000000; +-    if (info->ChipFamily <= CHIP_FAMILY_RV280) +-	info->re_width_height = ((0x7ff << RADEON_RE_WIDTH_SHIFT) | +-				 (0x7ff << RADEON_RE_HEIGHT_SHIFT)); +-    else +-	info->re_width_height = ((8191 << R300_SCISSOR_X_SHIFT) | +-				 (8191 << R300_SCISSOR_Y_SHIFT)); +- +-    info->aux_sc_cntl     = 0x00000000; +-#endif +- +     RADEONEngineRestore(pScrn); + } +  +@@ -534,14 +511,14 @@ void RADEONEngineInit(ScrnInfoPtr pScrn) + /* Stop the CP */ + int RADEONCPStop(ScrnInfoPtr pScrn, RADEONInfoPtr info) + { +-    drmRadeonCPStop  stop; ++    drm_radeon_cp_stop_t  stop; +     int              ret, i; +  +     stop.flush = 1; +     stop.idle  = 1; +  +-    ret = drmCommandWrite(info->drmFD, DRM_RADEON_CP_STOP, &stop, +-			  sizeof(drmRadeonCPStop)); ++    ret = drmCommandWrite(info->dri->drmFD, DRM_RADEON_CP_STOP, &stop, ++			  sizeof(drm_radeon_cp_stop_t)); +  +     if (ret == 0) { + 	return 0; +@@ -553,8 +530,8 @@ int RADEONCPStop(ScrnInfoPtr pScrn, RADEONInfoPtr info) +  +     i = 0; +     do { +-	ret = drmCommandWrite(info->drmFD, DRM_RADEON_CP_STOP, &stop, +-			      sizeof(drmRadeonCPStop)); ++	ret = drmCommandWrite(info->dri->drmFD, DRM_RADEON_CP_STOP, &stop, ++			      sizeof(drm_radeon_cp_stop_t)); +     } while (ret && errno == EBUSY && i++ < RADEON_IDLE_RETRY); +  +     if (ret == 0) { +@@ -565,8 +542,8 @@ int RADEONCPStop(ScrnInfoPtr pScrn, RADEONInfoPtr info) +  +     stop.idle = 0; +  +-    if (drmCommandWrite(info->drmFD, DRM_RADEON_CP_STOP, +-			&stop, sizeof(drmRadeonCPStop))) { ++    if (drmCommandWrite(info->dri->drmFD, DRM_RADEON_CP_STOP, ++			&stop, sizeof(drm_radeon_cp_stop_t))) { + 	return -errno; +     } else { + 	return 0; +@@ -608,7 +585,7 @@ drmBufPtr RADEONCPGetBuffer(ScrnInfoPtr pScrn) +  +     while (1) { + 	do { +-	    ret = drmDMA(info->drmFD, &dma); ++	    ret = drmDMA(info->dri->drmFD, &dma); + 	    if (ret && ret != -EBUSY) { + 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 			   "%s: CP GetBuffer %d\n", __FUNCTION__, ret); +@@ -616,7 +593,7 @@ drmBufPtr RADEONCPGetBuffer(ScrnInfoPtr pScrn) + 	} while ((ret == -EBUSY) && (i++ < RADEON_TIMEOUT)); +  + 	if (ret == 0) { +-	    buf = &info->buffers->list[indx]; ++	    buf = &info->dri->buffers->list[indx]; + 	    buf->used = 0; + 	    if (RADEON_VERBOSE) { + 		xf86DrvMsg(pScrn->scrnIndex, X_INFO, +@@ -641,9 +618,9 @@ drmBufPtr RADEONCPGetBuffer(ScrnInfoPtr pScrn) + void RADEONCPFlushIndirect(ScrnInfoPtr pScrn, int discard) + { +     RADEONInfoPtr      info   = RADEONPTR(pScrn); +-    drmBufPtr          buffer = info->indirectBuffer; +-    int                start  = info->indirectStart; +-    drmRadeonIndirect  indirect; ++    drmBufPtr          buffer = info->cp->indirectBuffer; ++    int                start  = info->cp->indirectStart; ++    drm_radeon_indirect_t  indirect; +  +     if (!buffer) return; +     if (start == buffer->used && !discard) return; +@@ -658,18 +635,18 @@ void RADEONCPFlushIndirect(ScrnInfoPtr pScrn, int discard) +     indirect.end     = buffer->used; +     indirect.discard = discard; +  +-    drmCommandWriteRead(info->drmFD, DRM_RADEON_INDIRECT, +-			&indirect, sizeof(drmRadeonIndirect)); ++    drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_INDIRECT, ++			&indirect, sizeof(drm_radeon_indirect_t)); +  +     if (discard) { +-	info->indirectBuffer = RADEONCPGetBuffer(pScrn); +-	info->indirectStart  = 0; ++	info->cp->indirectBuffer = RADEONCPGetBuffer(pScrn); ++	info->cp->indirectStart  = 0; +     } else { + 	/* Start on a double word boundary */ +-	info->indirectStart  = buffer->used = (buffer->used + 7) & ~7; ++	info->cp->indirectStart  = buffer->used = (buffer->used + 7) & ~7; + 	if (RADEON_VERBOSE) { + 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "   Starting at %d\n", +-		       info->indirectStart); ++		       info->cp->indirectStart); + 	} +     } + } +@@ -678,12 +655,12 @@ void RADEONCPFlushIndirect(ScrnInfoPtr pScrn, int discard) + void RADEONCPReleaseIndirect(ScrnInfoPtr pScrn) + { +     RADEONInfoPtr      info   = RADEONPTR(pScrn); +-    drmBufPtr          buffer = info->indirectBuffer; +-    int                start  = info->indirectStart; +-    drmRadeonIndirect  indirect; ++    drmBufPtr          buffer = info->cp->indirectBuffer; ++    int                start  = info->cp->indirectStart; ++    drm_radeon_indirect_t  indirect; +  +-    info->indirectBuffer = NULL; +-    info->indirectStart  = 0; ++    info->cp->indirectBuffer = NULL; ++    info->cp->indirectStart  = 0; +  +     if (!buffer) return; +  +@@ -697,8 +674,8 @@ void RADEONCPReleaseIndirect(ScrnInfoPtr pScrn) +     indirect.end     = buffer->used; +     indirect.discard = 1; +  +-    drmCommandWriteRead(info->drmFD, DRM_RADEON_INDIRECT, +-			&indirect, sizeof(drmRadeonIndirect)); ++    drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_INDIRECT, ++			&indirect, sizeof(drm_radeon_indirect_t)); + } +  + /** \brief Calculate HostDataBlit parameters from pointer and pitch +@@ -964,7 +941,7 @@ Bool RADEONAccelInit(ScreenPtr pScreen) +     if (!info->useEXA) { + 	XAAInfoRecPtr  a; +  +-	if (!(a = info->accel = XAACreateInfoRec())) { ++	if (!(a = info->accel_state->accel = XAACreateInfoRec())) { + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "XAACreateInfoRec Error\n"); + 	    return FALSE; + 	} +@@ -993,16 +970,16 @@ void RADEONInit3DEngine(ScrnInfoPtr pScrn) +  + #ifdef XF86DRI +     if (info->directRenderingEnabled) { +-	RADEONSAREAPrivPtr pSAREAPriv; ++	drm_radeon_sarea_t *pSAREAPriv; +  + 	pSAREAPriv = DRIGetSAREAPrivate(pScrn->pScreen); +-	pSAREAPriv->ctxOwner = DRIGetContext(pScrn->pScreen); ++	pSAREAPriv->ctx_owner = DRIGetContext(pScrn->pScreen); + 	RADEONInit3DEngineCP(pScrn); +     } else + #endif + 	RADEONInit3DEngineMMIO(pScrn); +  +-    info->XInited3D = TRUE; ++    info->accel_state->XInited3D = TRUE; + } +  + #ifdef USE_XAA +@@ -1013,7 +990,7 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen) +     ScrnInfoPtr    pScrn = xf86Screens[pScreen->myNum]; +     RADEONInfoPtr  info  = RADEONPTR(pScrn); +     int            cpp = info->CurrentLayout.pixel_bytes; +-    int            depthCpp = (info->depthBits - 8) / 4; ++    int            depthCpp = (info->dri->depthBits - 8) / 4; +     int            width_bytes = pScrn->displayWidth * cpp; +     int            bufferSize; +     int            depthSize; +@@ -1023,9 +1000,9 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen) +     BoxRec         MemBox; +     FBAreaPtr      fbarea; +  +-    info->frontOffset = 0; +-    info->frontPitch = pScrn->displayWidth; +-    info->backPitch = pScrn->displayWidth; ++    info->dri->frontOffset = 0; ++    info->dri->frontPitch = pScrn->displayWidth; ++    info->dri->backPitch = pScrn->displayWidth; +  +     /* make sure we use 16 line alignment for tiling (8 might be enough). +      * Might need that for non-XF86DRI too? +@@ -1042,30 +1019,18 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen) +      * which is always the case if color tiling is used due to color pitch +      * but not necessarily otherwise, and its height a multiple of 16 lines. +      */ +-    info->depthPitch = (pScrn->displayWidth + 31) & ~31; +-    depthSize = ((((pScrn->virtualY + 15) & ~15) * info->depthPitch ++    info->dri->depthPitch = (pScrn->displayWidth + 31) & ~31; ++    depthSize = ((((pScrn->virtualY + 15) & ~15) * info->dri->depthPitch + 		  * depthCpp + RADEON_BUFFER_ALIGN) & ~RADEON_BUFFER_ALIGN); +  +-    switch (info->CPMode) { +-    case RADEON_DEFAULT_CP_PIO_MODE: +-	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CP in PIO mode\n"); +-	break; +-    case RADEON_DEFAULT_CP_BM_MODE: +-	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CP in BM mode\n"); +-	break; +-    default: +-        xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CP in UNKNOWN mode\n"); +-	break; +-    } +- +     xf86DrvMsg(pScrn->scrnIndex, X_INFO, +-	       "Using %d MB GART aperture\n", info->gartSize); ++	       "Using %d MB GART aperture\n", info->dri->gartSize); +     xf86DrvMsg(pScrn->scrnIndex, X_INFO, +-	       "Using %d MB for the ring buffer\n", info->ringSize); ++	       "Using %d MB for the ring buffer\n", info->dri->ringSize); +     xf86DrvMsg(pScrn->scrnIndex, X_INFO, +-	       "Using %d MB for vertex/indirect buffers\n", info->bufSize); ++	       "Using %d MB for vertex/indirect buffers\n", info->dri->bufSize); +     xf86DrvMsg(pScrn->scrnIndex, X_INFO, +-	       "Using %d MB for GART textures\n", info->gartTexSize); ++	       "Using %d MB for GART textures\n", info->dri->gartTexSize); +  +     /* Try for front, back, depth, and three framebuffers worth of +      * pixmap cache.  Should be enough for a fullscreen background +@@ -1075,35 +1040,35 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen) +      * otherwise probably), and never reserve more than 3 offscreen buffers as it's +      * probably useless for XAA. +      */ +-    if (info->textureSize >= 0) { ++    if (info->dri->textureSize >= 0) { + 	texsizerequest = ((int)info->FbMapSize - 2 * bufferSize - depthSize + 			 - 2 * width_bytes - 16384 - info->FbSecureSize) + 	/* first divide, then multiply or we'll get an overflow (been there...) */ +-			 / 100 * info->textureSize; ++			 / 100 * info->dri->textureSize; +     } +     else { + 	texsizerequest = (int)info->FbMapSize / 2; +     } +-    info->textureSize = info->FbMapSize - info->FbSecureSize - 5 * bufferSize - depthSize; ++    info->dri->textureSize = info->FbMapSize - info->FbSecureSize - 5 * bufferSize - depthSize; +  +     /* If that gives us less than the requested memory, let's +      * be greedy and grab some more.  Sorry, I care more about 3D +      * performance than playing nicely, and you'll get around a full +      * framebuffer's worth of pixmap cache anyway. +      */ +-    if (info->textureSize < texsizerequest) { +-        info->textureSize = info->FbMapSize - 4 * bufferSize - depthSize; ++    if (info->dri->textureSize < texsizerequest) { ++        info->dri->textureSize = info->FbMapSize - 4 * bufferSize - depthSize; +     } +-    if (info->textureSize < texsizerequest) { +-        info->textureSize = info->FbMapSize - 3 * bufferSize - depthSize; ++    if (info->dri->textureSize < texsizerequest) { ++        info->dri->textureSize = info->FbMapSize - 3 * bufferSize - depthSize; +     } +  +     /* If there's still no space for textures, try without pixmap cache, but +      * never use the reserved space, the space hw cursor and PCIGART table might +      * use. +      */ +-    if (info->textureSize < 0) { +-	info->textureSize = info->FbMapSize - 2 * bufferSize - depthSize ++    if (info->dri->textureSize < 0) { ++	info->dri->textureSize = info->FbMapSize - 2 * bufferSize - depthSize + 	                    - 2 * width_bytes - 16384 - info->FbSecureSize; +     } +  +@@ -1112,14 +1077,14 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen) +      */ +     /* FIXME: what's this good for? condition is pretty much impossible to meet */ +     if ((int)info->FbMapSize - 8192*width_bytes - bufferSize - depthSize +-	> info->textureSize) { +-	info->textureSize = ++	> info->dri->textureSize) { ++	info->dri->textureSize = + 		info->FbMapSize - 8192*width_bytes - bufferSize - depthSize; +     } +  +     /* If backbuffer is disabled, don't allocate memory for it */ +-    if (info->noBackBuffer) { +-	info->textureSize += bufferSize; ++    if (info->dri->noBackBuffer) { ++	info->dri->textureSize += bufferSize; +     } +  +     /* RADEON_BUFFER_ALIGN is not sufficient for backbuffer! +@@ -1131,61 +1096,61 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen) +        can't be used (?) due to that log_tex_granularity thing??? +        Could use different copyscreentoscreen function for the pageflip copies +        (which would use different src and dst offsets) to avoid this. */    +-    if (info->allowColorTiling && !info->noBackBuffer) { +-	info->textureSize = info->FbMapSize - ((info->FbMapSize - info->textureSize + ++    if (info->allowColorTiling && !info->dri->noBackBuffer) { ++	info->dri->textureSize = info->FbMapSize - ((info->FbMapSize - info->dri->textureSize + + 			  width_bytes * 16 - 1) / (width_bytes * 16)) * (width_bytes * 16); +     } +-    if (info->textureSize > 0) { +-	l = RADEONMinBits((info->textureSize-1) / RADEON_NR_TEX_REGIONS); ++    if (info->dri->textureSize > 0) { ++	l = RADEONMinBits((info->dri->textureSize-1) / RADEON_NR_TEX_REGIONS); + 	if (l < RADEON_LOG_TEX_GRANULARITY) + 	    l = RADEON_LOG_TEX_GRANULARITY; + 	/* Round the texture size up to the nearest whole number of + 	 * texture regions.  Again, be greedy about this, don't + 	 * round down. + 	 */ +-	info->log2TexGran = l; +-	info->textureSize = (info->textureSize >> l) << l; ++	info->dri->log2TexGran = l; ++	info->dri->textureSize = (info->dri->textureSize >> l) << l; +     } else { +-	info->textureSize = 0; ++	info->dri->textureSize = 0; +     } +  +     /* Set a minimum usable local texture heap size.  This will fit +      * two 256x256x32bpp textures. +      */ +-    if (info->textureSize < 512 * 1024) { +-	info->textureOffset = 0; +-	info->textureSize = 0; ++    if (info->dri->textureSize < 512 * 1024) { ++	info->dri->textureOffset = 0; ++	info->dri->textureSize = 0; +     } +  +-    if (info->allowColorTiling && !info->noBackBuffer) { +-	info->textureOffset = ((info->FbMapSize - info->textureSize) / +-			       (width_bytes * 16)) * (width_bytes * 16); ++    if (info->allowColorTiling && !info->dri->noBackBuffer) { ++	info->dri->textureOffset = ((info->FbMapSize - info->dri->textureSize) / ++				    (width_bytes * 16)) * (width_bytes * 16); +     } +     else { + 	/* Reserve space for textures */ +-	info->textureOffset = ((info->FbMapSize - info->textureSize + +-				RADEON_BUFFER_ALIGN) & +-			       ~(uint32_t)RADEON_BUFFER_ALIGN); ++	info->dri->textureOffset = ((info->FbMapSize - info->dri->textureSize + ++				     RADEON_BUFFER_ALIGN) & ++				    ~(uint32_t)RADEON_BUFFER_ALIGN); +     } +  +     /* Reserve space for the shared depth +      * buffer. +      */ +-    info->depthOffset = ((info->textureOffset - depthSize + +-			  RADEON_BUFFER_ALIGN) & +-			 ~(uint32_t)RADEON_BUFFER_ALIGN); ++    info->dri->depthOffset = ((info->dri->textureOffset - depthSize + ++			       RADEON_BUFFER_ALIGN) & ++			      ~(uint32_t)RADEON_BUFFER_ALIGN); +  +     /* Reserve space for the shared back buffer */ +-    if (info->noBackBuffer) { +-       info->backOffset = info->depthOffset; ++    if (info->dri->noBackBuffer) { ++       info->dri->backOffset = info->dri->depthOffset; +     } else { +-       info->backOffset = ((info->depthOffset - bufferSize + +-			    RADEON_BUFFER_ALIGN) & +-			   ~(uint32_t)RADEON_BUFFER_ALIGN); ++       info->dri->backOffset = ((info->dri->depthOffset - bufferSize + ++				 RADEON_BUFFER_ALIGN) & ++				~(uint32_t)RADEON_BUFFER_ALIGN); +     } +  +-    info->backY = info->backOffset / width_bytes; +-    info->backX = (info->backOffset - (info->backY * width_bytes)) / cpp; ++    info->dri->backY = info->dri->backOffset / width_bytes; ++    info->dri->backX = (info->dri->backOffset - (info->dri->backY * width_bytes)) / cpp; +  +     scanlines = (info->FbMapSize-info->FbSecureSize) / width_bytes; +     if (scanlines > 8191) +@@ -1236,12 +1201,12 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen) + 	    /* Lines in offscreen area needed for depth buffer and + 	     * textures + 	     */ +-	    info->depthTexLines = (scanlines +-				   - info->depthOffset / width_bytes); +-	    info->backLines	    = (scanlines +-				       - info->backOffset / width_bytes +-				       - info->depthTexLines); +-	    info->backArea	    = NULL; ++	    info->dri->depthTexLines = (scanlines ++					- info->dri->depthOffset / width_bytes); ++	    info->dri->backLines	    = (scanlines ++					       - info->dri->backOffset / width_bytes ++					       - info->dri->depthTexLines); ++	    info->dri->backArea	    = NULL; + 	} else { + 	    xf86DrvMsg(scrnIndex, X_ERROR, + 		       "Unable to determine largest offscreen area " +@@ -1252,30 +1217,30 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen) +  +     xf86DrvMsg(scrnIndex, X_INFO, + 	       "Will use front buffer at offset 0x%x\n", +-	       info->frontOffset); ++	       info->dri->frontOffset); +  +     xf86DrvMsg(scrnIndex, X_INFO, + 	       "Will use back buffer at offset 0x%x\n", +-	       info->backOffset); ++	       info->dri->backOffset); +     xf86DrvMsg(scrnIndex, X_INFO, + 	       "Will use depth buffer at offset 0x%x\n", +-	       info->depthOffset); ++	       info->dri->depthOffset); +     if (info->cardType==CARD_PCIE) +     	xf86DrvMsg(scrnIndex, X_INFO, + 	           "Will use %d kb for PCI GART table at offset 0x%x\n", +-		   info->pciGartSize/1024, (unsigned)info->pciGartOffset); ++		   info->dri->pciGartSize/1024, (unsigned)info->dri->pciGartOffset); +     xf86DrvMsg(scrnIndex, X_INFO, + 	       "Will use %d kb for textures at offset 0x%x\n", +-	       info->textureSize/1024, info->textureOffset); ++	       info->dri->textureSize/1024, info->dri->textureOffset); +  +-    info->frontPitchOffset = (((info->frontPitch * cpp / 64) << 22) | +-			      ((info->frontOffset + info->fbLocation) >> 10)); ++    info->dri->frontPitchOffset = (((info->dri->frontPitch * cpp / 64) << 22) | ++				   ((info->dri->frontOffset + info->fbLocation) >> 10)); +  +-    info->backPitchOffset = (((info->backPitch * cpp / 64) << 22) | +-			     ((info->backOffset + info->fbLocation) >> 10)); ++    info->dri->backPitchOffset = (((info->dri->backPitch * cpp / 64) << 22) | ++				  ((info->dri->backOffset + info->fbLocation) >> 10)); +  +-    info->depthPitchOffset = (((info->depthPitch * depthCpp / 64) << 22) | +-			      ((info->depthOffset + info->fbLocation) >> 10)); ++    info->dri->depthPitchOffset = (((info->dri->depthPitch * depthCpp / 64) << 22) | ++				   ((info->dri->depthOffset + info->fbLocation) >> 10)); +     return TRUE; + } + #endif /* XF86DRI */ +diff --git a/src/radeon_accelfuncs.c b/src/radeon_accelfuncs.c +index 56793cd..45eb6d5 100644 +--- a/src/radeon_accelfuncs.c ++++ b/src/radeon_accelfuncs.c +@@ -137,14 +137,14 @@ FUNC_NAME(RADEONSetupForSolidFill)(ScrnInfoPtr pScrn, +     ACCEL_PREAMBLE(); +  +     /* Save for later clipping */ +-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl +-				     | RADEON_GMC_BRUSH_SOLID_COLOR +-				     | RADEON_GMC_SRC_DATATYPE_COLOR +-				     | RADEON_ROP[rop].pattern); ++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl ++						  | RADEON_GMC_BRUSH_SOLID_COLOR ++						  | RADEON_GMC_SRC_DATATYPE_COLOR ++						  | RADEON_ROP[rop].pattern); +  +     BEGIN_ACCEL(4); +  +-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip); ++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip); +     OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  color); +     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask); +     OUT_ACCEL_REG(RADEON_DP_CNTL,            (RADEON_DST_X_LEFT_TO_RIGHT +@@ -172,7 +172,7 @@ FUNC_NAME(RADEONSubsequentSolidFillRect)(ScrnInfoPtr pScrn, +  +     BEGIN_ACCEL(3); +  +-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset | ++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset | +     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0)); +     OUT_ACCEL_REG(RADEON_DST_Y_X,          (y << 16) | x); +     OUT_ACCEL_REG(RADEON_DST_WIDTH_HEIGHT, (w << 16) | h); +@@ -191,10 +191,10 @@ FUNC_NAME(RADEONSetupForSolidLine)(ScrnInfoPtr pScrn, +     ACCEL_PREAMBLE(); +  +     /* Save for later clipping */ +-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl +-				     | RADEON_GMC_BRUSH_SOLID_COLOR +-				     | RADEON_GMC_SRC_DATATYPE_COLOR +-				     | RADEON_ROP[rop].pattern); ++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl ++						  | RADEON_GMC_BRUSH_SOLID_COLOR ++						  | RADEON_GMC_SRC_DATATYPE_COLOR ++						  | RADEON_ROP[rop].pattern); +  +     if (info->ChipFamily >= CHIP_FAMILY_RV200) { + 	BEGIN_ACCEL(1); +@@ -205,7 +205,7 @@ FUNC_NAME(RADEONSetupForSolidLine)(ScrnInfoPtr pScrn, +  +     BEGIN_ACCEL(3); +  +-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip); ++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip); +     OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  color); +     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask); +  +@@ -236,7 +236,7 @@ FUNC_NAME(RADEONSubsequentSolidHorVertLine)(ScrnInfoPtr pScrn, +  +     OUT_ACCEL_REG(RADEON_DP_CNTL,          (RADEON_DST_X_LEFT_TO_RIGHT + 					    | RADEON_DST_Y_TOP_TO_BOTTOM)); +-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset | ++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset | +     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0)); +     OUT_ACCEL_REG(RADEON_DST_Y_X,          (y << 16) | x); +     OUT_ACCEL_REG(RADEON_DST_WIDTH_HEIGHT, (w << 16) | h); +@@ -269,7 +269,7 @@ FUNC_NAME(RADEONSubsequentSolidTwoPointLine)(ScrnInfoPtr pScrn, +  +     BEGIN_ACCEL(3); +  +-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset | ++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset | +     	((info->tilingEnabled && (ya <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0)); +     OUT_ACCEL_REG(RADEON_DST_LINE_START, (ya << 16) | xa); +     OUT_ACCEL_REG(RADEON_DST_LINE_END,   (yb << 16) | xb); +@@ -298,8 +298,8 @@ FUNC_NAME(RADEONSetupForDashedLine)(ScrnInfoPtr pScrn, +     ACCEL_PREAMBLE(); +  +     /* Save for determining whether or not to draw last pixel */ +-    info->dashLen = length; +-    info->dashPattern = pat; ++    info->accel_state->dashLen = length; ++    info->accel_state->dashPattern = pat; +  + #if X_BYTE_ORDER == X_BIG_ENDIAN + # define PAT_SHIFT(pat, shift) (pat >> shift) +@@ -315,18 +315,18 @@ FUNC_NAME(RADEONSetupForDashedLine)(ScrnInfoPtr pScrn, +     } +  +     /* Save for later clipping */ +-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl +-				     | (bg == -1 +-					? RADEON_GMC_BRUSH_32x1_MONO_FG_LA +-					: RADEON_GMC_BRUSH_32x1_MONO_FG_BG) +-				     | RADEON_ROP[rop].pattern +-				     | RADEON_GMC_BYTE_LSB_TO_MSB); +-    info->dash_fg = fg; +-    info->dash_bg = bg; ++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl ++						  | (bg == -1 ++						     ? RADEON_GMC_BRUSH_32x1_MONO_FG_LA ++						     : RADEON_GMC_BRUSH_32x1_MONO_FG_BG) ++						  | RADEON_ROP[rop].pattern ++						  | RADEON_GMC_BYTE_LSB_TO_MSB); ++    info->accel_state->dash_fg = fg; ++    info->accel_state->dash_bg = bg; +  +     BEGIN_ACCEL((bg == -1) ? 4 : 5); +  +-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip); ++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip); +     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask); +     OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  fg); +     if (bg != -1) +@@ -348,7 +348,7 @@ FUNC_NAME(RADEONDashedLastPel)(ScrnInfoPtr pScrn, + 			       int fg) + { +     RADEONInfoPtr  info = RADEONPTR(pScrn); +-    uint32_t dp_gui_master_cntl = info->dp_gui_master_cntl_clip; ++    uint32_t dp_gui_master_cntl = info->accel_state->dp_gui_master_cntl_clip; +     ACCEL_PREAMBLE(); +  +     dp_gui_master_cntl &= ~RADEON_GMC_BRUSH_DATATYPE_MASK; +@@ -362,15 +362,15 @@ FUNC_NAME(RADEONDashedLastPel)(ScrnInfoPtr pScrn, +     OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, dp_gui_master_cntl); +     OUT_ACCEL_REG(RADEON_DP_CNTL,            (RADEON_DST_X_LEFT_TO_RIGHT + 					      | RADEON_DST_Y_TOP_TO_BOTTOM)); +-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset | ++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset | +     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0)); +     OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  fg); +     OUT_ACCEL_REG(RADEON_DST_Y_X,            (y << 16) | x); +     OUT_ACCEL_REG(RADEON_DST_WIDTH_HEIGHT,   (1 << 16) | 1); +  +     /* Restore old values */ +-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip); +-    OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  info->dash_fg); ++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip); ++    OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  info->accel_state->dash_fg); +  +     FINISH_ACCEL(); +     BEGIN_ACCEL(2); +@@ -402,17 +402,17 @@ FUNC_NAME(RADEONSubsequentDashedTwoPointLine)(ScrnInfoPtr pScrn, + 	else                 shift = deltay; +  + 	shift += phase; +-	shift %= info->dashLen; ++	shift %= info->accel_state->dashLen; +  +-	if ((info->dashPattern >> shift) & 1) +-	    FUNC_NAME(RADEONDashedLastPel)(pScrn, xb, yb, info->dash_fg); +-	else if (info->dash_bg != -1) +-	    FUNC_NAME(RADEONDashedLastPel)(pScrn, xb, yb, info->dash_bg); ++	if ((info->accel_state->dashPattern >> shift) & 1) ++	    FUNC_NAME(RADEONDashedLastPel)(pScrn, xb, yb, info->accel_state->dash_fg); ++	else if (info->accel_state->dash_bg != -1) ++	    FUNC_NAME(RADEONDashedLastPel)(pScrn, xb, yb, info->accel_state->dash_bg); +     } +  +     BEGIN_ACCEL(4); +  +-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset | ++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset | +     	((info->tilingEnabled && (ya <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0)); +     OUT_ACCEL_REG(RADEON_DST_LINE_START,   (ya << 16) | xa); +     OUT_ACCEL_REG(RADEON_DST_LINE_PATCOUNT, phase); +@@ -433,7 +433,7 @@ FUNC_NAME(RADEONSetTransparency)(ScrnInfoPtr pScrn, + { +     RADEONInfoPtr  info = RADEONPTR(pScrn); +  +-    if ((trans_color != -1) || (info->XAAForceTransBlit == TRUE)) { ++    if ((trans_color != -1) || (info->accel_state->XAAForceTransBlit == TRUE)) { + 	ACCEL_PREAMBLE(); +  + 	BEGIN_ACCEL(3); +@@ -461,20 +461,20 @@ FUNC_NAME(RADEONSetupForScreenToScreenCopy)(ScrnInfoPtr pScrn, +     RADEONInfoPtr  info = RADEONPTR(pScrn); +     ACCEL_PREAMBLE(); +  +-    info->xdir = xdir; +-    info->ydir = ydir; ++    info->accel_state->xdir = xdir; ++    info->accel_state->ydir = ydir; +  +     /* Save for later clipping */ +-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl +-				     | RADEON_GMC_BRUSH_NONE +-				     | RADEON_GMC_SRC_DATATYPE_COLOR +-				     | RADEON_ROP[rop].rop +-				     | RADEON_DP_SRC_SOURCE_MEMORY +-				     | RADEON_GMC_SRC_PITCH_OFFSET_CNTL); ++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl ++						  | RADEON_GMC_BRUSH_NONE ++						  | RADEON_GMC_SRC_DATATYPE_COLOR ++						  | RADEON_ROP[rop].rop ++						  | RADEON_DP_SRC_SOURCE_MEMORY ++						  | RADEON_GMC_SRC_PITCH_OFFSET_CNTL); +  +     BEGIN_ACCEL(3); +  +-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip); ++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip); +     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask); +     OUT_ACCEL_REG(RADEON_DP_CNTL, + 		  ((xdir >= 0 ? RADEON_DST_X_LEFT_TO_RIGHT : 0) | +@@ -487,7 +487,7 @@ FUNC_NAME(RADEONSetupForScreenToScreenCopy)(ScrnInfoPtr pScrn, +                   RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE); +     FINISH_ACCEL(); +  +-    info->trans_color = trans_color; ++    info->accel_state->trans_color = trans_color; +     FUNC_NAME(RADEONSetTransparency)(pScrn, trans_color); + } +  +@@ -501,14 +501,14 @@ FUNC_NAME(RADEONSubsequentScreenToScreenCopy)(ScrnInfoPtr pScrn, +     RADEONInfoPtr  info = RADEONPTR(pScrn); +     ACCEL_PREAMBLE(); +  +-    if (info->xdir < 0) xa += w - 1, xb += w - 1; +-    if (info->ydir < 0) ya += h - 1, yb += h - 1; ++    if (info->accel_state->xdir < 0) xa += w - 1, xb += w - 1; ++    if (info->accel_state->ydir < 0) ya += h - 1, yb += h - 1; +  +     BEGIN_ACCEL(5); +  +-    OUT_ACCEL_REG(RADEON_SRC_PITCH_OFFSET, info->dst_pitch_offset | ++    OUT_ACCEL_REG(RADEON_SRC_PITCH_OFFSET, info->accel_state->dst_pitch_offset | +     	((info->tilingEnabled && (ya <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0)); +-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset | ++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset | +     	((info->tilingEnabled && (yb <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0)); +     OUT_ACCEL_REG(RADEON_SRC_Y_X,          (ya << 16) | xa); +     OUT_ACCEL_REG(RADEON_DST_Y_X,          (yb << 16) | xb); +@@ -552,19 +552,19 @@ FUNC_NAME(RADEONSetupForMono8x8PatternFill)(ScrnInfoPtr pScrn, + #endif +  +     /* Save for later clipping */ +-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl +-				     | (bg == -1 +-					? RADEON_GMC_BRUSH_8X8_MONO_FG_LA +-					: RADEON_GMC_BRUSH_8X8_MONO_FG_BG) +-				     | RADEON_ROP[rop].pattern ++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl ++						  | (bg == -1 ++						     ? RADEON_GMC_BRUSH_8X8_MONO_FG_LA ++						     : RADEON_GMC_BRUSH_8X8_MONO_FG_BG) ++						  | RADEON_ROP[rop].pattern + #if X_BYTE_ORDER == X_LITTLE_ENDIAN +-				     | RADEON_GMC_BYTE_MSB_TO_LSB ++						  | RADEON_GMC_BYTE_MSB_TO_LSB + #endif +-				    ); ++						  ); +  +     BEGIN_ACCEL((bg == -1) ? 5 : 6); +  +-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip); ++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip); +     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask); +     OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  fg); +     if (bg != -1) +@@ -600,7 +600,7 @@ FUNC_NAME(RADEONSubsequentMono8x8PatternFillRect)(ScrnInfoPtr pScrn, +  +     BEGIN_ACCEL(4); +  +-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset | ++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset | +     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0)); +     OUT_ACCEL_REG(RADEON_BRUSH_Y_X,        (patterny << 8) | patternx); +     OUT_ACCEL_REG(RADEON_DST_Y_X,          (y << 16) | x); +@@ -625,21 +625,21 @@ FUNC_NAME(RADEONSetupForColor8x8PatternFill)(ScrnInfoPtr pScrn, +     ACCEL_PREAMBLE(); +  +     /* Save for later clipping */ +-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl +-				     | RADEON_GMC_BRUSH_8x8_COLOR +-				     | RADEON_GMC_SRC_DATATYPE_COLOR +-				     | RADEON_ROP[rop].pattern +-				     | RADEON_DP_SRC_SOURCE_MEMORY); ++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl ++						  | RADEON_GMC_BRUSH_8x8_COLOR ++						  | RADEON_GMC_SRC_DATATYPE_COLOR ++						  | RADEON_ROP[rop].pattern ++						  | RADEON_DP_SRC_SOURCE_MEMORY); +  +     BEGIN_ACCEL(3); +  +-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip); ++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip); +     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask); +     OUT_ACCEL_REG(RADEON_SRC_Y_X,            (paty << 16) | patx); +  +     FINISH_ACCEL(); +  +-    info->trans_color = trans_color; ++    info->accel_state->trans_color = trans_color; +     FUNC_NAME(RADEONSetTransparency)(pScrn, trans_color); + } +  +@@ -655,7 +655,7 @@ FUNC_NAME(RADEONSubsequentColor8x8PatternFillRect)(ScrnInfoPtr pScrn, +  +     BEGIN_ACCEL(4); +  +-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset | ++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset | +     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0)); +     OUT_ACCEL_REG(RADEON_BRUSH_Y_X,        (paty << 16) | patx); +     OUT_ACCEL_REG(RADEON_DST_Y_X,          (y << 16) | x); +@@ -666,7 +666,7 @@ FUNC_NAME(RADEONSubsequentColor8x8PatternFillRect)(ScrnInfoPtr pScrn, + #endif +  + #ifdef ACCEL_CP +-#define CP_BUFSIZE (info->indirectBuffer->total/4-10) ++#define CP_BUFSIZE (info->cp->indirectBuffer->total/4-10) +  + /* Helper function to write out a HOSTDATA_BLT packet into the indirect +  * buffer and set the XAA scratch buffer address appropriately. +@@ -675,41 +675,41 @@ static void + RADEONCPScanlinePacket(ScrnInfoPtr pScrn, int bufno) + { +     RADEONInfoPtr info = RADEONPTR(pScrn); +-    int           chunk_words = info->scanline_hpass * info->scanline_words; ++    int           chunk_words = info->accel_state->scanline_hpass * info->accel_state->scanline_words; +     ACCEL_PREAMBLE(); +  +     if (RADEON_VERBOSE) { + 	xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 		   "CPScanline Packet h=%d hpass=%d chunkwords=%d\n", +-		   info->scanline_h, info->scanline_hpass, chunk_words); ++		   info->accel_state->scanline_h, info->accel_state->scanline_hpass, chunk_words); +     } +     BEGIN_RING(chunk_words+10); +  +     OUT_RING(CP_PACKET3(RADEON_CP_PACKET3_CNTL_HOSTDATA_BLT,chunk_words+10-2)); +-    OUT_RING(info->dp_gui_master_cntl_clip); +-    OUT_RING(info->dst_pitch_offset | +-    	((info->tilingEnabled && (info->scanline_y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0)); +-    OUT_RING((info->scanline_y << 16) | +-	     (info->scanline_x1clip & 0xffff)); +-    OUT_RING(((info->scanline_y+info->scanline_hpass) << 16) | +-	     (info->scanline_x2clip & 0xffff)); +-    OUT_RING(info->scanline_fg); +-    OUT_RING(info->scanline_bg); +-    OUT_RING((info->scanline_y << 16) | +-	     (info->scanline_x & 0xffff)); +-    OUT_RING((info->scanline_hpass << 16) | +-	     (info->scanline_w & 0xffff)); ++    OUT_RING(info->accel_state->dp_gui_master_cntl_clip); ++    OUT_RING(info->accel_state->dst_pitch_offset | ++    	((info->tilingEnabled && (info->accel_state->scanline_y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0)); ++    OUT_RING((info->accel_state->scanline_y << 16) | ++	     (info->accel_state->scanline_x1clip & 0xffff)); ++    OUT_RING(((info->accel_state->scanline_y+info->accel_state->scanline_hpass) << 16) | ++	     (info->accel_state->scanline_x2clip & 0xffff)); ++    OUT_RING(info->accel_state->scanline_fg); ++    OUT_RING(info->accel_state->scanline_bg); ++    OUT_RING((info->accel_state->scanline_y << 16) | ++	     (info->accel_state->scanline_x & 0xffff)); ++    OUT_RING((info->accel_state->scanline_hpass << 16) | ++	     (info->accel_state->scanline_w & 0xffff)); +     OUT_RING(chunk_words); +  +-    info->scratch_buffer[bufno] = (unsigned char *)&__head[__count]; ++    info->accel_state->scratch_buffer[bufno] = (unsigned char *)&__head[__count]; +     __count += chunk_words; +  +     /* The ring can only be advanced after the __head and __count have +        been adjusted above */ +     FINISH_ACCEL(); +  +-    info->scanline_y += info->scanline_hpass; +-    info->scanline_h -= info->scanline_hpass; ++    info->accel_state->scanline_y += info->accel_state->scanline_hpass; ++    info->accel_state->scanline_h -= info->accel_state->scanline_hpass; + } + #endif +  +@@ -729,22 +729,22 @@ FUNC_NAME(RADEONSetupForScanlineCPUToScreenColorExpandFill)(ScrnInfoPtr pScrn, +     RADEONInfoPtr  info = RADEONPTR(pScrn); +     ACCEL_PREAMBLE(); +  +-    info->scanline_bpp = 0; ++    info->accel_state->scanline_bpp = 0; +  +     /* Save for later clipping */ +-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl +-				     | RADEON_GMC_DST_CLIPPING +-				     | RADEON_GMC_BRUSH_NONE +-				     | (bg == -1 +-					? RADEON_GMC_SRC_DATATYPE_MONO_FG_LA +-					: RADEON_GMC_SRC_DATATYPE_MONO_FG_BG) +-				     | RADEON_ROP[rop].rop ++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl ++						  | RADEON_GMC_DST_CLIPPING ++						  | RADEON_GMC_BRUSH_NONE ++						  | (bg == -1 ++						     ? RADEON_GMC_SRC_DATATYPE_MONO_FG_LA ++						     : RADEON_GMC_SRC_DATATYPE_MONO_FG_BG) ++						  | RADEON_ROP[rop].rop + #if X_BYTE_ORDER == X_LITTLE_ENDIAN +-				     | RADEON_GMC_BYTE_LSB_TO_MSB ++						  | RADEON_GMC_BYTE_LSB_TO_MSB + #else +-				     | RADEON_GMC_BYTE_MSB_TO_LSB ++						  | RADEON_GMC_BYTE_MSB_TO_LSB + #endif +-				     | RADEON_DP_SRC_SOURCE_HOST_DATA); ++						  | RADEON_DP_SRC_SOURCE_HOST_DATA); +  + #ifdef ACCEL_MMIO +  +@@ -755,15 +755,15 @@ FUNC_NAME(RADEONSetupForScanlineCPUToScreenColorExpandFill)(ScrnInfoPtr pScrn, +  +     OUT_ACCEL_REG(RADEON_RBBM_GUICNTL,       RADEON_HOST_DATA_SWAP_NONE); + #endif +-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip); ++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip); +     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask); +     OUT_ACCEL_REG(RADEON_DP_SRC_FRGD_CLR,    fg); +     OUT_ACCEL_REG(RADEON_DP_SRC_BKGD_CLR,    bg); +  + #else /* ACCEL_CP */ +  +-    info->scanline_fg = fg; +-    info->scanline_bg = bg; ++    info->accel_state->scanline_fg = fg; ++    info->accel_state->scanline_bg = bg; +  + #if X_BYTE_ORDER == X_LITTLE_ENDIAN +     BEGIN_ACCEL(1); +@@ -796,31 +796,31 @@ FUNC_NAME(RADEONSubsequentScanlineCPUToScreenColorExpandFill)(ScrnInfoPtr + #ifdef ACCEL_MMIO +     ACCEL_PREAMBLE(); +  +-    info->scanline_h      = h; +-    info->scanline_words  = (w + 31) >> 5; ++    info->accel_state->scanline_h      = h; ++    info->accel_state->scanline_words  = (w + 31) >> 5; +  + #ifdef __alpha__ +     /* Always use indirect for Alpha */ +     if (0) + #else +-    if ((info->scanline_words * h) <= 9) ++    if ((info->accel_state->scanline_words * h) <= 9) + #endif +     { + 	/* Turn on direct for less than 9 dword colour expansion */ +-	info->scratch_buffer[0] = ++	info->accel_state->scratch_buffer[0] = + 	    (unsigned char *)(ADDRREG(RADEON_HOST_DATA_LAST) +-			      - (info->scanline_words - 1)); +-	info->scanline_direct   = 1; ++			      - (info->accel_state->scanline_words - 1)); ++	info->accel_state->scanline_direct   = 1; +     } else { + 	/* Use indirect for anything else */ +-	info->scratch_buffer[0] = info->scratch_save; +-	info->scanline_direct   = 0; ++	info->accel_state->scratch_buffer[0] = info->accel_state->scratch_save; ++	info->accel_state->scanline_direct   = 0; +     } +  +-    BEGIN_ACCEL(5 + (info->scanline_direct ? +-		     (info->scanline_words * h) : 0)); ++    BEGIN_ACCEL(5 + (info->accel_state->scanline_direct ? ++		     (info->accel_state->scanline_words * h) : 0)); +  +-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset | ++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset | +     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0)); +     OUT_ACCEL_REG(RADEON_SC_TOP_LEFT,      (y << 16)     | ((x+skipleft) + 							    & 0xffff)); +@@ -833,17 +833,17 @@ FUNC_NAME(RADEONSubsequentScanlineCPUToScreenColorExpandFill)(ScrnInfoPtr +  + #else /* ACCEL_CP */ +  +-    info->scanline_x      = x; +-    info->scanline_y      = y; ++    info->accel_state->scanline_x      = x; ++    info->accel_state->scanline_y      = y; +     /* Have to pad the width here and use clipping engine */ +-    info->scanline_w      = (w + 31) & ~31; +-    info->scanline_h      = h; ++    info->accel_state->scanline_w      = (w + 31) & ~31; ++    info->accel_state->scanline_h      = h; +  +-    info->scanline_x1clip = x + skipleft; +-    info->scanline_x2clip = x + w; ++    info->accel_state->scanline_x1clip = x + skipleft; ++    info->accel_state->scanline_x2clip = x + w; +  +-    info->scanline_words  = info->scanline_w / 32; +-    info->scanline_hpass  = min(h,(CP_BUFSIZE/info->scanline_words)); ++    info->accel_state->scanline_words  = info->accel_state->scanline_w / 32; ++    info->accel_state->scanline_hpass  = min(h,(CP_BUFSIZE/info->accel_state->scanline_words)); +  +     RADEONCPScanlinePacket(pScrn, 0); +  +@@ -859,21 +859,21 @@ FUNC_NAME(RADEONSubsequentScanline)(ScrnInfoPtr pScrn, + { +     RADEONInfoPtr    info = RADEONPTR(pScrn); + #ifdef ACCEL_MMIO +-    uint32_t        *p    = (pointer)info->scratch_buffer[bufno]; ++    uint32_t        *p    = (pointer)info->accel_state->scratch_buffer[bufno]; +     int              i; +-    int              left = info->scanline_words; ++    int              left = info->accel_state->scanline_words; +     volatile uint32_t *d; +     ACCEL_PREAMBLE(); +  +-    if (info->scanline_direct) return; ++    if (info->accel_state->scanline_direct) return; +  +-    --info->scanline_h; ++    --info->accel_state->scanline_h; +  +     while (left) { + 	write_mem_barrier(); + 	if (left <= 8) { + 	  /* Last scanline - finish write to DATA_LAST */ +-	  if (info->scanline_h == 0) { ++	  if (info->accel_state->scanline_h == 0) { + 	    BEGIN_ACCEL(left); + 				/* Unrolling doesn't improve performance */ + 	    for (d = ADDRREG(RADEON_HOST_DATA_LAST) - (left - 1); left; --left) +@@ -900,25 +900,25 @@ FUNC_NAME(RADEONSubsequentScanline)(ScrnInfoPtr pScrn, +  + #if X_BYTE_ORDER == X_BIG_ENDIAN +     if (info->ChipFamily >= CHIP_FAMILY_R300) { +-	if (info->scanline_bpp == 16) { +-	    RADEONCopySwap(info->scratch_buffer[bufno], +-			   info->scratch_buffer[bufno], +-			   info->scanline_words << 2, ++	if (info->accel_state->scanline_bpp == 16) { ++	    RADEONCopySwap(info->accel_state->scratch_buffer[bufno], ++			   info->accel_state->scratch_buffer[bufno], ++			   info->accel_state->scanline_words << 2, + 			   RADEON_HOST_DATA_SWAP_HDW); +-	} else if (info->scanline_bpp < 15) { +-	    RADEONCopySwap(info->scratch_buffer[bufno], +-			   info->scratch_buffer[bufno], +-			   info->scanline_words << 2, ++	} else if (info->accel_state->scanline_bpp < 15) { ++	    RADEONCopySwap(info->accel_state->scratch_buffer[bufno], ++			   info->accel_state->scratch_buffer[bufno], ++			   info->accel_state->scanline_words << 2, + 			   RADEON_HOST_DATA_SWAP_32BIT); + 	} +     } + #endif +  +-    if (--info->scanline_hpass) { +-	info->scratch_buffer[bufno] += 4 * info->scanline_words; +-    } else if (info->scanline_h) { +-	info->scanline_hpass = +-	    min(info->scanline_h,(CP_BUFSIZE/info->scanline_words)); ++    if (--info->accel_state->scanline_hpass) { ++	info->accel_state->scratch_buffer[bufno] += 4 * info->accel_state->scanline_words; ++    } else if (info->accel_state->scanline_h) { ++	info->accel_state->scanline_hpass = ++	    min(info->accel_state->scanline_h,(CP_BUFSIZE/info->accel_state->scanline_words)); + 	RADEONCPScanlinePacket(pScrn, bufno); +     } +  +@@ -937,16 +937,16 @@ FUNC_NAME(RADEONSetupForScanlineImageWrite)(ScrnInfoPtr pScrn, +     RADEONInfoPtr  info = RADEONPTR(pScrn); +     ACCEL_PREAMBLE(); +  +-    info->scanline_bpp = bpp; ++    info->accel_state->scanline_bpp = bpp; +  +     /* Save for later clipping */ +-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl +-				     | RADEON_GMC_DST_CLIPPING +-				     | RADEON_GMC_BRUSH_NONE +-				     | RADEON_GMC_SRC_DATATYPE_COLOR +-				     | RADEON_ROP[rop].rop +-				     | RADEON_GMC_BYTE_MSB_TO_LSB +-				     | RADEON_DP_SRC_SOURCE_HOST_DATA); ++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl ++						  | RADEON_GMC_DST_CLIPPING ++						  | RADEON_GMC_BRUSH_NONE ++						  | RADEON_GMC_SRC_DATATYPE_COLOR ++						  | RADEON_ROP[rop].rop ++						  | RADEON_GMC_BYTE_MSB_TO_LSB ++						  | RADEON_DP_SRC_SOURCE_HOST_DATA); +  + #ifdef ACCEL_MMIO +  +@@ -962,7 +962,7 @@ FUNC_NAME(RADEONSetupForScanlineImageWrite)(ScrnInfoPtr pScrn, +     else + 	OUT_ACCEL_REG(RADEON_RBBM_GUICNTL,   RADEON_HOST_DATA_SWAP_NONE); + #endif +-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip); ++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip); +  + #else /* ACCEL_CP */ +  +@@ -984,7 +984,7 @@ FUNC_NAME(RADEONSetupForScanlineImageWrite)(ScrnInfoPtr pScrn, +  +     FINISH_ACCEL(); +  +-    info->trans_color = trans_color; ++    info->accel_state->trans_color = trans_color; +     FUNC_NAME(RADEONSetTransparency)(pScrn, trans_color); + } +  +@@ -1007,31 +1007,31 @@ FUNC_NAME(RADEONSubsequentScanlineImageWriteRect)(ScrnInfoPtr pScrn, +     if (pScrn->bitsPerPixel == 8) shift = 3; +     else if (pScrn->bitsPerPixel == 16) shift = 1; +  +-    info->scanline_h      = h; +-    info->scanline_words  = (w * info->scanline_bpp + 31) >> 5; ++    info->accel_state->scanline_h      = h; ++    info->accel_state->scanline_words  = (w * info->accel_state->scanline_bpp + 31) >> 5; +  + #ifdef __alpha__ +     /* Always use indirect for Alpha */ +     if (0) + #else +-    if ((info->scanline_words * h) <= 9) ++    if ((info->accel_state->scanline_words * h) <= 9) + #endif +     { + 	/* Turn on direct for less than 9 dword colour expansion */ +-	info->scratch_buffer[0] ++	info->accel_state->scratch_buffer[0] + 	    = (unsigned char *)(ADDRREG(RADEON_HOST_DATA_LAST) +-				- (info->scanline_words - 1)); +-	info->scanline_direct = 1; ++				- (info->accel_state->scanline_words - 1)); ++	info->accel_state->scanline_direct = 1; +     } else { + 	/* Use indirect for anything else */ +-	info->scratch_buffer[0] = info->scratch_save; +-	info->scanline_direct = 0; ++	info->accel_state->scratch_buffer[0] = info->accel_state->scratch_save; ++	info->accel_state->scanline_direct = 0; +     } +  +-    BEGIN_ACCEL(5 + (info->scanline_direct ? +-		     (info->scanline_words * h) : 0)); ++    BEGIN_ACCEL(5 + (info->accel_state->scanline_direct ? ++		     (info->accel_state->scanline_words * h) : 0)); +  +-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset | ++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset | +     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0)); +     OUT_ACCEL_REG(RADEON_SC_TOP_LEFT,      (y << 16)     | ((x+skipleft) + 							    & 0xffff)); +@@ -1050,17 +1050,17 @@ FUNC_NAME(RADEONSubsequentScanlineImageWriteRect)(ScrnInfoPtr pScrn, +     if (pScrn->bitsPerPixel == 8)       pad = 3; +     else if (pScrn->bitsPerPixel == 16) pad = 1; +  +-    info->scanline_x      = x; +-    info->scanline_y      = y; ++    info->accel_state->scanline_x      = x; ++    info->accel_state->scanline_y      = y; +     /* Have to pad the width here and use clipping engine */ +-    info->scanline_w      = (w + pad) & ~pad; +-    info->scanline_h      = h; ++    info->accel_state->scanline_w      = (w + pad) & ~pad; ++    info->accel_state->scanline_h      = h; +  +-    info->scanline_x1clip = x + skipleft; +-    info->scanline_x2clip = x + w; ++    info->accel_state->scanline_x1clip = x + skipleft; ++    info->accel_state->scanline_x2clip = x + w; +  +-    info->scanline_words  = (w * info->scanline_bpp + 31) / 32; +-    info->scanline_hpass  = min(h,(CP_BUFSIZE/info->scanline_words)); ++    info->accel_state->scanline_words  = (w * info->accel_state->scanline_bpp + 31) / 32; ++    info->accel_state->scanline_hpass  = min(h,(CP_BUFSIZE/info->accel_state->scanline_words)); +  +     RADEONCPScanlinePacket(pScrn, 0); +  +@@ -1110,7 +1110,7 @@ FUNC_NAME(RADEONSetClippingRectangle)(ScrnInfoPtr pScrn, +  +     BEGIN_ACCEL(3); +  +-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, (info->dp_gui_master_cntl_clip ++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, (info->accel_state->dp_gui_master_cntl_clip + 					      | RADEON_GMC_DST_CLIPPING)); +     OUT_ACCEL_REG(RADEON_SC_TOP_LEFT,        tmp1); +     OUT_ACCEL_REG(RADEON_SC_BOTTOM_RIGHT,    tmp2); +@@ -1122,7 +1122,7 @@ FUNC_NAME(RADEONSetClippingRectangle)(ScrnInfoPtr pScrn, +                   RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE); +     FINISH_ACCEL(); +  +-    FUNC_NAME(RADEONSetTransparency)(pScrn, info->trans_color); ++    FUNC_NAME(RADEONSetTransparency)(pScrn, info->accel_state->trans_color); + } +  + /* Disable the clipping rectangle */ +@@ -1134,7 +1134,7 @@ FUNC_NAME(RADEONDisableClipping)(ScrnInfoPtr pScrn) +  +     BEGIN_ACCEL(3); +  +-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip); ++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip); +     OUT_ACCEL_REG(RADEON_SC_TOP_LEFT,        0); +     OUT_ACCEL_REG(RADEON_SC_BOTTOM_RIGHT,    (RADEON_DEFAULT_SC_RIGHT_MAX | + 					      RADEON_DEFAULT_SC_BOTTOM_MAX)); +@@ -1146,7 +1146,7 @@ FUNC_NAME(RADEONDisableClipping)(ScrnInfoPtr pScrn) +                   RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE); +     FINISH_ACCEL(); +  +-    FUNC_NAME(RADEONSetTransparency)(pScrn, info->trans_color); ++    FUNC_NAME(RADEONSetTransparency)(pScrn, info->accel_state->trans_color); + } +  + void +@@ -1203,12 +1203,12 @@ FUNC_NAME(RADEONAccelInit)(ScreenPtr pScreen, XAAInfoRecPtr a) + 	   | ROP_NEEDS_SOURCE + 	   | LEFT_EDGE_CLIPPING_NEGATIVE_X); +     a->NumScanlineColorExpandBuffers    = 1; +-    a->ScanlineColorExpandBuffers       = info->scratch_buffer; +-    if (!info->scratch_save) +-	info->scratch_save ++    a->ScanlineColorExpandBuffers       = info->accel_state->scratch_buffer; ++    if (!info->accel_state->scratch_save) ++	info->accel_state->scratch_save + 	    = xalloc(((pScrn->virtualX+31)/32*4) + 		     + (pScrn->virtualX * info->CurrentLayout.pixel_bytes)); +-    info->scratch_buffer[0]             = info->scratch_save; ++    info->accel_state->scratch_buffer[0]             = info->accel_state->scratch_save; +     a->SetupForScanlineCPUToScreenColorExpandFill + 	= FUNC_NAME(RADEONSetupForScanlineCPUToScreenColorExpandFill); +     a->SubsequentScanlineCPUToScreenColorExpandFill +@@ -1299,7 +1299,7 @@ FUNC_NAME(RADEONAccelInit)(ScreenPtr pScreen, XAAInfoRecPtr a) +  + 				/* ImageWrite */ +     a->NumScanlineImageWriteBuffers     = 1; +-    a->ScanlineImageWriteBuffers        = info->scratch_buffer; ++    a->ScanlineImageWriteBuffers        = info->accel_state->scratch_buffer; +     a->SetupForScanlineImageWrite + 	= FUNC_NAME(RADEONSetupForScanlineImageWrite); +     a->SubsequentScanlineImageWriteRect +diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c +index 20aa722..851014b 100644 +--- a/src/radeon_atombios.c ++++ b/src/radeon_atombios.c +@@ -501,11 +501,11 @@ rhdAtomASICInit(atomBiosHandlePtr handle) +     RHDAtomBiosFunc(handle->scrnIndex, handle, + 		    GET_DEFAULT_ENGINE_CLOCK, + 		    &data); +-    asicInit.sASICInitClocks.ulDefaultEngineClock = data.val / 10;/*in 10 Khz*/ ++    asicInit.sASICInitClocks.ulDefaultEngineClock = cpu_to_le32(data.val / 10);/*in 10 Khz*/ +     RHDAtomBiosFunc(handle->scrnIndex, handle, + 		    GET_DEFAULT_MEMORY_CLOCK, + 		    &data); +-    asicInit.sASICInitClocks.ulDefaultMemoryClock = data.val / 10;/*in 10 Khz*/ ++    asicInit.sASICInitClocks.ulDefaultMemoryClock = cpu_to_le32(data.val / 10);/*in 10 Khz*/ +     data.exec.dataSpace = NULL; +     data.exec.index = 0x0; +     data.exec.pspace = &asicInit; +@@ -609,17 +609,6 @@ rhdAtomInit(atomBiosHandlePtr unused1, AtomBiosRequestID unused2, + #endif +     handle->BIOSImageSize = BIOSImageSize; +  +-# if ATOM_BIOS_PARSER +-    /* Try to find out if BIOS has been posted (either by system or int10 */ +-    if (!rhdAtomGetFbBaseAndSize(handle, NULL, NULL)) { +-	/* run AsicInit */ +-	if (!rhdAtomASICInit(handle)) +-	    xf86DrvMsg(scrnIndex, X_WARNING, +-		       "%s: AsicInit failed. Won't be able to obtain in VRAM " +-		       "FB scratch space\n",__func__); +-    } +-# endif +- +     data->atomhandle = handle; +     return ATOM_SUCCESS; +  +@@ -654,12 +643,18 @@ rhdAtomVramInfoQuery(atomBiosHandlePtr handle, AtomBiosRequestID func, +  +     switch (func) { + 	case GET_FW_FB_START: +-	    *val = le32_to_cpu(atomDataPtr->VRAM_UsageByFirmware +-			       ->asFirmwareVramReserveInfo[0].ulStartAddrUsedByFirmware); ++	    if (atomDataPtr->VRAM_UsageByFirmware) ++		*val = le32_to_cpu(atomDataPtr->VRAM_UsageByFirmware ++				   ->asFirmwareVramReserveInfo[0].ulStartAddrUsedByFirmware); ++	    else ++		return ATOM_NOT_IMPLEMENTED; + 	    break; + 	case GET_FW_FB_SIZE: +-	    *val =  le16_to_cpu(atomDataPtr->VRAM_UsageByFirmware +-				->asFirmwareVramReserveInfo[0].usFirmwareUseInKb); ++	    if (atomDataPtr->VRAM_UsageByFirmware) ++		*val =  le16_to_cpu(atomDataPtr->VRAM_UsageByFirmware ++				    ->asFirmwareVramReserveInfo[0].usFirmwareUseInKb); ++	    else ++		return ATOM_NOT_IMPLEMENTED; + 	    break; + 	default: + 	    return ATOM_NOT_IMPLEMENTED; +@@ -1391,35 +1386,57 @@ const int object_connector_convert[] = +       CONNECTOR_DISPLAY_PORT, +     }; +  +-static void +-rhdAtomParseI2CRecord(atomBiosHandlePtr handle, +-			ATOM_I2C_RECORD *Record, int *ddc_line) ++xf86MonPtr radeon_atom_get_edid(xf86OutputPtr output) + { +-    ErrorF(" %s:  I2C Record: %s[%x] EngineID: %x I2CAddr: %x\n", +-	     __func__, +-	     Record->sucI2cId.bfHW_Capable ? "HW_Line" : "GPIO_ID", +-	     Record->sucI2cId.bfI2C_LineMux, +-	     Record->sucI2cId.bfHW_EngineID, +-	     Record->ucI2CAddr); +- +-    if (!*(unsigned char *)&(Record->sucI2cId)) +-	*ddc_line = 0; +-    else { +-	if (Record->ucI2CAddr != 0) +-	    return; +- +-	if (Record->sucI2cId.bfHW_Capable) { +-	    switch(Record->sucI2cId.bfI2C_LineMux) { +-	    case 0: *ddc_line = 0x7e40; break; +-	    case 1: *ddc_line = 0x7e50; break; +-	    case 2: *ddc_line = 0x7e30; break; +-	    default: break; +-	    } +-	    return; +-	} else { +-	    /* add GPIO pin parsing */ +-	} +-    } ++    RADEONOutputPrivatePtr radeon_output = output->driver_private; ++    RADEONInfoPtr info       = RADEONPTR(output->scrn); ++    READ_EDID_FROM_HW_I2C_DATA_PS_ALLOCATION edid_data; ++    AtomBiosArgRec data; ++    unsigned char *space; ++    int i2c_clock = 50; ++    int engine_clk = info->sclk * 100; ++    int prescale; ++    unsigned char *edid; ++    xf86MonPtr mon = NULL; ++ ++    if (!radeon_output->ddc_i2c.hw_capable) ++	return mon; ++ ++    if (info->atomBIOS->fbBase) ++	edid = (unsigned char *)info->FB + info->atomBIOS->fbBase; ++    else if (info->atomBIOS->scratchBase) ++	edid = (unsigned char *)info->atomBIOS->scratchBase; ++    else ++	return mon; ++ ++    memset(edid, 0, ATOM_EDID_RAW_DATASIZE); ++ ++    if (info->ChipFamily == CHIP_FAMILY_R520) ++	prescale = (127 << 8) + (engine_clk * 10) / (4 * 127 * i2c_clock); ++    else if (info->ChipFamily < CHIP_FAMILY_R600) ++	prescale = (((engine_clk * 10)/(4 * 128 * 100) + 1) << 8) + 128; ++    else ++	prescale = (info->pll.reference_freq * 10) / i2c_clock; ++ ++    edid_data.usPrescale = prescale; ++    edid_data.usVRAMAddress = 0; ++    edid_data.ucSlaveAddr = 0xa0; ++    edid_data.ucLineNumber = radeon_output->ddc_i2c.hw_line; ++ ++    data.exec.index = GetIndexIntoMasterTable(COMMAND, ReadEDIDFromHWAssistedI2C); ++    data.exec.dataSpace = (void *)&space; ++    data.exec.pspace = &edid_data; ++ ++    if (RHDAtomBiosFunc(info->atomBIOS->scrnIndex, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) ++	ErrorF("Atom Get EDID success\n"); ++    else ++	ErrorF("Atom Get EDID failed\n"); ++ ++    if (edid[1] == 0xff) ++	mon = xf86InterpretEDID(output->scrn->scrnIndex, edid); ++ ++    return mon; ++ + } +  + static RADEONI2CBusRec +@@ -1450,36 +1467,53 @@ RADEONLookupGPIOLineForDDC(ScrnInfoPtr pScrn, uint8_t id) +     i2c.put_data_reg = le16_to_cpu(gpio.usDataEnRegisterIndex) * 4; +     i2c.get_clk_reg = le16_to_cpu(gpio.usClkY_RegisterIndex) * 4; +     i2c.get_data_reg = le16_to_cpu(gpio.usDataY_RegisterIndex) * 4; ++    i2c.a_clk_reg = le16_to_cpu(gpio.usClkA_RegisterIndex) * 4; ++    i2c.a_data_reg = le16_to_cpu(gpio.usDataA_RegisterIndex) * 4; +     i2c.mask_clk_mask = (1 << gpio.ucClkMaskShift); +     i2c.mask_data_mask = (1 << gpio.ucDataMaskShift); +     i2c.put_clk_mask = (1 << gpio.ucClkEnShift); +     i2c.put_data_mask = (1 << gpio.ucDataEnShift); +     i2c.get_clk_mask = (1 << gpio.ucClkY_Shift); +     i2c.get_data_mask = (1 <<  gpio.ucDataY_Shift); ++    i2c.a_clk_mask = (1 << gpio.ucClkA_Shift); ++    i2c.a_data_mask = (1 <<  gpio.ucDataA_Shift); ++    i2c.hw_line = gpio.sucI2cId.sbfAccess.bfI2C_LineMux; ++    i2c.hw_capable = gpio.sucI2cId.sbfAccess.bfHW_Capable; +     i2c.valid = TRUE; +  + #if 0 ++    ErrorF("id: %d\n", id); ++    ErrorF("hw capable: %d\n", gpio.sucI2cId.sbfAccess.bfHW_Capable); ++    ErrorF("hw engine id: %d\n", gpio.sucI2cId.sbfAccess.bfHW_EngineID); ++    ErrorF("line mux %d\n", gpio.sucI2cId.sbfAccess.bfI2C_LineMux); +     ErrorF("mask_clk_reg: 0x%x\n", gpio.usClkMaskRegisterIndex * 4); +     ErrorF("mask_data_reg: 0x%x\n", gpio.usDataMaskRegisterIndex * 4); +     ErrorF("put_clk_reg: 0x%x\n", gpio.usClkEnRegisterIndex * 4); +     ErrorF("put_data_reg: 0x%x\n", gpio.usDataEnRegisterIndex * 4); +     ErrorF("get_clk_reg: 0x%x\n", gpio.usClkY_RegisterIndex * 4); +     ErrorF("get_data_reg: 0x%x\n", gpio.usDataY_RegisterIndex * 4); +-    ErrorF("other_clk_reg: 0x%x\n", gpio.usClkA_RegisterIndex * 4); +-    ErrorF("other_data_reg: 0x%x\n", gpio.usDataA_RegisterIndex * 4); ++    ErrorF("a_clk_reg: 0x%x\n", gpio.usClkA_RegisterIndex * 4); ++    ErrorF("a_data_reg: 0x%x\n", gpio.usDataA_RegisterIndex * 4); +     ErrorF("mask_clk_mask: %d\n", gpio.ucClkMaskShift); +     ErrorF("mask_data_mask: %d\n", gpio.ucDataMaskShift); +     ErrorF("put_clk_mask: %d\n", gpio.ucClkEnShift); +     ErrorF("put_data_mask: %d\n", gpio.ucDataEnShift); +     ErrorF("get_clk_mask: %d\n", gpio.ucClkY_Shift); +     ErrorF("get_data_mask: %d\n", gpio.ucDataY_Shift); +-    ErrorF("other_clk_mask: %d\n", gpio.ucClkA_Shift); +-    ErrorF("other_data_mask: %d\n", gpio.ucDataA_Shift); ++    ErrorF("a_clk_mask: %d\n", gpio.ucClkA_Shift); ++    ErrorF("a_data_mask: %d\n", gpio.ucDataA_Shift); + #endif +  +     return i2c; + } +  ++static RADEONI2CBusRec ++rhdAtomParseI2CRecord(ScrnInfoPtr pScrn, atomBiosHandlePtr handle, ++			ATOM_I2C_RECORD *Record) ++{ ++    return RADEONLookupGPIOLineForDDC(pScrn, Record->sucI2cId.bfI2C_LineMux); ++} ++ + Bool + RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn) + { +@@ -1489,7 +1523,7 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn) +     atomDataTablesPtr atomDataPtr; +     ATOM_CONNECTOR_OBJECT_TABLE *con_obj; +     ATOM_INTEGRATED_SYSTEM_INFO_V2 *igp_obj = NULL; +-    int i, j, ddc_line = 0; ++    int i, j; +  +     atomDataPtr = info->atomBIOS->atomDataPtr; +     if (!rhdAtomGetTableRevisionAndSize((ATOM_COMMON_TABLE_HEADER *)(atomDataPtr->Object_Header), &crev, &frev, &size)) +@@ -1560,15 +1594,23 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn) + 		break; + 	    case ENCODER_OBJECT_ID_INTERNAL_TMDS1: + 	    case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1: +-		info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP1_INDEX); +-		info->BiosConnector[i].TMDSType = TMDS_INT; ++		if (info->BiosConnector[i].ConnectorType == CONNECTOR_LVDS) ++		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_LCD1_INDEX); ++		else { ++		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP1_INDEX); ++		    info->BiosConnector[i].TMDSType = TMDS_INT; ++		} + 		break; + 	    case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: +-		if (num == 1) +-		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP1_INDEX); +-		else +-		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP2_INDEX); +-		info->BiosConnector[i].TMDSType = TMDS_UNIPHY; ++		if (info->BiosConnector[i].ConnectorType == CONNECTOR_LVDS) ++		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_LCD1_INDEX); ++		else { ++		    if (num == 1) ++			info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP1_INDEX); ++		    else ++			info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP2_INDEX); ++		    info->BiosConnector[i].TMDSType = TMDS_UNIPHY; ++		} + 		break; + 	    case ENCODER_OBJECT_ID_INTERNAL_TMDS2: + 	    case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1: +@@ -1577,8 +1619,12 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn) + 		break; + 	    case ENCODER_OBJECT_ID_INTERNAL_LVTM1: + 	    case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: +-		info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP3_INDEX); +-		info->BiosConnector[i].TMDSType = TMDS_LVTMA; ++		if (info->BiosConnector[i].ConnectorType == CONNECTOR_LVDS) ++		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_LCD1_INDEX); ++		else { ++		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP3_INDEX); ++		    info->BiosConnector[i].TMDSType = TMDS_LVTMA; ++		} + 		break; + 	    case ENCODER_OBJECT_ID_INTERNAL_DAC1: + 	    case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: +@@ -1617,10 +1663,8 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn) + 	    ErrorF("record type %d\n", Record->ucRecordType); + 	    switch (Record->ucRecordType) { + 		case ATOM_I2C_RECORD_TYPE: +-		    rhdAtomParseI2CRecord(info->atomBIOS, +-					  (ATOM_I2C_RECORD *)Record, +-					  &ddc_line); +-		    info->BiosConnector[i].ddc_i2c = atom_setup_i2c_bus(ddc_line); ++		    info->BiosConnector[i].ddc_i2c = rhdAtomParseI2CRecord(pScrn, info->atomBIOS, ++									   (ATOM_I2C_RECORD *)Record); + 		    break; + 		case ATOM_HPD_INT_RECORD_TYPE: + 		    break; +@@ -1636,6 +1680,71 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn) + } +  + Bool ++RADEONGetATOMLVDSInfo(xf86OutputPtr output) ++{ ++    ScrnInfoPtr pScrn = output->scrn; ++    RADEONInfoPtr  info       = RADEONPTR(pScrn); ++    RADEONOutputPrivatePtr radeon_output = output->driver_private; ++    atomDataTablesPtr atomDataPtr; ++    uint8_t crev, frev; ++ ++    atomDataPtr = info->atomBIOS->atomDataPtr; ++ ++    if (!rhdAtomGetTableRevisionAndSize( ++	    (ATOM_COMMON_TABLE_HEADER *)(atomDataPtr->LVDS_Info.base), ++	    &frev,&crev,NULL)) { ++	return FALSE; ++    } ++ ++    switch (crev) { ++    case 1: ++	radeon_output->PanelXRes = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usHActive); ++	radeon_output->PanelYRes = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usVActive); ++	radeon_output->DotClock   = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usPixClk) * 10; ++	radeon_output->HBlank     = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usHBlanking_Time); ++	radeon_output->HOverPlus  = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usHSyncOffset); ++	radeon_output->HSyncWidth = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usHSyncWidth); ++	radeon_output->VBlank     = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usVBlanking_Time); ++	radeon_output->VOverPlus  = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usVSyncOffset); ++	radeon_output->VSyncWidth = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usVSyncWidth); ++	radeon_output->PanelPwrDly = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->usOffDelayInMs); ++	radeon_output->lvds_misc   =  atomDataPtr->LVDS_Info.LVDS_Info->ucLVDS_Misc; ++	radeon_output->lvds_ss_id  =  atomDataPtr->LVDS_Info.LVDS_Info->ucSS_Id; ++	break; ++    case 2: ++	radeon_output->PanelXRes = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usHActive); ++	radeon_output->PanelYRes = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usVActive); ++	radeon_output->DotClock   = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usPixClk) * 10; ++	radeon_output->HBlank     = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usHBlanking_Time); ++	radeon_output->HOverPlus  = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usHSyncOffset); ++	radeon_output->HSyncWidth = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usHSyncWidth); ++	radeon_output->VBlank     = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usVBlanking_Time); ++	radeon_output->VOverPlus  = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usVSyncOffset); ++	radeon_output->VSyncWidth = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usVSyncWidth); ++	radeon_output->PanelPwrDly = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->usOffDelayInMs); ++	radeon_output->lvds_misc   =  atomDataPtr->LVDS_Info.LVDS_Info_v12->ucLVDS_Misc; ++	radeon_output->lvds_ss_id  =  atomDataPtr->LVDS_Info.LVDS_Info_v12->ucSS_Id; ++	break; ++    } ++ ++    if (radeon_output->PanelPwrDly > 2000 || radeon_output->PanelPwrDly < 0) ++	radeon_output->PanelPwrDly = 2000; ++ ++    radeon_output->Flags = 0; ++ ++    xf86DrvMsg(pScrn->scrnIndex, X_WARNING, ++	       "LVDS Info:\n" ++	       "XRes: %d, YRes: %d, DotClock: %d\n" ++	       "HBlank: %d, HOverPlus: %d, HSyncWidth: %d\n" ++	       "VBlank: %d, VOverPlus: %d, VSyncWidth: %d\n", ++	       radeon_output->PanelXRes, radeon_output->PanelYRes, radeon_output->DotClock, ++	       radeon_output->HBlank, radeon_output->HOverPlus, radeon_output->HSyncWidth, ++	       radeon_output->VBlank, radeon_output->VOverPlus, radeon_output->VSyncWidth); ++ ++    return TRUE; ++} ++ ++Bool + RADEONGetATOMTVInfo(xf86OutputPtr output) + { +     ScrnInfoPtr pScrn = output->scrn; +@@ -1751,6 +1860,30 @@ static void RADEONApplyATOMQuirks(ScrnInfoPtr pScrn, int index) + 	} +     } +  ++    /* Falcon NW laptop lists vga ddc line for LVDS */ ++    if ((info->Chipset == PCI_CHIP_RV410_5653) && ++	(PCI_SUB_VENDOR_ID(info->PciInfo) == 0x1462) && ++	(PCI_SUB_DEVICE_ID(info->PciInfo) == 0x0291)) { ++	if (info->BiosConnector[index].ConnectorType == CONNECTOR_LVDS) { ++	    info->BiosConnector[index].ddc_i2c.valid = FALSE; ++	} ++    } ++ ++    /* Funky macbooks */ ++    if ((info->Chipset == PCI_CHIP_RV530_71C5) && ++	(PCI_SUB_VENDOR_ID(info->PciInfo) == 0x106b) && ++	(PCI_SUB_DEVICE_ID(info->PciInfo) == 0x0080)) { ++	if ((index == ATOM_DEVICE_CRT1_INDEX) || ++	    (index == ATOM_DEVICE_CRT2_INDEX) || ++	    (index == ATOM_DEVICE_DFP2_INDEX)) ++	    info->BiosConnector[index].valid = FALSE; ++ ++	if (index == ATOM_DEVICE_DFP1_INDEX) { ++	    info->BiosConnector[index].DACType = DAC_TVDAC; ++	    info->BiosConnector[index].devices |= (1 << ATOM_DEVICE_CRT2_INDEX); ++	} ++    } ++ + } +  + Bool +@@ -2027,9 +2160,12 @@ RHDAtomBiosFunc(int scrnIndex, atomBiosHandlePtr handle, + VOID* + CailAllocateMemory(VOID *CAIL,UINT16 size) + { ++    void *ret; +     CAILFUNC(CAIL); +  +-    return malloc(size); ++    ret = malloc(size); ++    memset(ret, 0, size); ++    return ret; + } +  + VOID +@@ -2256,4 +2392,15 @@ atombios_get_command_table_version(atomBiosHandlePtr atomBIOS, int index, int *m + } +  +  ++UINT16 ATOM_BSWAP16(UINT16 x) ++{ ++    return bswap_16(x); ++} ++ ++UINT32 ATOM_BSWAP32(UINT32 x) ++{ ++    return bswap_32(x); ++} ++ ++ + #endif /* ATOM_BIOS */ +diff --git a/src/radeon_atombios.h b/src/radeon_atombios.h +index fe7044d..fbe8dd5 100644 +--- a/src/radeon_atombios.h ++++ b/src/radeon_atombios.h +@@ -125,12 +125,18 @@ atombios_static_pwrmgt_setup(ScrnInfoPtr pScrn, int enable); + extern Bool + RADEONGetATOMTVInfo(xf86OutputPtr output); +  ++extern Bool ++RADEONGetATOMLVDSInfo(xf86OutputPtr output); ++ + extern int + atombios_external_tmds_setup(xf86OutputPtr output, DisplayModePtr mode); +  + extern void + atombios_get_command_table_version(atomBiosHandlePtr atomBIOS, int index, int *major, int *minor); +  ++extern xf86MonPtr ++radeon_atom_get_edid(xf86OutputPtr output); ++ + Bool + rhdAtomASICInit(atomBiosHandlePtr handle); +  +diff --git a/src/radeon_atomwrapper.c b/src/radeon_atomwrapper.c +index 3e7ae01..bed1471 100644 +--- a/src/radeon_atomwrapper.c ++++ b/src/radeon_atomwrapper.c +@@ -31,6 +31,7 @@ +  + #define INT32 INT32 + #include "CD_Common_Types.h" ++#include "atombios.h" + #include "CD_Definitions.h" +  +  +diff --git a/src/radeon_bios.c b/src/radeon_bios.c +index 529dda7..22bb5ed 100644 +--- a/src/radeon_bios.c ++++ b/src/radeon_bios.c +@@ -266,6 +266,26 @@ radeon_read_unposted_bios(ScrnInfoPtr pScrn) +     return ret; + } +  ++Bool ++radeon_card_posted(ScrnInfoPtr pScrn) ++{ ++    RADEONInfoPtr info     = RADEONPTR(pScrn); ++    unsigned char *RADEONMMIO = info->MMIO; ++    uint32_t reg; ++ ++    if (IS_AVIVO_VARIANT) { ++	reg = INREG(AVIVO_D1CRTC_CONTROL) | INREG(AVIVO_D2CRTC_CONTROL); ++	if (reg & AVIVO_CRTC_EN) ++	    return TRUE; ++    } else { ++	reg = INREG(RADEON_CRTC_GEN_CNTL) | INREG(RADEON_CRTC2_GEN_CNTL); ++	if (reg & RADEON_CRTC_EN) ++	    return TRUE; ++    } ++ ++    return FALSE; ++} ++ + /* Read the Video BIOS block and the FP registers (if applicable). */ + Bool + RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr  pInt10) +@@ -273,6 +293,7 @@ RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr  pInt10) +     RADEONInfoPtr info     = RADEONPTR(pScrn); +     int tmp; +     unsigned short dptr; ++    Bool posted = TRUE; +  + #ifdef XSERVER_LIBPCIACCESS +     int size = info->PciInfo->rom_size > RADEON_VBIOS_SIZE ? info->PciInfo->rom_size : RADEON_VBIOS_SIZE; +@@ -291,6 +312,7 @@ RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr  pInt10) + 			 RADEON_VBIOS_SIZE); + 	} else if (!radeon_read_bios(pScrn)) { + 	    (void)radeon_read_unposted_bios(pScrn); ++	    posted = FALSE; + 	} +     } +  +@@ -326,7 +348,7 @@ RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr  pInt10) + 	info->VBIOS = NULL; + 	return FALSE; +     } +-  ++ +     tmp = info->ROMHeaderStart + 4; +     if ((RADEON_BIOS8(tmp)   == 'A' && + 	 RADEON_BIOS8(tmp+1) == 'T' && +@@ -344,51 +366,65 @@ RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr  pInt10) + 	       info->IsAtomBios ? "ATOM":"Legacy"); +  +     if (info->IsAtomBios) { +-        AtomBiosArgRec atomBiosArg; ++	AtomBiosArgRec atomBiosArg; +  +-        if (RHDAtomBiosFunc(pScrn->scrnIndex, NULL, ATOMBIOS_INIT, &atomBiosArg) +-            == ATOM_SUCCESS) { +-            info->atomBIOS = atomBiosArg.atomhandle; +-        } ++	if (RHDAtomBiosFunc(pScrn->scrnIndex, NULL, ATOMBIOS_INIT, &atomBiosArg) ++	    == ATOM_SUCCESS) { ++	    info->atomBIOS = atomBiosArg.atomhandle; ++	} +  +-        atomBiosArg.fb.start = info->FbFreeStart; +-        atomBiosArg.fb.size = info->FbFreeSize; +-        if (RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, ATOMBIOS_ALLOCATE_FB_SCRATCH, ++	atomBiosArg.fb.start = info->FbFreeStart; ++	atomBiosArg.fb.size = info->FbFreeSize; ++	if (RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, ATOMBIOS_ALLOCATE_FB_SCRATCH, + 			    &atomBiosArg) == ATOM_SUCCESS) { +  + 	    info->FbFreeStart = atomBiosArg.fb.start; + 	    info->FbFreeSize = atomBiosArg.fb.size; +-        } +- +-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, GET_DEFAULT_ENGINE_CLOCK, +-                        &atomBiosArg); +-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, GET_DEFAULT_MEMORY_CLOCK, +-                        &atomBiosArg); +-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, +-                        GET_MAX_PIXEL_CLOCK_PLL_OUTPUT, &atomBiosArg); +-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, +-                        GET_MIN_PIXEL_CLOCK_PLL_OUTPUT, &atomBiosArg); +-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, +-                        GET_MAX_PIXEL_CLOCK_PLL_INPUT, &atomBiosArg); +-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, ++	} ++ ++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, GET_DEFAULT_ENGINE_CLOCK, ++			&atomBiosArg); ++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, GET_DEFAULT_MEMORY_CLOCK, ++			&atomBiosArg); ++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, ++			GET_MAX_PIXEL_CLOCK_PLL_OUTPUT, &atomBiosArg); ++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, ++			GET_MIN_PIXEL_CLOCK_PLL_OUTPUT, &atomBiosArg); ++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, ++			GET_MAX_PIXEL_CLOCK_PLL_INPUT, &atomBiosArg); ++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, + 			GET_MIN_PIXEL_CLOCK_PLL_INPUT, &atomBiosArg); +-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, ++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, + 			GET_MAX_PIXEL_CLK, &atomBiosArg); +-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, +-                        GET_REF_CLOCK, &atomBiosArg); ++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, ++			GET_REF_CLOCK, &atomBiosArg); +  + 	info->MasterDataStart = RADEON_BIOS16 (info->ROMHeaderStart + 32); +     } ++ ++    /* We are a bit too quick at using this "unposted" to re-post the ++     * card. This causes some problems with VT switch on some machines, ++     * so let's work around this for now by only POSTing if none of the ++     * CRTCs are enabled ++     */ ++    if ((!posted) && info->VBIOS) { ++	posted = radeon_card_posted(pScrn); ++    } ++ ++    if ((!posted) && info->VBIOS) { ++	if (info->IsAtomBios) { ++	    if (!rhdAtomASICInit(info->atomBIOS)) ++		xf86DrvMsg(pScrn->scrnIndex, X_WARNING, ++			   "%s: AsicInit failed.\n",__func__); ++	} else { + #if 0 +-    else { +-	/* non-primary card may need posting */ +-	if (!pInt10) { +-	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Attempting to POST via BIOS tables\n"); ++	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Attempting to POST via legacy BIOS tables\n"); + 	    RADEONGetBIOSInitTableOffsets(pScrn); + 	    RADEONPostCardFromBIOSTables(pScrn); ++#endif + 	} +     } +-#endif ++ +     return TRUE; + } +  +@@ -397,7 +433,7 @@ static Bool RADEONGetATOMConnectorInfoFromBIOS (ScrnInfoPtr pScrn) +     RADEONInfoPtr info = RADEONPTR (pScrn); +  +     if (!info->VBIOS) return FALSE; +-     ++ +     if (RADEONGetATOMConnectorInfoFromBIOSObject(pScrn)) + 	return TRUE; +  +@@ -411,28 +447,41 @@ static void RADEONApplyLegacyQuirks(ScrnInfoPtr pScrn, int index) + { +     RADEONInfoPtr info = RADEONPTR (pScrn); +  +-    /* on XPRESS chips, CRT2_DDC and MONID_DCC both use the  +-     * MONID gpio, but use different pins. +-     * CRT2_DDC uses the standard pinout, MONID_DDC uses +-     * something else. ++    /* For RS300/RS350/RS400 chips, there is no primary DAC. Force VGA port to use TVDAC ++     * Also there is no internal TMDS +      */ ++    if ((info->ChipFamily == CHIP_FAMILY_RS300) || ++	(info->ChipFamily == CHIP_FAMILY_RS400) || ++	(info->ChipFamily == CHIP_FAMILY_RS480)) { ++	info->BiosConnector[index].DACType = DAC_TVDAC; ++	info->BiosConnector[index].TMDSType = TMDS_EXT; ++    } ++ ++    /* XPRESS DDC quirks */ +     if ((info->ChipFamily == CHIP_FAMILY_RS400 || + 	 info->ChipFamily == CHIP_FAMILY_RS480) && +-	info->BiosConnector[index].ConnectorType == CONNECTOR_VGA && + 	info->BiosConnector[index].ddc_i2c.mask_clk_reg == RADEON_GPIO_CRT2_DDC) { + 	info->BiosConnector[index].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_MONID); +-    } +- +-    /* XPRESS desktop chips seem to have a proprietary connector listed for +-     * DVI-D, try and do the right thing here. +-     */ +-    if ((!info->IsMobility) && +-	(info->BiosConnector[index].ConnectorType == CONNECTOR_LVDS)) { +-	xf86DrvMsg(pScrn->scrnIndex, X_WARNING, +-		   "Proprietary connector found, assuming DVI-D\n"); +-	info->BiosConnector[index].DACType = DAC_NONE; +-	info->BiosConnector[index].TMDSType = TMDS_EXT; +-	info->BiosConnector[index].ConnectorType = CONNECTOR_DVI_D; ++    } else if ((info->ChipFamily == CHIP_FAMILY_RS400 || ++		info->ChipFamily == CHIP_FAMILY_RS480) && ++	       info->BiosConnector[index].ddc_i2c.mask_clk_reg == RADEON_GPIO_MONID) { ++	info->BiosConnector[index].ddc_i2c.valid = TRUE; ++	info->BiosConnector[index].ddc_i2c.mask_clk_mask = (0x20 << 8); ++	info->BiosConnector[index].ddc_i2c.mask_data_mask = 0x80; ++	info->BiosConnector[index].ddc_i2c.a_clk_mask = (0x20 << 8); ++	info->BiosConnector[index].ddc_i2c.a_data_mask = 0x80; ++	info->BiosConnector[index].ddc_i2c.put_clk_mask = (0x20 << 8); ++	info->BiosConnector[index].ddc_i2c.put_data_mask = 0x80; ++	info->BiosConnector[index].ddc_i2c.get_clk_mask = (0x20 << 8); ++	info->BiosConnector[index].ddc_i2c.get_data_mask = 0x80; ++	info->BiosConnector[index].ddc_i2c.mask_clk_reg = RADEON_GPIOPAD_MASK; ++	info->BiosConnector[index].ddc_i2c.mask_data_reg = RADEON_GPIOPAD_MASK; ++	info->BiosConnector[index].ddc_i2c.a_clk_reg = RADEON_GPIOPAD_A; ++	info->BiosConnector[index].ddc_i2c.a_data_reg = RADEON_GPIOPAD_A; ++	info->BiosConnector[index].ddc_i2c.put_clk_reg = RADEON_GPIOPAD_EN; ++	info->BiosConnector[index].ddc_i2c.put_data_reg = RADEON_GPIOPAD_EN; ++	info->BiosConnector[index].ddc_i2c.get_clk_reg = RADEON_LCD_GPIO_Y_REG; ++	info->BiosConnector[index].ddc_i2c.get_data_reg = RADEON_LCD_GPIO_Y_REG; +     } +  +     /* Certain IBM chipset RN50s have a BIOS reporting two VGAs, +@@ -454,6 +503,16 @@ static void RADEONApplyLegacyQuirks(ScrnInfoPtr pScrn, int index) + 	} +     } +  ++    /* X300 card with extra non-existent DVI port */ ++    if (info->Chipset == PCI_CHIP_RV370_5B60 && ++	PCI_SUB_VENDOR_ID(info->PciInfo) == 0x17af && ++	PCI_SUB_DEVICE_ID(info->PciInfo) == 0x201e && ++	index == 2) { ++	if (info->BiosConnector[index].ConnectorType == CONNECTOR_DVI_I) { ++	    info->BiosConnector[index].valid = FALSE; ++	} ++    } ++ + } +  + static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn) +@@ -479,7 +538,7 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn) + 	    ConnectorType = (tmp >> 12) & 0xf; + 	    switch (ConnectorType) { + 	    case CONNECTOR_PROPRIETARY_LEGACY: +-		info->BiosConnector[i].ConnectorType = CONNECTOR_LVDS; ++		info->BiosConnector[i].ConnectorType = CONNECTOR_DVI_D; + 		break; + 	    case CONNECTOR_CRT_LEGACY: + 		info->BiosConnector[i].ConnectorType = CONNECTOR_VGA; +@@ -528,10 +587,6 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn) + 	    else + 		info->BiosConnector[i].DACType = DAC_PRIMARY; +  +-	    /* For RS300/RS350/RS400 chips, there is no primary DAC. Force VGA port to use TVDAC*/ +-	    if (info->IsIGP) +-		info->BiosConnector[i].DACType = DAC_TVDAC; +- + 	    if ((tmp >> 4) & 0x1) + 		info->BiosConnector[i].TMDSType = TMDS_EXT; + 	    else +@@ -560,7 +615,10 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn) +     } +  +     /* check LVDS table */ +-    if (info->IsMobility) { ++    /* RS4xx can be mobile or desktop so check the connectors */ ++    if (info->IsMobility || ++	info->ChipFamily == CHIP_FAMILY_RS400 || ++	info->ChipFamily == CHIP_FAMILY_RS480) { + 	offset = RADEON_BIOS16(info->ROMHeaderStart + 0x40); + 	if (offset) { + 	    info->BiosConnector[4].valid = TRUE; +@@ -591,10 +649,10 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn) + 			    break; + 			case DDC_LCD: + 			    info->BiosConnector[4].ddc_i2c = legacy_setup_i2c_bus(RADEON_LCD_GPIO_MASK); +-			    info->BiosConnector[4].ddc_i2c.mask_clk_mask = +-				RADEON_BIOS32(tmp0 + 0x03) | RADEON_BIOS32(tmp0 + 0x07); +-			    info->BiosConnector[4].ddc_i2c.mask_data_mask = +-				RADEON_BIOS32(tmp0 + 0x03) | RADEON_BIOS32(tmp0 + 0x07); ++			    info->BiosConnector[4].ddc_i2c.mask_clk_mask = RADEON_BIOS32(tmp0 + 0x03); ++			    info->BiosConnector[4].ddc_i2c.mask_data_mask = RADEON_BIOS32(tmp0 + 0x07); ++			    info->BiosConnector[4].ddc_i2c.a_clk_mask = RADEON_BIOS32(tmp0 + 0x03); ++			    info->BiosConnector[4].ddc_i2c.a_data_mask = RADEON_BIOS32(tmp0 + 0x07); + 			    info->BiosConnector[4].ddc_i2c.put_clk_mask = RADEON_BIOS32(tmp0 + 0x03); + 			    info->BiosConnector[4].ddc_i2c.put_data_mask = RADEON_BIOS32(tmp0 + 0x07); + 			    info->BiosConnector[4].ddc_i2c.get_clk_mask = RADEON_BIOS32(tmp0 + 0x03); +@@ -602,10 +660,10 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn) + 			    break; + 			case DDC_GPIO: + 			    info->BiosConnector[4].ddc_i2c = legacy_setup_i2c_bus(RADEON_MDGPIO_EN_REG); +-			    info->BiosConnector[4].ddc_i2c.mask_clk_mask = +-				RADEON_BIOS32(tmp0 + 0x03) | RADEON_BIOS32(tmp0 + 0x07); +-			    info->BiosConnector[4].ddc_i2c.mask_data_mask = +-				RADEON_BIOS32(tmp0 + 0x03) | RADEON_BIOS32(tmp0 + 0x07); ++			    info->BiosConnector[4].ddc_i2c.mask_clk_mask =  RADEON_BIOS32(tmp0 + 0x03); ++			    info->BiosConnector[4].ddc_i2c.mask_data_mask = RADEON_BIOS32(tmp0 + 0x07); ++			    info->BiosConnector[4].ddc_i2c.a_clk_mask = RADEON_BIOS32(tmp0 + 0x03); ++			    info->BiosConnector[4].ddc_i2c.a_data_mask = RADEON_BIOS32(tmp0 + 0x07); + 			    info->BiosConnector[4].ddc_i2c.put_clk_mask = RADEON_BIOS32(tmp0 + 0x03); + 			    info->BiosConnector[4].ddc_i2c.put_data_mask = RADEON_BIOS32(tmp0 + 0x07); + 			    info->BiosConnector[4].ddc_i2c.get_clk_mask = RADEON_BIOS32(tmp0 + 0x03); +@@ -917,30 +975,9 @@ Bool RADEONGetLVDSInfoFromBIOS (xf86OutputPtr output) +  +     if (!info->VBIOS) return FALSE; +  +-    if (info->IsAtomBios) { +-	if((tmp = RADEON_BIOS16 (info->MasterDataStart + 16))) { +- +-	    radeon_output->PanelXRes = RADEON_BIOS16(tmp+6); +-	    radeon_output->PanelYRes = RADEON_BIOS16(tmp+10); +-	    radeon_output->DotClock   = RADEON_BIOS16(tmp+4)*10; +-	    radeon_output->HBlank     = RADEON_BIOS16(tmp+8); +-	    radeon_output->HOverPlus  = RADEON_BIOS16(tmp+14); +-	    radeon_output->HSyncWidth = RADEON_BIOS16(tmp+16); +-	    radeon_output->VBlank     = RADEON_BIOS16(tmp+12); +-	    radeon_output->VOverPlus  = RADEON_BIOS16(tmp+18); +-	    radeon_output->VSyncWidth = RADEON_BIOS16(tmp+20); +-	    radeon_output->PanelPwrDly = RADEON_BIOS16(tmp+40); +- +-	    if (radeon_output->PanelPwrDly > 2000 || radeon_output->PanelPwrDly < 0) +-		radeon_output->PanelPwrDly = 2000; +- +-	    radeon_output->Flags = 0; +-	} else { +-	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING, +-		       "No LVDS Info Table found in BIOS!\n"); +-	    return FALSE; +-	} +-    } else { ++    if (info->IsAtomBios) ++	return RADEONGetATOMLVDSInfo(output); ++    else { +  + 	tmp = RADEON_BIOS16(info->ROMHeaderStart + 0x40); +  +@@ -963,7 +1000,7 @@ Bool RADEONGetLVDSInfoFromBIOS (xf86OutputPtr output) + 	    radeon_output->PanelYRes = RADEON_BIOS16(tmp+27); + 	    xf86DrvMsg(0, X_INFO, "Panel Size from BIOS: %dx%d\n", + 		       radeon_output->PanelXRes, radeon_output->PanelYRes); +-	 ++ + 	    radeon_output->PanelPwrDly = RADEON_BIOS16(tmp+44); + 	    if (radeon_output->PanelPwrDly > 2000 || radeon_output->PanelPwrDly < 0) + 		radeon_output->PanelPwrDly = 2000; +@@ -1118,6 +1155,50 @@ Bool RADEONGetTMDSInfoFromBIOS (xf86OutputPtr output) +     return FALSE; + } +  ++static RADEONI2CBusRec ++RADEONLookupI2CBlock(ScrnInfoPtr pScrn, int id) ++{ ++    RADEONInfoPtr info = RADEONPTR (pScrn); ++    int offset, blocks, i; ++    RADEONI2CBusRec i2c; ++ ++    memset(&i2c, 0, sizeof(RADEONI2CBusRec)); ++    i2c.valid = FALSE; ++ ++    offset = RADEON_BIOS16(info->ROMHeaderStart + 0x70); ++    if (offset) { ++	blocks = RADEON_BIOS8(offset + 2); ++	for (i = 0; i < blocks; i++) { ++	    int i2c_id = RADEON_BIOS8(offset + 3 + (i * 5) + 0); ++	    if (id == i2c_id) { ++		int reg = RADEON_BIOS16(offset + 3 + (i * 5) + 1) * 4; ++		int clock_shift = RADEON_BIOS8(offset + 3 + (i * 5) + 3); ++		int data_shift = RADEON_BIOS8(offset + 3 + (i * 5) + 4); ++ ++		i2c.mask_clk_mask = (1 << clock_shift); ++		i2c.mask_data_mask = (1 << data_shift); ++		i2c.a_clk_mask = (1 << clock_shift); ++		i2c.a_data_mask = (1 << data_shift); ++		i2c.put_clk_mask = (1 << clock_shift); ++		i2c.put_data_mask = (1 << data_shift); ++		i2c.get_clk_mask = (1 << clock_shift); ++		i2c.get_data_mask = (1 << data_shift); ++		i2c.mask_clk_reg = reg; ++		i2c.mask_data_reg = reg; ++		i2c.a_clk_reg = reg; ++		i2c.a_data_reg = reg; ++		i2c.put_clk_reg = reg; ++		i2c.put_data_reg = reg; ++		i2c.get_clk_reg = reg; ++		i2c.get_data_reg = reg; ++		i2c.valid = TRUE; ++		break; ++	    } ++	} ++    } ++    return i2c; ++} ++ + Bool RADEONGetExtTMDSInfoFromBIOS (xf86OutputPtr output) + { +     ScrnInfoPtr pScrn = output->scrn; +@@ -1129,6 +1210,52 @@ Bool RADEONGetExtTMDSInfoFromBIOS (xf86OutputPtr output) +  +     if (info->IsAtomBios) { + 	return FALSE; ++    } else if (info->IsIGP) { ++	/* RS4xx TMDS stuff is in the mobile table */ ++	offset = RADEON_BIOS16(info->ROMHeaderStart + 0x42); ++	if (offset) { ++	    int rev = RADEON_BIOS8(offset); ++	    if (rev >= 6) { ++		offset = RADEON_BIOS16(offset + 0x17); ++		if (offset) { ++		    offset = RADEON_BIOS16(offset + 2); ++		    rev = RADEON_BIOS8(offset); ++		    if (offset && (rev > 1)) { ++			int blocks = RADEON_BIOS8(offset + 3); ++			int index = offset + 4; ++			radeon_output->dvo_i2c.valid = FALSE; ++			while (blocks > 0) { ++			    int id = RADEON_BIOS16(index); ++			    index += 2; ++			    switch (id >> 13) { ++			    case 0: ++				index += 6; ++				break; ++			    case 2: ++				index += 10; ++				break; ++			    case 3: ++				index += 2; ++				break; ++			    case 4: ++				index += 2; ++				break; ++			    case 6: ++				radeon_output->dvo_i2c_slave_addr = ++				    RADEON_BIOS16(index) & 0xff; ++				index += 2; ++				radeon_output->dvo_i2c = ++				    RADEONLookupI2CBlock(pScrn, RADEON_BIOS8(index)); ++				return TRUE; ++			    default: ++				break; ++			    } ++			    blocks--; ++			} ++		    } ++		} ++	    } ++	} +     } else { + 	offset = RADEON_BIOS16(info->ROMHeaderStart + 0x58); + 	if (offset) { +@@ -1148,10 +1275,11 @@ Bool RADEONGetExtTMDSInfoFromBIOS (xf86OutputPtr output) + 		radeon_output->dvo_i2c = legacy_setup_i2c_bus(RADEON_GPIO_VGA_DDC); + 	    else if (gpio_reg == 4) + 		radeon_output->dvo_i2c = legacy_setup_i2c_bus(RADEON_GPIO_CRT2_DDC); +-	    else if (gpio_reg == 5) ++	    else if (gpio_reg == 5) { + 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 			   "unsupported MM gpio_reg\n"); +-	    else { ++		return FALSE; ++	    } else { + 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 			   "Unknown gpio reg: %d\n", gpio_reg); + 		return FALSE; +@@ -1179,12 +1307,82 @@ Bool RADEONInitExtTMDSInfoFromBIOS (xf86OutputPtr output) +     unsigned char *RADEONMMIO = info->MMIO; +     RADEONOutputPrivatePtr radeon_output = output->driver_private; +     int offset, index, id; +-    uint32_t val, reg, andmask, ormask; ++    uint32_t val, reg, and_mask, or_mask; +  +     if (!info->VBIOS) return FALSE; +  +     if (info->IsAtomBios) { + 	return FALSE; ++    } else if (info->IsIGP) { ++	/* RS4xx TMDS stuff is in the mobile table */ ++	offset = RADEON_BIOS16(info->ROMHeaderStart + 0x42); ++	if (offset) { ++	    int rev = RADEON_BIOS8(offset); ++	    if (rev >= 6) { ++		offset = RADEON_BIOS16(offset + 0x17); ++		if (offset) { ++		    offset = RADEON_BIOS16(offset + 2); ++		    rev = RADEON_BIOS8(offset); ++		    if (offset && (rev > 1)) { ++			int blocks = RADEON_BIOS8(offset + 3); ++			index = offset + 4; ++			while (blocks > 0) { ++			    id = RADEON_BIOS16(index); ++			    index += 2; ++			    switch (id >> 13) { ++			    case 0: ++				reg = (id & 0x1fff) * 4; ++				val = RADEON_BIOS32(index); ++				index += 4; ++				ErrorF("MMIO: 0x%x 0x%x\n", ++				       (unsigned)reg, (unsigned)val); ++				OUTREG(reg, val); ++				break; ++			    case 2: ++				reg = (id & 0x1fff) * 4; ++				and_mask = RADEON_BIOS32(index); ++				index += 4; ++				or_mask = RADEON_BIOS32(index); ++				index += 4; ++				ErrorF("MMIO mask: 0x%x 0x%x 0x%x\n", ++				       (unsigned)reg, (unsigned)and_mask, (unsigned)or_mask); ++				val = INREG(reg); ++				val = (val & and_mask) | or_mask; ++				OUTREG(reg, val); ++				break; ++			    case 3: ++				val = RADEON_BIOS16(index); ++				index += 2; ++				ErrorF("delay: %u\n", (unsigned)val); ++				usleep(val); ++				break; ++			    case 4: ++				val = RADEON_BIOS16(index); ++				index += 2; ++				ErrorF("delay: %u\n", (unsigned)val * 1000); ++				usleep(val * 1000); ++				break; ++			    case 6: ++				index++; ++				reg = RADEON_BIOS8(index); ++				index++; ++				val = RADEON_BIOS8(index); ++				index++; ++				ErrorF("i2c write: 0x%x, 0x%x\n", (unsigned)reg, ++				       (unsigned)val); ++				RADEONDVOWriteByte(radeon_output->DVOChip, reg, val); ++				break; ++			    default: ++				ErrorF("unknown id %d\n", id>>13); ++				return FALSE; ++			    } ++			    blocks--; ++			} ++			return TRUE; ++		    } ++		} ++	    } ++	} +     } else { + 	offset = RADEON_BIOS16(info->ROMHeaderStart + 0x58); + 	if (offset) { +@@ -1194,24 +1392,24 @@ Bool RADEONInitExtTMDSInfoFromBIOS (xf86OutputPtr output) + 		index += 2; + 		switch(id >> 13) { + 		case 0: +-		    reg = id & 0x1fff; ++		    reg = (id & 0x1fff) * 4; + 		    val = RADEON_BIOS32(index); + 		    index += 4; +-		    ErrorF("WRITE INDEXED: 0x%x 0x%x\n", ++		    ErrorF("MMIO: 0x%x 0x%x\n", + 			   (unsigned)reg, (unsigned)val); +-		    /*OUTREG(reg, val);*/ ++		    OUTREG(reg, val); + 		    break; + 		case 2: +-		    reg = id & 0x1fff; +-		    andmask = RADEON_BIOS32(index); ++		    reg = (id & 0x1fff) * 4; ++		    and_mask = RADEON_BIOS32(index); + 		    index += 4; +-		    ormask = RADEON_BIOS32(index); ++		    or_mask = RADEON_BIOS32(index); + 		    index += 4; + 		    val = INREG(reg); +-		    val = (val & andmask) | ormask; +-		    ErrorF("MASK DIRECT: 0x%x 0x%x 0x%x\n", +-			   (unsigned)reg, (unsigned)andmask, (unsigned)ormask); +-		    /*OUTREG(reg, val);*/ ++		    val = (val & and_mask) | or_mask; ++		    ErrorF("MMIO mask: 0x%x 0x%x 0x%x\n", ++			   (unsigned)reg, (unsigned)and_mask, (unsigned)or_mask); ++		    OUTREG(reg, val); + 		    break; + 		case 4: + 		    val = RADEON_BIOS16(index); +@@ -1221,15 +1419,15 @@ Bool RADEONInitExtTMDSInfoFromBIOS (xf86OutputPtr output) + 		    break; + 		case 5: + 		    reg = id & 0x1fff; +-		    andmask = RADEON_BIOS32(index); ++		    and_mask = RADEON_BIOS32(index); + 		    index += 4; +-		    ormask = RADEON_BIOS32(index); ++		    or_mask = RADEON_BIOS32(index); + 		    index += 4; +-		    ErrorF("MASK PLL: 0x%x 0x%x 0x%x\n", +-			   (unsigned)reg, (unsigned)andmask, (unsigned)ormask); +-		    /*val = INPLL(pScrn, reg); +-		    val = (val & andmask) | ormask; +-		    OUTPLL(pScrn, reg, val);*/ ++		    ErrorF("PLL mask: 0x%x 0x%x 0x%x\n", ++			   (unsigned)reg, (unsigned)and_mask, (unsigned)or_mask); ++		    val = INPLL(pScrn, reg); ++		    val = (val & and_mask) | or_mask; ++		    OUTPLL(pScrn, reg, val); + 		    break; + 		case 6: + 		    reg = id & 0x1fff; +diff --git a/src/radeon_chipinfo_gen.h b/src/radeon_chipinfo_gen.h +index ed3174a..daaf717 100644 +--- a/src/radeon_chipinfo_gen.h ++++ b/src/radeon_chipinfo_gen.h +@@ -1,6 +1,7 @@ + /* This file is autogenerated please do not edit */ + RADEONCardInfo RADEONCards[] = { +  { 0x3150, CHIP_FAMILY_RV380, 1, 0, 0, 0, 0 }, ++ { 0x3151, CHIP_FAMILY_RV380, 0, 0, 0, 0, 0 }, +  { 0x3152, CHIP_FAMILY_RV380, 1, 0, 0, 0, 0 }, +  { 0x3154, CHIP_FAMILY_RV380, 1, 0, 0, 0, 0 }, +  { 0x3E50, CHIP_FAMILY_RV380, 0, 0, 0, 0, 0 }, +@@ -250,6 +251,9 @@ RADEONCardInfo RADEONCards[] = { +  { 0x940A, CHIP_FAMILY_R600, 0, 0, 0, 0, 0 }, +  { 0x940B, CHIP_FAMILY_R600, 0, 0, 0, 0, 0 }, +  { 0x940F, CHIP_FAMILY_R600, 0, 0, 0, 0, 0 }, ++ { 0x9440, CHIP_FAMILY_RV770, 0, 0, 0, 0, 0 }, ++ { 0x9441, CHIP_FAMILY_RV770, 0, 0, 0, 0, 0 }, ++ { 0x9442, CHIP_FAMILY_RV770, 0, 0, 0, 0, 0 }, +  { 0x94C0, CHIP_FAMILY_RV610, 0, 0, 0, 0, 0 }, +  { 0x94C1, CHIP_FAMILY_RV610, 0, 0, 0, 0, 0 }, +  { 0x94C3, CHIP_FAMILY_RV610, 0, 0, 0, 0, 0 }, +@@ -267,6 +271,7 @@ RADEONCardInfo RADEONCards[] = { +  { 0x9507, CHIP_FAMILY_RV670, 0, 0, 0, 0, 0 }, +  { 0x950F, CHIP_FAMILY_RV670, 0, 0, 0, 0, 0 }, +  { 0x9511, CHIP_FAMILY_RV670, 0, 0, 0, 0, 0 }, ++ { 0x9515, CHIP_FAMILY_RV670, 0, 0, 0, 0, 0 }, +  { 0x9580, CHIP_FAMILY_RV630, 0, 0, 0, 0, 0 }, +  { 0x9581, CHIP_FAMILY_RV630, 1, 0, 0, 0, 0 }, +  { 0x9583, CHIP_FAMILY_RV630, 1, 0, 0, 0, 0 }, +diff --git a/src/radeon_chipset_gen.h b/src/radeon_chipset_gen.h +index d1761d2..79b094a 100644 +--- a/src/radeon_chipset_gen.h ++++ b/src/radeon_chipset_gen.h +@@ -1,6 +1,7 @@ + /* This file is autogenerated please do not edit */ + static SymTabRec RADEONChipsets[] = { +   { PCI_CHIP_RV380_3150, "ATI Radeon Mobility X600 (M24) 3150 (PCIE)" }, ++  { PCI_CHIP_RV380_3151, "ATI FireMV 2400 (PCI)" }, +   { PCI_CHIP_RV380_3152, "ATI Radeon Mobility X300 (M24) 3152 (PCIE)" }, +   { PCI_CHIP_RV380_3154, "ATI FireGL M24 GL 3154 (PCIE)" }, +   { PCI_CHIP_RV380_3E50, "ATI Radeon X600 (RV380) 3E50 (PCIE)" }, +@@ -250,6 +251,9 @@ static SymTabRec RADEONChipsets[] = { +   { PCI_CHIP_R600_940A, "ATI FireGL V8650" }, +   { PCI_CHIP_R600_940B, "ATI FireGL V8600" }, +   { PCI_CHIP_R600_940F, "ATI FireGL V7600" }, ++  { PCI_CHIP_RV770_9440, "ATI Radeon 4800 Series" }, ++  { PCI_CHIP_RV770_9441, "ATI Radeon HD 4870 x2" }, ++  { PCI_CHIP_RV770_9442, "ATI Radeon 4800 Series" }, +   { PCI_CHIP_RV610_94C0, "ATI RV610" }, +   { PCI_CHIP_RV610_94C1, "ATI Radeon HD 2400 XT" }, +   { PCI_CHIP_RV610_94C3, "ATI Radeon HD 2400 Pro" }, +@@ -267,6 +271,7 @@ static SymTabRec RADEONChipsets[] = { +   { PCI_CHIP_RV670_9507, "ATI RV670" }, +   { PCI_CHIP_RV670_950F, "ATI Radeon HD3870 X2" }, +   { PCI_CHIP_RV670_9511, "ATI FireGL V7700" }, ++  { PCI_CHIP_RV670_9515, "ATI Radeon HD3850" }, +   { PCI_CHIP_RV630_9580, "ATI RV630" }, +   { PCI_CHIP_RV630_9581, "ATI Mobility Radeon HD 2600" }, +   { PCI_CHIP_RV630_9583, "ATI Mobility Radeon HD 2600 XT" }, +diff --git a/src/radeon_common.h b/src/radeon_common.h +deleted file mode 100644 +index 193c1f9..0000000 +--- a/src/radeon_common.h ++++ /dev/null +@@ -1,496 +0,0 @@ +-/* radeon_common.h -- common header definitions for Radeon 2D/3D/DRM suite +- * +- * Copyright 2000 VA Linux Systems, Inc., Fremont, California. +- * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas. +- * All Rights Reserved. +- * +- * Permission is hereby granted, free of charge, to any person obtaining a +- * copy of this software and associated documentation files (the "Software"), +- * to deal in the Software without restriction, including without limitation +- * the rights to use, copy, modify, merge, publish, distribute, sublicense, +- * and/or sell copies of the Software, and to permit persons to whom the +- * Software is furnished to do so, subject to the following conditions: +- * +- * The above copyright notice and this permission notice (including the next +- * paragraph) shall be included in all copies or substantial portions of the +- * Software. +- * +- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL +- * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +- * DEALINGS IN THE SOFTWARE. +- * +- * Author: +- *   Gareth Hughes <gareth@valinux.com> +- *   Kevin E. Martin <martin@valinux.com> +- *   Keith Whitwell <keith@tungstengraphics.com> +- * +- * Converted to common header format: +- *   Jens Owen <jens@tungstengraphics.com> +- * +- */ +- +-#ifndef _RADEON_COMMON_H_ +-#define _RADEON_COMMON_H_ +- +-#include <inttypes.h> +-#include "xf86drm.h" +- +-/* WARNING: If you change any of these defines, make sure to change +- * the kernel include file as well (radeon_drm.h) +- */ +- +-/* Driver specific DRM command indices +- * NOTE: these are not OS specific, but they are driver specific +- */ +-#define DRM_RADEON_CP_INIT                0x00 +-#define DRM_RADEON_CP_START               0x01 +-#define DRM_RADEON_CP_STOP                0x02 +-#define DRM_RADEON_CP_RESET               0x03 +-#define DRM_RADEON_CP_IDLE                0x04 +-#define DRM_RADEON_RESET                  0x05 +-#define DRM_RADEON_FULLSCREEN             0x06 +-#define DRM_RADEON_SWAP                   0x07 +-#define DRM_RADEON_CLEAR                  0x08 +-#define DRM_RADEON_VERTEX                 0x09 +-#define DRM_RADEON_INDICES                0x0a +-#define DRM_RADEON_STIPPLE                0x0c +-#define DRM_RADEON_INDIRECT               0x0d +-#define DRM_RADEON_TEXTURE                0x0e +-#define DRM_RADEON_VERTEX2                0x0f +-#define DRM_RADEON_CMDBUF                 0x10 +-#define DRM_RADEON_GETPARAM               0x11 +-#define DRM_RADEON_FLIP                   0x12 +-#define DRM_RADEON_ALLOC                  0x13 +-#define DRM_RADEON_FREE                   0x14 +-#define DRM_RADEON_INIT_HEAP              0x15 +-#define DRM_RADEON_IRQ_EMIT               0x16 +-#define DRM_RADEON_IRQ_WAIT               0x17 +-#define DRM_RADEON_CP_RESUME              0x18 +-#define DRM_RADEON_SETPARAM               0x19 +-#define DRM_RADEON_SURF_ALLOC             0x1a +-#define DRM_RADEON_SURF_FREE              0x1b +-#define DRM_RADEON_MAX_DRM_COMMAND_INDEX  0x39 +- +- +-#define RADEON_FRONT	0x1 +-#define RADEON_BACK	0x2 +-#define RADEON_DEPTH	0x4 +-#define RADEON_STENCIL	0x8 +- +-#define RADEON_CLEAR_X1        0 +-#define RADEON_CLEAR_Y1        1 +-#define RADEON_CLEAR_X2        2 +-#define RADEON_CLEAR_Y2        3 +-#define RADEON_CLEAR_DEPTH     4 +- +- +-typedef struct { +-   enum { +-      DRM_RADEON_INIT_CP    = 0x01, +-      DRM_RADEON_CLEANUP_CP = 0x02, +-      DRM_RADEON_INIT_R200_CP = 0x03, +-      DRM_RADEON_INIT_R300_CP = 0x04 +-   } func; +-   unsigned long sarea_priv_offset; +-   int is_pci; +-   int cp_mode; +-   int gart_size; +-   int ring_size; +-   int usec_timeout; +- +-   unsigned int fb_bpp; +-   unsigned int front_offset, front_pitch; +-   unsigned int back_offset, back_pitch; +-   unsigned int depth_bpp; +-   unsigned int depth_offset, depth_pitch; +- +-   unsigned long fb_offset; +-   unsigned long mmio_offset; +-   unsigned long ring_offset; +-   unsigned long ring_rptr_offset; +-   unsigned long buffers_offset; +-   unsigned long gart_textures_offset; +-} drmRadeonInit; +- +-typedef struct { +-   int flush; +-   int idle; +-} drmRadeonCPStop; +- +-typedef struct { +-   int idx; +-   int start; +-   int end; +-   int discard; +-} drmRadeonIndirect; +- +-typedef union drmRadeonClearR { +-        float f[5]; +-        unsigned int ui[5]; +-} drmRadeonClearRect; +- +-typedef struct drmRadeonClearT { +-        unsigned int flags; +-        unsigned int clear_color; +-        unsigned int clear_depth; +-        unsigned int color_mask; +-        unsigned int depth_mask;   /* misnamed field:  should be stencil */ +-        drmRadeonClearRect *depth_boxes; +-} drmRadeonClearType; +- +-typedef struct drmRadeonFullscreenT { +-        enum { +-                RADEON_INIT_FULLSCREEN    = 0x01, +-                RADEON_CLEANUP_FULLSCREEN = 0x02 +-        } func; +-} drmRadeonFullscreenType; +- +-typedef struct { +-        unsigned int *mask; +-} drmRadeonStipple; +- +-typedef struct { +-        unsigned int x; +-        unsigned int y; +-        unsigned int width; +-        unsigned int height; +-        const void *data; +-} drmRadeonTexImage; +- +-typedef struct { +-        unsigned int offset; +-        int pitch; +-        int format; +-        int width;                      /* Texture image coordinates */ +-        int height; +-        drmRadeonTexImage *image; +-} drmRadeonTexture; +- +- +-#define RADEON_MAX_TEXTURE_UNITS 3 +- +-/* Layout matches drm_radeon_state_t in linux drm_radeon.h. +- */ +-typedef struct { +-	struct { +-		unsigned int pp_misc;				/* 0x1c14 */ +-		unsigned int pp_fog_color; +-		unsigned int re_solid_color; +-		unsigned int rb3d_blendcntl; +-		unsigned int rb3d_depthoffset; +-		unsigned int rb3d_depthpitch; +-		unsigned int rb3d_zstencilcntl; +-		unsigned int pp_cntl;				/* 0x1c38 */ +-		unsigned int rb3d_cntl; +-		unsigned int rb3d_coloroffset; +-		unsigned int re_width_height; +-		unsigned int rb3d_colorpitch; +-	} context; +-	struct { +-		unsigned int se_cntl; +-	} setup1; +-	struct { +-		unsigned int se_coord_fmt;			/* 0x1c50 */ +-	} vertex; +-	struct { +-		unsigned int re_line_pattern;			/* 0x1cd0 */ +-		unsigned int re_line_state; +-		unsigned int se_line_width;			/* 0x1db8 */ +-	} line; +-	struct { +-		unsigned int pp_lum_matrix;			/* 0x1d00 */ +-		unsigned int pp_rot_matrix_0;			/* 0x1d58 */ +-		unsigned int pp_rot_matrix_1; +-	} bumpmap; +-	struct { +-		unsigned int rb3d_stencilrefmask;		/* 0x1d7c */ +-		unsigned int rb3d_ropcntl; +-		unsigned int rb3d_planemask; +-	} mask; +-	struct { +-		unsigned int se_vport_xscale;			/* 0x1d98 */ +-		unsigned int se_vport_xoffset; +-		unsigned int se_vport_yscale; +-		unsigned int se_vport_yoffset; +-		unsigned int se_vport_zscale; +-		unsigned int se_vport_zoffset; +-	} viewport; +-	struct { +-		unsigned int se_cntl_status;			/* 0x2140 */ +-	} setup2; +-	struct { +-		unsigned int re_top_left;	/*ignored*/	/* 0x26c0 */ +-		unsigned int re_misc; +-	} misc; +-	struct { +-		unsigned int pp_txfilter; +-		unsigned int pp_txformat; +-		unsigned int pp_txoffset; +-		unsigned int pp_txcblend; +-		unsigned int pp_txablend; +-		unsigned int pp_tfactor; +-		unsigned int pp_border_color; +-	} texture[RADEON_MAX_TEXTURE_UNITS]; +-	struct { +-		unsigned int se_zbias_factor; +-		unsigned int se_zbias_constant; +-	} zbias; +-	unsigned int dirty; +-} drmRadeonState; +- +-/* 1.1 vertex ioctl.  Used in compatibility modes. +- */ +-typedef struct { +-	int prim; +-	int idx;			/* Index of vertex buffer */ +-	int count;			/* Number of vertices in buffer */ +-	int discard;			/* Client finished with buffer? */ +-} drmRadeonVertex; +- +-typedef struct { +-	unsigned int start; +-	unsigned int finish; +-	unsigned int prim:8; +-	unsigned int stateidx:8; +-	unsigned int numverts:16; /* overloaded as offset/64 for elt prims */ +-        unsigned int vc_format; +-} drmRadeonPrim; +- +-typedef struct { +-        int idx;                        /* Index of vertex buffer */ +-        int discard;                    /* Client finished with buffer? */ +-        int nr_states; +-        drmRadeonState *state; +-        int nr_prims; +-        drmRadeonPrim *prim; +-} drmRadeonVertex2; +- +-#define RADEON_MAX_STATES 16 +-#define RADEON_MAX_PRIMS  64 +- +-/* Command buffer.  Replace with true dma stream? +- */ +-typedef struct { +-	int bufsz; +-	char *buf; +-	int nbox; +-        drm_clip_rect_t *boxes; +-} drmRadeonCmdBuffer; +- +-/* New style per-packet identifiers for use in cmd_buffer ioctl with +- * the RADEON_EMIT_PACKET command.  Comments relate new packets to old +- * state bits and the packet size: +- */ +-#define RADEON_EMIT_PP_MISC                         0 /* context/7 */ +-#define RADEON_EMIT_PP_CNTL                         1 /* context/3 */ +-#define RADEON_EMIT_RB3D_COLORPITCH                 2 /* context/1 */ +-#define RADEON_EMIT_RE_LINE_PATTERN                 3 /* line/2 */ +-#define RADEON_EMIT_SE_LINE_WIDTH                   4 /* line/1 */ +-#define RADEON_EMIT_PP_LUM_MATRIX                   5 /* bumpmap/1 */ +-#define RADEON_EMIT_PP_ROT_MATRIX_0                 6 /* bumpmap/2 */ +-#define RADEON_EMIT_RB3D_STENCILREFMASK             7 /* masks/3 */ +-#define RADEON_EMIT_SE_VPORT_XSCALE                 8 /* viewport/6 */ +-#define RADEON_EMIT_SE_CNTL                         9 /* setup/2 */ +-#define RADEON_EMIT_SE_CNTL_STATUS                  10 /* setup/1 */ +-#define RADEON_EMIT_RE_MISC                         11 /* misc/1 */ +-#define RADEON_EMIT_PP_TXFILTER_0                   12 /* tex0/6 */ +-#define RADEON_EMIT_PP_BORDER_COLOR_0               13 /* tex0/1 */ +-#define RADEON_EMIT_PP_TXFILTER_1                   14 /* tex1/6 */ +-#define RADEON_EMIT_PP_BORDER_COLOR_1               15 /* tex1/1 */ +-#define RADEON_EMIT_PP_TXFILTER_2                   16 /* tex2/6 */ +-#define RADEON_EMIT_PP_BORDER_COLOR_2               17 /* tex2/1 */ +-#define RADEON_EMIT_SE_ZBIAS_FACTOR                 18 /* zbias/2 */ +-#define RADEON_EMIT_SE_TCL_OUTPUT_VTX_FMT           19 /* tcl/11 */ +-#define RADEON_EMIT_SE_TCL_MATERIAL_EMMISSIVE_RED   20 /* material/17 */ +-#define R200_EMIT_PP_TXCBLEND_0                     21 /* tex0/4 */ +-#define R200_EMIT_PP_TXCBLEND_1                     22 /* tex1/4 */ +-#define R200_EMIT_PP_TXCBLEND_2                     23 /* tex2/4 */ +-#define R200_EMIT_PP_TXCBLEND_3                     24 /* tex3/4 */ +-#define R200_EMIT_PP_TXCBLEND_4                     25 /* tex4/4 */ +-#define R200_EMIT_PP_TXCBLEND_5                     26 /* tex5/4 */ +-#define R200_EMIT_PP_TXCBLEND_6                     27 /* /4 */ +-#define R200_EMIT_PP_TXCBLEND_7                     28 /* /4 */ +-#define R200_EMIT_TCL_LIGHT_MODEL_CTL_0             29 /* tcl/6 */ +-#define R200_EMIT_TFACTOR_0                         30 /* tf/6 */ +-#define R200_EMIT_VTX_FMT_0                         31 /* vtx/4 */ +-#define R200_EMIT_VAP_CTL                           32 /* vap/1 */ +-#define R200_EMIT_MATRIX_SELECT_0                   33 /* msl/5 */ +-#define R200_EMIT_TEX_PROC_CTL_2                    34 /* tcg/5 */ +-#define R200_EMIT_TCL_UCP_VERT_BLEND_CTL            35 /* tcl/1 */ +-#define R200_EMIT_PP_TXFILTER_0                     36 /* tex0/6 */ +-#define R200_EMIT_PP_TXFILTER_1                     37 /* tex1/6 */ +-#define R200_EMIT_PP_TXFILTER_2                     38 /* tex2/6 */ +-#define R200_EMIT_PP_TXFILTER_3                     39 /* tex3/6 */ +-#define R200_EMIT_PP_TXFILTER_4                     40 /* tex4/6 */ +-#define R200_EMIT_PP_TXFILTER_5                     41 /* tex5/6 */ +-#define R200_EMIT_PP_TXOFFSET_0                     42 /* tex0/1 */ +-#define R200_EMIT_PP_TXOFFSET_1                     43 /* tex1/1 */ +-#define R200_EMIT_PP_TXOFFSET_2                     44 /* tex2/1 */ +-#define R200_EMIT_PP_TXOFFSET_3                     45 /* tex3/1 */ +-#define R200_EMIT_PP_TXOFFSET_4                     46 /* tex4/1 */ +-#define R200_EMIT_PP_TXOFFSET_5                     47 /* tex5/1 */ +-#define R200_EMIT_VTE_CNTL                          48 /* vte/1 */ +-#define R200_EMIT_OUTPUT_VTX_COMP_SEL               49 /* vtx/1 */ +-#define R200_EMIT_PP_TAM_DEBUG3                     50 /* tam/1 */ +-#define R200_EMIT_PP_CNTL_X                         51 /* cst/1 */ +-#define R200_EMIT_RB3D_DEPTHXY_OFFSET               52 /* cst/1 */ +-#define R200_EMIT_RE_AUX_SCISSOR_CNTL               53 /* cst/1 */ +-#define R200_EMIT_RE_SCISSOR_TL_0                   54 /* cst/2 */ +-#define R200_EMIT_RE_SCISSOR_TL_1                   55 /* cst/2 */ +-#define R200_EMIT_RE_SCISSOR_TL_2                   56 /* cst/2 */ +-#define R200_EMIT_SE_VAP_CNTL_STATUS                57 /* cst/1 */ +-#define R200_EMIT_SE_VTX_STATE_CNTL                 58 /* cst/1 */ +-#define R200_EMIT_RE_POINTSIZE                      59 /* cst/1 */ +-#define R200_EMIT_TCL_INPUT_VTX_VECTOR_ADDR_0       60 /* cst/4 */ +-#define R200_EMIT_PP_CUBIC_FACES_0                  61 +-#define R200_EMIT_PP_CUBIC_OFFSETS_0                62 +-#define R200_EMIT_PP_CUBIC_FACES_1                  63 +-#define R200_EMIT_PP_CUBIC_OFFSETS_1                64 +-#define R200_EMIT_PP_CUBIC_FACES_2                  65 +-#define R200_EMIT_PP_CUBIC_OFFSETS_2                66 +-#define R200_EMIT_PP_CUBIC_FACES_3                  67 +-#define R200_EMIT_PP_CUBIC_OFFSETS_3                68 +-#define R200_EMIT_PP_CUBIC_FACES_4                  69 +-#define R200_EMIT_PP_CUBIC_OFFSETS_4                70 +-#define R200_EMIT_PP_CUBIC_FACES_5                  71 +-#define R200_EMIT_PP_CUBIC_OFFSETS_5                72 +-#define RADEON_EMIT_PP_TEX_SIZE_0                   73 +-#define RADEON_EMIT_PP_TEX_SIZE_1                   74 +-#define RADEON_EMIT_PP_TEX_SIZE_2                   75 +-#define R200_EMIT_RB3D_BLENDCOLOR                   76 +-#define RADEON_MAX_STATE_PACKETS                    77 +- +- +-/* Commands understood by cmd_buffer ioctl.  More can be added but +- * obviously these can't be removed or changed: +- */ +-#define RADEON_CMD_PACKET      1 /* emit one of the register packets above */ +-#define RADEON_CMD_SCALARS     2 /* emit scalar data */ +-#define RADEON_CMD_VECTORS     3 /* emit vector data */ +-#define RADEON_CMD_DMA_DISCARD 4 /* discard current dma buf */ +-#define RADEON_CMD_PACKET3     5 /* emit hw packet */ +-#define RADEON_CMD_PACKET3_CLIP 6 /* emit hw packet wrapped in cliprects */ +-#define RADEON_CMD_SCALARS2     7 /* R200 stopgap */ +-#define RADEON_CMD_WAIT         8 /* synchronization */ +- +-typedef union { +-	int i; +-	struct { +-	   unsigned char cmd_type, pad0, pad1, pad2; +-	} header; +-	struct { +-	   unsigned char cmd_type, packet_id, pad0, pad1; +-	} packet; +-	struct { +-	   unsigned char cmd_type, offset, stride, count; +-	} scalars; +-	struct { +-	   unsigned char cmd_type, offset, stride, count; +-	} vectors; +-	struct { +-	   unsigned char cmd_type, buf_idx, pad0, pad1; +-	} dma; +-	struct { +-	   unsigned char cmd_type, flags, pad0, pad1; +-	} wait; +-} drmRadeonCmdHeader; +- +- +-#define RADEON_WAIT_2D  0x1 +-#define RADEON_WAIT_3D  0x2 +- +- +-/* 1.3: An ioctl to get parameters that aren't available to the 3d +- * client any other way.   +- */ +-#define RADEON_PARAM_GART_BUFFER_OFFSET    1 /* card offset of 1st GART buffer */ +-#define RADEON_PARAM_LAST_FRAME            2 +-#define RADEON_PARAM_LAST_DISPATCH         3 +-#define RADEON_PARAM_LAST_CLEAR            4 +-/* Added with DRM version 1.6. */ +-#define RADEON_PARAM_IRQ_NR                5 +-#define RADEON_PARAM_GART_BASE             6 /* card offset of GART base */ +-/* Added with DRM version 1.8. */ +-#define RADEON_PARAM_REGISTER_HANDLE       7 /* for drmMap() */ +-#define RADEON_PARAM_STATUS_HANDLE         8 +-#define RADEON_PARAM_SAREA_HANDLE          9 +-#define RADEON_PARAM_GART_TEX_HANDLE       10 +-#define RADEON_PARAM_SCRATCH_OFFSET        11 +-#define RADEON_PARAM_CARD_TYPE             12 +-#define RADEON_PARAM_VBLANK_CRTC           13   /* VBLANK CRTC */ +-#define RADEON_PARAM_FB_LOCATION           14   /* FB location */ +-#define RADEON_PARAM_NUM_GB_PIPES          15 +- +-typedef struct drm_radeon_getparam { +-	int param; +-	int *value; +-} drmRadeonGetParam; +- +- +-#define RADEON_MEM_REGION_GART 1 +-#define RADEON_MEM_REGION_FB   2 +- +-typedef struct drm_radeon_mem_alloc { +-	int region; +-	int alignment; +-	int size; +-	int *region_offset;	/* offset from start of fb or GART */ +-} drmRadeonMemAlloc; +- +-typedef struct drm_radeon_mem_free { +-	int region; +-	int region_offset; +-} drmRadeonMemFree; +- +-typedef struct drm_radeon_mem_init_heap { +-	int region; +-	int size; +-	int start; +-} drmRadeonMemInitHeap; +- +-/* 1.6: Userspace can request & wait on irq's: +- */ +-typedef struct drm_radeon_irq_emit { +-	int *irq_seq; +-} drmRadeonIrqEmit; +- +-typedef struct drm_radeon_irq_wait { +-	int irq_seq; +-} drmRadeonIrqWait; +- +- +-/* 1.10: Clients tell the DRM where they think the framebuffer is located in +- * the card's address space, via a new generic ioctl to set parameters +- */ +- +-typedef struct drm_radeon_set_param { +-	unsigned int param; +-	int64_t      value; +-} drmRadeonSetParam; +- +-#define RADEON_SETPARAM_FB_LOCATION     1 +-#define RADEON_SETPARAM_SWITCH_TILING   2 +-#define RADEON_SETPARAM_PCIGART_LOCATION 3 +-#define RADEON_SETPARAM_NEW_MEMMAP 4 +-#define RADEON_SETPARAM_PCIGART_TABLE_SIZE 5 +-#define RADEON_SETPARAM_VBLANK_CRTC 6           /* VBLANK CRTC */ +-/* 1.14: Clients can allocate/free a surface +- */ +-typedef struct drm_radeon_surface_alloc { +-	unsigned int address; +-	unsigned int size; +-	unsigned int flags; +-} drmRadeonSurfaceAlloc; +- +-typedef struct drm_radeon_surface_free { +-	unsigned int address; +-} drmRadeonSurfaceFree; +- +-#define	DRM_RADEON_VBLANK_CRTC1 	1 +-#define	DRM_RADEON_VBLANK_CRTC2 	2 +- +-#endif +diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c +index 58fe306..dba197e 100644 +--- a/src/radeon_commonfuncs.c ++++ b/src/radeon_commonfuncs.c +@@ -58,7 +58,8 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) +     uint32_t gb_tile_config, su_reg_dest, vap_cntl; +     ACCEL_PREAMBLE(); +  +-    info->texW[0] = info->texH[0] = info->texW[1] = info->texH[1] = 1; ++    info->accel_state->texW[0] = info->accel_state->texH[0] = ++	info->accel_state->texW[1] = info->accel_state->texH[1] = 1; +  +     if (IS_R300_3D || IS_R500_3D) { +  +@@ -70,7 +71,7 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) +  + 	gb_tile_config = (R300_ENABLE_TILING | R300_TILE_SIZE_16 | R300_SUBPIXEL_1_16); +  +-	switch(info->num_gb_pipes) { ++	switch(info->accel_state->num_gb_pipes) { + 	case 2: gb_tile_config |= R300_PIPE_COUNT_R300; break; + 	case 3: gb_tile_config |= R300_PIPE_COUNT_R420_3P; break; + 	case 4: gb_tile_config |= R300_PIPE_COUNT_R420; break; +@@ -87,7 +88,7 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) + 	FINISH_ACCEL(); +  + 	if (IS_R500_3D) { +-	    su_reg_dest = ((1 << info->num_gb_pipes) - 1); ++	    su_reg_dest = ((1 << info->accel_state->num_gb_pipes) - 1); + 	    BEGIN_ACCEL(2); + 	    OUT_ACCEL_REG(R500_SU_REG_DEST, su_reg_dest); + 	    OUT_ACCEL_REG(R500_VAP_INDEX_OFFSET, 0); +@@ -146,7 +147,7 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) + 	FINISH_ACCEL(); +  + 	/* setup the VAP */ +-	if (info->has_tcl) ++	if (info->accel_state->has_tcl) + 	    vap_cntl = ((5 << R300_PVS_NUM_SLOTS_SHIFT) | + 			(5 << R300_PVS_NUM_CNTLRS_SHIFT) | + 			(9 << R300_VF_MAX_VTX_NUM_SHIFT)); +@@ -158,25 +159,26 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) + 	if (info->ChipFamily == CHIP_FAMILY_RV515) + 	    vap_cntl |= (2 << R300_PVS_NUM_FPUS_SHIFT); + 	else if ((info->ChipFamily == CHIP_FAMILY_RV530) || +-		 (info->ChipFamily == CHIP_FAMILY_RV560)) ++		 (info->ChipFamily == CHIP_FAMILY_RV560) || ++		 (info->ChipFamily == CHIP_FAMILY_RV570)) + 	    vap_cntl |= (5 << R300_PVS_NUM_FPUS_SHIFT); +-	else if (info->ChipFamily == CHIP_FAMILY_R420) ++	else if ((info->ChipFamily == CHIP_FAMILY_RV410) || ++		 (info->ChipFamily == CHIP_FAMILY_R420)) + 	    vap_cntl |= (6 << R300_PVS_NUM_FPUS_SHIFT); + 	else if ((info->ChipFamily == CHIP_FAMILY_R520) || +-		 (info->ChipFamily == CHIP_FAMILY_R580) || +-		 (info->ChipFamily == CHIP_FAMILY_RV570)) ++		 (info->ChipFamily == CHIP_FAMILY_R580)) + 	    vap_cntl |= (8 << R300_PVS_NUM_FPUS_SHIFT); + 	else + 	    vap_cntl |= (4 << R300_PVS_NUM_FPUS_SHIFT); +  +-	if (info->has_tcl) ++	if (info->accel_state->has_tcl) + 	    BEGIN_ACCEL(15); + 	else + 	    BEGIN_ACCEL(9); + 	OUT_ACCEL_REG(R300_VAP_VTX_STATE_CNTL, 0); + 	OUT_ACCEL_REG(R300_VAP_PVS_STATE_FLUSH_REG, 0); +  +-	if (info->has_tcl) ++	if (info->accel_state->has_tcl) + 	    OUT_ACCEL_REG(R300_VAP_CNTL_STATUS, 0); + 	else + 	    OUT_ACCEL_REG(R300_VAP_CNTL_STATUS, R300_PVS_BYPASS); +@@ -206,7 +208,7 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) + 		       ((R300_WRITE_ENA_X | R300_WRITE_ENA_Y | R300_WRITE_ENA_Z | R300_WRITE_ENA_W) + 			<< R300_WRITE_ENA_2_SHIFT))); +  +-	if (info->has_tcl) { ++	if (info->accel_state->has_tcl) { + 	    OUT_ACCEL_REG(R300_VAP_PVS_FLOW_CNTL_OPC, 0); + 	    OUT_ACCEL_REG(R300_VAP_GB_VERT_CLIP_ADJ, 0x3f800000); + 	    OUT_ACCEL_REG(R300_VAP_GB_VERT_DISC_ADJ, 0x3f800000); +@@ -217,8 +219,8 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) + 	FINISH_ACCEL(); +  + 	/* pre-load the vertex shaders */ +-	if (info->has_tcl) { +-	    /* exa mask shader program */ ++	if (info->accel_state->has_tcl) { ++	    /* exa mask/Xv bicubic shader program */ + 	    BEGIN_ACCEL(13); + 	    OUT_ACCEL_REG(R300_VAP_PVS_VECTOR_INDX_REG, 0); + 	    /* PVS inst 0 */ +@@ -498,14 +500,14 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) + 	if (IS_R300_3D) { + 	    BEGIN_ACCEL(2); + 	    /* tex inst for src texture */ +-	    OUT_ACCEL_REG(R300_US_TEX_INST_0, ++	    OUT_ACCEL_REG(R300_US_TEX_INST(0), + 			  (R300_TEX_SRC_ADDR(0) | + 			   R300_TEX_DST_ADDR(0) | + 			   R300_TEX_ID(0) | + 			   R300_TEX_INST(R300_TEX_INST_LD))); +  + 	    /* tex inst for mask texture */ +-	    OUT_ACCEL_REG(R300_US_TEX_INST_1, ++	    OUT_ACCEL_REG(R300_US_TEX_INST(1), + 			  (R300_TEX_SRC_ADDR(1) | + 			   R300_TEX_DST_ADDR(1) | + 			   R300_TEX_ID(1) | +@@ -514,9 +516,8 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) + 	} +  + 	if (IS_R300_3D) { +-	    BEGIN_ACCEL(9); ++	    BEGIN_ACCEL(8); + 	    OUT_ACCEL_REG(R300_US_CONFIG, (0 << R300_NLEVEL_SHIFT) | R300_FIRST_TEX); +-	    OUT_ACCEL_REG(R300_US_PIXSIZE, 1); /* highest temp used */ + 	    OUT_ACCEL_REG(R300_US_CODE_ADDR_0, + 			  (R300_ALU_START(0) | + 			   R300_ALU_SIZE(0) | +@@ -533,9 +534,8 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) + 			   R300_TEX_START(0) | + 			   R300_TEX_SIZE(0))); + 	} else { +-	    BEGIN_ACCEL(7); ++	    BEGIN_ACCEL(6); + 	    OUT_ACCEL_REG(R300_US_CONFIG, R500_ZERO_TIMES_ANYTHING_EQUALS_ZERO); +-	    OUT_ACCEL_REG(R300_US_PIXSIZE, 1); /* highest temp used */ + 	    OUT_ACCEL_REG(R500_US_FC_CTRL, 0); + 	} + 	OUT_ACCEL_REG(R300_US_W_FMT, 0); +@@ -687,14 +687,14 @@ void FUNC_NAME(RADEONWaitForIdle)(ScrnInfoPtr pScrn) +  + #ifdef ACCEL_CP +     /* Make sure the CP is idle first */ +-    if (info->CPStarted) { ++    if (info->cp->CPStarted) { + 	int  ret; +  + 	FLUSH_RING(); +  + 	for (;;) { + 	    do { +-		ret = drmCommandNone(info->drmFD, DRM_RADEON_CP_IDLE); ++		ret = drmCommandNone(info->dri->drmFD, DRM_RADEON_CP_IDLE); + 		if (ret && ret != -EBUSY) { + 		    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 			       "%s: CP idle %d\n", __FUNCTION__, ret); +diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c +index c63b650..9040bae 100644 +--- a/src/radeon_crtc.c ++++ b/src/radeon_crtc.c +@@ -48,8 +48,7 @@ +  + #ifdef XF86DRI + #define _XF86DRI_SERVER_ +-#include "radeon_dri.h" +-#include "radeon_sarea.h" ++#include "radeon_drm.h" + #include "sarea.h" + #endif +  +@@ -58,6 +57,14 @@ extern void atombios_crtc_mode_set(xf86CrtcPtr crtc, + 				   DisplayModePtr adjusted_mode, + 				   int x, int y); + extern void atombios_crtc_dpms(xf86CrtcPtr crtc, int mode); ++extern void ++RADEONInitDispBandwidthLegacy(ScrnInfoPtr pScrn, ++			      DisplayModePtr mode1, int pixel_bytes1, ++			      DisplayModePtr mode2, int pixel_bytes2); ++extern void ++RADEONInitDispBandwidthAVIVO(ScrnInfoPtr pScrn, ++			     DisplayModePtr mode1, int pixel_bytes1, ++			     DisplayModePtr mode2, int pixel_bytes2); +  + void + radeon_crtc_dpms(xf86CrtcPtr crtc, int mode) +@@ -220,7 +227,12 @@ RADEONComputePLL(RADEONPLLPtr pll, + 			best_freq = current_freq; + 			best_error = error; + 			best_vco_diff = vco_diff; +-		    } else if ((flags & RADEON_PLL_PREFER_LOW_REF_DIV) && (ref_div < best_ref_div)) { ++		    } else if (((flags & RADEON_PLL_PREFER_LOW_REF_DIV) && (ref_div < best_ref_div)) || ++			       ((flags & RADEON_PLL_PREFER_HIGH_REF_DIV) && (ref_div > best_ref_div)) || ++			       ((flags & RADEON_PLL_PREFER_LOW_FB_DIV) && (feedback_div < best_feedback_div)) || ++			       ((flags & RADEON_PLL_PREFER_HIGH_FB_DIV) && (feedback_div > best_feedback_div)) || ++			       ((flags & RADEON_PLL_PREFER_LOW_POST_DIV) && (post_div < best_post_div)) || ++			       ((flags & RADEON_PLL_PREFER_HIGH_POST_DIV) && (post_div > best_post_div))) { + 			best_post_div = post_div; + 			best_ref_div = ref_div; + 			best_feedback_div = feedback_div; +@@ -354,7 +366,7 @@ radeon_crtc_lock(xf86CrtcPtr crtc) +     RADEONInfoPtr  info = RADEONPTR(pScrn); +  + #ifdef XF86DRI +-    if (info->CPStarted && pScrn->pScreen) { ++    if (info->cp->CPStarted && pScrn->pScreen) { + 	DRILock(pScrn->pScreen, 0); + 	if (info->accelOn) + 	    RADEON_SYNC(info, pScrn); +@@ -375,51 +387,13 @@ radeon_crtc_unlock(xf86CrtcPtr crtc) +     RADEONInfoPtr  info = RADEONPTR(pScrn); +  + #ifdef XF86DRI +-	if (info->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen); ++	if (info->cp->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen); + #endif +  +     if (info->accelOn) +         RADEON_SYNC(info, pScrn); + } +  +-#ifdef USE_XAA +-/** +- * Allocates memory from the XF86 linear allocator, but also purges +- * memory if possible to cause the allocation to succeed. +- */ +-static FBLinearPtr +-radeon_xf86AllocateOffscreenLinear(ScreenPtr pScreen, int length, +-				 int granularity, +-				 MoveLinearCallbackProcPtr moveCB, +-				 RemoveLinearCallbackProcPtr removeCB, +-				 pointer privData) +-{ +-    FBLinearPtr linear; +-    int max_size; +- +-    linear = xf86AllocateOffscreenLinear(pScreen, length, granularity, moveCB, +-					 removeCB, privData); +-    if (linear != NULL) +-	return linear; +- +-    /* The above allocation didn't succeed, so purge unlocked stuff and try +-     * again. +-     */ +-    xf86QueryLargestOffscreenLinear(pScreen, &max_size, granularity, +-				    PRIORITY_EXTREME); +- +-    if (max_size < length) +-	return NULL; +- +-    xf86PurgeUnlockedOffscreenAreas(pScreen); +- +-    linear = xf86AllocateOffscreenLinear(pScreen, length, granularity, moveCB, +-					 removeCB, privData); +- +-    return linear; +-} +-#endif +- + /** +  * Allocates memory for a locked-in-framebuffer shadow of the given +  * width and height for this CRTC's rotated shadow framebuffer. +@@ -429,8 +403,6 @@ static void * + radeon_crtc_shadow_allocate (xf86CrtcPtr crtc, int width, int height) + { +     ScrnInfoPtr pScrn = crtc->scrn; +-    /* if this is called during ScreenInit() we don't have pScrn->pScreen yet */ +-    ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex]; +     RADEONInfoPtr  info = RADEONPTR(pScrn); +     RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; +     unsigned long rotate_pitch; +@@ -441,49 +413,14 @@ radeon_crtc_shadow_allocate (xf86CrtcPtr crtc, int width, int height) +     rotate_pitch = pScrn->displayWidth * cpp; +     size = rotate_pitch * height; +  +-#ifdef USE_EXA +     /* We could get close to what we want here by just creating a pixmap like +      * normal, but we have to lock it down in framebuffer, and there is no +      * setter for offscreen area locking in EXA currently.  So, we just +      * allocate offscreen memory and fake up a pixmap header for it. +      */ +-    if (info->useEXA) { +-	assert(radeon_crtc->rotate_mem_exa == NULL); +- +-	radeon_crtc->rotate_mem_exa = exaOffscreenAlloc(pScreen, size, align, +-						       TRUE, NULL, NULL); +-	if (radeon_crtc->rotate_mem_exa == NULL) { +-	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, +-		       "Couldn't allocate shadow memory for rotated CRTC\n"); +-	    return NULL; +-	} +-	rotate_offset = radeon_crtc->rotate_mem_exa->offset; +-    } +-#endif /* USE_EXA */ +-#ifdef USE_XAA +-    if (!info->useEXA) { +-	/* The XFree86 linear allocator operates in units of screen pixels, +-	 * sadly. +-	 */ +-	size = (size + cpp - 1) / cpp; +-	align = (align + cpp - 1) / cpp; +- +-	assert(radeon_crtc->rotate_mem_xaa == NULL); +- +-	radeon_crtc->rotate_mem_xaa = +-	    radeon_xf86AllocateOffscreenLinear(pScreen, size, align, +-					       NULL, NULL, NULL); +-	if (radeon_crtc->rotate_mem_xaa == NULL) { +-	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, +-		       "Couldn't allocate shadow memory for rotated CRTC\n"); +-	    return NULL; +-	} +-#ifdef XF86DRI +-	rotate_offset = info->frontOffset + +-	    radeon_crtc->rotate_mem_xaa->offset * cpp; +-#endif +-    } +-#endif /* USE_XAA */ ++    rotate_offset = radeon_legacy_allocate_memory(pScrn, &radeon_crtc->crtc_rotate_mem, size, align); ++    if (rotate_offset == 0) ++	return NULL; +  +     return info->FB + rotate_offset; + } +@@ -523,26 +460,16 @@ static void + radeon_crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr rotate_pixmap, void *data) + { +     ScrnInfoPtr pScrn = crtc->scrn; +-    RADEONInfoPtr  info = RADEONPTR(pScrn); +     RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; +  +     if (rotate_pixmap) + 	FreeScratchPixmapHeader(rotate_pixmap); +-     ++ +     if (data) { +-#ifdef USE_EXA +-	if (info->useEXA && radeon_crtc->rotate_mem_exa != NULL) { +-	    exaOffscreenFree(pScrn->pScreen, radeon_crtc->rotate_mem_exa); +-	    radeon_crtc->rotate_mem_exa = NULL; +-	} +-#endif /* USE_EXA */ +-#ifdef USE_XAA +-	if (!info->useEXA) { +-	    xf86FreeOffscreenLinear(radeon_crtc->rotate_mem_xaa); +-	    radeon_crtc->rotate_mem_xaa = NULL; +-	} +-#endif /* USE_XAA */ ++	radeon_legacy_free_memory(pScrn, radeon_crtc->crtc_rotate_mem); ++	radeon_crtc->crtc_rotate_mem = NULL; +     } ++ + } +  + static const xf86CrtcFuncsRec radeon_crtc_funcs = { +@@ -567,6 +494,43 @@ static const xf86CrtcFuncsRec radeon_crtc_funcs = { +     .destroy = NULL, /* XXX */ + }; +  ++void ++RADEONInitDispBandwidth(ScrnInfoPtr pScrn) ++{ ++    RADEONInfoPtr info = RADEONPTR(pScrn); ++    xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); ++    DisplayModePtr mode1 = NULL, mode2 = NULL; ++    int pixel_bytes1 = info->CurrentLayout.pixel_bytes; ++    int pixel_bytes2 = info->CurrentLayout.pixel_bytes; ++ ++    if (xf86_config->num_crtc == 2) { ++	if (xf86_config->crtc[1]->enabled && ++	    xf86_config->crtc[0]->enabled) { ++	    mode1 = &xf86_config->crtc[0]->mode; ++	    mode2 = &xf86_config->crtc[1]->mode; ++	} else if (xf86_config->crtc[0]->enabled) { ++	    mode1 = &xf86_config->crtc[0]->mode; ++	} else if (xf86_config->crtc[1]->enabled) { ++	    mode2 = &xf86_config->crtc[1]->mode; ++	} else ++	    return; ++    } else { ++	if (info->IsPrimary) ++	    mode1 = &xf86_config->crtc[0]->mode; ++	else if (info->IsSecondary) ++	    mode2 = &xf86_config->crtc[0]->mode; ++	else if (xf86_config->crtc[0]->enabled) ++	    mode1 = &xf86_config->crtc[0]->mode; ++	else ++	    return; ++    } ++ ++    if (IS_AVIVO_VARIANT) ++	RADEONInitDispBandwidthAVIVO(pScrn, mode1, pixel_bytes1, mode2, pixel_bytes2); ++    else ++	RADEONInitDispBandwidthLegacy(pScrn, mode1, pixel_bytes1, mode2, pixel_bytes2); ++} ++ + Bool RADEONAllocateControllers(ScrnInfoPtr pScrn, int mask) + { +     RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); +@@ -791,7 +755,7 @@ RADEONSetTiling(ScrnInfoPtr pScrn) +  + #ifdef XF86DRI +     if (info->directRenderingEnabled && (info->tilingEnabled != can_tile)) { +-	RADEONSAREAPrivPtr pSAREAPriv; ++	drm_radeon_sarea_t *pSAREAPriv; + 	if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_SWITCH_TILING, (can_tile ? 1 : 0)) < 0) + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		       "[drm] failed changing tiling status\n"); +diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c +index c4472db..08bfddf 100644 +--- a/src/radeon_cursor.c ++++ b/src/radeon_cursor.c +@@ -209,21 +209,23 @@ radeon_crtc_set_cursor_position (xf86CrtcPtr crtc, int x, int y) +     if (xorigin >= CURSOR_WIDTH)  xorigin = CURSOR_WIDTH - 1; +     if (yorigin >= CURSOR_HEIGHT) yorigin = CURSOR_HEIGHT - 1; +  +-    if (mode->Flags & V_INTERLACE) +-	y /= 2; +-    else if (mode->Flags & V_DBLSCAN) +-	y *= 2; +- +     if (IS_AVIVO_VARIANT) { + 	/* avivo cursor spans the full fb width */ +-	x += crtc->x; +-	y += crtc->y; ++	if (crtc->rotatedData == NULL) { ++	    x += crtc->x; ++	    y += crtc->y; ++	} + 	avivo_lock_cursor(crtc, TRUE); + 	OUTREG(AVIVO_D1CUR_POSITION + radeon_crtc->crtc_offset, ((xorigin ? 0 : x) << 16) + 	       | (yorigin ? 0 : y)); + 	OUTREG(AVIVO_D1CUR_HOT_SPOT + radeon_crtc->crtc_offset, (xorigin << 16) | yorigin); + 	avivo_lock_cursor(crtc, FALSE); +     } else { ++	if (mode->Flags & V_INTERLACE) ++	    y /= 2; ++	else if (mode->Flags & V_DBLSCAN) ++	    y *= 2; ++ + 	if (crtc_id == 0) { + 	    OUTREG(RADEON_CUR_HORZ_VERT_OFF,  (RADEON_CUR_LOCK + 					       | (xorigin << 16) +@@ -325,49 +327,32 @@ Bool RADEONCursorInit(ScreenPtr pScreen) +     int		       width_bytes; +     int                height; +     int                size_bytes; +-    uint32_t           cursor_offset = 0; +     int                c; +  +     size_bytes  = CURSOR_WIDTH * 4 * CURSOR_HEIGHT; +     width       = pScrn->displayWidth; +     width_bytes = width * (pScrn->bitsPerPixel / 8); +     height      = ((size_bytes * xf86_config->num_crtc) + width_bytes - 1) / width_bytes; ++    int align = IS_AVIVO_VARIANT ? 4096 : 256; +  +-#ifdef USE_XAA +     if (!info->useEXA) { +-	int align = IS_AVIVO_VARIANT ? 4096 : 256; +-	FBAreaPtr          fbarea; +- +-	fbarea = xf86AllocateOffscreenArea(pScreen, width, height, +-					   align, NULL, NULL, NULL); +- +-	if (!fbarea) { +-	    cursor_offset    = 0; +-	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING, +-		   "Hardware cursor disabled" +-		   " due to insufficient offscreen memory\n"); +-	    return FALSE; +-	} else { +-	    cursor_offset  = RADEON_ALIGN((fbarea->box.x1 + +-					   fbarea->box.y1 * width) * +-					  info->CurrentLayout.pixel_bytes, +-					  align); +- +-	    for (c = 0; c < xf86_config->num_crtc; c++) { +-		xf86CrtcPtr crtc = xf86_config->crtc[c]; +-		RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; +- +-		radeon_crtc->cursor_offset = cursor_offset + (c * size_bytes); +- +-		xf86DrvMsg(pScrn->scrnIndex, X_INFO, +-			   "Using hardware cursor %d (scanline %u)\n", c, +-			   (unsigned)(radeon_crtc->cursor_offset / pScrn->displayWidth +-				      / info->CurrentLayout.pixel_bytes)); +-	    } ++	for (c = 0; c < xf86_config->num_crtc; c++) { ++	    xf86CrtcPtr crtc = xf86_config->crtc[c]; ++	    RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; +  ++	    radeon_crtc->cursor_offset = ++		radeon_legacy_allocate_memory(pScrn, &radeon_crtc->cursor_mem, size_bytes, align); ++ ++	    if (radeon_crtc->cursor_offset == 0) ++		return FALSE; ++ ++	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, ++		       "Will use %d kb for hardware cursor %d at offset 0x%08x\n", ++		       (size_bytes * xf86_config->num_crtc) / 1024, ++		       c, ++		       (unsigned int)radeon_crtc->cursor_offset); + 	} +     } +-#endif +  +     return xf86_cursors_init (pScreen, CURSOR_WIDTH, CURSOR_HEIGHT, + 			      (HARDWARE_CURSOR_TRUECOLOR_AT_8BPP | +diff --git a/src/radeon_dga.c b/src/radeon_dga.c +index d623fe4..6b0fabe 100644 +--- a/src/radeon_dga.c ++++ b/src/radeon_dga.c +@@ -47,6 +47,9 @@ + 				/* Driver data structures */ + #include "radeon.h" + #include "radeon_probe.h" ++#ifdef XF86DRI ++#include "radeon_drm.h" ++#endif +  + 				/* X and server generic header files */ + #include "xf86.h" +@@ -126,12 +129,12 @@ SECOND_PASS: + 	    } + #endif /* USE_EXA */ + #ifdef USE_XAA +-	    if (!info->useEXA && info->accel) { +-	      if (info->accel->SetupForSolidFill && +-		  info->accel->SubsequentSolidFillRect) ++	    if (!info->useEXA && info->accel_state->accel) { ++	      if (info->accel_state->accel->SetupForSolidFill && ++		  info->accel_state->accel->SubsequentSolidFillRect) + 		 currentMode->flags    |= DGA_FILL_RECT; +-	      if (info->accel->SetupForScreenToScreenCopy && +-		  info->accel->SubsequentScreenToScreenCopy) ++	      if (info->accel_state->accel->SetupForScreenToScreenCopy && ++		  info->accel_state->accel->SubsequentScreenToScreenCopy) + 		 currentMode->flags    |= DGA_BLIT_RECT | DGA_BLIT_RECT_TRANS; + 	      if (currentMode->flags & + 		  (DGA_PIXMAP_AVAILABLE | DGA_FILL_RECT | +@@ -265,13 +268,13 @@ Bool RADEONDGAInit(ScreenPtr pScreen) +     } + #endif /* USE_EXA */ + #ifdef USE_XAA +-    if (!info->useEXA && info->accel) { +-	info->DGAFuncs.Sync              = info->accel->Sync; +-	if (info->accel->SetupForSolidFill && +-	    info->accel->SubsequentSolidFillRect) ++    if (!info->useEXA && info->accel_state->accel) { ++	info->DGAFuncs.Sync              = info->accel_state->accel->Sync; ++	if (info->accel_state->accel->SetupForSolidFill && ++	    info->accel_state->accel->SubsequentSolidFillRect) + 	    info->DGAFuncs.FillRect      = RADEON_FillRect; +-	if (info->accel->SetupForScreenToScreenCopy && +-	    info->accel->SubsequentScreenToScreenCopy) { ++	if (info->accel_state->accel->SetupForScreenToScreenCopy && ++	    info->accel_state->accel->SubsequentScreenToScreenCopy) { + 	    info->DGAFuncs.BlitRect      = RADEON_BlitRect; + 	    info->DGAFuncs.BlitTransRect = RADEON_BlitTransRect; + 	} +@@ -383,8 +386,8 @@ static void RADEON_FillRect(ScrnInfoPtr pScrn, + #endif /* USE_EXA */ + #ifdef USE_XAA +     if (!info->useEXA) { +-	(*info->accel->SetupForSolidFill)(pScrn, color, GXcopy, (uint32_t)(~0)); +-	(*info->accel->SubsequentSolidFillRect)(pScrn, x, y, w, h); ++	(*info->accel_state->accel->SetupForSolidFill)(pScrn, color, GXcopy, (uint32_t)(~0)); ++	(*info->accel_state->accel->SubsequentSolidFillRect)(pScrn, x, y, w, h); +         if (pScrn->bitsPerPixel == info->CurrentLayout.bitsPerPixel) + 	    RADEON_MARK_SYNC(info, pScrn); +     } +@@ -413,10 +416,10 @@ static void RADEON_BlitRect(ScrnInfoPtr pScrn, + #endif /* USE_EXA */ + #ifdef USE_XAA +     if (!info->useEXA) { +-	(*info->accel->SetupForScreenToScreenCopy)(pScrn, xdir, ydir, +-						   GXcopy, (uint32_t)(~0), -1); +-	(*info->accel->SubsequentScreenToScreenCopy)(pScrn, srcx, srcy, +-						     dstx, dsty, w, h); ++	(*info->accel_state->accel->SetupForScreenToScreenCopy)(pScrn, xdir, ydir, ++								GXcopy, (uint32_t)(~0), -1); ++	(*info->accel_state->accel->SubsequentScreenToScreenCopy)(pScrn, srcx, srcy, ++								  dstx, dsty, w, h); +         if (pScrn->bitsPerPixel == info->CurrentLayout.bitsPerPixel) + 	    RADEON_MARK_SYNC(info, pScrn); +     } +@@ -431,14 +434,14 @@ static void RADEON_BlitTransRect(ScrnInfoPtr pScrn, +     int            xdir = ((srcx < dstx) && (srcy == dsty)) ? -1 : 1; +     int            ydir = (srcy < dsty) ? -1 : 1; +  +-    info->XAAForceTransBlit = TRUE; +-    (*info->accel->SetupForScreenToScreenCopy)(pScrn, xdir, ydir, +-					       GXcopy, (uint32_t)(~0), color); ++    info->accel_state->XAAForceTransBlit = TRUE; ++    (*info->accel_state->accel->SetupForScreenToScreenCopy)(pScrn, xdir, ydir, ++							    GXcopy, (uint32_t)(~0), color); +  +-    info->XAAForceTransBlit = FALSE; ++    info->accel_state->XAAForceTransBlit = FALSE; +  +-    (*info->accel->SubsequentScreenToScreenCopy)(pScrn, srcx, srcy, +-						 dstx, dsty, w, h); ++    (*info->accel_state->accel->SubsequentScreenToScreenCopy)(pScrn, srcx, srcy, ++							      dstx, dsty, w, h); +  +     if (pScrn->bitsPerPixel == info->CurrentLayout.bitsPerPixel) +         RADEON_MARK_SYNC(info, pScrn); +diff --git a/src/radeon_dri.c b/src/radeon_dri.c +index 0fc03e4..5542d2b 100644 +--- a/src/radeon_dri.c ++++ b/src/radeon_dri.c +@@ -46,6 +46,7 @@ + #include "radeon_video.h" + #include "radeon_reg.h" + #include "radeon_macros.h" ++#include "radeon_drm.h" + #include "radeon_dri.h" + #include "radeon_version.h" +  +@@ -58,10 +59,13 @@ + #define _XF86DRI_SERVER_ + #include "GL/glxtokens.h" + #include "sarea.h" +-#include "radeon_sarea.h" +  + static size_t radeon_drm_page_size; +  ++#define RADEON_MAX_DRAWABLES 256 ++ ++extern void GlxSetVisualConfigs(int nconfigs, __GLXvisualConfig *configs, ++				void **configprivs); +  + static void RADEONDRITransitionTo2d(ScreenPtr pScreen); + static void RADEONDRITransitionTo3d(ScreenPtr pScreen); +@@ -92,7 +96,7 @@ static Bool RADEONInitVisualConfigs(ScreenPtr pScreen) +     RADEONConfigPrivPtr *pRADEONConfigPtrs = 0; +     int                  i, accum, stencil, db, use_db; +  +-    use_db = !info->noBackBuffer ? 1 : 0; ++    use_db = !info->dri->noBackBuffer ? 1 : 0; +  +     switch (info->CurrentLayout.pixel_code) { +     case 8:  /* 8bpp mode is not support */ +@@ -166,7 +170,7 @@ static Bool RADEONInitVisualConfigs(ScreenPtr pScreen) + 		    pConfigs[i].doubleBuffer   = FALSE; + 		pConfigs[i].stereo             = FALSE; + 		pConfigs[i].bufferSize         = 16; +-		pConfigs[i].depthSize          = info->depthBits; ++		pConfigs[i].depthSize          = info->dri->depthBits; + 		if (pConfigs[i].depthSize == 24 ? (RADEON_USE_STENCIL - stencil) + 						: stencil) { + 		    pConfigs[i].stencilSize    = 8; +@@ -252,7 +256,7 @@ static Bool RADEONInitVisualConfigs(ScreenPtr pScreen) + 		    pConfigs[i].doubleBuffer   = FALSE; + 		pConfigs[i].stereo             = FALSE; + 		pConfigs[i].bufferSize         = 32; +-		pConfigs[i].depthSize          = info->depthBits; ++		pConfigs[i].depthSize          = info->dri->depthBits; + 		if (pConfigs[i].depthSize == 24 ? (RADEON_USE_STENCIL - stencil) + 						: stencil) { + 		    pConfigs[i].stencilSize    = 8; +@@ -280,9 +284,9 @@ static Bool RADEONInitVisualConfigs(ScreenPtr pScreen) + 	break; +     } +  +-    info->numVisualConfigs   = numConfigs; +-    info->pVisualConfigs     = pConfigs; +-    info->pVisualConfigsPriv = pRADEONConfigs; ++    info->dri->numVisualConfigs   = numConfigs; ++    info->dri->pVisualConfigs     = pConfigs; ++    info->dri->pVisualConfigsPriv = pRADEONConfigs; +     GlxSetVisualConfigs(numConfigs, pConfigs, (void**)pRADEONConfigPtrs); +     return TRUE; + } +@@ -300,8 +304,8 @@ static Bool RADEONCreateContext(ScreenPtr pScreen, VisualPtr visual, +     ctx_info = (RADEONDRIContextPtr)contextStore; +     if (!ctx_info) return FALSE; +  +-    if (drmAddMap(info->drmFD, 0, +-		  info->perctx_sarea_size, ++    if (drmAddMap(info->dri->drmFD, 0, ++		  info->dri->perctx_sarea_size, + 		  DRM_SHM, + 		  DRM_REMOVABLE, + 		  &ctx_info->sarea_handle) < 0) { +@@ -311,12 +315,12 @@ static Bool RADEONCreateContext(ScreenPtr pScreen, VisualPtr visual, + 	return FALSE; +     } +  +-    if (drmAddContextPrivateMapping(info->drmFD, hwContext, ++    if (drmAddContextPrivateMapping(info->dri->drmFD, hwContext, + 				    ctx_info->sarea_handle) < 0) { + 	xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 		   "[dri] could not associate private sarea to ctx id (%d)\n", + 		   (int)hwContext); +-	drmRmMap(info->drmFD, ctx_info->sarea_handle); ++	drmRmMap(info->dri->drmFD, ctx_info->sarea_handle); + 	return FALSE; +     } +  +@@ -337,7 +341,7 @@ static void RADEONDestroyContext(ScreenPtr pScreen, drm_context_t hwContext, +     ctx_info = (RADEONDRIContextPtr)contextStore; +     if (!ctx_info) return; +  +-    if (drmRmMap(info->drmFD, ctx_info->sarea_handle) < 0) { ++    if (drmRmMap(info->dri->drmFD, ctx_info->sarea_handle) < 0) { + 	xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 		   "[dri] could not remove private sarea for ctx id (%d)\n", + 		   (int)hwContext); +@@ -356,29 +360,29 @@ static void RADEONEnterServer(ScreenPtr pScreen) + { +     ScrnInfoPtr    pScrn = xf86Screens[pScreen->myNum]; +     RADEONInfoPtr  info  = RADEONPTR(pScrn); +-    RADEONSAREAPrivPtr pSAREAPriv; ++    drm_radeon_sarea_t *pSAREAPriv; +  +  +     RADEON_MARK_SYNC(info, pScrn); +  +     pSAREAPriv = DRIGetSAREAPrivate(pScrn->pScreen); +-    if (pSAREAPriv->ctxOwner != DRIGetContext(pScrn->pScreen)) { +-	info->XInited3D = FALSE; +-	info->needCacheFlush = (info->ChipFamily >= CHIP_FAMILY_R300); ++    if (pSAREAPriv->ctx_owner != DRIGetContext(pScrn->pScreen)) { ++	info->accel_state->XInited3D = FALSE; ++	info->cp->needCacheFlush = (info->ChipFamily >= CHIP_FAMILY_R300); +     } +  + #ifdef DAMAGE +-    if (!info->pDamage && info->allowPageFlip) { ++    if (!info->dri->pDamage && info->dri->allowPageFlip) { + 	PixmapPtr pPix  = pScreen->GetScreenPixmap(pScreen); +-	info->pDamage = DamageCreate(NULL, NULL, DamageReportNone, TRUE, +-				     pScreen, pPix); ++	info->dri->pDamage = DamageCreate(NULL, NULL, DamageReportNone, TRUE, ++					  pScreen, pPix); +  +-	if (info->pDamage == NULL) { ++	if (info->dri->pDamage == NULL) { + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		       "No screen damage record, page flipping disabled\n"); +-	    info->allowPageFlip = 0; ++	    info->dri->allowPageFlip = 0; + 	} else { +-	    DamageRegister(&pPix->drawable, info->pDamage); ++	    DamageRegister(&pPix->drawable, info->dri->pDamage); +  + 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 		       "Damage tracking initialized for page flipping\n"); +@@ -401,8 +405,8 @@ static void RADEONLeaveServer(ScreenPtr pScreen) +     RING_LOCALS; +  + #ifdef DAMAGE +-    if (info->pDamage) { +-	RegionPtr pDamageReg = DamageRegion(info->pDamage); ++    if (info->dri->pDamage) { ++	RegionPtr pDamageReg = DamageRegion(info->dri->pDamage); + 	int nrects = pDamageReg ? REGION_NUM_RECTS(pDamageReg) : 0; +  + 	if (nrects) { +@@ -417,7 +421,7 @@ static void RADEONLeaveServer(ScreenPtr pScreen) +     RADEONCP_RELEASE(pScrn, info); +  + #ifdef USE_EXA +-    info->engineMode = EXA_ENGINEMODE_UNKNOWN; ++    info->accel_state->engineMode = EXA_ENGINEMODE_UNKNOWN; + #endif + } +  +@@ -451,17 +455,17 @@ static void RADEONDRISwapContext(ScreenPtr pScreen, DRISyncType syncType, +  + /* 16-bit depth buffer functions */ + #define WRITE_DEPTH16(_x, _y, d)					\ +-    *(uint16_t *)(pointer)(buf + 2*(_x + _y*info->frontPitch)) = (d) ++    *(uint16_t *)(pointer)(buf + 2*(_x + _y*info->dri->frontPitch)) = (d) +  + #define READ_DEPTH16(d, _x, _y)						\ +-    (d) = *(uint16_t *)(pointer)(buf + 2*(_x + _y*info->frontPitch)) ++    (d) = *(uint16_t *)(pointer)(buf + 2*(_x + _y*info->dri->frontPitch)) +  + /* 32-bit depth buffer (stencil and depth simultaneously) functions */ + #define WRITE_DEPTHSTENCIL32(_x, _y, d)					\ +-    *(uint32_t *)(pointer)(buf + 4*(_x + _y*info->frontPitch)) = (d) ++    *(uint32_t *)(pointer)(buf + 4*(_x + _y*info->dri->frontPitch)) = (d) +  + #define READ_DEPTHSTENCIL32(d, _x, _y)					\ +-    (d) = *(uint32_t *)(pointer)(buf + 4*(_x + _y*info->frontPitch)) ++    (d) = *(uint32_t *)(pointer)(buf + 4*(_x + _y*info->dri->frontPitch)) +  + /* Screen to screen copy of data in the depth buffer */ + static void RADEONScreenToScreenCopyDepth(ScrnInfoPtr pScrn, +@@ -470,7 +474,7 @@ static void RADEONScreenToScreenCopyDepth(ScrnInfoPtr pScrn, + 					  int w, int h) + { +     RADEONInfoPtr  info = RADEONPTR(pScrn); +-    unsigned char *buf  = info->FB + info->depthOffset; ++    unsigned char *buf  = info->FB + info->dri->depthOffset; +     int            xstart, xend, xdir; +     int            ystart, yend, ydir; +     int            x, y, d; +@@ -641,12 +645,12 @@ static void RADEONDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, +     } +  +     /* pretty much a hack. */ +-    info->dst_pitch_offset = info->backPitchOffset; ++    info->accel_state->dst_pitch_offset = info->dri->backPitchOffset; +     if (info->tilingEnabled) +-       info->dst_pitch_offset |= RADEON_DST_TILE_MACRO; ++       info->accel_state->dst_pitch_offset |= RADEON_DST_TILE_MACRO; +  +-    (*info->accel->SetupForScreenToScreenCopy)(pScrn, xdir, ydir, GXcopy, +-					       (uint32_t)(-1), -1); ++    (*info->accel_state->accel->SetupForScreenToScreenCopy)(pScrn, xdir, ydir, GXcopy, ++							    (uint32_t)(-1), -1); +  +     for (; nbox-- ; pbox++) { + 	int  xa    = pbox->x1; +@@ -664,12 +668,12 @@ static void RADEONDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, + 	if (w <= 0) continue; + 	if (h <= 0) continue; +  +-	(*info->accel->SubsequentScreenToScreenCopy)(pScrn, +-						     xa, ya, +-						     destx, desty, +-						     w, h); ++	(*info->accel_state->accel->SubsequentScreenToScreenCopy)(pScrn, ++								  xa, ya, ++								  destx, desty, ++								  w, h); +  +-	if (info->depthMoves) { ++	if (info->dri->depthMoves) { + 	    RADEONScreenToScreenCopyDepth(pScrn, + 					  xa, ya, + 					  destx, desty, +@@ -677,14 +681,14 @@ static void RADEONDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, + 	} +     } +  +-    info->dst_pitch_offset = info->frontPitchOffset;; ++    info->accel_state->dst_pitch_offset = info->dri->frontPitchOffset;; +  +     xfree(pptNew2); +     xfree(pboxNew2); +     xfree(pptNew1); +     xfree(pboxNew1); +  +-    info->accel->NeedToSync = TRUE; ++    info->accel_state->accel->NeedToSync = TRUE; + #endif /* USE_XAA */ + } +  +@@ -692,36 +696,36 @@ static void RADEONDRIInitGARTValues(RADEONInfoPtr info) + { +     int            s, l; +  +-    info->gartOffset = 0; ++    info->dri->gartOffset = 0; +  + 				/* Initialize the CP ring buffer data */ +-    info->ringStart       = info->gartOffset; +-    info->ringMapSize     = info->ringSize*1024*1024 + radeon_drm_page_size; +-    info->ringSizeLog2QW  = RADEONMinBits(info->ringSize*1024*1024/8)-1; ++    info->dri->ringStart       = info->dri->gartOffset; ++    info->dri->ringMapSize     = info->dri->ringSize*1024*1024 + radeon_drm_page_size; ++    info->dri->ringSizeLog2QW  = RADEONMinBits(info->dri->ringSize*1024*1024/8)-1; +  +-    info->ringReadOffset  = info->ringStart + info->ringMapSize; +-    info->ringReadMapSize = radeon_drm_page_size; ++    info->dri->ringReadOffset  = info->dri->ringStart + info->dri->ringMapSize; ++    info->dri->ringReadMapSize = radeon_drm_page_size; +  + 				/* Reserve space for vertex/indirect buffers */ +-    info->bufStart        = info->ringReadOffset + info->ringReadMapSize; +-    info->bufMapSize      = info->bufSize*1024*1024; ++    info->dri->bufStart        = info->dri->ringReadOffset + info->dri->ringReadMapSize; ++    info->dri->bufMapSize      = info->dri->bufSize*1024*1024; +  + 				/* Reserve the rest for GART textures */ +-    info->gartTexStart     = info->bufStart + info->bufMapSize; +-    s = (info->gartSize*1024*1024 - info->gartTexStart); ++    info->dri->gartTexStart     = info->dri->bufStart + info->dri->bufMapSize; ++    s = (info->dri->gartSize*1024*1024 - info->dri->gartTexStart); +     l = RADEONMinBits((s-1) / RADEON_NR_TEX_REGIONS); +     if (l < RADEON_LOG_TEX_GRANULARITY) l = RADEON_LOG_TEX_GRANULARITY; +-    info->gartTexMapSize   = (s >> l) << l; +-    info->log2GARTTexGran  = l; ++    info->dri->gartTexMapSize   = (s >> l) << l; ++    info->dri->log2GARTTexGran  = l; + } +  + /* Set AGP transfer mode according to requests and constraints */ + static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen) + { +     unsigned char *RADEONMMIO = info->MMIO; +-    unsigned long mode   = drmAgpGetMode(info->drmFD);	/* Default mode */ +-    unsigned int  vendor = drmAgpVendorId(info->drmFD); +-    unsigned int  device = drmAgpDeviceId(info->drmFD); ++    unsigned long mode   = drmAgpGetMode(info->dri->drmFD);	/* Default mode */ ++    unsigned int  vendor = drmAgpVendorId(info->dri->drmFD); ++    unsigned int  device = drmAgpDeviceId(info->dri->drmFD); +     /* ignore agp 3.0 mode bit from the chip as it's buggy on some cards with +        pcie-agp rialto bridge chip - use the one from bridge which must match */ +     uint32_t agp_status = (INREG(RADEON_AGP_STATUS) | RADEON_AGPv3_MODE) & mode; +@@ -739,26 +743,26 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen) +  +     from = X_DEFAULT; +  +-    if (xf86GetOptValInteger(info->Options, OPTION_AGP_MODE, &info->agpMode)) { +-	if ((info->agpMode < (is_v3 ? 4 : 1)) || +-            (info->agpMode > (is_v3 ? 8 : 4)) || +-	    (info->agpMode & (info->agpMode - 1))) { ++    if (xf86GetOptValInteger(info->Options, OPTION_AGP_MODE, &info->dri->agpMode)) { ++	if ((info->dri->agpMode < (is_v3 ? 4 : 1)) || ++            (info->dri->agpMode > (is_v3 ? 8 : 4)) || ++	    (info->dri->agpMode & (info->dri->agpMode - 1))) { + 	    xf86DrvMsg(pScreen->myNum, X_ERROR, + 		       "Illegal AGP Mode: %d (valid values: %s), leaving at " +-		       "%dx\n", info->agpMode, is_v3 ? "4, 8" : "1, 2, 4", ++		       "%dx\n", info->dri->agpMode, is_v3 ? "4, 8" : "1, 2, 4", + 		       defaultMode); +-	    info->agpMode = defaultMode; ++	    info->dri->agpMode = defaultMode; + 	} else + 	    from = X_CONFIG; +     } else +-	info->agpMode = defaultMode; ++	info->dri->agpMode = defaultMode; +  +-    xf86DrvMsg(pScreen->myNum, from, "Using AGP %dx\n", info->agpMode); ++    xf86DrvMsg(pScreen->myNum, from, "Using AGP %dx\n", info->dri->agpMode); +  +     mode &= ~RADEON_AGP_MODE_MASK; +     if (is_v3) { + 	/* only set one mode bit for AGPv3 */ +-	switch (info->agpMode) { ++	switch (info->dri->agpMode) { + 	case 8:          mode |= RADEON_AGPv3_8X_MODE; break; + 	case 4: default: mode |= RADEON_AGPv3_4X_MODE; + 	} +@@ -766,7 +770,7 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen) + 	 *      currently these bits are not used in all tested cards. + 	 */ +     } else { +-	switch (info->agpMode) { ++	switch (info->dri->agpMode) { + 	case 4:          mode |= RADEON_AGP_4X_MODE; + 	case 2:          mode |= RADEON_AGP_2X_MODE; + 	case 1: default: mode |= RADEON_AGP_1X_MODE; +@@ -800,9 +804,9 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen) + 	       PCI_DEV_VENDOR_ID(info->PciInfo), + 	       PCI_DEV_DEVICE_ID(info->PciInfo)); +  +-    if (drmAgpEnable(info->drmFD, mode) < 0) { ++    if (drmAgpEnable(info->dri->drmFD, mode) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] AGP not enabled\n"); +-	drmAgpRelease(info->drmFD); ++	drmAgpRelease(info->dri->drmFD); + 	return FALSE; +     } +  +@@ -829,15 +833,15 @@ static void RADEONSetAgpBase(RADEONInfoPtr info, ScreenPtr pScreen) +      * agp_base_2 ? +      */ +     if (info->ChipFamily == CHIP_FAMILY_RV515) +-	OUTMC(pScrn, RV515_MC_AGP_BASE, drmAgpBase(info->drmFD)); ++	OUTMC(pScrn, RV515_MC_AGP_BASE, drmAgpBase(info->dri->drmFD)); +     else if ((info->ChipFamily >= CHIP_FAMILY_R520) && + 	     (info->ChipFamily <= CHIP_FAMILY_RV570)) +-	OUTMC(pScrn, R520_MC_AGP_BASE, drmAgpBase(info->drmFD)); ++	OUTMC(pScrn, R520_MC_AGP_BASE, drmAgpBase(info->dri->drmFD)); +     else if ((info->ChipFamily == CHIP_FAMILY_RS690) || + 	     (info->ChipFamily == CHIP_FAMILY_RS740)) +-	OUTMC(pScrn, RS690_MC_AGP_BASE, drmAgpBase(info->drmFD)); ++	OUTMC(pScrn, RS690_MC_AGP_BASE, drmAgpBase(info->dri->drmFD)); +     else if (info->ChipFamily < CHIP_FAMILY_RV515) +-	OUTREG(RADEON_AGP_BASE, drmAgpBase(info->drmFD)); ++	OUTREG(RADEON_AGP_BASE, drmAgpBase(info->dri->drmFD)); + } +  + /* Initialize the AGP state.  Request memory for use in AGP space, and +@@ -847,7 +851,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen) + { +     int            ret; +  +-    if (drmAgpAcquire(info->drmFD) < 0) { ++    if (drmAgpAcquire(info->dri->drmFD) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_WARNING, "[agp] AGP not available\n"); + 	return FALSE; +     } +@@ -857,101 +861,101 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen) +  +     RADEONDRIInitGARTValues(info); +  +-    if ((ret = drmAgpAlloc(info->drmFD, info->gartSize*1024*1024, 0, NULL, +-			   &info->agpMemHandle)) < 0) { ++    if ((ret = drmAgpAlloc(info->dri->drmFD, info->dri->gartSize*1024*1024, 0, NULL, ++			   &info->dri->agpMemHandle)) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] Out of memory (%d)\n", ret); +-	drmAgpRelease(info->drmFD); ++	drmAgpRelease(info->dri->drmFD); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[agp] %d kB allocated with handle 0x%08x\n", +-	       info->gartSize*1024, info->agpMemHandle); ++	       info->dri->gartSize*1024, info->dri->agpMemHandle); +  +-    if (drmAgpBind(info->drmFD, +-		   info->agpMemHandle, info->gartOffset) < 0) { ++    if (drmAgpBind(info->dri->drmFD, ++		   info->dri->agpMemHandle, info->dri->gartOffset) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] Could not bind\n"); +-	drmAgpFree(info->drmFD, info->agpMemHandle); +-	drmAgpRelease(info->drmFD); ++	drmAgpFree(info->dri->drmFD, info->dri->agpMemHandle); ++	drmAgpRelease(info->dri->drmFD); + 	return FALSE; +     } +  +-    if (drmAddMap(info->drmFD, info->ringStart, info->ringMapSize, +-		  DRM_AGP, DRM_READ_ONLY, &info->ringHandle) < 0) { ++    if (drmAddMap(info->dri->drmFD, info->dri->ringStart, info->dri->ringMapSize, ++		  DRM_AGP, DRM_READ_ONLY, &info->dri->ringHandle) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[agp] Could not add ring mapping\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, +-	       "[agp] ring handle = 0x%08x\n", info->ringHandle); ++	       "[agp] ring handle = 0x%08x\n", info->dri->ringHandle); +  +-    if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize, +-	       &info->ring) < 0) { ++    if (drmMap(info->dri->drmFD, info->dri->ringHandle, info->dri->ringMapSize, ++	       &info->dri->ring) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] Could not map ring\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[agp] Ring mapped at 0x%08lx\n", +-	       (unsigned long)info->ring); ++	       (unsigned long)info->dri->ring); +  +-    if (drmAddMap(info->drmFD, info->ringReadOffset, info->ringReadMapSize, +-		  DRM_AGP, DRM_READ_ONLY, &info->ringReadPtrHandle) < 0) { ++    if (drmAddMap(info->dri->drmFD, info->dri->ringReadOffset, info->dri->ringReadMapSize, ++		  DRM_AGP, DRM_READ_ONLY, &info->dri->ringReadPtrHandle) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[agp] Could not add ring read ptr mapping\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, +  	       "[agp] ring read ptr handle = 0x%08x\n", +-	       info->ringReadPtrHandle); ++	       info->dri->ringReadPtrHandle); +  +-    if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize, +-	       &info->ringReadPtr) < 0) { ++    if (drmMap(info->dri->drmFD, info->dri->ringReadPtrHandle, info->dri->ringReadMapSize, ++	       &info->dri->ringReadPtr) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[agp] Could not map ring read ptr\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[agp] Ring read ptr mapped at 0x%08lx\n", +-	       (unsigned long)info->ringReadPtr); ++	       (unsigned long)info->dri->ringReadPtr); +  +-    if (drmAddMap(info->drmFD, info->bufStart, info->bufMapSize, +-		  DRM_AGP, 0, &info->bufHandle) < 0) { ++    if (drmAddMap(info->dri->drmFD, info->dri->bufStart, info->dri->bufMapSize, ++		  DRM_AGP, 0, &info->dri->bufHandle) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[agp] Could not add vertex/indirect buffers mapping\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, +  	       "[agp] vertex/indirect buffers handle = 0x%08x\n", +-	       info->bufHandle); ++	       info->dri->bufHandle); +  +-    if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize, +-	       &info->buf) < 0) { ++    if (drmMap(info->dri->drmFD, info->dri->bufHandle, info->dri->bufMapSize, ++	       &info->dri->buf) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[agp] Could not map vertex/indirect buffers\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[agp] Vertex/indirect buffers mapped at 0x%08lx\n", +-	       (unsigned long)info->buf); ++	       (unsigned long)info->dri->buf); +  +-    if (drmAddMap(info->drmFD, info->gartTexStart, info->gartTexMapSize, +-		  DRM_AGP, 0, &info->gartTexHandle) < 0) { ++    if (drmAddMap(info->dri->drmFD, info->dri->gartTexStart, info->dri->gartTexMapSize, ++		  DRM_AGP, 0, &info->dri->gartTexHandle) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[agp] Could not add GART texture map mapping\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, +  	       "[agp] GART texture map handle = 0x%08x\n", +-	       info->gartTexHandle); ++	       info->dri->gartTexHandle); +  +-    if (drmMap(info->drmFD, info->gartTexHandle, info->gartTexMapSize, +-	       &info->gartTex) < 0) { ++    if (drmMap(info->dri->drmFD, info->dri->gartTexHandle, info->dri->gartTexMapSize, ++	       &info->dri->gartTex) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[agp] Could not map GART texture map\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[agp] GART Texture map mapped at 0x%08lx\n", +-	       (unsigned long)info->gartTex); ++	       (unsigned long)info->dri->gartTex); +  +     RADEONSetAgpBase(info, pScreen); +  +@@ -966,104 +970,104 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen) +     int  ret; +     int  flags = DRM_READ_ONLY | DRM_LOCKED | DRM_KERNEL; +  +-    ret = drmScatterGatherAlloc(info->drmFD, info->gartSize*1024*1024, +-				&info->pciMemHandle); ++    ret = drmScatterGatherAlloc(info->dri->drmFD, info->dri->gartSize*1024*1024, ++				&info->dri->pciMemHandle); +     if (ret < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, "[pci] Out of memory (%d)\n", ret); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[pci] %d kB allocated with handle 0x%08x\n", +-	       info->gartSize*1024, info->pciMemHandle); ++	       info->dri->gartSize*1024, info->dri->pciMemHandle); +  +     RADEONDRIInitGARTValues(info); +  +-    if (drmAddMap(info->drmFD, info->ringStart, info->ringMapSize, +-		  DRM_SCATTER_GATHER, flags, &info->ringHandle) < 0) { ++    if (drmAddMap(info->dri->drmFD, info->dri->ringStart, info->dri->ringMapSize, ++		  DRM_SCATTER_GATHER, flags, &info->dri->ringHandle) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[pci] Could not add ring mapping\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, +-	       "[pci] ring handle = 0x%08x\n", info->ringHandle); ++	       "[pci] ring handle = 0x%08x\n", info->dri->ringHandle); +  +-    if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize, +-	       &info->ring) < 0) { ++    if (drmMap(info->dri->drmFD, info->dri->ringHandle, info->dri->ringMapSize, ++	       &info->dri->ring) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, "[pci] Could not map ring\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[pci] Ring mapped at 0x%08lx\n", +-	       (unsigned long)info->ring); ++	       (unsigned long)info->dri->ring); +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[pci] Ring contents 0x%08lx\n", +-	       *(unsigned long *)(pointer)info->ring); ++	       *(unsigned long *)(pointer)info->dri->ring); +  +-    if (drmAddMap(info->drmFD, info->ringReadOffset, info->ringReadMapSize, +-		  DRM_SCATTER_GATHER, flags, &info->ringReadPtrHandle) < 0) { ++    if (drmAddMap(info->dri->drmFD, info->dri->ringReadOffset, info->dri->ringReadMapSize, ++		  DRM_SCATTER_GATHER, flags, &info->dri->ringReadPtrHandle) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[pci] Could not add ring read ptr mapping\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, +  	       "[pci] ring read ptr handle = 0x%08x\n", +-	       info->ringReadPtrHandle); ++	       info->dri->ringReadPtrHandle); +  +-    if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize, +-	       &info->ringReadPtr) < 0) { ++    if (drmMap(info->dri->drmFD, info->dri->ringReadPtrHandle, info->dri->ringReadMapSize, ++	       &info->dri->ringReadPtr) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[pci] Could not map ring read ptr\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[pci] Ring read ptr mapped at 0x%08lx\n", +-	       (unsigned long)info->ringReadPtr); ++	       (unsigned long)info->dri->ringReadPtr); +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[pci] Ring read ptr contents 0x%08lx\n", +-	       *(unsigned long *)(pointer)info->ringReadPtr); ++	       *(unsigned long *)(pointer)info->dri->ringReadPtr); +  +-    if (drmAddMap(info->drmFD, info->bufStart, info->bufMapSize, +-		  DRM_SCATTER_GATHER, 0, &info->bufHandle) < 0) { ++    if (drmAddMap(info->dri->drmFD, info->dri->bufStart, info->dri->bufMapSize, ++		  DRM_SCATTER_GATHER, 0, &info->dri->bufHandle) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[pci] Could not add vertex/indirect buffers mapping\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, +  	       "[pci] vertex/indirect buffers handle = 0x%08x\n", +-	       info->bufHandle); ++	       info->dri->bufHandle); +  +-    if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize, +-	       &info->buf) < 0) { ++    if (drmMap(info->dri->drmFD, info->dri->bufHandle, info->dri->bufMapSize, ++	       &info->dri->buf) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[pci] Could not map vertex/indirect buffers\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[pci] Vertex/indirect buffers mapped at 0x%08lx\n", +-	       (unsigned long)info->buf); ++	       (unsigned long)info->dri->buf); +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[pci] Vertex/indirect buffers contents 0x%08lx\n", +-	       *(unsigned long *)(pointer)info->buf); ++	       *(unsigned long *)(pointer)info->dri->buf); +  +-    if (drmAddMap(info->drmFD, info->gartTexStart, info->gartTexMapSize, +-		  DRM_SCATTER_GATHER, 0, &info->gartTexHandle) < 0) { ++    if (drmAddMap(info->dri->drmFD, info->dri->gartTexStart, info->dri->gartTexMapSize, ++		  DRM_SCATTER_GATHER, 0, &info->dri->gartTexHandle) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[pci] Could not add GART texture map mapping\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, +  	       "[pci] GART texture map handle = 0x%08x\n", +-	       info->gartTexHandle); ++	       info->dri->gartTexHandle); +  +-    if (drmMap(info->drmFD, info->gartTexHandle, info->gartTexMapSize, +-	       &info->gartTex) < 0) { ++    if (drmMap(info->dri->drmFD, info->dri->gartTexHandle, info->dri->gartTexMapSize, ++	       &info->dri->gartTex) < 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[pci] Could not map GART texture map\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[pci] GART Texture map mapped at 0x%08lx\n", +-	       (unsigned long)info->gartTex); ++	       (unsigned long)info->dri->gartTex); +  +     return TRUE; + } +@@ -1074,13 +1078,13 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen) + static Bool RADEONDRIMapInit(RADEONInfoPtr info, ScreenPtr pScreen) + { + 				/* Map registers */ +-    info->registerSize = info->MMIOSize; +-    if (drmAddMap(info->drmFD, info->MMIOAddr, info->registerSize, +-		  DRM_REGISTERS, DRM_READ_ONLY, &info->registerHandle) < 0) { ++    info->dri->registerSize = info->MMIOSize; ++    if (drmAddMap(info->dri->drmFD, info->MMIOAddr, info->dri->registerSize, ++		  DRM_REGISTERS, DRM_READ_ONLY, &info->dri->registerHandle) < 0) { + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, +-	       "[drm] register handle = 0x%08x\n", info->registerHandle); ++	       "[drm] register handle = 0x%08x\n", info->dri->registerHandle); +  +     return TRUE; + } +@@ -1090,43 +1094,43 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen) + { +     ScrnInfoPtr    pScrn = xf86Screens[pScreen->myNum]; +     int            cpp   = info->CurrentLayout.pixel_bytes; +-    drmRadeonInit  drmInfo; ++    drm_radeon_init_t  drmInfo; +  +-    memset(&drmInfo, 0, sizeof(drmRadeonInit)); ++    memset(&drmInfo, 0, sizeof(drm_radeon_init_t)); +     if ( info->ChipFamily >= CHIP_FAMILY_R300 ) +-       drmInfo.func             = DRM_RADEON_INIT_R300_CP; ++       drmInfo.func             = RADEON_INIT_R300_CP; +     else +     if ( info->ChipFamily >= CHIP_FAMILY_R200 ) +-       drmInfo.func		= DRM_RADEON_INIT_R200_CP; ++       drmInfo.func		= RADEON_INIT_R200_CP; +     else +-       drmInfo.func		= DRM_RADEON_INIT_CP; ++       drmInfo.func		= RADEON_INIT_CP; +  +     drmInfo.sarea_priv_offset   = sizeof(XF86DRISAREARec); +     drmInfo.is_pci              = (info->cardType!=CARD_AGP); +-    drmInfo.cp_mode             = info->CPMode; +-    drmInfo.gart_size           = info->gartSize*1024*1024; +-    drmInfo.ring_size           = info->ringSize*1024*1024; +-    drmInfo.usec_timeout        = info->CPusecTimeout; ++    drmInfo.cp_mode             = RADEON_CSQ_PRIBM_INDBM; ++    drmInfo.gart_size           = info->dri->gartSize*1024*1024; ++    drmInfo.ring_size           = info->dri->ringSize*1024*1024; ++    drmInfo.usec_timeout        = info->cp->CPusecTimeout; +  +     drmInfo.fb_bpp              = info->CurrentLayout.pixel_code; +-    drmInfo.depth_bpp           = (info->depthBits - 8) * 2; +- +-    drmInfo.front_offset        = info->frontOffset; +-    drmInfo.front_pitch         = info->frontPitch * cpp; +-    drmInfo.back_offset         = info->backOffset; +-    drmInfo.back_pitch          = info->backPitch * cpp; +-    drmInfo.depth_offset        = info->depthOffset; +-    drmInfo.depth_pitch         = info->depthPitch * drmInfo.depth_bpp / 8; +- +-    drmInfo.fb_offset           = info->fbHandle; +-    drmInfo.mmio_offset         = info->registerHandle; +-    drmInfo.ring_offset         = info->ringHandle; +-    drmInfo.ring_rptr_offset    = info->ringReadPtrHandle; +-    drmInfo.buffers_offset      = info->bufHandle; +-    drmInfo.gart_textures_offset= info->gartTexHandle; +- +-    if (drmCommandWrite(info->drmFD, DRM_RADEON_CP_INIT, +-			&drmInfo, sizeof(drmRadeonInit)) < 0) ++    drmInfo.depth_bpp           = (info->dri->depthBits - 8) * 2; ++ ++    drmInfo.front_offset        = info->dri->frontOffset; ++    drmInfo.front_pitch         = info->dri->frontPitch * cpp; ++    drmInfo.back_offset         = info->dri->backOffset; ++    drmInfo.back_pitch          = info->dri->backPitch * cpp; ++    drmInfo.depth_offset        = info->dri->depthOffset; ++    drmInfo.depth_pitch         = info->dri->depthPitch * drmInfo.depth_bpp / 8; ++ ++    drmInfo.fb_offset           = info->dri->fbHandle; ++    drmInfo.mmio_offset         = info->dri->registerHandle; ++    drmInfo.ring_offset         = info->dri->ringHandle; ++    drmInfo.ring_rptr_offset    = info->dri->ringReadPtrHandle; ++    drmInfo.buffers_offset      = info->dri->bufHandle; ++    drmInfo.gart_textures_offset= info->dri->gartTexHandle; ++ ++    if (drmCommandWrite(info->dri->drmFD, DRM_RADEON_CP_INIT, ++			&drmInfo, sizeof(drm_radeon_init_t)) < 0) + 	return FALSE; +  +     /* DRM_RADEON_CP_INIT does an engine reset, which resets some engine +@@ -1140,21 +1144,21 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen) +  + static void RADEONDRIGartHeapInit(RADEONInfoPtr info, ScreenPtr pScreen) + { +-    drmRadeonMemInitHeap drmHeap; ++    drm_radeon_mem_init_heap_t drmHeap; +  +     /* Start up the simple memory manager for GART space */ +     drmHeap.region = RADEON_MEM_REGION_GART; +     drmHeap.start  = 0; +-    drmHeap.size   = info->gartTexMapSize; ++    drmHeap.size   = info->dri->gartTexMapSize; +  +-    if (drmCommandWrite(info->drmFD, DRM_RADEON_INIT_HEAP, ++    if (drmCommandWrite(info->dri->drmFD, DRM_RADEON_INIT_HEAP, + 			&drmHeap, sizeof(drmHeap))) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[drm] Failed to initialize GART heap manager\n"); +     } else { + 	xf86DrvMsg(pScreen->myNum, X_INFO, + 		   "[drm] Initialized kernel GART heap manager, %d\n", +-		   info->gartTexMapSize); ++		   info->dri->gartTexMapSize); +     } + } +  +@@ -1164,29 +1168,29 @@ static void RADEONDRIGartHeapInit(RADEONInfoPtr info, ScreenPtr pScreen) + static Bool RADEONDRIBufInit(RADEONInfoPtr info, ScreenPtr pScreen) + { + 				/* Initialize vertex buffers */ +-    info->bufNumBufs = drmAddBufs(info->drmFD, +-				  info->bufMapSize / RADEON_BUFFER_SIZE, +-				  RADEON_BUFFER_SIZE, +-				  (info->cardType!=CARD_AGP) ? DRM_SG_BUFFER : DRM_AGP_BUFFER, +-				  info->bufStart); ++    info->dri->bufNumBufs = drmAddBufs(info->dri->drmFD, ++				       info->dri->bufMapSize / RADEON_BUFFER_SIZE, ++				       RADEON_BUFFER_SIZE, ++				       (info->cardType!=CARD_AGP) ? DRM_SG_BUFFER : DRM_AGP_BUFFER, ++				       info->dri->bufStart); +  +-    if (info->bufNumBufs <= 0) { ++    if (info->dri->bufNumBufs <= 0) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[drm] Could not create vertex/indirect buffers list\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[drm] Added %d %d byte vertex/indirect buffers\n", +-	       info->bufNumBufs, RADEON_BUFFER_SIZE); ++	       info->dri->bufNumBufs, RADEON_BUFFER_SIZE); +  +-    if (!(info->buffers = drmMapBufs(info->drmFD))) { ++    if (!(info->dri->buffers = drmMapBufs(info->dri->drmFD))) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[drm] Failed to map vertex/indirect buffers list\n"); + 	return FALSE; +     } +     xf86DrvMsg(pScreen->myNum, X_INFO, + 	       "[drm] Mapped %d vertex/indirect buffers\n", +-	       info->buffers->count); ++	       info->dri->buffers->count); +  +     return TRUE; + } +@@ -1195,29 +1199,35 @@ static void RADEONDRIIrqInit(RADEONInfoPtr info, ScreenPtr pScreen) + { +     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; +  +-    if (!info->irq) { +-	info->irq = drmGetInterruptFromBusID( +-	    info->drmFD, ++    if (!info->dri->irq) { ++	info->dri->irq = drmGetInterruptFromBusID( ++	    info->dri->drmFD, + 	    PCI_CFG_BUS(info->PciInfo), + 	    PCI_CFG_DEV(info->PciInfo), + 	    PCI_CFG_FUNC(info->PciInfo)); +  +-	if ((drmCtlInstHandler(info->drmFD, info->irq)) != 0) { ++	if ((drmCtlInstHandler(info->dri->drmFD, info->dri->irq)) != 0) { + 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 		       "[drm] failure adding irq handler, " + 		       "there is a device already using that irq\n" + 		       "[drm] falling back to irq-free operation\n"); +-	    info->irq = 0; ++	    info->dri->irq = 0; + 	} else { + 	    unsigned char *RADEONMMIO = info->MMIO; + 	    info->ModeReg->gen_int_cntl = INREG( RADEON_GEN_INT_CNTL ); ++ ++	    /* Let the DRM know it can safely disable the vblank interrupts */ ++	    radeon_crtc_modeset_ioctl(XF86_CRTC_CONFIG_PTR(pScrn)->crtc[0], ++				      FALSE); ++	    radeon_crtc_modeset_ioctl(XF86_CRTC_CONFIG_PTR(pScrn)->crtc[0], ++				      TRUE); + 	} +     } +  +-    if (info->irq) ++    if (info->dri->irq) + 	xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 		   "[drm] dma control initialized, using IRQ %d\n", +-		   info->irq); ++		   info->dri->irq); + } +  +  +@@ -1233,7 +1243,7 @@ static void RADEONDRICPInit(ScrnInfoPtr pScrn) +     RADEONCP_START(pScrn, info); + #ifdef USE_XAA +     if (!info->useEXA) +-	info->dst_pitch_offset = info->frontPitchOffset; ++	info->accel_state->dst_pitch_offset = info->dri->frontPitchOffset; + #endif + } +  +@@ -1274,16 +1284,16 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn) +  +     /* Check the lib version */ +     if (xf86LoaderCheckSymbol("drmGetLibVersion")) +-	info->pLibDRMVersion = drmGetLibVersion(info->drmFD); +-    if (info->pLibDRMVersion == NULL) { ++	info->dri->pLibDRMVersion = drmGetLibVersion(info->dri->drmFD); ++    if (info->dri->pLibDRMVersion == NULL) { + 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		   "[dri] RADEONDRIGetVersion failed because libDRM is really " + 		   "way to old to even get a version number out of it.\n" + 		   "[dri] Disabling DRI.\n"); + 	return FALSE; +     } +-    if (info->pLibDRMVersion->version_major != 1 || +-	info->pLibDRMVersion->version_minor < 2) { ++    if (info->dri->pLibDRMVersion->version_major != 1 || ++	info->dri->pLibDRMVersion->version_minor < 2) { + 	    /* incompatible drm library version */ + 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		   "[dri] RADEONDRIGetVersion failed because of a " +@@ -1291,11 +1301,11 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn) + 		   "[dri] libdrm.a module version is %d.%d.%d but " + 		   "version 1.2.x is needed.\n" + 		   "[dri] Disabling DRI.\n", +-		   info->pLibDRMVersion->version_major, +-		   info->pLibDRMVersion->version_minor, +-		   info->pLibDRMVersion->version_patchlevel); +-	drmFreeVersion(info->pLibDRMVersion); +-	info->pLibDRMVersion = NULL; ++		   info->dri->pLibDRMVersion->version_major, ++		   info->dri->pLibDRMVersion->version_minor, ++		   info->dri->pLibDRMVersion->version_patchlevel); ++	drmFreeVersion(info->dri->pLibDRMVersion); ++	info->dri->pLibDRMVersion = NULL; + 	return FALSE; +     } +  +@@ -1322,9 +1332,9 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn) +     } +  +     /* Get DRM version & close DRM */ +-    info->pKernelDRMVersion = drmGetVersion(fd); ++    info->dri->pKernelDRMVersion = drmGetVersion(fd); +     drmClose(fd); +-    if (info->pKernelDRMVersion == NULL) { ++    if (info->dri->pKernelDRMVersion == NULL) { + 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		   "[dri] RADEONDRIGetVersion failed to get the DRM version\n" + 		   "[dri] Disabling DRI.\n"); +@@ -1344,10 +1354,10 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn) +     } +  +     /* We don't, bummer ! */ +-    if (info->pKernelDRMVersion->version_major != 1 || +-	info->pKernelDRMVersion->version_minor < req_minor || +-	(info->pKernelDRMVersion->version_minor == req_minor && +-	 info->pKernelDRMVersion->version_patchlevel < req_patch)) { ++    if (info->dri->pKernelDRMVersion->version_major != 1 || ++	info->dri->pKernelDRMVersion->version_minor < req_minor || ++	(info->dri->pKernelDRMVersion->version_minor == req_minor && ++	 info->dri->pKernelDRMVersion->version_patchlevel < req_patch)) { +         /* Incompatible drm version */ + 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		   "[dri] RADEONDRIGetVersion failed because of a version " +@@ -1355,13 +1365,13 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn) + 		   "[dri] radeon.o kernel module version is %d.%d.%d " + 		   "but version 1.%d.%d or newer is needed.\n" + 		   "[dri] Disabling DRI.\n", +-		   info->pKernelDRMVersion->version_major, +-		   info->pKernelDRMVersion->version_minor, +-		   info->pKernelDRMVersion->version_patchlevel, ++		   info->dri->pKernelDRMVersion->version_major, ++		   info->dri->pKernelDRMVersion->version_minor, ++		   info->dri->pKernelDRMVersion->version_patchlevel, + 		   req_minor, + 		   req_patch); +-	drmFreeVersion(info->pKernelDRMVersion); +-	info->pKernelDRMVersion = NULL; ++	drmFreeVersion(info->dri->pKernelDRMVersion); ++	info->dri->pKernelDRMVersion = NULL; + 	return FALSE; +     } +  +@@ -1377,7 +1387,7 @@ Bool RADEONDRISetVBlankInterrupt(ScrnInfoPtr pScrn, Bool on) +     if (!info->want_vblank_interrupts) +         on = FALSE; +  +-    if (info->directRenderingEnabled && info->pKernelDRMVersion->version_minor >= 28) { ++    if (info->directRenderingEnabled && info->dri->pKernelDRMVersion->version_minor >= 28) { +         if (on) { +   	    if (xf86_config->num_crtc > 1 && xf86_config->crtc[1]->enabled) + 	        value = DRM_RADEON_VBLANK_CRTC1 | DRM_RADEON_VBLANK_CRTC2; +@@ -1406,7 +1416,7 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen) +     DRIInfoPtr     pDRIInfo; +     RADEONDRIPtr   pRADEONDRI; +  +-    info->DRICloseScreen = NULL; ++    info->dri->DRICloseScreen = NULL; +  +     switch (info->CurrentLayout.pixel_code) { +     case 8: +@@ -1432,7 +1442,7 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen) +      */ +     if (!(pDRIInfo = DRICreateInfoRec())) return FALSE; +  +-    info->pDRIInfo                       = pDRIInfo; ++    info->dri->pDRIInfo                       = pDRIInfo; +     pDRIInfo->drmDriverName              = RADEON_DRIVER_NAME; +  +     if ( (info->ChipFamily >= CHIP_FAMILY_R300) ) { +@@ -1453,11 +1463,10 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen) + 		PCI_DEV_DEV(info->PciInfo), + 		PCI_DEV_FUNC(info->PciInfo)); +     } +-    pDRIInfo->ddxDriverMajorVersion      = info->allowColorTiling ? +-    				RADEON_VERSION_MAJOR_TILED : RADEON_VERSION_MAJOR; +-    pDRIInfo->ddxDriverMinorVersion      = RADEON_VERSION_MINOR; +-    pDRIInfo->ddxDriverPatchVersion      = RADEON_VERSION_PATCH; +-    pDRIInfo->frameBufferPhysicalAddress = (void *)info->LinearAddr + info->frontOffset; ++    pDRIInfo->ddxDriverMajorVersion      = info->allowColorTiling ? 5 : 4; ++    pDRIInfo->ddxDriverMinorVersion      = 3; ++    pDRIInfo->ddxDriverPatchVersion      = 0; ++    pDRIInfo->frameBufferPhysicalAddress = (void *)info->LinearAddr + info->dri->frontOffset; +     pDRIInfo->frameBufferSize            = info->FbMapSize - info->FbSecureSize; +     pDRIInfo->frameBufferStride          = (pScrn->displayWidth * + 					    info->CurrentLayout.pixel_bytes); +@@ -1487,7 +1496,7 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen) +     /* For now the mapping works by using a fixed size defined +      * in the SAREA header +      */ +-    if (sizeof(XF86DRISAREARec)+sizeof(RADEONSAREAPriv) > SAREA_MAX) { ++    if (sizeof(XF86DRISAREARec)+sizeof(drm_radeon_sarea_t) > SAREA_MAX) { + 	ErrorF("Data does not fit in SAREA\n"); + 	return FALSE; +     } +@@ -1495,8 +1504,8 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen) + #endif +  +     if (!(pRADEONDRI = (RADEONDRIPtr)xcalloc(sizeof(RADEONDRIRec),1))) { +-	DRIDestroyInfoRec(info->pDRIInfo); +-	info->pDRIInfo = NULL; ++	DRIDestroyInfoRec(info->dri->pDRIInfo); ++	info->dri->pDRIInfo = NULL; + 	return FALSE; +     } +     pDRIInfo->devPrivate     = pRADEONDRI; +@@ -1538,7 +1547,7 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen) +     } + #endif +  +-    if (!DRIScreenInit(pScreen, pDRIInfo, &info->drmFD)) { ++    if (!DRIScreenInit(pScreen, pDRIInfo, &info->dri->drmFD)) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, + 		   "[dri] DRIScreenInit failed.  Disabling DRI.\n"); + 	xfree(pDRIInfo->devPrivate); +@@ -1581,7 +1590,7 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen) + 	void *scratch_ptr; +         int scratch_int; +  +-	DRIGetDeviceInfo(pScreen, &info->fbHandle, ++	DRIGetDeviceInfo(pScreen, &info->dri->fbHandle, +                          &scratch_int, &scratch_int, +                          &scratch_int, &scratch_int, +                          &scratch_ptr); +@@ -1605,7 +1614,7 @@ static Bool RADEONDRIDoCloseScreen(int scrnIndex, ScreenPtr pScreen) +  +     RADEONDRICloseScreen(pScreen); +  +-    pScreen->CloseScreen = info->DRICloseScreen; ++    pScreen->CloseScreen = info->dri->DRICloseScreen; +     return (*pScreen->CloseScreen)(scrnIndex, pScreen); + } +  +@@ -1617,11 +1626,11 @@ Bool RADEONDRIFinishScreenInit(ScreenPtr pScreen) + { +     ScrnInfoPtr         pScrn = xf86Screens[pScreen->myNum]; +     RADEONInfoPtr       info  = RADEONPTR(pScrn); +-    RADEONSAREAPrivPtr  pSAREAPriv; ++    drm_radeon_sarea_t  *pSAREAPriv; +     RADEONDRIPtr        pRADEONDRI; +  +-    info->pDRIInfo->driverSwapMethod = DRI_HIDE_X_CONTEXT; +-    /* info->pDRIInfo->driverSwapMethod = DRI_SERVER_SWAP; */ ++    info->dri->pDRIInfo->driverSwapMethod = DRI_HIDE_X_CONTEXT; ++    /* info->dri->pDRIInfo->driverSwapMethod = DRI_SERVER_SWAP; */ +  +     /* NOTE: DRIFinishScreenInit must be called before *DRIKernelInit +      * because *DRIKernelInit requires that the hardware lock is held by +@@ -1655,10 +1664,10 @@ Bool RADEONDRIFinishScreenInit(ScreenPtr pScreen) +     RADEONDRICPInit(pScrn); +  +     /* Initialize the SAREA private data structure */ +-    pSAREAPriv = (RADEONSAREAPrivPtr)DRIGetSAREAPrivate(pScreen); ++    pSAREAPriv = (drm_radeon_sarea_t*)DRIGetSAREAPrivate(pScreen); +     memset(pSAREAPriv, 0, sizeof(*pSAREAPriv)); +  +-    pRADEONDRI                    = (RADEONDRIPtr)info->pDRIInfo->devPrivate; ++    pRADEONDRI                    = (RADEONDRIPtr)info->dri->pDRIInfo->devPrivate; +  +     pRADEONDRI->deviceID          = info->Chipset; +     pRADEONDRI->width             = pScrn->virtualX; +@@ -1667,40 +1676,40 @@ Bool RADEONDRIFinishScreenInit(ScreenPtr pScreen) +     pRADEONDRI->bpp               = pScrn->bitsPerPixel; +  +     pRADEONDRI->IsPCI             = (info->cardType!=CARD_AGP); +-    pRADEONDRI->AGPMode           = info->agpMode; ++    pRADEONDRI->AGPMode           = info->dri->agpMode; +  +-    pRADEONDRI->frontOffset       = info->frontOffset; +-    pRADEONDRI->frontPitch        = info->frontPitch; +-    pRADEONDRI->backOffset        = info->backOffset; +-    pRADEONDRI->backPitch         = info->backPitch; +-    pRADEONDRI->depthOffset       = info->depthOffset; +-    pRADEONDRI->depthPitch        = info->depthPitch; +-    pRADEONDRI->textureOffset     = info->textureOffset; +-    pRADEONDRI->textureSize       = info->textureSize; +-    pRADEONDRI->log2TexGran       = info->log2TexGran; ++    pRADEONDRI->frontOffset       = info->dri->frontOffset; ++    pRADEONDRI->frontPitch        = info->dri->frontPitch; ++    pRADEONDRI->backOffset        = info->dri->backOffset; ++    pRADEONDRI->backPitch         = info->dri->backPitch; ++    pRADEONDRI->depthOffset       = info->dri->depthOffset; ++    pRADEONDRI->depthPitch        = info->dri->depthPitch; ++    pRADEONDRI->textureOffset     = info->dri->textureOffset; ++    pRADEONDRI->textureSize       = info->dri->textureSize; ++    pRADEONDRI->log2TexGran       = info->dri->log2TexGran; +  +-    pRADEONDRI->registerHandle    = info->registerHandle; +-    pRADEONDRI->registerSize      = info->registerSize; ++    pRADEONDRI->registerHandle    = info->dri->registerHandle; ++    pRADEONDRI->registerSize      = info->dri->registerSize; +  +-    pRADEONDRI->statusHandle      = info->ringReadPtrHandle; +-    pRADEONDRI->statusSize        = info->ringReadMapSize; ++    pRADEONDRI->statusHandle      = info->dri->ringReadPtrHandle; ++    pRADEONDRI->statusSize        = info->dri->ringReadMapSize; +  +-    pRADEONDRI->gartTexHandle     = info->gartTexHandle; +-    pRADEONDRI->gartTexMapSize    = info->gartTexMapSize; +-    pRADEONDRI->log2GARTTexGran   = info->log2GARTTexGran; +-    pRADEONDRI->gartTexOffset     = info->gartTexStart; ++    pRADEONDRI->gartTexHandle     = info->dri->gartTexHandle; ++    pRADEONDRI->gartTexMapSize    = info->dri->gartTexMapSize; ++    pRADEONDRI->log2GARTTexGran   = info->dri->log2GARTTexGran; ++    pRADEONDRI->gartTexOffset     = info->dri->gartTexStart; +  +     pRADEONDRI->sarea_priv_offset = sizeof(XF86DRISAREARec); +  + #ifdef PER_CONTEXT_SAREA +     /* Set per-context SAREA size */ +-    pRADEONDRI->perctx_sarea_size = info->perctx_sarea_size; ++    pRADEONDRI->perctx_sarea_size = info->dri->perctx_sarea_size; + #endif +  +     info->directRenderingInited = TRUE; +  +     /* Wrap CloseScreen */ +-    info->DRICloseScreen = pScreen->CloseScreen; ++    info->dri->DRICloseScreen = pScreen->CloseScreen; +     pScreen->CloseScreen = RADEONDRIDoCloseScreen; +  +     /* disable vblank at startup */ +@@ -1721,7 +1730,7 @@ void RADEONDRIResume(ScreenPtr pScreen) +     ScrnInfoPtr   pScrn   = xf86Screens[pScreen->myNum]; +     RADEONInfoPtr info    = RADEONPTR(pScrn); +  +-    if (info->pKernelDRMVersion->version_minor >= 9) { ++    if (info->dri->pKernelDRMVersion->version_minor >= 9) { + 	xf86DrvMsg(pScreen->myNum, X_INFO, + 		   "[RESUME] Attempting to re-init Radeon hardware.\n"); +     } else { +@@ -1738,7 +1747,7 @@ void RADEONDRIResume(ScreenPtr pScreen) + 	RADEONSetAgpBase(info, pScreen); +     } +  +-    _ret = drmCommandNone(info->drmFD, DRM_RADEON_CP_RESUME); ++    _ret = drmCommandNone(info->dri->drmFD, DRM_RADEON_CP_RESUME); +     if (_ret) { + 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		   "%s: CP resume %d\n", __FUNCTION__, _ret); +@@ -1777,86 +1786,86 @@ void RADEONDRICloseScreen(ScreenPtr pScreen) + { +     ScrnInfoPtr    pScrn = xf86Screens[pScreen->myNum]; +     RADEONInfoPtr  info  = RADEONPTR(pScrn); +-    drmRadeonInit  drmInfo; ++    drm_radeon_init_t  drmInfo; +  +      xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, + 		    "RADEONDRICloseScreen\n"); +  + #ifdef DAMAGE +-     REGION_UNINIT(pScreen, &info->driRegion); ++     REGION_UNINIT(pScreen, &info->dri->driRegion); + #endif +  +-     if (info->irq) { ++     if (info->dri->irq) { + 	RADEONDRISetVBlankInterrupt (pScrn, FALSE); +-	drmCtlUninstHandler(info->drmFD); +-	info->irq = 0; ++	drmCtlUninstHandler(info->dri->drmFD); ++	info->dri->irq = 0; + 	info->ModeReg->gen_int_cntl = 0; +     } +  +     /* De-allocate vertex buffers */ +-    if (info->buffers) { +-	drmUnmapBufs(info->buffers); +-	info->buffers = NULL; ++    if (info->dri->buffers) { ++	drmUnmapBufs(info->dri->buffers); ++	info->dri->buffers = NULL; +     } +  +     /* De-allocate all kernel resources */ +-    memset(&drmInfo, 0, sizeof(drmRadeonInit)); +-    drmInfo.func = DRM_RADEON_CLEANUP_CP; +-    drmCommandWrite(info->drmFD, DRM_RADEON_CP_INIT, +-		    &drmInfo, sizeof(drmRadeonInit)); ++    memset(&drmInfo, 0, sizeof(drm_radeon_init_t)); ++    drmInfo.func = RADEON_CLEANUP_CP; ++    drmCommandWrite(info->dri->drmFD, DRM_RADEON_CP_INIT, ++		    &drmInfo, sizeof(drm_radeon_init_t)); +  +     /* De-allocate all GART resources */ +-    if (info->gartTex) { +-	drmUnmap(info->gartTex, info->gartTexMapSize); +-	info->gartTex = NULL; ++    if (info->dri->gartTex) { ++	drmUnmap(info->dri->gartTex, info->dri->gartTexMapSize); ++	info->dri->gartTex = NULL; +     } +-    if (info->buf) { +-	drmUnmap(info->buf, info->bufMapSize); +-	info->buf = NULL; ++    if (info->dri->buf) { ++	drmUnmap(info->dri->buf, info->dri->bufMapSize); ++	info->dri->buf = NULL; +     } +-    if (info->ringReadPtr) { +-	drmUnmap(info->ringReadPtr, info->ringReadMapSize); +-	info->ringReadPtr = NULL; ++    if (info->dri->ringReadPtr) { ++	drmUnmap(info->dri->ringReadPtr, info->dri->ringReadMapSize); ++	info->dri->ringReadPtr = NULL; +     } +-    if (info->ring) { +-	drmUnmap(info->ring, info->ringMapSize); +-	info->ring = NULL; ++    if (info->dri->ring) { ++	drmUnmap(info->dri->ring, info->dri->ringMapSize); ++	info->dri->ring = NULL; +     } +-    if (info->agpMemHandle != DRM_AGP_NO_HANDLE) { +-	drmAgpUnbind(info->drmFD, info->agpMemHandle); +-	drmAgpFree(info->drmFD, info->agpMemHandle); +-	info->agpMemHandle = DRM_AGP_NO_HANDLE; +-	drmAgpRelease(info->drmFD); ++    if (info->dri->agpMemHandle != DRM_AGP_NO_HANDLE) { ++	drmAgpUnbind(info->dri->drmFD, info->dri->agpMemHandle); ++	drmAgpFree(info->dri->drmFD, info->dri->agpMemHandle); ++	info->dri->agpMemHandle = DRM_AGP_NO_HANDLE; ++	drmAgpRelease(info->dri->drmFD); +     } +-    if (info->pciMemHandle) { +-	drmScatterGatherFree(info->drmFD, info->pciMemHandle); +-	info->pciMemHandle = 0; ++    if (info->dri->pciMemHandle) { ++	drmScatterGatherFree(info->dri->drmFD, info->dri->pciMemHandle); ++	info->dri->pciMemHandle = 0; +     } +  +-    if (info->pciGartBackup) { +-	xfree(info->pciGartBackup); +-	info->pciGartBackup = NULL; ++    if (info->dri->pciGartBackup) { ++	xfree(info->dri->pciGartBackup); ++	info->dri->pciGartBackup = NULL; +     } +  +     /* De-allocate all DRI resources */ +     DRICloseScreen(pScreen); +  +     /* De-allocate all DRI data structures */ +-    if (info->pDRIInfo) { +-	if (info->pDRIInfo->devPrivate) { +-	    xfree(info->pDRIInfo->devPrivate); +-	    info->pDRIInfo->devPrivate = NULL; ++    if (info->dri->pDRIInfo) { ++	if (info->dri->pDRIInfo->devPrivate) { ++	    xfree(info->dri->pDRIInfo->devPrivate); ++	    info->dri->pDRIInfo->devPrivate = NULL; + 	} +-	DRIDestroyInfoRec(info->pDRIInfo); +-	info->pDRIInfo = NULL; ++	DRIDestroyInfoRec(info->dri->pDRIInfo); ++	info->dri->pDRIInfo = NULL; +     } +-    if (info->pVisualConfigs) { +-	xfree(info->pVisualConfigs); +-	info->pVisualConfigs = NULL; ++    if (info->dri->pVisualConfigs) { ++	xfree(info->dri->pVisualConfigs); ++	info->dri->pVisualConfigs = NULL; +     } +-    if (info->pVisualConfigsPriv) { +-	xfree(info->pVisualConfigsPriv); +-	info->pVisualConfigsPriv = NULL; ++    if (info->dri->pVisualConfigsPriv) { ++	xfree(info->dri->pVisualConfigsPriv); ++	info->dri->pVisualConfigsPriv = NULL; +     } + } +  +@@ -1885,24 +1894,24 @@ static void RADEONDRIRefreshArea(ScrnInfoPtr pScrn, RegionPtr pReg) +     RADEONInfoPtr       info       = RADEONPTR(pScrn); +     int                 i, num; +     ScreenPtr           pScreen    = pScrn->pScreen; +-    RADEONSAREAPrivPtr  pSAREAPriv = DRIGetSAREAPrivate(pScreen); ++    drm_radeon_sarea_t  *pSAREAPriv = DRIGetSAREAPrivate(pScreen); + #ifdef USE_EXA +     PixmapPtr           pPix = pScreen->GetScreenPixmap(pScreen); + #endif +     RegionRec region; +     BoxPtr pbox; +  +-    if (!info->directRenderingInited || !info->CPStarted) ++    if (!info->directRenderingInited || !info->cp->CPStarted) + 	return; +  +     /* Don't want to do this when no 3d is active and pages are +      * right-way-round +      */ +-    if (!pSAREAPriv->pfAllowPageFlip && pSAREAPriv->pfCurrentPage == 0) ++    if (!pSAREAPriv->pfState && pSAREAPriv->pfCurrentPage == 0) + 	return; +  +     REGION_NULL(pScreen, ®ion); +-    REGION_SUBTRACT(pScreen, ®ion, pReg, &info->driRegion); ++    REGION_SUBTRACT(pScreen, ®ion, pReg, &info->dri->driRegion); +  +     num = REGION_NUM_RECTS(®ion); +  +@@ -1919,9 +1928,9 @@ static void RADEONDRIRefreshArea(ScrnInfoPtr pScrn, RegionPtr pReg) + 	uint32_t src_pitch_offset, dst_pitch_offset, datatype; +  + 	RADEONGetPixmapOffsetPitch(pPix, &src_pitch_offset); +-	dst_pitch_offset = src_pitch_offset + (info->backOffset >> 10); ++	dst_pitch_offset = src_pitch_offset + (info->dri->backOffset >> 10); + 	RADEONGetDatatypeBpp(pScrn->bitsPerPixel, &datatype); +-	info->xdir = info->ydir = 1; ++	info->accel_state->xdir = info->accel_state->ydir = 1; +  + 	RADEONDoPrepareCopyCP(pScrn, src_pitch_offset, dst_pitch_offset, datatype, + 			      GXcopy, ~0); +@@ -1931,13 +1940,14 @@ static void RADEONDRIRefreshArea(ScrnInfoPtr pScrn, RegionPtr pReg) + #ifdef USE_XAA +     if (!info->useEXA) { + 	/* Make sure accel has been properly inited */ +-	if (info->accel == NULL || info->accel->SetupForScreenToScreenCopy == NULL) ++	if (info->accel_state->accel == NULL || ++	    info->accel_state->accel->SetupForScreenToScreenCopy == NULL) + 	    goto out; + 	if (info->tilingEnabled) +-	    info->dst_pitch_offset |= RADEON_DST_TILE_MACRO; +-	(*info->accel->SetupForScreenToScreenCopy)(pScrn, +-						   1, 1, GXcopy, +-						   (uint32_t)(-1), -1); ++	    info->accel_state->dst_pitch_offset |= RADEON_DST_TILE_MACRO; ++	(*info->accel_state->accel->SetupForScreenToScreenCopy)(pScrn, ++								1, 1, GXcopy, ++								(uint32_t)(-1), -1); +     } + #endif +  +@@ -1954,23 +1964,23 @@ static void RADEONDRIRefreshArea(ScrnInfoPtr pScrn, RegionPtr pReg) +  + #ifdef USE_XAA + 	    if (!info->useEXA) { +-		(*info->accel->SubsequentScreenToScreenCopy)(pScrn, xa, ya, +-							     xa + info->backX, +-							     ya + info->backY, +-							     xb - xa + 1, +-							     yb - ya + 1); ++		(*info->accel_state->accel->SubsequentScreenToScreenCopy)(pScrn, xa, ya, ++									  xa + info->dri->backX, ++									  ya + info->dri->backY, ++									  xb - xa + 1, ++									  yb - ya + 1); + 	    } + #endif + 	} +     } +  + #ifdef USE_XAA +-    info->dst_pitch_offset &= ~RADEON_DST_TILE_MACRO; ++    info->accel_state->dst_pitch_offset &= ~RADEON_DST_TILE_MACRO; + #endif +  + out: +     REGION_NULL(pScreen, ®ion); +-    DamageEmpty(info->pDamage); ++    DamageEmpty(info->dri->pDamage); + } +  + #endif /* DAMAGE */ +@@ -1981,13 +1991,13 @@ static void RADEONEnablePageFlip(ScreenPtr pScreen) +     ScrnInfoPtr         pScrn      = xf86Screens[pScreen->myNum]; +     RADEONInfoPtr       info       = RADEONPTR(pScrn); +  +-    if (info->allowPageFlip) { +-	RADEONSAREAPrivPtr pSAREAPriv = DRIGetSAREAPrivate(pScreen); ++    if (info->dri->allowPageFlip) { ++	drm_radeon_sarea_t *pSAREAPriv = DRIGetSAREAPrivate(pScreen); + 	BoxRec box = { .x1 = 0, .y1 = 0, .x2 = pScrn->virtualX - 1, + 		       .y2 = pScrn->virtualY - 1 }; + 	RegionPtr pReg = REGION_CREATE(pScreen, &box, 1); +  +-	pSAREAPriv->pfAllowPageFlip = 1; ++	pSAREAPriv->pfState = 1; + 	RADEONDRIRefreshArea(pScrn, pReg); + 	REGION_DESTROY(pScreen, pReg); +     } +@@ -2000,9 +2010,9 @@ static void RADEONDisablePageFlip(ScreenPtr pScreen) +      *   -- Field in sarea, plus bumping the window counters. +      *   -- DRM needs to cope with Front-to-Back swapbuffers. +      */ +-    RADEONSAREAPrivPtr  pSAREAPriv = DRIGetSAREAPrivate(pScreen); ++    drm_radeon_sarea_t  *pSAREAPriv = DRIGetSAREAPrivate(pScreen); +  +-    pSAREAPriv->pfAllowPageFlip = 0; ++    pSAREAPriv->pfState = 0; + } +  + static void RADEONDRITransitionSingleToMulti3d(ScreenPtr pScreen) +@@ -2034,9 +2044,9 @@ static void RADEONDRITransitionTo3d(ScreenPtr pScreen) + 	 * first so we always start with all free offscreen memory, except + 	 * maybe for Xv + 	 */ +-	if (info->backArea) { +-	    xf86FreeOffscreenArea(info->backArea); +-	    info->backArea = NULL; ++	if (info->dri->backArea) { ++	    xf86FreeOffscreenArea(info->dri->backArea); ++	    info->dri->backArea = NULL; +         } +  + 	xf86PurgeUnlockedOffscreenAreas(pScreen); +@@ -2047,7 +2057,7 @@ static void RADEONDRITransitionTo3d(ScreenPtr pScreen) + 	 * FIXME: This is hideous.  What about telling xv "oh btw you have no memory + 	 * any more?" -- anholt + 	 */ +-	if (height < (info->depthTexLines + info->backLines)) { ++	if (height < (info->dri->depthTexLines + info->dri->backLines)) { + 	    RADEONPortPrivPtr portPriv = info->adaptor->pPortPrivates[0].ptr; + 	    xf86FreeOffscreenLinear((FBLinearPtr)portPriv->video_memory); + 	    portPriv->video_memory = NULL; +@@ -2061,29 +2071,29 @@ static void RADEONDRITransitionTo3d(ScreenPtr pScreen) + 	 */ + 	fbarea = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth, + 					   height +-					   - info->depthTexLines +-					   - info->backLines, ++					   - info->dri->depthTexLines ++					   - info->dri->backLines, + 					   pScrn->displayWidth, + 					   NULL, NULL, NULL); + 	if (!fbarea) + 	    xf86DrvMsg(pScreen->myNum, X_ERROR, "Unable to reserve placeholder " + 		       "offscreen area, you might experience screen corruption\n"); +  +-	info->backArea = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth, +-						   info->backLines, +-						   pScrn->displayWidth, +-						   NULL, NULL, NULL); +-	if (!info->backArea) ++	info->dri->backArea = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth, ++							info->dri->backLines, ++							pScrn->displayWidth, ++							NULL, NULL, NULL); ++	if (!info->dri->backArea) + 	    xf86DrvMsg(pScreen->myNum, X_ERROR, "Unable to reserve offscreen " + 		       "area for back buffer, you might experience screen " + 		       "corruption\n"); +  +-	info->depthTexArea = xf86AllocateOffscreenArea(pScreen, +-						       pScrn->displayWidth, +-						       info->depthTexLines, +-						       pScrn->displayWidth, +-						       NULL, NULL, NULL); +-	if (!info->depthTexArea) ++	info->dri->depthTexArea = xf86AllocateOffscreenArea(pScreen, ++							    pScrn->displayWidth, ++							    info->dri->depthTexLines, ++							    pScrn->displayWidth, ++							    NULL, NULL, NULL); ++	if (!info->dri->depthTexArea) + 	    xf86DrvMsg(pScreen->myNum, X_ERROR, "Unable to reserve offscreen " + 		       "area for depth buffer and textures, you might " + 		       "experience screen corruption\n"); +@@ -2092,7 +2102,7 @@ static void RADEONDRITransitionTo3d(ScreenPtr pScreen) +     } + #endif /* USE_XAA */ +  +-    info->have3DWindows = 1; ++    info->dri->have3DWindows = 1; +  +     RADEONChangeSurfaces(pScrn); +     RADEONEnablePageFlip(pScreen); +@@ -2108,19 +2118,19 @@ static void RADEONDRITransitionTo2d(ScreenPtr pScreen) + { +     ScrnInfoPtr         pScrn      = xf86Screens[pScreen->myNum]; +     RADEONInfoPtr       info       = RADEONPTR(pScrn); +-    RADEONSAREAPrivPtr  pSAREAPriv = DRIGetSAREAPrivate(pScreen); ++    drm_radeon_sarea_t  *pSAREAPriv = DRIGetSAREAPrivate(pScreen); +  +     /* Try flipping back to the front page if necessary */ +     if (pSAREAPriv->pfCurrentPage == 1) +-	drmCommandNone(info->drmFD, DRM_RADEON_FLIP); ++	drmCommandNone(info->dri->drmFD, DRM_RADEON_FLIP); +  +     /* Shut down shadowing if we've made it back to the front page */ +     if (pSAREAPriv->pfCurrentPage == 0) { + 	RADEONDisablePageFlip(pScreen); + #ifdef USE_XAA + 	if (!info->useEXA) { +-	    xf86FreeOffscreenArea(info->backArea); +-	    info->backArea = NULL; ++	    xf86FreeOffscreenArea(info->dri->backArea); ++	    info->dri->backArea = NULL; + 	} + #endif +     } else { +@@ -2131,10 +2141,10 @@ static void RADEONDRITransitionTo2d(ScreenPtr pScreen) +  + #ifdef USE_XAA +     if (!info->useEXA) +-	xf86FreeOffscreenArea(info->depthTexArea); ++	xf86FreeOffscreenArea(info->dri->depthTexArea); + #endif +  +-    info->have3DWindows = 0; ++    info->dri->have3DWindows = 0; +  +     RADEONChangeSurfaces(pScrn); +  +@@ -2154,8 +2164,8 @@ RADEONDRIClipNotify(ScreenPtr pScreen, WindowPtr *ppWin, int num) +     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; +     RADEONInfoPtr info = RADEONPTR(pScrn); +  +-    REGION_UNINIT(pScreen, &info->driRegion); +-    REGION_NULL(pScreen, &info->driRegion); ++    REGION_UNINIT(pScreen, &info->dri->driRegion); ++    REGION_NULL(pScreen, &info->dri->driRegion); +  +     if (num > 0) { + 	int i; +@@ -2164,8 +2174,8 @@ RADEONDRIClipNotify(ScreenPtr pScreen, WindowPtr *ppWin, int num) + 	    WindowPtr pWin = ppWin[i]; +  + 	    if (pWin) { +-		REGION_UNION(pScreen, &info->driRegion, &pWin->clipList, +-			     &info->driRegion); ++		REGION_UNION(pScreen, &info->dri->driRegion, &pWin->clipList, ++			     &info->dri->driRegion); + 	    } + 	} +     } +@@ -2178,24 +2188,24 @@ void RADEONDRIAllocatePCIGARTTable(ScreenPtr pScreen) +     RADEONInfoPtr      info    = RADEONPTR(pScrn); +  +     if (info->cardType != CARD_PCIE || +-	info->pKernelDRMVersion->version_minor < 19) ++	info->dri->pKernelDRMVersion->version_minor < 19) +       return; +  +     if (info->FbSecureSize==0) +       return; +  +     /* set the old default size of pci gart table */ +-    if (info->pKernelDRMVersion->version_minor < 26) +-      info->pciGartSize = 32768; ++    if (info->dri->pKernelDRMVersion->version_minor < 26) ++      info->dri->pciGartSize = 32768; +  +-    info->pciGartSize = RADEONDRIGetPciAperTableSize(pScrn); ++    info->dri->pciGartSize = RADEONDRIGetPciAperTableSize(pScrn); +  +     /* allocate space to back up PCIEGART table */ +-    info->pciGartBackup = xnfcalloc(1, info->pciGartSize); +-    if (info->pciGartBackup == NULL) ++    info->dri->pciGartBackup = xnfcalloc(1, info->dri->pciGartSize); ++    if (info->dri->pciGartBackup == NULL) +       return; +  +-    info->pciGartOffset = (info->FbMapSize - info->FbSecureSize); ++    info->dri->pciGartOffset = (info->FbMapSize - info->FbSecureSize); +  +  + } +@@ -2207,7 +2217,7 @@ int RADEONDRIGetPciAperTableSize(ScrnInfoPtr pScrn) +     int ret_size; +     int num_pages; +  +-    num_pages = (info->pciAperSize * 1024 * 1024) / page_size; ++    num_pages = (info->dri->pciAperSize * 1024 * 1024) / page_size; +      +     ret_size = num_pages * sizeof(unsigned int); +  +@@ -2216,14 +2226,14 @@ int RADEONDRIGetPciAperTableSize(ScrnInfoPtr pScrn) +  + int RADEONDRISetParam(ScrnInfoPtr pScrn, unsigned int param, int64_t value) + { +-    drmRadeonSetParam  radeonsetparam; ++    drm_radeon_setparam_t  radeonsetparam; +     RADEONInfoPtr  info   = RADEONPTR(pScrn); +     int ret; +  +-    memset(&radeonsetparam, 0, sizeof(drmRadeonSetParam)); ++    memset(&radeonsetparam, 0, sizeof(drm_radeon_setparam_t)); +     radeonsetparam.param = param; +     radeonsetparam.value = value; +-    ret = drmCommandWrite(info->drmFD, DRM_RADEON_SETPARAM, +-			  &radeonsetparam, sizeof(drmRadeonSetParam)); ++    ret = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SETPARAM, ++			  &radeonsetparam, sizeof(drm_radeon_setparam_t)); +     return ret; + } +diff --git a/src/radeon_dri.h b/src/radeon_dri.h +index 67892a6..6e3ad62 100644 +--- a/src/radeon_dri.h ++++ b/src/radeon_dri.h +@@ -39,9 +39,8 @@ + #include "xf86drm.h" +  + /* DRI Driver defaults */ +-#define RADEON_DEFAULT_CP_PIO_MODE    RADEON_CSQ_PRIPIO_INDPIO +-#define RADEON_DEFAULT_CP_BM_MODE     RADEON_CSQ_PRIBM_INDBM + #define RADEON_DEFAULT_GART_SIZE      8 /* MB (must be 2^n and > 4MB) */ ++#define R300_DEFAULT_GART_SIZE        32 /* MB (for R300 and above) */ + #define RADEON_DEFAULT_RING_SIZE      1 /* MB (must be page aligned) */ + #define RADEON_DEFAULT_BUFFER_SIZE    2 /* MB (must be page aligned) */ + #define RADEON_DEFAULT_GART_TEX_SIZE  1 /* MB (must be page aligned) */ +@@ -52,10 +51,6 @@ +  + #define RADEON_CARD_TYPE_RADEON       1 +  +-#define RADEONCP_USE_RING_BUFFER(m)					\ +-    (((m) == RADEON_CSQ_PRIBM_INDDIS) ||				\ +-     ((m) == RADEON_CSQ_PRIBM_INDBM)) +- + typedef struct { +     /* DRI screen private data */ +     int           deviceID;	/* PCI device ID */ +diff --git a/src/radeon_dripriv.h b/src/radeon_dripriv.h +deleted file mode 100644 +index fcde08e..0000000 +--- a/src/radeon_dripriv.h ++++ /dev/null +@@ -1,63 +0,0 @@ +-/* +- * Copyright 2000 ATI Technologies Inc., Markham, Ontario, +- *                VA Linux Systems Inc., Fremont, California. +- * +- * All Rights Reserved. +- * +- * Permission is hereby granted, free of charge, to any person obtaining +- * a copy of this software and associated documentation files (the +- * "Software"), to deal in the Software without restriction, including +- * without limitation on the rights to use, copy, modify, merge, +- * publish, distribute, sublicense, and/or sell copies of the Software, +- * and to permit persons to whom the Software is furnished to do so, +- * subject to the following conditions: +- * +- * The above copyright notice and this permission notice (including the +- * next paragraph) shall be included in all copies or substantial +- * portions of the Software. +- * +- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +- * NON-INFRINGEMENT.  IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR +- * THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +- * DEALINGS IN THE SOFTWARE. +- */ +- +-/* +- * Authors: +- *   Kevin E. Martin <martin@xfree86.org> +- *   Rickard E. Faith <faith@valinux.com> +- * +- */ +- +-#ifndef _RADEON_DRIPRIV_H_ +-#define _RADEON_DRIPRIV_H_ +- +-#include "GL/glxint.h" +-#include "xf86drm.h" +-#include "radeon_common.h" +- +-#define RADEON_MAX_DRAWABLES 256 +- +-extern void GlxSetVisualConfigs(int nconfigs, __GLXvisualConfig *configs, +-				void **configprivs); +- +-typedef struct { +-    /* Nothing here yet */ +-    int dummy; +-} RADEONConfigPrivRec, *RADEONConfigPrivPtr; +- +-typedef struct { +-#ifdef PER_CONTEXT_SAREA +-    drm_context_t ctx_id; +-    drm_handle_t sarea_handle; +-#else +-    /* Nothing here yet */ +-    int dummy; +-#endif +-} RADEONDRIContextRec, *RADEONDRIContextPtr; +- +-#endif +diff --git a/src/radeon_driver.c b/src/radeon_driver.c +index f18ad99..c759bd6 100644 +--- a/src/radeon_driver.c ++++ b/src/radeon_driver.c +@@ -79,7 +79,7 @@ + #ifdef XF86DRI + #define _XF86DRI_SERVER_ + #include "radeon_dri.h" +-#include "radeon_sarea.h" ++#include "radeon_drm.h" + #include "sarea.h" + #endif +  +@@ -498,7 +498,7 @@ static Bool RADEONUnmapMem(ScrnInfoPtr pScrn) + void RADEONPllErrataAfterIndex(RADEONInfoPtr info) + { +     unsigned char *RADEONMMIO = info->MMIO; +-	 ++ +     if (!(info->ChipErrata & CHIP_ERRATA_PLL_DUMMYREADS)) + 	return; +  +@@ -669,7 +669,14 @@ static void radeon_write_mc_fb_agp_location(ScrnInfoPtr pScrn, int mask, uint32_ +     RADEONInfoPtr  info       = RADEONPTR(pScrn); +     unsigned char *RADEONMMIO = info->MMIO; +  +-    if (info->ChipFamily >= CHIP_FAMILY_R600) { ++    if (info->ChipFamily >= CHIP_FAMILY_RV770) { ++	if (mask & LOC_FB) ++	    OUTREG(R700_MC_VM_FB_LOCATION, fb_loc); ++	if (mask & LOC_AGP) { ++	    OUTREG(R600_MC_VM_AGP_BOT, agp_loc); ++	    OUTREG(R600_MC_VM_AGP_TOP, agp_loc_hi); ++	} ++    } else if (info->ChipFamily >= CHIP_FAMILY_R600) { + 	if (mask & LOC_FB) + 	    OUTREG(R600_MC_VM_FB_LOCATION, fb_loc); + 	if (mask & LOC_AGP) { +@@ -712,7 +719,14 @@ static void radeon_read_mc_fb_agp_location(ScrnInfoPtr pScrn, int mask, uint32_t +     RADEONInfoPtr  info       = RADEONPTR(pScrn); +     unsigned char *RADEONMMIO = info->MMIO; +  +-    if (info->ChipFamily >= CHIP_FAMILY_R600) { ++    if (info->ChipFamily >= CHIP_FAMILY_RV770) { ++	if (mask & LOC_FB) ++	    *fb_loc = INREG(R700_MC_VM_FB_LOCATION); ++	if (mask & LOC_AGP) { ++	    *agp_loc = INREG(R600_MC_VM_AGP_BOT); ++	    *agp_loc_hi = INREG(R600_MC_VM_AGP_TOP); ++	} ++    } else if (info->ChipFamily >= CHIP_FAMILY_R600) { + 	if (mask & LOC_FB) + 	    *fb_loc = INREG(R600_MC_VM_FB_LOCATION); + 	if (mask & LOC_AGP) { +@@ -1160,7 +1174,6 @@ static Bool RADEONPreInitVisual(ScrnInfoPtr pScrn) +  +     xf86PrintDepthBpp(pScrn); +  +-    info->fifo_slots                 = 0; +     info->pix24bpp                   = xf86GetBppFromDepth(pScrn, + 							   pScrn->depth); +     info->CurrentLayout.bitsPerPixel = pScrn->bitsPerPixel; +@@ -1271,7 +1284,7 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn) +  + #ifdef XF86DRI +     /* Apply memory map limitation if using an old DRI */ +-    if (info->directRenderingEnabled && !info->newMemoryMap) { ++    if (info->directRenderingEnabled && !info->dri->newMemoryMap) { + 	    if (aper_size < mem_size) + 		mem_size = aper_size; +     } +@@ -1286,7 +1299,7 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn) + #ifdef XF86DRI + 	/* Old DRI has restrictions on the memory map */ + 	if ( info->directRenderingEnabled && +-	     info->pKernelDRMVersion->version_minor < 10 ) ++	     info->dri->pKernelDRMVersion->version_minor < 10 ) + 	    info->mc_fb_location = (mem_size - 1) & 0xffff0000U; + 	else + #endif +@@ -1474,18 +1487,18 @@ static uint32_t RADEONGetAccessibleVRAM(ScrnInfoPtr pScrn) +      * we need to limit the amount of accessible video memory +      */ +     if (info->directRenderingEnabled && +-	info->pKernelDRMVersion->version_minor < 23) { ++	info->dri->pKernelDRMVersion->version_minor < 23) { + 	xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + 		   "[dri] limiting video memory to one aperture of %uK\n", + 		   (unsigned)aper_size); + 	xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + 		   "[dri] detected radeon kernel module version 1.%d but" + 		   " 1.23 or newer is required for full memory mapping.\n", +-		   info->pKernelDRMVersion->version_minor); +-	info->newMemoryMap = FALSE; ++		   info->dri->pKernelDRMVersion->version_minor); ++	info->dri->newMemoryMap = FALSE; + 	return aper_size; +     } +-    info->newMemoryMap = TRUE; ++    info->dri->newMemoryMap = TRUE; + #endif /* XF86DRI */ +  +     /* Set HDP_APER_CNTL only on cards that are known not to be broken, +@@ -1893,20 +1906,6 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn) +             return FALSE; +     } +  +- +-    if ((info->ChipFamily == CHIP_FAMILY_RS100) || +-	(info->ChipFamily == CHIP_FAMILY_RS200) || +-	(info->ChipFamily == CHIP_FAMILY_RS300) || +-	(info->ChipFamily == CHIP_FAMILY_RS400) || +-	(info->ChipFamily == CHIP_FAMILY_RS480) || +-	(info->ChipFamily == CHIP_FAMILY_RS600) || +-	(info->ChipFamily == CHIP_FAMILY_RS690) || +-	(info->ChipFamily == CHIP_FAMILY_RS740)) +-	info->has_tcl = FALSE; +-    else { +-	info->has_tcl = TRUE; +-    } +- +     return TRUE; + } +  +@@ -1960,6 +1959,25 @@ static Bool RADEONPreInitAccel(ScrnInfoPtr pScrn) +     char *optstr; + #endif +  ++    if (!(info->accel_state = xcalloc(1, sizeof(struct radeon_accel_state)))) { ++	xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Unable to allocate accel_state rec!\n"); ++	return FALSE; ++    } ++    info->accel_state->fifo_slots                 = 0; ++ ++    if ((info->ChipFamily == CHIP_FAMILY_RS100) || ++	(info->ChipFamily == CHIP_FAMILY_RS200) || ++	(info->ChipFamily == CHIP_FAMILY_RS300) || ++	(info->ChipFamily == CHIP_FAMILY_RS400) || ++	(info->ChipFamily == CHIP_FAMILY_RS480) || ++	(info->ChipFamily == CHIP_FAMILY_RS600) || ++	(info->ChipFamily == CHIP_FAMILY_RS690) || ++	(info->ChipFamily == CHIP_FAMILY_RS740)) ++	info->accel_state->has_tcl = FALSE; ++    else { ++	info->accel_state->has_tcl = TRUE; ++    } ++ +     info->useEXA = FALSE; +  +     if (info->ChipFamily >= CHIP_FAMILY_R600) { +@@ -2032,16 +2050,22 @@ static Bool RADEONPreInitAccel(ScrnInfoPtr pScrn) +  + static Bool RADEONPreInitInt10(ScrnInfoPtr pScrn, xf86Int10InfoPtr *ppInt10) + { +-#if !defined(__powerpc__) && !defined(__sparc__) ++#if (!defined(__powerpc__) && !defined(__sparc__)) || \ ++    (defined(XSERVER_LIBPCIACCESS) && HAVE_PCI_DEVICE_ENABLE) +     RADEONInfoPtr  info = RADEONPTR(pScrn); ++#endif ++#if !defined(__powerpc__) && !defined(__sparc__) +     unsigned char *RADEONMMIO = info->MMIO; +     uint32_t       fp2_gen_ctl_save   = 0; ++#endif +  + #ifdef XSERVER_LIBPCIACCESS + #if HAVE_PCI_DEVICE_ENABLE +     pci_device_enable(info->PciInfo); + #endif + #endif ++ ++#if !defined(__powerpc__) && !defined(__sparc__) +     /* don't need int10 on atom cards. +      * in theory all radeons, but the older stuff +      * isn't 100% yet +@@ -2087,10 +2111,19 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn) +  +     info->directRenderingEnabled = FALSE; +     info->directRenderingInited = FALSE; +-    info->CPInUse = FALSE; +-    info->CPStarted = FALSE; +-    info->pLibDRMVersion = NULL; +-    info->pKernelDRMVersion = NULL; ++ ++    if (!(info->dri = xcalloc(1, sizeof(struct radeon_dri)))) { ++	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,"Unable to allocate dri rec!\n"); ++	return FALSE; ++    } ++ ++    if (!(info->cp = xcalloc(1, sizeof(struct radeon_cp)))) { ++	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,"Unable to allocate cp rec!\n"); ++	return FALSE; ++    } ++    info->cp->CPInUse = FALSE; ++    info->cp->CPStarted = FALSE; ++    info->cp->CPusecTimeout = RADEON_DEFAULT_CP_TIMEOUT; +  +    if (xf86IsEntityShared(info->pEnt->index)) { +         xf86DrvMsg(pScrn->scrnIndex, X_WARNING, +@@ -2106,19 +2139,16 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn) +  +     if (info->Chipset == PCI_CHIP_RN50_515E || + 	info->Chipset == PCI_CHIP_RN50_5969 || +-	info->Chipset == PCI_CHIP_RC410_5A61 || +-	info->Chipset == PCI_CHIP_RC410_5A62 || +-	info->Chipset == PCI_CHIP_RS485_5975 || + 	info->ChipFamily == CHIP_FAMILY_RS600 || + 	info->ChipFamily >= CHIP_FAMILY_R600) { + 	if (xf86ReturnOptValBool(info->Options, OPTION_DRI, FALSE)) { + 	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING, +-		"Direct rendering for RN50/RC410/RS485/RS600/R600 forced on -- " ++		"Direct rendering for RN50/RS600/R600 forced on -- " + 		"This is NOT officially supported at the hardware level " + 		"and may cause instability or lockups\n"); + 	} else { + 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, +-		"Direct rendering not officially supported on RN50/RC410/R600\n"); ++		"Direct rendering not officially supported on RN50/RS600/R600\n"); + 	    return FALSE; + 	} +     } +@@ -2136,18 +2166,26 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn) + 	return FALSE; +     } +  ++    if (!(info->dri = xcalloc(1, sizeof(struct radeon_dri)))) { ++	ErrorF("Unable to allocate dri rec!\n"); ++	return FALSE; ++    } ++ ++    info->dri->pLibDRMVersion = NULL; ++    info->dri->pKernelDRMVersion = NULL; ++ +     if (!RADEONDRIGetVersion(pScrn)) + 	return FALSE; +  +     xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 	       "[dri] Found DRI library version %d.%d.%d and kernel" + 	       " module version %d.%d.%d\n", +-	       info->pLibDRMVersion->version_major, +-	       info->pLibDRMVersion->version_minor, +-	       info->pLibDRMVersion->version_patchlevel, +-	       info->pKernelDRMVersion->version_major, +-	       info->pKernelDRMVersion->version_minor, +-	       info->pKernelDRMVersion->version_patchlevel); ++	       info->dri->pLibDRMVersion->version_major, ++	       info->dri->pLibDRMVersion->version_minor, ++	       info->dri->pLibDRMVersion->version_patchlevel, ++	       info->dri->pKernelDRMVersion->version_major, ++	       info->dri->pKernelDRMVersion->version_minor, ++	       info->dri->pKernelDRMVersion->version_patchlevel); +  +     if (info->Chipset == PCI_CHIP_RS400_5A41 || + 	info->Chipset == PCI_CHIP_RS400_5A42 || +@@ -2158,7 +2196,7 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn) + 	info->Chipset == PCI_CHIP_RS482_5974 || + 	info->Chipset == PCI_CHIP_RS485_5975) { +  +-	if (info->pKernelDRMVersion->version_minor < 27) { ++	if (info->dri->pKernelDRMVersion->version_minor < 27) { +  	     xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 			"Direct rendering broken on XPRESS 200 and 200M with DRI less than 1.27\n"); + 	     return FALSE; +@@ -2167,25 +2205,22 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn) + 	"Direct rendering experimental on RS400/Xpress 200 enabled\n"); +     } +  +-    if (xf86ReturnOptValBool(info->Options, OPTION_CP_PIO, FALSE)) { +-	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Forcing CP into PIO mode\n"); +-	info->CPMode = RADEON_DEFAULT_CP_PIO_MODE; +-    } else { +-	info->CPMode = RADEON_DEFAULT_CP_BM_MODE; +-    } ++    if (info->ChipFamily >= CHIP_FAMILY_R300) ++	info->dri->gartSize      = R300_DEFAULT_GART_SIZE; ++    else ++	info->dri->gartSize      = RADEON_DEFAULT_GART_SIZE; +  +-    info->gartSize      = RADEON_DEFAULT_GART_SIZE; +-    info->ringSize      = RADEON_DEFAULT_RING_SIZE; +-    info->bufSize       = RADEON_DEFAULT_BUFFER_SIZE; +-    info->gartTexSize   = RADEON_DEFAULT_GART_TEX_SIZE; +-    info->pciAperSize   = RADEON_DEFAULT_PCI_APER_SIZE; +-    info->CPusecTimeout = RADEON_DEFAULT_CP_TIMEOUT; ++    info->dri->ringSize      = RADEON_DEFAULT_RING_SIZE; ++    info->dri->bufSize       = RADEON_DEFAULT_BUFFER_SIZE; ++    info->dri->gartTexSize   = RADEON_DEFAULT_GART_TEX_SIZE; ++    info->dri->pciAperSize   = RADEON_DEFAULT_PCI_APER_SIZE; ++    info->cp->CPusecTimeout = RADEON_DEFAULT_CP_TIMEOUT; +  +     if ((xf86GetOptValInteger(info->Options, +-			     OPTION_GART_SIZE, (int *)&(info->gartSize))) || ++			     OPTION_GART_SIZE, (int *)&(info->dri->gartSize))) || + 			     (xf86GetOptValInteger(info->Options, +-			     OPTION_GART_SIZE_OLD, (int *)&(info->gartSize)))) { +-	switch (info->gartSize) { ++			     OPTION_GART_SIZE_OLD, (int *)&(info->dri->gartSize)))) { ++	switch (info->dri->gartSize) { + 	case 4: + 	case 8: + 	case 16: +@@ -2197,24 +2232,24 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn) +  + 	default: + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, +-		       "Illegal GART size: %d MB\n", info->gartSize); ++		       "Illegal GART size: %d MB\n", info->dri->gartSize); + 	    return FALSE; + 	} +     } +  +     if (xf86GetOptValInteger(info->Options, +-			     OPTION_RING_SIZE, &(info->ringSize))) { +-	if (info->ringSize < 1 || info->ringSize >= (int)info->gartSize) { ++			     OPTION_RING_SIZE, &(info->dri->ringSize))) { ++	if (info->dri->ringSize < 1 || info->dri->ringSize >= (int)info->dri->gartSize) { + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		       "Illegal ring buffer size: %d MB\n", +-		       info->ringSize); ++		       info->dri->ringSize); + 	    return FALSE; + 	} +     } +  +     if (xf86GetOptValInteger(info->Options, +-			     OPTION_PCIAPER_SIZE, &(info->pciAperSize))) { +-      switch(info->pciAperSize) { ++			     OPTION_PCIAPER_SIZE, &(info->dri->pciAperSize))) { ++      switch(info->dri->pciAperSize) { +       case 32: +       case 64: +       case 128: +@@ -2223,63 +2258,63 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn) +       default: + 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		       "Illegal pci aper size: %d MB\n", +-		       info->pciAperSize); ++		       info->dri->pciAperSize); + 	return FALSE; +       } +     } +  +  +     if (xf86GetOptValInteger(info->Options, +-			     OPTION_BUFFER_SIZE, &(info->bufSize))) { +-	if (info->bufSize < 1 || info->bufSize >= (int)info->gartSize) { ++			     OPTION_BUFFER_SIZE, &(info->dri->bufSize))) { ++	if (info->dri->bufSize < 1 || info->dri->bufSize >= (int)info->dri->gartSize) { + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		       "Illegal vertex/indirect buffers size: %d MB\n", +-		       info->bufSize); ++		       info->dri->bufSize); + 	    return FALSE; + 	} +-	if (info->bufSize > 2) { ++	if (info->dri->bufSize > 2) { + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		       "Illegal vertex/indirect buffers size: %d MB\n", +-		       info->bufSize); ++		       info->dri->bufSize); + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		       "Clamping vertex/indirect buffers size to 2 MB\n"); +-	    info->bufSize = 2; ++	    info->dri->bufSize = 2; + 	} +     } +  +-    if (info->ringSize + info->bufSize + info->gartTexSize > +-	(int)info->gartSize) { ++    if (info->dri->ringSize + info->dri->bufSize + info->dri->gartTexSize > ++	(int)info->dri->gartSize) { + 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		   "Buffers are too big for requested GART space\n"); + 	return FALSE; +     } +  +-    info->gartTexSize = info->gartSize - (info->ringSize + info->bufSize); ++    info->dri->gartTexSize = info->dri->gartSize - (info->dri->ringSize + info->dri->bufSize); +  +     if (xf86GetOptValInteger(info->Options, OPTION_USEC_TIMEOUT, +-			     &(info->CPusecTimeout))) { ++			     &(info->cp->CPusecTimeout))) { + 	/* This option checked by the RADEON DRM kernel module */ +     } +  +     /* Two options to try and squeeze as much texture memory as possible +      * for dedicated 3d rendering boxes +      */ +-    info->noBackBuffer = xf86ReturnOptValBool(info->Options, +-					      OPTION_NO_BACKBUFFER, +-					      FALSE); ++    info->dri->noBackBuffer = xf86ReturnOptValBool(info->Options, ++						   OPTION_NO_BACKBUFFER, ++						   FALSE); +  +-    info->allowPageFlip = 0; ++    info->dri->allowPageFlip = 0; +  + #ifdef DAMAGE +-    if (info->noBackBuffer) { ++    if (info->dri->noBackBuffer) { + 	from = X_DEFAULT; + 	reason = " because back buffer disabled"; +     } else { + 	from = xf86GetOptValBool(info->Options, OPTION_PAGE_FLIP, +-				 &info->allowPageFlip) ? X_CONFIG : X_DEFAULT; ++				 &info->dri->allowPageFlip) ? X_CONFIG : X_DEFAULT; +  + 	if (IS_AVIVO_VARIANT) { +-	    info->allowPageFlip = 0; ++	    info->dri->allowPageFlip = 0; + 	    reason = " on r5xx and newer chips.\n"; + 	} else { + 	    reason = ""; +@@ -2292,7 +2327,7 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn) + #endif +  +     xf86DrvMsg(pScrn->scrnIndex, from, "Page Flipping %sabled%s\n", +-	       info->allowPageFlip ? "en" : "dis", reason); ++	       info->dri->allowPageFlip ? "en" : "dis", reason); +  +     info->DMAForXv = TRUE; +     from = xf86GetOptValBool(info->Options, OPTION_XV_DMA, &info->DMAForXv) +@@ -2332,15 +2367,15 @@ static void RADEONPreInitColorTiling(ScrnInfoPtr pScrn) +  + #ifdef XF86DRI +     if (info->directRenderingEnabled && +-	info->pKernelDRMVersion->version_minor < 14) { ++	info->dri->pKernelDRMVersion->version_minor < 14) { + 	xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + 		   "[dri] color tiling disabled because of version " + 		   "mismatch.\n" + 		   "[dri] radeon.o kernel module version is %d.%d.%d but " + 		   "1.14.0 or later is required for color tiling.\n", +-		   info->pKernelDRMVersion->version_major, +-		   info->pKernelDRMVersion->version_minor, +-		   info->pKernelDRMVersion->version_patchlevel); ++		   info->dri->pKernelDRMVersion->version_major, ++		   info->dri->pKernelDRMVersion->version_minor, ++		   info->dri->pKernelDRMVersion->version_patchlevel); + 	   info->allowColorTiling = FALSE; + 	   return; +     } +@@ -2994,7 +3029,7 @@ static void RADEONLoadPalette(ScrnInfoPtr pScrn, int numColors, +     int c; +  + #ifdef XF86DRI +-    if (info->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0); ++    if (info->cp->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0); + #endif +  +     if (info->accelOn && pScrn->pScreen) +@@ -3058,7 +3093,7 @@ static void RADEONLoadPalette(ScrnInfoPtr pScrn, int numColors, +     } +  + #ifdef XF86DRI +-    if (info->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen); ++    if (info->cp->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen); + #endif + } +  +@@ -3077,12 +3112,12 @@ static void RADEONBlockHandler(int i, pointer blockData, + 	(*info->VideoTimerCallback)(pScrn, currentTime.milliseconds); +  + #if defined(RENDER) && defined(USE_XAA) +-    if(info->RenderCallback) +-	(*info->RenderCallback)(pScrn); ++    if(info->accel_state->RenderCallback) ++	(*info->accel_state->RenderCallback)(pScrn); + #endif +  + #ifdef USE_EXA +-    info->engineMode = EXA_ENGINEMODE_UNKNOWN; ++    info->accel_state->engineMode = EXA_ENGINEMODE_UNKNOWN; + #endif + } +  +@@ -3175,17 +3210,17 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, +  +     info->accelOn      = FALSE; + #ifdef USE_XAA +-    info->accel        = NULL; ++    info->accel_state->accel        = NULL; + #endif + #ifdef XF86DRI +-    pScrn->fbOffset    = info->frontOffset; ++    pScrn->fbOffset    = info->dri->frontOffset; + #endif +  +     if (info->IsSecondary) pScrn->fbOffset = pScrn->videoRam * 1024; + #ifdef XF86DRI +     xf86DrvMsg(pScrn->scrnIndex, X_INFO,  + 		   "RADEONScreenInit %lx %ld %d\n", +-		   pScrn->memPhysBase, pScrn->fbOffset, info->frontOffset); ++		   pScrn->memPhysBase, pScrn->fbOffset, info->dri->frontOffset); + #else +     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, + 		   "RADEONScreenInit %lx %ld\n", +@@ -3194,8 +3229,8 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, +     if (!RADEONMapMem(pScrn)) return FALSE; +  + #ifdef XF86DRI +-    info->fbX = 0; +-    info->fbY = 0; ++    info->dri->fbX = 0; ++    info->dri->fbY = 0; + #endif +  +     info->PaletteSavedOnVT = FALSE; +@@ -3249,21 +3284,21 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, +     if (info->directRenderingEnabled) { + 	MessageType from; +  +-	info->depthBits = pScrn->depth; ++	info->dri->depthBits = pScrn->depth; +  + 	from = xf86GetOptValInteger(info->Options, OPTION_DEPTH_BITS, +-				    &info->depthBits) ++				    &info->dri->depthBits) + 	     ? X_CONFIG : X_DEFAULT; +  +-	if (info->depthBits != 16 && info->depthBits != 24) { ++	if (info->dri->depthBits != 16 && info->dri->depthBits != 24) { + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		       "Value for Option \"DepthBits\" must be 16 or 24\n"); +-	    info->depthBits = pScrn->depth; ++	    info->dri->depthBits = pScrn->depth; + 	    from = X_DEFAULT; + 	} +  + 	xf86DrvMsg(pScrn->scrnIndex, from, +-		   "Using %d bit depth buffer\n", info->depthBits); ++		   "Using %d bit depth buffer\n", info->dri->depthBits); +     } +  +  +@@ -3276,7 +3311,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, +     RADEONInitMemoryMap(pScrn); +  +     /* empty the surfaces */ +-    { ++    if (info->ChipFamily < CHIP_FAMILY_R600) { + 	unsigned char *RADEONMMIO = info->MMIO; + 	unsigned int j; + 	for (j = 0; j < 8; j++) { +@@ -3288,14 +3323,14 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, +  + #ifdef XF86DRI +     /* Depth moves are disabled by default since they are extremely slow */ +-    info->depthMoves = xf86ReturnOptValBool(info->Options, ++    info->dri->depthMoves = xf86ReturnOptValBool(info->Options, + 						 OPTION_DEPTH_MOVE, FALSE); +-    if (info->depthMoves && info->allowColorTiling) { ++    if (info->dri->depthMoves && info->allowColorTiling) { + 	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Enabling depth moves\n"); +-    } else if (info->depthMoves) { ++    } else if (info->dri->depthMoves) { + 	xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 		   "Depth moves don't work without color tiling, disabled\n"); +-	info->depthMoves = FALSE; ++	info->dri->depthMoves = FALSE; +     } else { + 	xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 		   "Depth moves disabled by default\n"); +@@ -3331,15 +3366,15 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, + 	     * default, can be overridden with Option "FBTexPercent". + 	     * Round down to a whole number of texture regions. + 	     */ +-	    info->textureSize = 50; ++	    info->dri->textureSize = 50; +  + 	    if (xf86GetOptValInteger(info->Options, OPTION_FBTEX_PERCENT, +-				     &(info->textureSize))) { +-		if (info->textureSize < 0 || info->textureSize > 100) { ++				     &(info->dri->textureSize))) { ++		if (info->dri->textureSize < 0 || info->dri->textureSize > 100) { + 		    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 			       "Illegal texture memory percentage: %dx, setting to default 50%%\n", +-			       info->textureSize); +-		    info->textureSize = 50; ++			       info->dri->textureSize); ++		    info->dri->textureSize = 50; + 		} + 	    } + 	} +@@ -3356,19 +3391,19 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, +  + #if defined(XF86DRI) && defined(USE_XAA) +     if (!info->useEXA && hasDRI) { +-	info->textureSize = -1; ++	info->dri->textureSize = -1; + 	if (xf86GetOptValInteger(info->Options, OPTION_FBTEX_PERCENT, +-				 &(info->textureSize))) { +-	    if (info->textureSize < 0 || info->textureSize > 100) { ++				 &(info->dri->textureSize))) { ++	    if (info->dri->textureSize < 0 || info->dri->textureSize > 100) { + 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 			   "Illegal texture memory percentage: %dx, using default behaviour\n", +-			   info->textureSize); +-		info->textureSize = -1; ++			   info->dri->textureSize); ++		info->dri->textureSize = -1; + 	    } + 	} + 	if (!RADEONSetupMemXAA_DRI(scrnIndex, pScreen)) + 	    return FALSE; +-    	pScrn->fbOffset    = info->frontOffset; ++    	pScrn->fbOffset    = info->dri->frontOffset; +     } + #endif +  +@@ -3377,8 +3412,9 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, + 	return FALSE; + #endif +  +-    info->dst_pitch_offset = (((pScrn->displayWidth * info->CurrentLayout.pixel_bytes / 64) +-			       << 22) | ((info->fbLocation + pScrn->fbOffset) >> 10)); ++    info->accel_state->dst_pitch_offset = ++	(((pScrn->displayWidth * info->CurrentLayout.pixel_bytes / 64) ++	  << 22) | ((info->fbLocation + pScrn->fbOffset) >> 10)); +  +     /* Setup DRI after visuals have been established, but before fbScreenInit is +      * called.  fbScreenInit will eventually call the driver's InitGLXVisuals +@@ -3408,18 +3444,18 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, +     } +  +     /* Tell DRI about new memory map */ +-    if (info->directRenderingEnabled && info->newMemoryMap) { ++    if (info->directRenderingEnabled && info->dri->newMemoryMap) { +         if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_NEW_MEMMAP, 1) < 0) { + 		xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + 			   "[drm] failed to enable new memory map\n"); + 		RADEONDRICloseScreen(pScreen); +-		info->directRenderingEnabled = FALSE;		 ++		info->directRenderingEnabled = FALSE; + 	} +     } + #endif +     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, + 		   "Initializing fb layer\n"); +-     ++ +     if (info->r600_shadow_fb) { + 	info->fb_shadow = xcalloc(1, + 				  pScrn->displayWidth * pScrn->virtualY * +@@ -3473,18 +3509,16 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, + 	else if (strcmp(s, "BGR") == 0) subPixelOrder = SubPixelHorizontalBGR; + 	else if (strcmp(s, "NONE") == 0) subPixelOrder = SubPixelNone; + 	PictureSetSubpixelOrder (pScreen, subPixelOrder); +-    }  ++    } + #endif +  +     pScrn->vtSema = TRUE; +  +-    /* xf86CrtcRotate() accesses pScrn->pScreen */ +-    pScrn->pScreen = pScreen; +- +-    if (!xf86SetDesiredModes (pScrn)) +-	return FALSE; +- +-    RADEONSaveScreen(pScreen, SCREEN_SAVER_ON); ++    /* restore the memory map here otherwise we may get a hang when ++     * initializing the drm below ++     */ ++    RADEONInitMemMapRegisters(pScrn, info->ModeReg, info); ++    RADEONRestoreMemMapRegisters(pScrn, info->ModeReg); +  +     /* Backing store setup */ +     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, +@@ -3495,14 +3529,14 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, +     /* DRI finalisation */ + #ifdef XF86DRI +     if (info->directRenderingEnabled && info->cardType==CARD_PCIE && +-        info->pKernelDRMVersion->version_minor >= 19) ++        info->dri->pKernelDRMVersion->version_minor >= 19) +     { +-      if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_PCIGART_LOCATION, info->pciGartOffset) < 0) ++      if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_PCIGART_LOCATION, info->dri->pciGartOffset) < 0) + 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		   "[drm] failed set pci gart location\n"); +  +-      if (info->pKernelDRMVersion->version_minor >= 26) { +-	if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_PCIGART_TABLE_SIZE, info->pciGartSize) < 0) ++      if (info->dri->pKernelDRMVersion->version_minor >= 26) { ++	if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_PCIGART_TABLE_SIZE, info->dri->pciGartSize) < 0) + 	  xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		     "[drm] failed set pci gart table size\n"); +       } +@@ -3519,10 +3553,6 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, + 	 */ + 	RADEONAdjustMemMapRegisters(pScrn, info->ModeReg); +  +-	if ((info->DispPriority == 1) && (info->cardType==CARD_AGP)) { +-	    /* we need to re-calculate bandwidth because of AGPMode difference. */  +-	    RADEONInitDispBandwidth(pScrn); +-	} + 	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Direct rendering enabled\n"); +  + 	/* we might already be in tiled mode, tell drm about it */ +@@ -3620,6 +3650,10 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, +         } +     } +  ++    /* set the modes with desired rotation, etc. */ ++    if (!xf86SetDesiredModes (pScrn)) ++	return FALSE; ++ +     /* Provide SaveScreen & wrap BlockHandler and CloseScreen */ +     /* Wrap CloseScreen */ +     info->CloseScreen    = pScreen->CloseScreen; +@@ -3910,7 +3944,7 @@ static void RADEONAdjustMemMapRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save) + 	else + 	    info->fbLocation = (info->mc_fb_location & 0xffff) << 16; +  +-	info->dst_pitch_offset = ++	info->accel_state->dst_pitch_offset = + 	    (((pScrn->displayWidth * info->CurrentLayout.pixel_bytes / 64) + 	      << 22) | ((info->fbLocation + pScrn->fbOffset) >> 10)); + 	RADEONInitMemMapRegisters(pScrn, save, info); +@@ -3920,14 +3954,14 @@ static void RADEONAdjustMemMapRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save) + #ifdef USE_EXA +     if (info->accelDFS) +     { +-	drmRadeonGetParam gp; ++	drm_radeon_getparam_t gp; + 	int gart_base; +  + 	memset(&gp, 0, sizeof(gp)); + 	gp.param = RADEON_PARAM_GART_BASE; + 	gp.value = &gart_base; +  +-	if (drmCommandWriteRead(info->drmFD, DRM_RADEON_GETPARAM, &gp, ++	if (drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_GETPARAM, &gp, + 				sizeof(gp)) < 0) { + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		       "Failed to determine GART area MC location, not using " +@@ -4011,35 +4045,35 @@ void RADEONChangeSurfaces(ScrnInfoPtr pScrn) +     }    + #ifdef XF86DRI +     if (info->directRenderingInited) { +-	drmRadeonSurfaceFree drmsurffree; +-	drmRadeonSurfaceAlloc drmsurfalloc; ++	drm_radeon_surface_free_t drmsurffree; ++	drm_radeon_surface_alloc_t drmsurfalloc; + 	int retvalue; +-	int depthCpp = (info->depthBits - 8) / 4; ++	int depthCpp = (info->dri->depthBits - 8) / 4; + 	int depth_width_bytes = pScrn->displayWidth * depthCpp; + 	int depthBufferSize = ((((pScrn->virtualY + 15) & ~15) * depth_width_bytes + 				+ RADEON_BUFFER_ALIGN) & ~RADEON_BUFFER_ALIGN); + 	unsigned int depth_pattern; +  +-	drmsurffree.address = info->frontOffset; +-	retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_FREE, ++	drmsurffree.address = info->dri->frontOffset; ++	retvalue = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_FREE, + 	    &drmsurffree, sizeof(drmsurffree)); +  + 	if (!((info->ChipFamily == CHIP_FAMILY_RV100) || + 	    (info->ChipFamily == CHIP_FAMILY_RS100) || + 	    (info->ChipFamily == CHIP_FAMILY_RS200))) { +-	    drmsurffree.address = info->depthOffset; +-	    retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_FREE, ++	    drmsurffree.address = info->dri->depthOffset; ++	    retvalue = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_FREE, + 		&drmsurffree, sizeof(drmsurffree)); + 	} +  +-	if (!info->noBackBuffer) { +-	    drmsurffree.address = info->backOffset; +-	    retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_FREE, ++	if (!info->dri->noBackBuffer) { ++	    drmsurffree.address = info->dri->backOffset; ++	    retvalue = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_FREE, + 		&drmsurffree, sizeof(drmsurffree)); + 	} +  + 	drmsurfalloc.size = bufferSize; +-	drmsurfalloc.address = info->frontOffset; ++	drmsurfalloc.address = info->dri->frontOffset; + 	drmsurfalloc.flags = swap_pattern; +  + 	if (info->tilingEnabled) { +@@ -4048,15 +4082,15 @@ void RADEONChangeSurfaces(ScrnInfoPtr pScrn) + 	    else + 		drmsurfalloc.flags |= (width_bytes / 16) | color_pattern; + 	} +-	retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_ALLOC, ++	retvalue = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_ALLOC, + 				   &drmsurfalloc, sizeof(drmsurfalloc)); + 	if (retvalue < 0) + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 		       "drm: could not allocate surface for front buffer!\n"); + 	 +-	if ((info->have3DWindows) && (!info->noBackBuffer)) { +-	    drmsurfalloc.address = info->backOffset; +-	    retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_ALLOC, ++	if ((info->dri->have3DWindows) && (!info->dri->noBackBuffer)) { ++	    drmsurfalloc.address = info->dri->backOffset; ++	    retvalue = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_ALLOC, + 				       &drmsurfalloc, sizeof(drmsurfalloc)); + 	    if (retvalue < 0) + 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR, +@@ -4081,18 +4115,18 @@ void RADEONChangeSurfaces(ScrnInfoPtr pScrn) + 	} +  + 	/* rv100 and probably the derivative igps don't have depth tiling on all the time? */ +-	if (info->have3DWindows && ++	if (info->dri->have3DWindows && + 	    (!((info->ChipFamily == CHIP_FAMILY_RV100) || + 	    (info->ChipFamily == CHIP_FAMILY_RS100) || + 	    (info->ChipFamily == CHIP_FAMILY_RS200)))) { +-	    drmRadeonSurfaceAlloc drmsurfalloc; ++	    drm_radeon_surface_alloc_t drmsurfalloc; + 	    drmsurfalloc.size = depthBufferSize; +-	    drmsurfalloc.address = info->depthOffset; ++	    drmsurfalloc.address = info->dri->depthOffset; +             if (IS_R300_VARIANT || IS_AVIVO_VARIANT) +                 drmsurfalloc.flags = swap_pattern | (depth_width_bytes / 8) | depth_pattern; +             else +                 drmsurfalloc.flags = swap_pattern | (depth_width_bytes / 16) | depth_pattern; +-	    retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_ALLOC, ++	    retvalue = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_ALLOC, + 		&drmsurfalloc, sizeof(drmsurfalloc)); + 	    if (retvalue < 0) + 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR, +@@ -4178,6 +4212,7 @@ avivo_save(ScrnInfoPtr pScrn, RADEONSavePtr save) +  +     state->crtc_master_en = INREG(AVIVO_DC_CRTC_MASTER_EN); +     state->crtc_tv_control = INREG(AVIVO_DC_CRTC_TV_CONTROL); ++    state->dc_lb_memory_split = INREG(AVIVO_DC_LB_MEMORY_SPLIT); +  +     state->pll1.ref_div_src = INREG(AVIVO_EXT1_PPLL_REF_DIV_SRC); +     state->pll1.ref_div = INREG(AVIVO_EXT1_PPLL_REF_DIV); +@@ -4233,8 +4268,10 @@ avivo_save(ScrnInfoPtr pScrn, RADEONSavePtr save) +     state->grph1.x_end = INREG(AVIVO_D1GRPH_X_END); +     state->grph1.y_end = INREG(AVIVO_D1GRPH_Y_END); +  ++    state->grph1.desktop_height = INREG(AVIVO_D1MODE_DESKTOP_HEIGHT); +     state->grph1.viewport_start = INREG(AVIVO_D1MODE_VIEWPORT_START); +     state->grph1.viewport_size = INREG(AVIVO_D1MODE_VIEWPORT_SIZE); ++    state->grph1.mode_data_format = INREG(AVIVO_D1MODE_DATA_FORMAT); +  +     state->crtc2.pll_source = INREG(AVIVO_PCLK_CRTC2_CNTL); +  +@@ -4272,8 +4309,10 @@ avivo_save(ScrnInfoPtr pScrn, RADEONSavePtr save) +     state->grph2.x_end = INREG(AVIVO_D2GRPH_X_END); +     state->grph2.y_end = INREG(AVIVO_D2GRPH_Y_END); +  ++    state->grph2.desktop_height = INREG(AVIVO_D2MODE_DESKTOP_HEIGHT); +     state->grph2.viewport_start = INREG(AVIVO_D2MODE_VIEWPORT_START); +     state->grph2.viewport_size = INREG(AVIVO_D2MODE_VIEWPORT_SIZE); ++    state->grph2.mode_data_format = INREG(AVIVO_D2MODE_DATA_FORMAT); +  +     if (IS_DCE3_VARIANT) { + 	/* save DVOA regs */ +@@ -4477,14 +4516,71 @@ avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore) +     struct avivo_state *state = &restore->avivo; +     int i, j; +  +-    //    OUTMC(pScrn, AVIVO_MC_MEMORY_MAP, state->mc_memory_map); +-    //    OUTREG(AVIVO_VGA_MEMORY_BASE, state->vga_memory_base); +-    //    OUTREG(AVIVO_VGA_FB_START, state->vga_fb_start); ++    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "avivo_restore !\n"); ++ ++    /* Disable VGA control for now.. maybe needs to be changed */ ++    OUTREG(AVIVO_D1VGA_CONTROL, 0); ++    OUTREG(AVIVO_D2VGA_CONTROL, 0); ++ ++    /* Disable CRTCs */ ++    OUTREG(AVIVO_D1CRTC_CONTROL, ++	   (INREG(AVIVO_D1CRTC_CONTROL) & ~0x300) | 0x01000000); ++    OUTREG(AVIVO_D2CRTC_CONTROL, ++	   (INREG(AVIVO_D2CRTC_CONTROL) & ~0x300) | 0x01000000); ++    OUTREG(AVIVO_D1CRTC_CONTROL, ++	   INREG(AVIVO_D1CRTC_CONTROL) & ~0x1); ++    OUTREG(AVIVO_D2CRTC_CONTROL, ++	   INREG(AVIVO_D2CRTC_CONTROL) & ~0x1); ++    OUTREG(AVIVO_D1CRTC_CONTROL, ++	   INREG(AVIVO_D1CRTC_CONTROL) | 0x100); ++    OUTREG(AVIVO_D2CRTC_CONTROL, ++	   INREG(AVIVO_D2CRTC_CONTROL) | 0x100); ++ ++    /* Lock graph registers */ ++    OUTREG(AVIVO_D1GRPH_UPDATE, AVIVO_D1GRPH_UPDATE_LOCK); ++    OUTREG(AVIVO_D1GRPH_PRIMARY_SURFACE_ADDRESS, state->grph1.prim_surf_addr); ++    OUTREG(AVIVO_D1GRPH_SECONDARY_SURFACE_ADDRESS, state->grph1.sec_surf_addr); ++    OUTREG(AVIVO_D1GRPH_CONTROL, state->grph1.control); ++    OUTREG(AVIVO_D1GRPH_SURFACE_OFFSET_X, state->grph1.x_offset); ++    OUTREG(AVIVO_D1GRPH_SURFACE_OFFSET_Y, state->grph1.y_offset); ++    OUTREG(AVIVO_D1GRPH_X_START, state->grph1.x_start); ++    OUTREG(AVIVO_D1GRPH_Y_START, state->grph1.y_start); ++    OUTREG(AVIVO_D1GRPH_X_END, state->grph1.x_end); ++    OUTREG(AVIVO_D1GRPH_Y_END, state->grph1.y_end); ++    OUTREG(AVIVO_D1GRPH_PITCH, state->grph1.pitch); ++    OUTREG(AVIVO_D1GRPH_ENABLE, state->grph1.enable); ++    OUTREG(AVIVO_D1GRPH_UPDATE, 0); ++ ++    OUTREG(AVIVO_D2GRPH_UPDATE, AVIVO_D1GRPH_UPDATE_LOCK); ++    OUTREG(AVIVO_D2GRPH_PRIMARY_SURFACE_ADDRESS, state->grph2.prim_surf_addr); ++    OUTREG(AVIVO_D2GRPH_SECONDARY_SURFACE_ADDRESS, state->grph2.sec_surf_addr); ++    OUTREG(AVIVO_D2GRPH_CONTROL, state->grph2.control); ++    OUTREG(AVIVO_D2GRPH_SURFACE_OFFSET_X, state->grph2.x_offset); ++    OUTREG(AVIVO_D2GRPH_SURFACE_OFFSET_Y, state->grph2.y_offset); ++    OUTREG(AVIVO_D2GRPH_X_START, state->grph2.x_start); ++    OUTREG(AVIVO_D2GRPH_Y_START, state->grph2.y_start); ++    OUTREG(AVIVO_D2GRPH_X_END, state->grph2.x_end); ++    OUTREG(AVIVO_D2GRPH_Y_END, state->grph2.y_end); ++    OUTREG(AVIVO_D2GRPH_PITCH, state->grph2.pitch); ++    OUTREG(AVIVO_D2GRPH_ENABLE, state->grph2.enable); ++    OUTREG(AVIVO_D2GRPH_UPDATE, 0); +  ++    /* Whack some mode regs too */ ++    OUTREG(AVIVO_D1SCL_UPDATE, AVIVO_D1SCL_UPDATE_LOCK); ++    OUTREG(AVIVO_D1MODE_DESKTOP_HEIGHT, state->grph1.desktop_height); ++    OUTREG(AVIVO_D1MODE_VIEWPORT_START, state->grph1.viewport_start); ++    OUTREG(AVIVO_D1MODE_VIEWPORT_SIZE, state->grph1.viewport_size); ++    OUTREG(AVIVO_D1MODE_DATA_FORMAT, state->grph1.mode_data_format); ++    OUTREG(AVIVO_D1SCL_UPDATE, 0); +  +-    OUTREG(AVIVO_DC_CRTC_MASTER_EN, state->crtc_master_en); +-    OUTREG(AVIVO_DC_CRTC_TV_CONTROL, state->crtc_tv_control); ++    OUTREG(AVIVO_D2SCL_UPDATE, AVIVO_D1SCL_UPDATE_LOCK); ++    OUTREG(AVIVO_D2MODE_DESKTOP_HEIGHT, state->grph2.desktop_height); ++    OUTREG(AVIVO_D2MODE_VIEWPORT_START, state->grph2.viewport_start); ++    OUTREG(AVIVO_D2MODE_VIEWPORT_SIZE, state->grph2.viewport_size); ++    OUTREG(AVIVO_D2MODE_DATA_FORMAT, state->grph2.mode_data_format); ++    OUTREG(AVIVO_D2SCL_UPDATE, 0); +  ++    /* Set the PLL */ +     OUTREG(AVIVO_EXT1_PPLL_REF_DIV_SRC, state->pll1.ref_div_src); +     OUTREG(AVIVO_EXT1_PPLL_REF_DIV, state->pll1.ref_div); +     OUTREG(AVIVO_EXT1_PPLL_FB_DIV, state->pll1.fb_div); +@@ -4504,7 +4600,9 @@ avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore) +     OUTREG(AVIVO_P2PLL_INT_SS_CNTL, state->pll2.int_ss_cntl); +  +     OUTREG(AVIVO_PCLK_CRTC1_CNTL, state->crtc1.pll_source); ++    OUTREG(AVIVO_PCLK_CRTC2_CNTL, state->crtc2.pll_source); +  ++    /* Set the CRTC */ +     OUTREG(AVIVO_D1CRTC_H_TOTAL, state->crtc1.h_total); +     OUTREG(AVIVO_D1CRTC_H_BLANK_START_END, state->crtc1.h_blank_start_end); +     OUTREG(AVIVO_D1CRTC_H_SYNC_A, state->crtc1.h_sync_a); +@@ -4519,29 +4617,12 @@ avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore) +     OUTREG(AVIVO_D1CRTC_V_SYNC_B, state->crtc1.v_sync_b); +     OUTREG(AVIVO_D1CRTC_V_SYNC_B_CNTL, state->crtc1.v_sync_b_cntl); +  +-    OUTREG(AVIVO_D1CRTC_CONTROL, state->crtc1.control); +-    OUTREG(AVIVO_D1CRTC_BLANK_CONTROL, state->crtc1.blank_control); +     OUTREG(AVIVO_D1CRTC_INTERLACE_CONTROL, state->crtc1.interlace_control); +     OUTREG(AVIVO_D1CRTC_STEREO_CONTROL, state->crtc1.stereo_control); +  +     OUTREG(AVIVO_D1CUR_CONTROL, state->crtc1.cursor_control); +  +-    OUTREG(AVIVO_D1GRPH_ENABLE, state->grph1.enable); +-    OUTREG(AVIVO_D1GRPH_CONTROL, state->grph1.control); +-    OUTREG(AVIVO_D1GRPH_PRIMARY_SURFACE_ADDRESS, state->grph1.prim_surf_addr); +-    OUTREG(AVIVO_D1GRPH_SECONDARY_SURFACE_ADDRESS, state->grph1.sec_surf_addr); +-    OUTREG(AVIVO_D1GRPH_PITCH, state->grph1.pitch); +-    OUTREG(AVIVO_D1GRPH_SURFACE_OFFSET_X, state->grph1.x_offset); +-    OUTREG(AVIVO_D1GRPH_SURFACE_OFFSET_Y, state->grph1.y_offset); +-    OUTREG(AVIVO_D1GRPH_X_START, state->grph1.x_start); +-    OUTREG(AVIVO_D1GRPH_Y_START, state->grph1.y_start); +-    OUTREG(AVIVO_D1GRPH_X_END, state->grph1.x_end); +-    OUTREG(AVIVO_D1GRPH_Y_END, state->grph1.y_end); +- +-    OUTREG(AVIVO_D1MODE_VIEWPORT_START, state->grph1.viewport_start); +-    OUTREG(AVIVO_D1MODE_VIEWPORT_SIZE, state->grph1.viewport_size); +- +-    OUTREG(AVIVO_PCLK_CRTC2_CNTL, state->crtc2.pll_source); ++    /* XXX Fix scaler */ +  +     OUTREG(AVIVO_D2CRTC_H_TOTAL, state->crtc2.h_total); +     OUTREG(AVIVO_D2CRTC_H_BLANK_START_END, state->crtc2.h_blank_start_end); +@@ -4557,29 +4638,11 @@ avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore) +     OUTREG(AVIVO_D2CRTC_V_SYNC_B, state->crtc2.v_sync_b); +     OUTREG(AVIVO_D2CRTC_V_SYNC_B_CNTL, state->crtc2.v_sync_b_cntl); +  +-    OUTREG(AVIVO_D2CRTC_CONTROL, state->crtc2.control); +-    OUTREG(AVIVO_D2CRTC_BLANK_CONTROL, state->crtc2.blank_control); +     OUTREG(AVIVO_D2CRTC_INTERLACE_CONTROL, state->crtc2.interlace_control); +     OUTREG(AVIVO_D2CRTC_STEREO_CONTROL, state->crtc2.stereo_control); +  +     OUTREG(AVIVO_D2CUR_CONTROL, state->crtc2.cursor_control); +  +-    OUTREG(AVIVO_D2GRPH_ENABLE, state->grph2.enable); +-    OUTREG(AVIVO_D2GRPH_CONTROL, state->grph2.control); +-    OUTREG(AVIVO_D2GRPH_PRIMARY_SURFACE_ADDRESS, state->grph2.prim_surf_addr); +-    OUTREG(AVIVO_D2GRPH_SECONDARY_SURFACE_ADDRESS, state->grph2.sec_surf_addr); +-    OUTREG(AVIVO_D2GRPH_PITCH, state->grph2.pitch); +-    OUTREG(AVIVO_D2GRPH_SURFACE_OFFSET_X, state->grph2.x_offset); +-    OUTREG(AVIVO_D2GRPH_SURFACE_OFFSET_Y, state->grph2.y_offset); +-    OUTREG(AVIVO_D2GRPH_X_START, state->grph2.x_start); +-    OUTREG(AVIVO_D2GRPH_Y_START, state->grph2.y_start); +-    OUTREG(AVIVO_D2GRPH_X_END, state->grph2.x_end); +-    OUTREG(AVIVO_D2GRPH_Y_END, state->grph2.y_end); +- +-    OUTREG(AVIVO_D2MODE_VIEWPORT_START, state->grph2.viewport_start); +-    OUTREG(AVIVO_D2MODE_VIEWPORT_SIZE, state->grph2.viewport_size); +- +- +     if (IS_DCE3_VARIANT) { + 	/* DVOA regs */ + 	OUTREG(0x7080, state->dvoa[0]); +@@ -4699,7 +4762,7 @@ avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore) + 	} +  + 	j = 0; +-	/* DAC regs */ ++	/* DAC regs */ /* -- MIGHT NEED ORDERING FIX & DELAYS -- */ + 	for (i = 0x7800; i <= 0x782c; i += 4) { + 	    OUTREG(i, state->daca[j]); + 	    OUTREG((i + 0x200), state->dacb[j]); +@@ -4766,8 +4829,31 @@ avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore) +     OUTREG(0x6e30, state->dxscl[6]); +     OUTREG(0x6e34, state->dxscl[7]); +  ++    /* Enable CRTCs */ ++    if (state->crtc1.control & 1) { ++	    OUTREG(AVIVO_D1CRTC_CONTROL, 0x01000101); ++	    INREG(AVIVO_D1CRTC_CONTROL); ++	    OUTREG(AVIVO_D1CRTC_CONTROL, 0x00010101); ++    } ++    if (state->crtc2.control & 1) { ++	    OUTREG(AVIVO_D2CRTC_CONTROL, 0x01000101); ++	    INREG(AVIVO_D2CRTC_CONTROL); ++	    OUTREG(AVIVO_D2CRTC_CONTROL, 0x00010101); ++    } ++ ++    /* Where should that go ? */ ++    OUTREG(AVIVO_DC_CRTC_TV_CONTROL, state->crtc_tv_control); ++    OUTREG(AVIVO_DC_LB_MEMORY_SPLIT, state->dc_lb_memory_split); ++ ++    /* Need fixing too ? */ ++    OUTREG(AVIVO_D1CRTC_BLANK_CONTROL, state->crtc1.blank_control); ++    OUTREG(AVIVO_D2CRTC_BLANK_CONTROL, state->crtc2.blank_control); ++ ++    /* Dbl check */ +     OUTREG(AVIVO_D1VGA_CONTROL, state->vga1_cntl); +     OUTREG(AVIVO_D2VGA_CONTROL, state->vga2_cntl); ++ ++    /* Should only enable outputs here */ + } +  + static void avivo_restore_vga_regs(ScrnInfoPtr pScrn, RADEONSavePtr restore) +@@ -5045,7 +5131,7 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) +     Bool           tilingOld   = info->tilingEnabled; +     Bool           ret; + #ifdef XF86DRI +-    Bool           CPStarted   = info->CPStarted; ++    Bool           CPStarted   = info->cp->CPStarted; +  +     if (CPStarted) { + 	DRILock(pScrn->pScreen, 0); +@@ -5060,7 +5146,7 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) +         info->tilingEnabled = (mode->Flags & (V_DBLSCAN | V_INTERLACE)) ? FALSE : TRUE; + #ifdef XF86DRI	 + 	if (info->directRenderingEnabled && (info->tilingEnabled != tilingOld)) { +-	    RADEONSAREAPrivPtr pSAREAPriv; ++	    drm_radeon_sarea_t *pSAREAPriv; + 	  if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_SWITCH_TILING, (info->tilingEnabled ? 1 : 0)) < 0) +   	      xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + 			 "[drm] failed changing tiling status\n"); +@@ -5170,7 +5256,7 @@ void RADEONDoAdjustFrame(ScrnInfoPtr pScrn, int x, int y, Bool crtc2) +     unsigned char *RADEONMMIO = info->MMIO; +     int            Base, reg, regcntl, crtcoffsetcntl, xytilereg, crtcxytile = 0; + #ifdef XF86DRI +-    RADEONSAREAPrivPtr pSAREAPriv; ++    drm_radeon_sarea_t *pSAREAPriv; +     XF86DRISAREAPtr pSAREA; + #endif +  +@@ -5209,7 +5295,7 @@ void RADEONDoAdjustFrame(ScrnInfoPtr pScrn, int x, int y, Bool crtc2) + #if 0 +     /* try to get rid of flickering when scrolling at least for 2d */ + #ifdef XF86DRI +-    if (!info->have3DWindows) ++    if (!info->dri->have3DWindows) + #endif +     crtcoffsetcntl &= ~RADEON_CRTC_OFFSET_FLIP_CNTL; + #endif +@@ -5266,7 +5352,7 @@ void RADEONDoAdjustFrame(ScrnInfoPtr pScrn, int x, int y, Bool crtc2) + 	} +  + 	if (pSAREAPriv->pfCurrentPage == 1) { +-	    Base += info->backOffset - info->frontOffset; ++	    Base += info->dri->backOffset - info->dri->frontOffset; + 	} +     } + #endif +@@ -5290,7 +5376,7 @@ void RADEONAdjustFrame(int scrnIndex, int x, int y, int flags) +     xf86CrtcPtr	crtc = output->crtc; +  + #ifdef XF86DRI +-    if (info->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0); ++    if (info->cp->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0); + #endif +  +     if (info->accelOn) +@@ -5307,7 +5393,7 @@ void RADEONAdjustFrame(int scrnIndex, int x, int y, int flags) +  +  + #ifdef XF86DRI +-	if (info->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen); ++	if (info->cp->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen); + #endif + } +  +@@ -5318,26 +5404,18 @@ Bool RADEONEnterVT(int scrnIndex, int flags) + { +     ScrnInfoPtr    pScrn = xf86Screens[scrnIndex]; +     RADEONInfoPtr  info  = RADEONPTR(pScrn); +-    unsigned char *RADEONMMIO = info->MMIO; +-    uint32_t mem_size; +     xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); +     int i; +  +     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, + 		   "RADEONEnterVT\n"); +  +-    if (info->ChipFamily >= CHIP_FAMILY_R600) +-	mem_size = INREG(R600_CONFIG_MEMSIZE); +-    else +-	mem_size = INREG(RADEON_CONFIG_MEMSIZE); +- +-    if (mem_size == 0) { /* Softboot V_BIOS */ ++    if (!radeon_card_posted(pScrn)) { /* Softboot V_BIOS */ + 	if (info->IsAtomBios) { + 	    rhdAtomASICInit(info->atomBIOS); + 	} else { + 	    xf86Int10InfoPtr pInt; +-	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING, +-		       "zero MEMSIZE, probably at D3cold. Re-POSTing via int10.\n"); ++ + 	    pInt = xf86InitInt10 (info->pEnt->index); + 	    if (pInt) { + 		pInt->num = 0xe6; +@@ -5382,10 +5460,10 @@ Bool RADEONEnterVT(int scrnIndex, int flags) + #ifdef XF86DRI +     if (info->directRenderingEnabled) { +     	if (info->cardType == CARD_PCIE && +-	    info->pKernelDRMVersion->version_minor >= 19 && ++	    info->dri->pKernelDRMVersion->version_minor >= 19 && + 	    info->FbSecureSize) { + 	    /* we need to backup the PCIE GART TABLE from fb memory */ +-	    memcpy(info->FB + info->pciGartOffset, info->pciGartBackup, info->pciGartSize); ++	    memcpy(info->FB + info->dri->pciGartOffset, info->dri->pciGartBackup, info->dri->pciGartSize); +     	} +  + 	/* get the DRI back into shape after resume */ +@@ -5433,18 +5511,18 @@ void RADEONLeaveVT(int scrnIndex, int flags) + 	RADEONCP_STOP(pScrn, info); +  +         if (info->cardType == CARD_PCIE && +-	    info->pKernelDRMVersion->version_minor >= 19 && ++	    info->dri->pKernelDRMVersion->version_minor >= 19 && + 	    info->FbSecureSize) { +             /* we need to backup the PCIE GART TABLE from fb memory */ +-            memcpy(info->pciGartBackup, (info->FB + info->pciGartOffset), info->pciGartSize); ++            memcpy(info->dri->pciGartBackup, (info->FB + info->dri->pciGartOffset), info->dri->pciGartSize); +         } +  + 	/* Make sure 3D clients will re-upload textures to video RAM */ +-	if (info->textureSize) { +-	    RADEONSAREAPrivPtr pSAREAPriv = +-		(RADEONSAREAPrivPtr)DRIGetSAREAPrivate(pScrn->pScreen); +-	    drmTextureRegionPtr list = pSAREAPriv->texList[0]; +-	    int age = ++pSAREAPriv->texAge[0]; ++	if (info->dri->textureSize) { ++	    drm_radeon_sarea_t *pSAREAPriv = ++		(drm_radeon_sarea_t*)DRIGetSAREAPrivate(pScrn->pScreen); ++	    struct drm_tex_region *list = pSAREAPriv->tex_list[0]; ++	    int age = ++pSAREAPriv->tex_age[0]; +  + 	    i = 0; +  +@@ -5501,12 +5579,12 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen) +  + #ifdef XF86DRI + #ifdef DAMAGE +-    if (info->pDamage) { ++    if (info->dri && info->dri->pDamage) { + 	PixmapPtr pPix = pScreen->GetScreenPixmap(pScreen); +  +-	DamageUnregister(&pPix->drawable, info->pDamage); +-	DamageDestroy(info->pDamage); +-	info->pDamage = NULL; ++	DamageUnregister(&pPix->drawable, info->dri->pDamage); ++	DamageDestroy(info->dri->pDamage); ++	info->dri->pDamage = NULL; +     } + #endif +  +@@ -5514,9 +5592,9 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen) + #endif +  + #ifdef USE_XAA +-    if(!info->useEXA && info->RenderTex) { +-        xf86FreeOffscreenLinear(info->RenderTex); +-        info->RenderTex = NULL; ++    if(!info->useEXA && info->accel_state->RenderTex) { ++        xf86FreeOffscreenLinear(info->accel_state->RenderTex); ++        info->accel_state->RenderTex = NULL; +     } + #endif /* USE_XAA */ +  +@@ -5527,21 +5605,21 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen) +     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, + 		   "Disposing accel...\n"); + #ifdef USE_EXA +-    if (info->exa) { ++    if (info->accel_state->exa) { + 	exaDriverFini(pScreen); +-	xfree(info->exa); +-	info->exa = NULL; ++	xfree(info->accel_state->exa); ++	info->accel_state->exa = NULL; +     } + #endif /* USE_EXA */ + #ifdef USE_XAA +     if (!info->useEXA) { +-	if (info->accel) +-		XAADestroyInfoRec(info->accel); +-	info->accel = NULL; ++	if (info->accel_state->accel) ++		XAADestroyInfoRec(info->accel_state->accel); ++	info->accel_state->accel = NULL; +  +-	if (info->scratch_save) +-	    xfree(info->scratch_save); +-	info->scratch_save = NULL; ++	if (info->accel_state->scratch_save) ++	    xfree(info->accel_state->scratch_save); ++	info->accel_state->scratch_save = NULL; +     } + #endif /* USE_XAA */ +  +diff --git a/src/radeon_drm.h b/src/radeon_drm.h +new file mode 100644 +index 0000000..66cefb7 +--- /dev/null ++++ b/src/radeon_drm.h +@@ -0,0 +1,756 @@ ++/* radeon_drm.h -- Public header for the radeon driver -*- linux-c -*- ++ * ++ * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas. ++ * Copyright 2000 VA Linux Systems, Inc., Fremont, California. ++ * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas. ++ * All rights reserved. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the next ++ * paragraph) shall be included in all copies or substantial portions of the ++ * Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL ++ * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR ++ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ * DEALINGS IN THE SOFTWARE. ++ * ++ * Authors: ++ *    Kevin E. Martin <martin@valinux.com> ++ *    Gareth Hughes <gareth@valinux.com> ++ *    Keith Whitwell <keith@tungstengraphics.com> ++ */ ++ ++#ifndef __RADEON_DRM_H__ ++#define __RADEON_DRM_H__ ++ ++/* WARNING: If you change any of these defines, make sure to change the ++ * defines in the X server file (radeon_sarea.h) ++ */ ++#ifndef __RADEON_SAREA_DEFINES__ ++#define __RADEON_SAREA_DEFINES__ ++ ++/* Old style state flags, required for sarea interface (1.1 and 1.2 ++ * clears) and 1.2 drm_vertex2 ioctl. ++ */ ++#define RADEON_UPLOAD_CONTEXT		0x00000001 ++#define RADEON_UPLOAD_VERTFMT		0x00000002 ++#define RADEON_UPLOAD_LINE		0x00000004 ++#define RADEON_UPLOAD_BUMPMAP		0x00000008 ++#define RADEON_UPLOAD_MASKS		0x00000010 ++#define RADEON_UPLOAD_VIEWPORT		0x00000020 ++#define RADEON_UPLOAD_SETUP		0x00000040 ++#define RADEON_UPLOAD_TCL		0x00000080 ++#define RADEON_UPLOAD_MISC		0x00000100 ++#define RADEON_UPLOAD_TEX0		0x00000200 ++#define RADEON_UPLOAD_TEX1		0x00000400 ++#define RADEON_UPLOAD_TEX2		0x00000800 ++#define RADEON_UPLOAD_TEX0IMAGES	0x00001000 ++#define RADEON_UPLOAD_TEX1IMAGES	0x00002000 ++#define RADEON_UPLOAD_TEX2IMAGES	0x00004000 ++#define RADEON_UPLOAD_CLIPRECTS		0x00008000	/* handled client-side */ ++#define RADEON_REQUIRE_QUIESCENCE	0x00010000 ++#define RADEON_UPLOAD_ZBIAS		0x00020000	/* version 1.2 and newer */ ++#define RADEON_UPLOAD_ALL		0x003effff ++#define RADEON_UPLOAD_CONTEXT_ALL       0x003e01ff ++ ++/* New style per-packet identifiers for use in cmd_buffer ioctl with ++ * the RADEON_EMIT_PACKET command.  Comments relate new packets to old ++ * state bits and the packet size: ++ */ ++#define RADEON_EMIT_PP_MISC                         0	/* context/7 */ ++#define RADEON_EMIT_PP_CNTL                         1	/* context/3 */ ++#define RADEON_EMIT_RB3D_COLORPITCH                 2	/* context/1 */ ++#define RADEON_EMIT_RE_LINE_PATTERN                 3	/* line/2 */ ++#define RADEON_EMIT_SE_LINE_WIDTH                   4	/* line/1 */ ++#define RADEON_EMIT_PP_LUM_MATRIX                   5	/* bumpmap/1 */ ++#define RADEON_EMIT_PP_ROT_MATRIX_0                 6	/* bumpmap/2 */ ++#define RADEON_EMIT_RB3D_STENCILREFMASK             7	/* masks/3 */ ++#define RADEON_EMIT_SE_VPORT_XSCALE                 8	/* viewport/6 */ ++#define RADEON_EMIT_SE_CNTL                         9	/* setup/2 */ ++#define RADEON_EMIT_SE_CNTL_STATUS                  10	/* setup/1 */ ++#define RADEON_EMIT_RE_MISC                         11	/* misc/1 */ ++#define RADEON_EMIT_PP_TXFILTER_0                   12	/* tex0/6 */ ++#define RADEON_EMIT_PP_BORDER_COLOR_0               13	/* tex0/1 */ ++#define RADEON_EMIT_PP_TXFILTER_1                   14	/* tex1/6 */ ++#define RADEON_EMIT_PP_BORDER_COLOR_1               15	/* tex1/1 */ ++#define RADEON_EMIT_PP_TXFILTER_2                   16	/* tex2/6 */ ++#define RADEON_EMIT_PP_BORDER_COLOR_2               17	/* tex2/1 */ ++#define RADEON_EMIT_SE_ZBIAS_FACTOR                 18	/* zbias/2 */ ++#define RADEON_EMIT_SE_TCL_OUTPUT_VTX_FMT           19	/* tcl/11 */ ++#define RADEON_EMIT_SE_TCL_MATERIAL_EMMISSIVE_RED   20	/* material/17 */ ++#define R200_EMIT_PP_TXCBLEND_0                     21	/* tex0/4 */ ++#define R200_EMIT_PP_TXCBLEND_1                     22	/* tex1/4 */ ++#define R200_EMIT_PP_TXCBLEND_2                     23	/* tex2/4 */ ++#define R200_EMIT_PP_TXCBLEND_3                     24	/* tex3/4 */ ++#define R200_EMIT_PP_TXCBLEND_4                     25	/* tex4/4 */ ++#define R200_EMIT_PP_TXCBLEND_5                     26	/* tex5/4 */ ++#define R200_EMIT_PP_TXCBLEND_6                     27	/* /4 */ ++#define R200_EMIT_PP_TXCBLEND_7                     28	/* /4 */ ++#define R200_EMIT_TCL_LIGHT_MODEL_CTL_0             29	/* tcl/7 */ ++#define R200_EMIT_TFACTOR_0                         30	/* tf/7 */ ++#define R200_EMIT_VTX_FMT_0                         31	/* vtx/5 */ ++#define R200_EMIT_VAP_CTL                           32	/* vap/1 */ ++#define R200_EMIT_MATRIX_SELECT_0                   33	/* msl/5 */ ++#define R200_EMIT_TEX_PROC_CTL_2                    34	/* tcg/5 */ ++#define R200_EMIT_TCL_UCP_VERT_BLEND_CTL            35	/* tcl/1 */ ++#define R200_EMIT_PP_TXFILTER_0                     36	/* tex0/6 */ ++#define R200_EMIT_PP_TXFILTER_1                     37	/* tex1/6 */ ++#define R200_EMIT_PP_TXFILTER_2                     38	/* tex2/6 */ ++#define R200_EMIT_PP_TXFILTER_3                     39	/* tex3/6 */ ++#define R200_EMIT_PP_TXFILTER_4                     40	/* tex4/6 */ ++#define R200_EMIT_PP_TXFILTER_5                     41	/* tex5/6 */ ++#define R200_EMIT_PP_TXOFFSET_0                     42	/* tex0/1 */ ++#define R200_EMIT_PP_TXOFFSET_1                     43	/* tex1/1 */ ++#define R200_EMIT_PP_TXOFFSET_2                     44	/* tex2/1 */ ++#define R200_EMIT_PP_TXOFFSET_3                     45	/* tex3/1 */ ++#define R200_EMIT_PP_TXOFFSET_4                     46	/* tex4/1 */ ++#define R200_EMIT_PP_TXOFFSET_5                     47	/* tex5/1 */ ++#define R200_EMIT_VTE_CNTL                          48	/* vte/1 */ ++#define R200_EMIT_OUTPUT_VTX_COMP_SEL               49	/* vtx/1 */ ++#define R200_EMIT_PP_TAM_DEBUG3                     50	/* tam/1 */ ++#define R200_EMIT_PP_CNTL_X                         51	/* cst/1 */ ++#define R200_EMIT_RB3D_DEPTHXY_OFFSET               52	/* cst/1 */ ++#define R200_EMIT_RE_AUX_SCISSOR_CNTL               53	/* cst/1 */ ++#define R200_EMIT_RE_SCISSOR_TL_0                   54	/* cst/2 */ ++#define R200_EMIT_RE_SCISSOR_TL_1                   55	/* cst/2 */ ++#define R200_EMIT_RE_SCISSOR_TL_2                   56	/* cst/2 */ ++#define R200_EMIT_SE_VAP_CNTL_STATUS                57	/* cst/1 */ ++#define R200_EMIT_SE_VTX_STATE_CNTL                 58	/* cst/1 */ ++#define R200_EMIT_RE_POINTSIZE                      59	/* cst/1 */ ++#define R200_EMIT_TCL_INPUT_VTX_VECTOR_ADDR_0       60	/* cst/4 */ ++#define R200_EMIT_PP_CUBIC_FACES_0                  61 ++#define R200_EMIT_PP_CUBIC_OFFSETS_0                62 ++#define R200_EMIT_PP_CUBIC_FACES_1                  63 ++#define R200_EMIT_PP_CUBIC_OFFSETS_1                64 ++#define R200_EMIT_PP_CUBIC_FACES_2                  65 ++#define R200_EMIT_PP_CUBIC_OFFSETS_2                66 ++#define R200_EMIT_PP_CUBIC_FACES_3                  67 ++#define R200_EMIT_PP_CUBIC_OFFSETS_3                68 ++#define R200_EMIT_PP_CUBIC_FACES_4                  69 ++#define R200_EMIT_PP_CUBIC_OFFSETS_4                70 ++#define R200_EMIT_PP_CUBIC_FACES_5                  71 ++#define R200_EMIT_PP_CUBIC_OFFSETS_5                72 ++#define RADEON_EMIT_PP_TEX_SIZE_0                   73 ++#define RADEON_EMIT_PP_TEX_SIZE_1                   74 ++#define RADEON_EMIT_PP_TEX_SIZE_2                   75 ++#define R200_EMIT_RB3D_BLENDCOLOR                   76 ++#define R200_EMIT_TCL_POINT_SPRITE_CNTL             77 ++#define RADEON_EMIT_PP_CUBIC_FACES_0                78 ++#define RADEON_EMIT_PP_CUBIC_OFFSETS_T0             79 ++#define RADEON_EMIT_PP_CUBIC_FACES_1                80 ++#define RADEON_EMIT_PP_CUBIC_OFFSETS_T1             81 ++#define RADEON_EMIT_PP_CUBIC_FACES_2                82 ++#define RADEON_EMIT_PP_CUBIC_OFFSETS_T2             83 ++#define R200_EMIT_PP_TRI_PERF_CNTL                  84 ++#define R200_EMIT_PP_AFS_0                          85 ++#define R200_EMIT_PP_AFS_1                          86 ++#define R200_EMIT_ATF_TFACTOR                       87 ++#define R200_EMIT_PP_TXCTLALL_0                     88 ++#define R200_EMIT_PP_TXCTLALL_1                     89 ++#define R200_EMIT_PP_TXCTLALL_2                     90 ++#define R200_EMIT_PP_TXCTLALL_3                     91 ++#define R200_EMIT_PP_TXCTLALL_4                     92 ++#define R200_EMIT_PP_TXCTLALL_5                     93 ++#define R200_EMIT_VAP_PVS_CNTL                      94 ++#define RADEON_MAX_STATE_PACKETS                    95 ++ ++/* Commands understood by cmd_buffer ioctl.  More can be added but ++ * obviously these can't be removed or changed: ++ */ ++#define RADEON_CMD_PACKET      1	/* emit one of the register packets above */ ++#define RADEON_CMD_SCALARS     2	/* emit scalar data */ ++#define RADEON_CMD_VECTORS     3	/* emit vector data */ ++#define RADEON_CMD_DMA_DISCARD 4	/* discard current dma buf */ ++#define RADEON_CMD_PACKET3     5	/* emit hw packet */ ++#define RADEON_CMD_PACKET3_CLIP 6	/* emit hw packet wrapped in cliprects */ ++#define RADEON_CMD_SCALARS2     7	/* r200 stopgap */ ++#define RADEON_CMD_WAIT         8	/* emit hw wait commands -- note: ++					 *  doesn't make the cpu wait, just ++					 *  the graphics hardware */ ++#define RADEON_CMD_VECLINEAR	9       /* another r200 stopgap */ ++ ++typedef union { ++	int i; ++	struct { ++		unsigned char cmd_type, pad0, pad1, pad2; ++	} header; ++	struct { ++		unsigned char cmd_type, packet_id, pad0, pad1; ++	} packet; ++	struct { ++		unsigned char cmd_type, offset, stride, count; ++	} scalars; ++	struct { ++		unsigned char cmd_type, offset, stride, count; ++	} vectors; ++	struct { ++		unsigned char cmd_type, addr_lo, addr_hi, count; ++	} veclinear; ++	struct { ++		unsigned char cmd_type, buf_idx, pad0, pad1; ++	} dma; ++	struct { ++		unsigned char cmd_type, flags, pad0, pad1; ++	} wait; ++} drm_radeon_cmd_header_t; ++ ++#define RADEON_WAIT_2D  0x1 ++#define RADEON_WAIT_3D  0x2 ++ ++/* Allowed parameters for R300_CMD_PACKET3 ++ */ ++#define R300_CMD_PACKET3_CLEAR		0 ++#define R300_CMD_PACKET3_RAW		1 ++ ++/* Commands understood by cmd_buffer ioctl for R300. ++ * The interface has not been stabilized, so some of these may be removed ++ * and eventually reordered before stabilization. ++ */ ++#define R300_CMD_PACKET0		1 ++#define R300_CMD_VPU			2	/* emit vertex program upload */ ++#define R300_CMD_PACKET3		3	/* emit a packet3 */ ++#define R300_CMD_END3D			4	/* emit sequence ending 3d rendering */ ++#define R300_CMD_CP_DELAY		5 ++#define R300_CMD_DMA_DISCARD		6 ++#define R300_CMD_WAIT			7 ++#	define R300_WAIT_2D		0x1 ++#	define R300_WAIT_3D		0x2 ++/* these two defines are DOING IT WRONG - however ++ * we have userspace which relies on using these. ++ * The wait interface is backwards compat new  ++ * code should use the NEW_WAIT defines below ++ * THESE ARE NOT BIT FIELDS ++ */ ++#	define R300_WAIT_2D_CLEAN	0x3 ++#	define R300_WAIT_3D_CLEAN	0x4 ++ ++#	define R300_NEW_WAIT_2D_3D	0x3 ++#	define R300_NEW_WAIT_2D_2D_CLEAN	0x4 ++#	define R300_NEW_WAIT_3D_3D_CLEAN	0x6 ++#	define R300_NEW_WAIT_2D_2D_CLEAN_3D_3D_CLEAN	0x8 ++ ++#define R300_CMD_SCRATCH		8 ++#define R300_CMD_R500FP                 9 ++ ++typedef union { ++	unsigned int u; ++	struct { ++		unsigned char cmd_type, pad0, pad1, pad2; ++	} header; ++	struct { ++		unsigned char cmd_type, count, reglo, reghi; ++	} packet0; ++	struct { ++		unsigned char cmd_type, count, adrlo, adrhi; ++	} vpu; ++	struct { ++		unsigned char cmd_type, packet, pad0, pad1; ++	} packet3; ++	struct { ++		unsigned char cmd_type, packet; ++		unsigned short count;	/* amount of packet2 to emit */ ++	} delay; ++	struct { ++		unsigned char cmd_type, buf_idx, pad0, pad1; ++	} dma; ++	struct { ++		unsigned char cmd_type, flags, pad0, pad1; ++	} wait; ++	struct { ++		unsigned char cmd_type, reg, n_bufs, flags; ++	} scratch; ++	struct { ++		unsigned char cmd_type, count, adrlo, adrhi_flags; ++	} r500fp; ++} drm_r300_cmd_header_t; ++ ++#define RADEON_FRONT			0x1 ++#define RADEON_BACK			0x2 ++#define RADEON_DEPTH			0x4 ++#define RADEON_STENCIL			0x8 ++#define RADEON_CLEAR_FASTZ		0x80000000 ++#define RADEON_USE_HIERZ		0x40000000 ++#define RADEON_USE_COMP_ZBUF		0x20000000 ++ ++#define R500FP_CONSTANT_TYPE  (1 << 1) ++#define R500FP_CONSTANT_CLAMP (1 << 2) ++ ++/* Primitive types ++ */ ++#define RADEON_POINTS			0x1 ++#define RADEON_LINES			0x2 ++#define RADEON_LINE_STRIP		0x3 ++#define RADEON_TRIANGLES		0x4 ++#define RADEON_TRIANGLE_FAN		0x5 ++#define RADEON_TRIANGLE_STRIP		0x6 ++ ++/* Vertex/indirect buffer size ++ */ ++#define RADEON_BUFFER_SIZE		65536 ++ ++/* Byte offsets for indirect buffer data ++ */ ++#define RADEON_INDEX_PRIM_OFFSET	20 ++ ++#define RADEON_SCRATCH_REG_OFFSET	32 ++#define R600_SCRATCH_REG_OFFSET	        256 ++ ++#define RADEON_NR_SAREA_CLIPRECTS	12 ++ ++/* There are 2 heaps (local/GART).  Each region within a heap is a ++ * minimum of 64k, and there are at most 64 of them per heap. ++ */ ++#define RADEON_LOCAL_TEX_HEAP		0 ++#define RADEON_GART_TEX_HEAP		1 ++#define RADEON_NR_TEX_HEAPS		2 ++#define RADEON_NR_TEX_REGIONS		64 ++#define RADEON_LOG_TEX_GRANULARITY	16 ++ ++#define RADEON_MAX_TEXTURE_LEVELS	12 ++#define RADEON_MAX_TEXTURE_UNITS	3 ++ ++#define RADEON_MAX_SURFACES		8 ++ ++/* Blits have strict offset rules.  All blit offset must be aligned on ++ * a 1K-byte boundary. ++ */ ++#define RADEON_OFFSET_SHIFT             10 ++#define RADEON_OFFSET_ALIGN             (1 << RADEON_OFFSET_SHIFT) ++#define RADEON_OFFSET_MASK              (RADEON_OFFSET_ALIGN - 1) ++ ++#endif				/* __RADEON_SAREA_DEFINES__ */ ++ ++typedef struct { ++	unsigned int red; ++	unsigned int green; ++	unsigned int blue; ++	unsigned int alpha; ++} radeon_color_regs_t; ++ ++typedef struct { ++	/* Context state */ ++	unsigned int pp_misc;	/* 0x1c14 */ ++	unsigned int pp_fog_color; ++	unsigned int re_solid_color; ++	unsigned int rb3d_blendcntl; ++	unsigned int rb3d_depthoffset; ++	unsigned int rb3d_depthpitch; ++	unsigned int rb3d_zstencilcntl; ++ ++	unsigned int pp_cntl;	/* 0x1c38 */ ++	unsigned int rb3d_cntl; ++	unsigned int rb3d_coloroffset; ++	unsigned int re_width_height; ++	unsigned int rb3d_colorpitch; ++	unsigned int se_cntl; ++ ++	/* Vertex format state */ ++	unsigned int se_coord_fmt;	/* 0x1c50 */ ++ ++	/* Line state */ ++	unsigned int re_line_pattern;	/* 0x1cd0 */ ++	unsigned int re_line_state; ++ ++	unsigned int se_line_width;	/* 0x1db8 */ ++ ++	/* Bumpmap state */ ++	unsigned int pp_lum_matrix;	/* 0x1d00 */ ++ ++	unsigned int pp_rot_matrix_0;	/* 0x1d58 */ ++	unsigned int pp_rot_matrix_1; ++ ++	/* Mask state */ ++	unsigned int rb3d_stencilrefmask;	/* 0x1d7c */ ++	unsigned int rb3d_ropcntl; ++	unsigned int rb3d_planemask; ++ ++	/* Viewport state */ ++	unsigned int se_vport_xscale;	/* 0x1d98 */ ++	unsigned int se_vport_xoffset; ++	unsigned int se_vport_yscale; ++	unsigned int se_vport_yoffset; ++	unsigned int se_vport_zscale; ++	unsigned int se_vport_zoffset; ++ ++	/* Setup state */ ++	unsigned int se_cntl_status;	/* 0x2140 */ ++ ++	/* Misc state */ ++	unsigned int re_top_left;	/* 0x26c0 */ ++	unsigned int re_misc; ++} drm_radeon_context_regs_t; ++ ++typedef struct { ++	/* Zbias state */ ++	unsigned int se_zbias_factor;	/* 0x1dac */ ++	unsigned int se_zbias_constant; ++} drm_radeon_context2_regs_t; ++ ++/* Setup registers for each texture unit ++ */ ++typedef struct { ++	unsigned int pp_txfilter; ++	unsigned int pp_txformat; ++	unsigned int pp_txoffset; ++	unsigned int pp_txcblend; ++	unsigned int pp_txablend; ++	unsigned int pp_tfactor; ++	unsigned int pp_border_color; ++} drm_radeon_texture_regs_t; ++ ++typedef struct { ++	unsigned int start; ++	unsigned int finish; ++	unsigned int prim:8; ++	unsigned int stateidx:8; ++	unsigned int numverts:16;	/* overloaded as offset/64 for elt prims */ ++	unsigned int vc_format;	/* vertex format */ ++} drm_radeon_prim_t; ++ ++typedef struct { ++	drm_radeon_context_regs_t context; ++	drm_radeon_texture_regs_t tex[RADEON_MAX_TEXTURE_UNITS]; ++	drm_radeon_context2_regs_t context2; ++	unsigned int dirty; ++} drm_radeon_state_t; ++ ++typedef struct { ++	/* The channel for communication of state information to the ++	 * kernel on firing a vertex buffer with either of the ++	 * obsoleted vertex/index ioctls. ++	 */ ++	drm_radeon_context_regs_t context_state; ++	drm_radeon_texture_regs_t tex_state[RADEON_MAX_TEXTURE_UNITS]; ++	unsigned int dirty; ++	unsigned int vertsize; ++	unsigned int vc_format; ++ ++	/* The current cliprects, or a subset thereof. ++	 */ ++	struct drm_clip_rect boxes[RADEON_NR_SAREA_CLIPRECTS]; ++	unsigned int nbox; ++ ++	/* Counters for client-side throttling of rendering clients. ++	 */ ++	unsigned int last_frame; ++	unsigned int last_dispatch; ++	unsigned int last_clear; ++ ++	struct drm_tex_region tex_list[RADEON_NR_TEX_HEAPS][RADEON_NR_TEX_REGIONS + ++						       1]; ++	unsigned int tex_age[RADEON_NR_TEX_HEAPS]; ++	int ctx_owner; ++	int pfState;		/* number of 3d windows (0,1,2ormore) */ ++	int pfCurrentPage;	/* which buffer is being displayed? */ ++	int crtc2_base;		/* CRTC2 frame offset */ ++	int tiling_enabled;	/* set by drm, read by 2d + 3d clients */ ++} drm_radeon_sarea_t; ++ ++/* WARNING: If you change any of these defines, make sure to change the ++ * defines in the Xserver file (xf86drmRadeon.h) ++ * ++ * KW: actually it's illegal to change any of this (backwards compatibility). ++ */ ++ ++/* Radeon specific ioctls ++ * The device specific ioctl range is 0x40 to 0x79. ++ */ ++#define DRM_RADEON_CP_INIT    0x00 ++#define DRM_RADEON_CP_START   0x01 ++#define DRM_RADEON_CP_STOP    0x02 ++#define DRM_RADEON_CP_RESET   0x03 ++#define DRM_RADEON_CP_IDLE    0x04 ++#define DRM_RADEON_RESET      0x05 ++#define DRM_RADEON_FULLSCREEN 0x06 ++#define DRM_RADEON_SWAP       0x07 ++#define DRM_RADEON_CLEAR      0x08 ++#define DRM_RADEON_VERTEX     0x09 ++#define DRM_RADEON_INDICES    0x0A ++#define DRM_RADEON_NOT_USED ++#define DRM_RADEON_STIPPLE    0x0C ++#define DRM_RADEON_INDIRECT   0x0D ++#define DRM_RADEON_TEXTURE    0x0E ++#define DRM_RADEON_VERTEX2    0x0F ++#define DRM_RADEON_CMDBUF     0x10 ++#define DRM_RADEON_GETPARAM   0x11 ++#define DRM_RADEON_FLIP       0x12 ++#define DRM_RADEON_ALLOC      0x13 ++#define DRM_RADEON_FREE       0x14 ++#define DRM_RADEON_INIT_HEAP  0x15 ++#define DRM_RADEON_IRQ_EMIT   0x16 ++#define DRM_RADEON_IRQ_WAIT   0x17 ++#define DRM_RADEON_CP_RESUME  0x18 ++#define DRM_RADEON_SETPARAM   0x19 ++#define DRM_RADEON_SURF_ALLOC 0x1a ++#define DRM_RADEON_SURF_FREE  0x1b ++ ++#define DRM_IOCTL_RADEON_CP_INIT    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t) ++#define DRM_IOCTL_RADEON_CP_START   DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_START) ++#define DRM_IOCTL_RADEON_CP_STOP    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_STOP, drm_radeon_cp_stop_t) ++#define DRM_IOCTL_RADEON_CP_RESET   DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_RESET) ++#define DRM_IOCTL_RADEON_CP_IDLE    DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_IDLE) ++#define DRM_IOCTL_RADEON_RESET      DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_RESET) ++#define DRM_IOCTL_RADEON_FULLSCREEN DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_FULLSCREEN, drm_radeon_fullscreen_t) ++#define DRM_IOCTL_RADEON_SWAP       DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_SWAP) ++#define DRM_IOCTL_RADEON_CLEAR      DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CLEAR, drm_radeon_clear_t) ++#define DRM_IOCTL_RADEON_VERTEX     DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_VERTEX, drm_radeon_vertex_t) ++#define DRM_IOCTL_RADEON_INDICES    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_INDICES, drm_radeon_indices_t) ++#define DRM_IOCTL_RADEON_STIPPLE    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_STIPPLE, drm_radeon_stipple_t) ++#define DRM_IOCTL_RADEON_INDIRECT   DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_INDIRECT, drm_radeon_indirect_t) ++#define DRM_IOCTL_RADEON_TEXTURE    DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_TEXTURE, drm_radeon_texture_t) ++#define DRM_IOCTL_RADEON_VERTEX2    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_VERTEX2, drm_radeon_vertex2_t) ++#define DRM_IOCTL_RADEON_CMDBUF     DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CMDBUF, drm_radeon_cmd_buffer_t) ++#define DRM_IOCTL_RADEON_GETPARAM   DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GETPARAM, drm_radeon_getparam_t) ++#define DRM_IOCTL_RADEON_FLIP       DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_FLIP) ++#define DRM_IOCTL_RADEON_ALLOC      DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_ALLOC, drm_radeon_mem_alloc_t) ++#define DRM_IOCTL_RADEON_FREE       DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_FREE, drm_radeon_mem_free_t) ++#define DRM_IOCTL_RADEON_INIT_HEAP  DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_INIT_HEAP, drm_radeon_mem_init_heap_t) ++#define DRM_IOCTL_RADEON_IRQ_EMIT   DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_IRQ_EMIT, drm_radeon_irq_emit_t) ++#define DRM_IOCTL_RADEON_IRQ_WAIT   DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_IRQ_WAIT, drm_radeon_irq_wait_t) ++#define DRM_IOCTL_RADEON_CP_RESUME  DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_RESUME) ++#define DRM_IOCTL_RADEON_SETPARAM   DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SETPARAM, drm_radeon_setparam_t) ++#define DRM_IOCTL_RADEON_SURF_ALLOC DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_ALLOC, drm_radeon_surface_alloc_t) ++#define DRM_IOCTL_RADEON_SURF_FREE  DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_FREE, drm_radeon_surface_free_t) ++ ++typedef struct drm_radeon_init { ++	enum { ++		RADEON_INIT_CP = 0x01, ++		RADEON_CLEANUP_CP = 0x02, ++		RADEON_INIT_R200_CP = 0x03, ++		RADEON_INIT_R300_CP = 0x04, ++		RADEON_INIT_R600_CP = 0x05, ++	} func; ++	unsigned long sarea_priv_offset; ++	int is_pci; /* for overriding only */ ++	int cp_mode; ++	int gart_size; ++	int ring_size; ++	int usec_timeout; ++ ++	unsigned int fb_bpp; ++	unsigned int front_offset, front_pitch; ++	unsigned int back_offset, back_pitch; ++	unsigned int depth_bpp; ++	unsigned int depth_offset, depth_pitch; ++ ++	/* DEPRECATED commented out below to allow for -Werror build */ ++	unsigned long fb_offset /*DEPRECATED*/;	/* deprecated, driver asks hardware */ ++	unsigned long mmio_offset /*DEPRECATED*/;	/* deprecated, driver asks hardware */ ++	unsigned long ring_offset; ++	unsigned long ring_rptr_offset; ++	unsigned long buffers_offset; ++	unsigned long gart_textures_offset; ++} drm_radeon_init_t; ++ ++typedef struct drm_radeon_cp_stop { ++	int flush; ++	int idle; ++} drm_radeon_cp_stop_t; ++ ++typedef struct drm_radeon_fullscreen { ++	enum { ++		RADEON_INIT_FULLSCREEN = 0x01, ++		RADEON_CLEANUP_FULLSCREEN = 0x02 ++	} func; ++} drm_radeon_fullscreen_t; ++ ++#define CLEAR_X1	0 ++#define CLEAR_Y1	1 ++#define CLEAR_X2	2 ++#define CLEAR_Y2	3 ++#define CLEAR_DEPTH	4 ++ ++typedef union drm_radeon_clear_rect { ++	float f[5]; ++	unsigned int ui[5]; ++} drm_radeon_clear_rect_t; ++ ++typedef struct drm_radeon_clear { ++	unsigned int flags; ++	unsigned int clear_color; ++	unsigned int clear_depth; ++	unsigned int color_mask; ++	unsigned int depth_mask;	/* misnamed field:  should be stencil */ ++	drm_radeon_clear_rect_t __user *depth_boxes; ++} drm_radeon_clear_t; ++ ++typedef struct drm_radeon_vertex { ++	int prim; ++	int idx;		/* Index of vertex buffer */ ++	int count;		/* Number of vertices in buffer */ ++	int discard;		/* Client finished with buffer? */ ++} drm_radeon_vertex_t; ++ ++typedef struct drm_radeon_indices { ++	int prim; ++	int idx; ++	int start; ++	int end; ++	int discard;		/* Client finished with buffer? */ ++} drm_radeon_indices_t; ++ ++/* v1.2 - obsoletes drm_radeon_vertex and drm_radeon_indices ++ *      - allows multiple primitives and state changes in a single ioctl ++ *      - supports driver change to emit native primitives ++ */ ++typedef struct drm_radeon_vertex2 { ++	int idx;		/* Index of vertex buffer */ ++	int discard;		/* Client finished with buffer? */ ++	int nr_states; ++	drm_radeon_state_t __user *state; ++	int nr_prims; ++	drm_radeon_prim_t __user *prim; ++} drm_radeon_vertex2_t; ++ ++/* v1.3 - obsoletes drm_radeon_vertex2 ++ *      - allows arbitarily large cliprect list ++ *      - allows updating of tcl packet, vector and scalar state ++ *      - allows memory-efficient description of state updates ++ *      - allows state to be emitted without a primitive ++ *           (for clears, ctx switches) ++ *      - allows more than one dma buffer to be referenced per ioctl ++ *      - supports tcl driver ++ *      - may be extended in future versions with new cmd types, packets ++ */ ++typedef struct drm_radeon_cmd_buffer { ++	int bufsz; ++	char __user *buf; ++	int nbox; ++	struct drm_clip_rect __user *boxes; ++} drm_radeon_cmd_buffer_t; ++ ++typedef struct drm_radeon_tex_image { ++	unsigned int x, y;	/* Blit coordinates */ ++	unsigned int width, height; ++	const void __user *data; ++} drm_radeon_tex_image_t; ++ ++typedef struct drm_radeon_texture { ++	unsigned int offset; ++	int pitch; ++	int format; ++	int width;		/* Texture image coordinates */ ++	int height; ++	drm_radeon_tex_image_t __user *image; ++} drm_radeon_texture_t; ++ ++typedef struct drm_radeon_stipple { ++	unsigned int __user *mask; ++} drm_radeon_stipple_t; ++ ++typedef struct drm_radeon_indirect { ++	int idx; ++	int start; ++	int end; ++	int discard; ++} drm_radeon_indirect_t; ++ ++#define RADEON_INDIRECT_DISCARD (1 << 0) ++#define RADEON_INDIRECT_NOFLUSH (1 << 1) ++ ++/* enum for card type parameters */ ++#define RADEON_CARD_PCI 0 ++#define RADEON_CARD_AGP 1 ++#define RADEON_CARD_PCIE 2 ++ ++/* 1.3: An ioctl to get parameters that aren't available to the 3d ++ * client any other way. ++ */ ++#define RADEON_PARAM_GART_BUFFER_OFFSET    1	/* card offset of 1st GART buffer */ ++#define RADEON_PARAM_LAST_FRAME            2 ++#define RADEON_PARAM_LAST_DISPATCH         3 ++#define RADEON_PARAM_LAST_CLEAR            4 ++/* Added with DRM version 1.6. */ ++#define RADEON_PARAM_IRQ_NR                5 ++#define RADEON_PARAM_GART_BASE             6	/* card offset of GART base */ ++/* Added with DRM version 1.8. */ ++#define RADEON_PARAM_REGISTER_HANDLE       7	/* for drmMap() */ ++#define RADEON_PARAM_STATUS_HANDLE         8 ++#define RADEON_PARAM_SAREA_HANDLE          9 ++#define RADEON_PARAM_GART_TEX_HANDLE       10 ++#define RADEON_PARAM_SCRATCH_OFFSET        11 ++#define RADEON_PARAM_CARD_TYPE             12 ++#define RADEON_PARAM_VBLANK_CRTC           13   /* VBLANK CRTC */ ++#define RADEON_PARAM_FB_LOCATION           14   /* FB location */ ++#define RADEON_PARAM_NUM_GB_PIPES          15   /* num GB pipes */ ++ ++typedef struct drm_radeon_getparam { ++	int param; ++	void __user *value; ++} drm_radeon_getparam_t; ++ ++/* 1.6: Set up a memory manager for regions of shared memory: ++ */ ++#define RADEON_MEM_REGION_GART 1 ++#define RADEON_MEM_REGION_FB   2 ++ ++typedef struct drm_radeon_mem_alloc { ++	int region; ++	int alignment; ++	int size; ++	int __user *region_offset;	/* offset from start of fb or GART */ ++} drm_radeon_mem_alloc_t; ++ ++typedef struct drm_radeon_mem_free { ++	int region; ++	int region_offset; ++} drm_radeon_mem_free_t; ++ ++typedef struct drm_radeon_mem_init_heap { ++	int region; ++	int size; ++	int start; ++} drm_radeon_mem_init_heap_t; ++ ++/* 1.6: Userspace can request & wait on irq's: ++ */ ++typedef struct drm_radeon_irq_emit { ++	int __user *irq_seq; ++} drm_radeon_irq_emit_t; ++ ++typedef struct drm_radeon_irq_wait { ++	int irq_seq; ++} drm_radeon_irq_wait_t; ++ ++/* 1.10: Clients tell the DRM where they think the framebuffer is located in ++ * the card's address space, via a new generic ioctl to set parameters ++ */ ++ ++typedef struct drm_radeon_setparam { ++	unsigned int param; ++	int64_t value; ++} drm_radeon_setparam_t; ++ ++#define RADEON_SETPARAM_FB_LOCATION    1	/* determined framebuffer location */ ++#define RADEON_SETPARAM_SWITCH_TILING  2	/* enable/disable color tiling */ ++#define RADEON_SETPARAM_PCIGART_LOCATION 3	/* PCI Gart Location */ ++ ++#define RADEON_SETPARAM_NEW_MEMMAP 4		/* Use new memory map */ ++#define RADEON_SETPARAM_PCIGART_TABLE_SIZE 5    /* PCI GART Table Size */ ++#define RADEON_SETPARAM_VBLANK_CRTC 6           /* VBLANK CRTC */ ++/* 1.14: Clients can allocate/free a surface ++ */ ++typedef struct drm_radeon_surface_alloc { ++	unsigned int address; ++	unsigned int size; ++	unsigned int flags; ++} drm_radeon_surface_alloc_t; ++ ++typedef struct drm_radeon_surface_free { ++	unsigned int address; ++} drm_radeon_surface_free_t; ++ ++#define	DRM_RADEON_VBLANK_CRTC1		1 ++#define	DRM_RADEON_VBLANK_CRTC2		2 ++ ++#endif +diff --git a/src/radeon_exa.c b/src/radeon_exa.c +index f461f3c..0f86fdd 100644 +--- a/src/radeon_exa.c ++++ b/src/radeon_exa.c +@@ -36,14 +36,11 @@ + #include "radeon.h" + #include "radeon_reg.h" + #ifdef XF86DRI +-#include "radeon_dri.h" ++#include "radeon_drm.h" + #endif + #include "radeon_macros.h" + #include "radeon_probe.h" + #include "radeon_version.h" +-#ifdef XF86DRI +-#include "radeon_sarea.h" +-#endif +  + #include "xf86.h" +  +@@ -164,10 +161,10 @@ static Bool RADEONGetOffsetPitch(PixmapPtr pPix, int bpp, uint32_t *pitch_offset + { + 	RINFO_FROM_SCREEN(pPix->drawable.pScreen); +  +-	if (pitch > 16320 || pitch % info->exa->pixmapPitchAlign != 0) ++	if (pitch > 16320 || pitch % info->accel_state->exa->pixmapPitchAlign != 0) + 		RADEON_FALLBACK(("Bad pitch 0x%08x\n", pitch)); +  +-	if (offset % info->exa->pixmapOffsetAlign != 0) ++	if (offset % info->accel_state->exa->pixmapOffsetAlign != 0) + 		RADEON_FALLBACK(("Bad offset 0x%08x\n", offset)); +  + 	pitch = pitch >> 6; +@@ -237,14 +234,14 @@ static Bool RADEONPrepareAccess(PixmapPtr pPix, int index) +     } + #if defined(XF86DRI) +     if (info->directRenderingEnabled && info->allowColorTiling) { +-	drmRadeonSurfaceAlloc drmsurfalloc; ++	struct drm_radeon_surface_alloc drmsurfalloc; + 	int rc; +  +         drmsurfalloc.address = offset; +         drmsurfalloc.size = size; + 	drmsurfalloc.flags = flags | 1; /* bogus pitch to please DRM */ +  +-        rc = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_ALLOC, ++        rc = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_ALLOC, + 			     &drmsurfalloc, sizeof(drmsurfalloc)); + 	if (rc < 0) { + 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, +@@ -280,10 +277,10 @@ static void RADEONFinishAccess(PixmapPtr pPix, int index) +         return; + #if defined(XF86DRI) +     if (info->directRenderingEnabled && info->allowColorTiling) { +-	drmRadeonSurfaceFree drmsurffree; ++	struct drm_radeon_surface_free drmsurffree; +  + 	drmsurffree.address = offset; +-	drmCommandWrite(info->drmFD, DRM_RADEON_SURF_FREE, ++	drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_FREE, + 			&drmsurffree, sizeof(drmsurffree)); + 	swapper_surfaces[index] = 0; + 	return; +@@ -302,7 +299,7 @@ static void RADEONFinishAccess(PixmapPtr pPix, int index) + do {									\ + 	uint32_t wait_until = 0;			\ + 	BEGIN_ACCEL(1);							\ +-	switch (info->engineMode) {					\ ++	switch (info->accel_state->engineMode) {			\ + 	case EXA_ENGINEMODE_UNKNOWN:					\ + 	    wait_until |= RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_2D_IDLECLEAN;	\ + 	case EXA_ENGINEMODE_3D:						\ +@@ -312,14 +309,14 @@ do {									\ + 	}								\ + 	OUT_ACCEL_REG(RADEON_WAIT_UNTIL, wait_until);			\ + 	FINISH_ACCEL();							\ +-        info->engineMode = EXA_ENGINEMODE_2D;                           \ ++        info->accel_state->engineMode = EXA_ENGINEMODE_2D;              \ + } while (0); +  + #define RADEON_SWITCH_TO_3D()						\ + do {									\ + 	uint32_t wait_until = 0;			\ + 	BEGIN_ACCEL(1);							\ +-	switch (info->engineMode) {					\ ++	switch (info->accel_state->engineMode) {			\ + 	case EXA_ENGINEMODE_UNKNOWN:					\ + 	    wait_until |= RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_3D_IDLECLEAN;	\ + 	case EXA_ENGINEMODE_2D:						\ +@@ -329,7 +326,7 @@ do {									\ + 	}								\ + 	OUT_ACCEL_REG(RADEON_WAIT_UNTIL, wait_until);			\ + 	FINISH_ACCEL();							\ +-        info->engineMode = EXA_ENGINEMODE_3D;                           \ ++        info->accel_state->engineMode = EXA_ENGINEMODE_3D;              \ + } while (0); +  + #define ENTER_DRAW(x) TRACE +@@ -352,6 +349,7 @@ do {									\ + #undef ACCEL_PREAMBLE + #undef BEGIN_ACCEL + #undef OUT_ACCEL_REG ++#undef OUT_ACCEL_REG_F + #undef FINISH_ACCEL +  + #ifdef XF86DRI +@@ -371,6 +369,13 @@ do {									\ + #endif + #include "radeon_exa_funcs.c" +  ++#undef ACCEL_CP ++#undef ACCEL_PREAMBLE ++#undef BEGIN_ACCEL ++#undef OUT_ACCEL_REG ++#undef FINISH_ACCEL ++#undef OUT_RING_F ++ + #endif /* XF86DRI */ +  + /* +@@ -386,12 +391,12 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen) +     int screen_size; +     int byteStride = pScrn->displayWidth * cpp; +  +-    if (info->exa != NULL) { ++    if (info->accel_state->exa != NULL) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, "Memory map already initialized\n"); + 	return FALSE; +     } +-    info->exa = exaDriverAlloc(); +-    if (info->exa == NULL) ++    info->accel_state->exa = exaDriverAlloc(); ++    if (info->accel_state->exa == NULL) + 	return FALSE; +  +     /* Need to adjust screen size for 16 line tiles, and then make it align to. +@@ -402,53 +407,52 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen) +     else + 	screen_size = pScrn->virtualY * byteStride; +  +-    info->exa->memoryBase = info->FB; +-    info->exa->memorySize = info->FbMapSize - info->FbSecureSize; +-    info->exa->offScreenBase = screen_size; ++    info->accel_state->exa->memoryBase = info->FB; ++    info->accel_state->exa->memorySize = info->FbMapSize - info->FbSecureSize; ++    info->accel_state->exa->offScreenBase = screen_size; +  +     xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Allocating from a screen of %ld kb\n", +-	       info->exa->memorySize / 1024); +- ++	       info->accel_state->exa->memorySize / 1024); +  +     /* Reserve static area for hardware cursor */ +     if (!xf86ReturnOptValBool(info->Options, OPTION_SW_CURSOR, FALSE)) { +-	int cursor_size = 64 * 4 * 64; +-	int c; +- +-	for (c = 0; c < xf86_config->num_crtc; c++) { +-	    xf86CrtcPtr crtc = xf86_config->crtc[c]; +-	    RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; +- +-	    radeon_crtc->cursor_offset = info->exa->offScreenBase; +-	    info->exa->offScreenBase += cursor_size; +- +-	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, +-		       "Will use %d kb for hardware cursor %d at offset 0x%08x\n", +-		       (cursor_size * xf86_config->num_crtc) / 1024, +-		       c, +-		       (unsigned int)radeon_crtc->cursor_offset); +-	} +- +- ++        int cursor_size = 64 * 4 * 64; ++        int align = IS_AVIVO_VARIANT ? 4096 : 256; ++        int c; ++ ++        for (c = 0; c < xf86_config->num_crtc; c++) { ++            xf86CrtcPtr crtc = xf86_config->crtc[c]; ++            RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; ++ ++            radeon_crtc->cursor_offset = ++                RADEON_ALIGN(info->accel_state->exa->offScreenBase, align); ++            info->accel_state->exa->offScreenBase = radeon_crtc->cursor_offset + cursor_size; ++ ++            xf86DrvMsg(pScrn->scrnIndex, X_INFO, ++                       "Will use %d kb for hardware cursor %d at offset 0x%08x\n", ++                       (cursor_size * xf86_config->num_crtc) / 1024, ++                       c, ++                       (unsigned int)radeon_crtc->cursor_offset); ++        } +     } +  + #if defined(XF86DRI) +     if (info->directRenderingEnabled) { +-	int depthCpp = (info->depthBits - 8) / 4, l, next, depth_size; ++	int depthCpp = (info->dri->depthBits - 8) / 4, l, next, depth_size; +  +-	info->frontOffset = 0; +-	info->frontPitch = pScrn->displayWidth; ++	info->dri->frontOffset = 0; ++	info->dri->frontPitch = pScrn->displayWidth; +  +         xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 	       "Will use %d kb for front buffer at offset 0x%08x\n", +-	       screen_size / 1024, info->frontOffset); ++	       screen_size / 1024, info->dri->frontOffset); + 	RADEONDRIAllocatePCIGARTTable(pScreen); + 	 + 	if (info->cardType==CARD_PCIE) + 	  xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 		     "Will use %d kb for PCI GART at offset 0x%08x\n", +-		     info->pciGartSize / 1024, +-		     (int)info->pciGartOffset); ++		     info->dri->pciGartSize / 1024, ++		     (int)info->dri->pciGartOffset); +  + 	/* Reserve a static area for the back buffer the same size as the + 	 * visible screen.  XXX: This would be better initialized in ati_dri.c +@@ -456,49 +460,49 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen) + 	 * don't last through VT switches, while the kernel's understanding of + 	 * offscreen locations does. + 	 */ +-	info->backPitch = pScrn->displayWidth; +-	next = RADEON_ALIGN(info->exa->offScreenBase, RADEON_BUFFER_ALIGN); +-	if (!info->noBackBuffer && +-	    next + screen_size <= info->exa->memorySize) ++	info->dri->backPitch = pScrn->displayWidth; ++	next = RADEON_ALIGN(info->accel_state->exa->offScreenBase, RADEON_BUFFER_ALIGN); ++	if (!info->dri->noBackBuffer && ++	    next + screen_size <= info->accel_state->exa->memorySize) + 	{ +-	    info->backOffset = next; +-	    info->exa->offScreenBase = next + screen_size; ++	    info->dri->backOffset = next; ++	    info->accel_state->exa->offScreenBase = next + screen_size; + 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 		       "Will use %d kb for back buffer at offset 0x%08x\n", +-		       screen_size / 1024, info->backOffset); ++		       screen_size / 1024, info->dri->backOffset); + 	} +  + 	/* Reserve the static depth buffer, and adjust pitch and height to + 	 * handle tiling. + 	 */ +-	info->depthPitch = RADEON_ALIGN(pScrn->displayWidth, 32); +-	depth_size = RADEON_ALIGN(pScrn->virtualY, 16) * info->depthPitch * depthCpp; +-	next = RADEON_ALIGN(info->exa->offScreenBase, RADEON_BUFFER_ALIGN); +-	if (next + depth_size <= info->exa->memorySize) ++	info->dri->depthPitch = RADEON_ALIGN(pScrn->displayWidth, 32); ++	depth_size = RADEON_ALIGN(pScrn->virtualY, 16) * info->dri->depthPitch * depthCpp; ++	next = RADEON_ALIGN(info->accel_state->exa->offScreenBase, RADEON_BUFFER_ALIGN); ++	if (next + depth_size <= info->accel_state->exa->memorySize) + 	{ +-	    info->depthOffset = next; +-	    info->exa->offScreenBase = next + depth_size; ++	    info->dri->depthOffset = next; ++	    info->accel_state->exa->offScreenBase = next + depth_size; + 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 		       "Will use %d kb for depth buffer at offset 0x%08x\n", +-		       depth_size / 1024, info->depthOffset); ++		       depth_size / 1024, info->dri->depthOffset); + 	} + 	 +-	info->textureSize *= (info->exa->memorySize - +-			      info->exa->offScreenBase) / 100; ++	info->dri->textureSize *= (info->accel_state->exa->memorySize - ++				   info->accel_state->exa->offScreenBase) / 100; +  +-	l = RADEONLog2(info->textureSize / RADEON_NR_TEX_REGIONS); ++	l = RADEONLog2(info->dri->textureSize / RADEON_NR_TEX_REGIONS); + 	if (l < RADEON_LOG_TEX_GRANULARITY) + 	    l = RADEON_LOG_TEX_GRANULARITY; +-	info->textureSize = (info->textureSize >> l) << l; +-	if (info->textureSize >= 512 * 1024) { +-	    info->textureOffset = info->exa->offScreenBase; +-	    info->exa->offScreenBase += info->textureSize; ++	info->dri->textureSize = (info->dri->textureSize >> l) << l; ++	if (info->dri->textureSize >= 512 * 1024) { ++	    info->dri->textureOffset = info->accel_state->exa->offScreenBase; ++	    info->accel_state->exa->offScreenBase += info->dri->textureSize; + 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 		       "Will use %d kb for textures at offset 0x%08x\n", +-		       info->textureSize / 1024, info->textureOffset); ++		       info->dri->textureSize / 1024, info->dri->textureOffset); + 	} else { + 	    /* Minimum texture size is for 2 256x256x32bpp textures */ +-	    info->textureSize = 0; ++	    info->dri->textureSize = 0; + 	} +     } else + #endif /* XF86DRI */ +@@ -508,8 +512,8 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen) +  +     xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 	       "Will use %ld kb for X Server offscreen at offset 0x%08lx\n", +-	       (info->exa->memorySize - info->exa->offScreenBase) / +-	       1024, info->exa->offScreenBase); ++	       (info->accel_state->exa->memorySize - info->accel_state->exa->offScreenBase) / ++	       1024, info->accel_state->exa->offScreenBase); +  +     return TRUE; + } +diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c +index 56de23e..62224d0 100644 +--- a/src/radeon_exa_funcs.c ++++ b/src/radeon_exa_funcs.c +@@ -65,7 +65,7 @@ FUNC_NAME(RADEONMarkSync)(ScreenPtr pScreen) +  +     TRACE; +  +-    return ++info->exaSyncMarker; ++    return ++info->accel_state->exaSyncMarker; + } +  + static void +@@ -76,12 +76,12 @@ FUNC_NAME(RADEONSync)(ScreenPtr pScreen, int marker) +  +     TRACE; +  +-    if (info->exaMarkerSynced != marker) { ++    if (info->accel_state->exaMarkerSynced != marker) { + 	FUNC_NAME(RADEONWaitForIdle)(pScrn); +-	info->exaMarkerSynced = marker; ++	info->accel_state->exaMarkerSynced = marker; +     } +  +-    RADEONPTR(pScrn)->engineMode = EXA_ENGINEMODE_UNKNOWN; ++    RADEONPTR(pScrn)->accel_state->engineMode = EXA_ENGINEMODE_UNKNOWN; + } +  + static Bool +@@ -172,8 +172,8 @@ FUNC_NAME(RADEONDoPrepareCopy)(ScrnInfoPtr pScrn, uint32_t src_pitch_offset, + 	RADEON_GMC_CLR_CMP_CNTL_DIS); +     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK, planemask); +     OUT_ACCEL_REG(RADEON_DP_CNTL, +-	((info->xdir >= 0 ? RADEON_DST_X_LEFT_TO_RIGHT : 0) | +-	 (info->ydir >= 0 ? RADEON_DST_Y_TOP_TO_BOTTOM : 0))); ++	((info->accel_state->xdir >= 0 ? RADEON_DST_X_LEFT_TO_RIGHT : 0) | ++	 (info->accel_state->ydir >= 0 ? RADEON_DST_Y_TOP_TO_BOTTOM : 0))); +     OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, dst_pitch_offset); +     OUT_ACCEL_REG(RADEON_SRC_PITCH_OFFSET, src_pitch_offset); +     FINISH_ACCEL(); +@@ -190,8 +190,8 @@ FUNC_NAME(RADEONPrepareCopy)(PixmapPtr pSrc,   PixmapPtr pDst, +  +     TRACE; +  +-    info->xdir = xdir; +-    info->ydir = ydir; ++    info->accel_state->xdir = xdir; ++    info->accel_state->ydir = ydir; +  +     if (pDst->drawable.bitsPerPixel == 24) + 	RADEON_FALLBACK(("24bpp unsupported")); +@@ -219,11 +219,11 @@ FUNC_NAME(RADEONCopy)(PixmapPtr pDst, +  +     TRACE; +  +-    if (info->xdir < 0) { ++    if (info->accel_state->xdir < 0) { + 	srcX += w - 1; + 	dstX += w - 1; +     } +-    if (info->ydir < 0) { ++    if (info->accel_state->ydir < 0) { + 	srcY += h - 1; + 	dstY += h - 1; +     } +@@ -401,9 +401,9 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h, + 	int swap = RADEON_HOST_DATA_SWAP_NONE, wpass = w * bpp / 8; + 	int hpass = min(h, scratch->total/2 / scratch_pitch); + 	uint32_t scratch_pitch_offset = scratch_pitch << 16 +-				    | (info->gartLocation + info->bufStart ++				    | (info->gartLocation + info->dri->bufStart + 				       + scratch->idx * scratch->total) >> 10; +-	drmRadeonIndirect indirect; ++	drm_radeon_indirect_t indirect; + 	ACCEL_PREAMBLE(); +  + 	RADEON_SWITCH_TO_2D(); +@@ -450,7 +450,7 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h, + 	     * we'd really need is a way to reliably wait for the host interface + 	     * to be done with pushing the data to the host. + 	     */ +-	    while ((drmCommandNone(info->drmFD, DRM_RADEON_CP_IDLE) == -EBUSY) ++	    while ((drmCommandNone(info->dri->drmFD, DRM_RADEON_CP_IDLE) == -EBUSY) + 		   && (i++ < RADEON_TIMEOUT)) + 		; +  +@@ -473,10 +473,10 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h, + 	indirect.start = indirect.end = 0; + 	indirect.discard = 1; +  +-	drmCommandWriteRead(info->drmFD, DRM_RADEON_INDIRECT, +-			    &indirect, sizeof(drmRadeonIndirect)); ++	drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_INDIRECT, ++			    &indirect, sizeof(drm_radeon_indirect_t)); +  +-	info->exaMarkerSynced = info->exaSyncMarker; ++	info->accel_state->exaMarkerSynced = info->accel_state->exaSyncMarker; +  + 	return TRUE; +     } +@@ -522,35 +522,35 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen) + { +     RINFO_FROM_SCREEN(pScreen); +  +-    if (info->exa == NULL) { ++    if (info->accel_state->exa == NULL) { + 	xf86DrvMsg(pScreen->myNum, X_ERROR, "Memory map not set up\n"); + 	return FALSE; +     } +  +-    info->exa->exa_major = EXA_VERSION_MAJOR; +-    info->exa->exa_minor = EXA_VERSION_MINOR; ++    info->accel_state->exa->exa_major = EXA_VERSION_MAJOR; ++    info->accel_state->exa->exa_minor = EXA_VERSION_MINOR; +  +-    info->exa->PrepareSolid = FUNC_NAME(RADEONPrepareSolid); +-    info->exa->Solid = FUNC_NAME(RADEONSolid); +-    info->exa->DoneSolid = FUNC_NAME(RADEONDoneSolid); ++    info->accel_state->exa->PrepareSolid = FUNC_NAME(RADEONPrepareSolid); ++    info->accel_state->exa->Solid = FUNC_NAME(RADEONSolid); ++    info->accel_state->exa->DoneSolid = FUNC_NAME(RADEONDoneSolid); +  +-    info->exa->PrepareCopy = FUNC_NAME(RADEONPrepareCopy); +-    info->exa->Copy = FUNC_NAME(RADEONCopy); +-    info->exa->DoneCopy = FUNC_NAME(RADEONDoneCopy); ++    info->accel_state->exa->PrepareCopy = FUNC_NAME(RADEONPrepareCopy); ++    info->accel_state->exa->Copy = FUNC_NAME(RADEONCopy); ++    info->accel_state->exa->DoneCopy = FUNC_NAME(RADEONDoneCopy); +  +-    info->exa->MarkSync = FUNC_NAME(RADEONMarkSync); +-    info->exa->WaitMarker = FUNC_NAME(RADEONSync); +-    info->exa->UploadToScreen = FUNC_NAME(RADEONUploadToScreen); +-    info->exa->DownloadFromScreen = FUNC_NAME(RADEONDownloadFromScreen); ++    info->accel_state->exa->MarkSync = FUNC_NAME(RADEONMarkSync); ++    info->accel_state->exa->WaitMarker = FUNC_NAME(RADEONSync); ++    info->accel_state->exa->UploadToScreen = FUNC_NAME(RADEONUploadToScreen); ++    info->accel_state->exa->DownloadFromScreen = FUNC_NAME(RADEONDownloadFromScreen); +  + #if X_BYTE_ORDER == X_BIG_ENDIAN +-    info->exa->PrepareAccess = RADEONPrepareAccess; +-    info->exa->FinishAccess = RADEONFinishAccess; ++    info->accel_state->exa->PrepareAccess = RADEONPrepareAccess; ++    info->accel_state->exa->FinishAccess = RADEONFinishAccess; + #endif /* X_BYTE_ORDER == X_BIG_ENDIAN */ +  +-    info->exa->flags = EXA_OFFSCREEN_PIXMAPS; +-    info->exa->pixmapOffsetAlign = RADEON_BUFFER_ALIGN + 1; +-    info->exa->pixmapPitchAlign = 64; ++    info->accel_state->exa->flags = EXA_OFFSCREEN_PIXMAPS; ++    info->accel_state->exa->pixmapOffsetAlign = RADEON_BUFFER_ALIGN + 1; ++    info->accel_state->exa->pixmapPitchAlign = 64; +  + #ifdef RENDER +     if (info->RenderAccel) { +@@ -565,11 +565,11 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen) + 		) { + 		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration " + 			       "enabled for R300/R400/R500 type cards.\n"); +-		info->exa->CheckComposite = R300CheckComposite; +-		info->exa->PrepareComposite = ++		info->accel_state->exa->CheckComposite = R300CheckComposite; ++		info->accel_state->exa->PrepareComposite = + 		    FUNC_NAME(R300PrepareComposite); +-		info->exa->Composite = FUNC_NAME(RadeonComposite); +-		info->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite); ++		info->accel_state->exa->Composite = FUNC_NAME(RadeonComposite); ++		info->accel_state->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite); + 	    } else + 		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "EXA Composite requires CP on R5xx/IGP\n"); + 	} else if ((info->ChipFamily == CHIP_FAMILY_RV250) || +@@ -578,19 +578,19 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen) + 		   (info->ChipFamily == CHIP_FAMILY_R200)) { + 		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration " + 			       "enabled for R200 type cards.\n"); +-		info->exa->CheckComposite = R200CheckComposite; +-		info->exa->PrepareComposite = ++		info->accel_state->exa->CheckComposite = R200CheckComposite; ++		info->accel_state->exa->PrepareComposite = + 		    FUNC_NAME(R200PrepareComposite); +-		info->exa->Composite = FUNC_NAME(RadeonComposite); +-		info->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite); ++		info->accel_state->exa->Composite = FUNC_NAME(RadeonComposite); ++		info->accel_state->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite); + 	} else { + 		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration " + 			       "enabled for R100 type cards.\n"); +-		info->exa->CheckComposite = R100CheckComposite; +-		info->exa->PrepareComposite = ++		info->accel_state->exa->CheckComposite = R100CheckComposite; ++		info->accel_state->exa->PrepareComposite = + 		    FUNC_NAME(R100PrepareComposite); +-		info->exa->Composite = FUNC_NAME(RadeonComposite); +-		info->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite); ++		info->accel_state->exa->Composite = FUNC_NAME(RadeonComposite); ++		info->accel_state->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite); + 	} +     } + #endif +@@ -598,17 +598,17 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen) + #if EXA_VERSION_MAJOR > 2 || (EXA_VERSION_MAJOR == 2 && EXA_VERSION_MINOR >= 3) +     xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Setting EXA maxPitchBytes\n"); +  +-    info->exa->maxPitchBytes = 16320; +-    info->exa->maxX = 8192; ++    info->accel_state->exa->maxPitchBytes = 16320; ++    info->accel_state->exa->maxX = 8192; + #else +-    info->exa->maxX = 16320 / 4; ++    info->accel_state->exa->maxX = 16320 / 4; + #endif +-    info->exa->maxY = 8192; ++    info->accel_state->exa->maxY = 8192; +  +     RADEONEngineInit(pScrn); +  +-    if (!exaDriverInit(pScreen, info->exa)) { +-	xfree(info->exa); ++    if (!exaDriverInit(pScreen, info->accel_state->exa)) { ++	xfree(info->accel_state->exa); + 	return FALSE; +     } +     exaMarkSync(pScreen); +diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c +index 4736e4f..97199ae 100644 +--- a/src/radeon_exa_render.c ++++ b/src/radeon_exa_render.c +@@ -56,15 +56,6 @@ +  + /* Only include the following (generic) bits once. */ + #ifdef ONLY_ONCE +-static Bool is_transform[2]; +-static PictTransform *transform[2]; +-static Bool has_mask; +-/* Whether we are tiling horizontally and vertically */ +-static Bool need_src_tile_x; +-static Bool need_src_tile_y; +-/* Size of tiles ... set to 65536x65536 if not tiling in that direction */ +-static Bool src_tile_width; +-static Bool src_tile_height; +  + struct blendinfo { +     Bool dst_alpha; +@@ -287,8 +278,10 @@ static Bool RADEONSetupSourceTile(PicturePtr pPict, + 				  Bool canTile1d, + 				  Bool needMatchingPitch) + { +-    need_src_tile_x = need_src_tile_y = FALSE; +-    src_tile_width = src_tile_height = 65536; /* "infinite" */ ++    RINFO_FROM_SCREEN(pPix->drawable.pScreen); ++ ++    info->accel_state->need_src_tile_x = info->accel_state->need_src_tile_y = FALSE; ++    info->accel_state->src_tile_width = info->accel_state->src_tile_height = 65536; /* "infinite" */ + 	     +     if (pPict->repeat) { + 	Bool badPitch = needMatchingPitch && !RADEONPitchMatches(pPix); +@@ -301,17 +294,19 @@ static Bool RADEONSetupSourceTile(PicturePtr pPict, + 		RADEON_FALLBACK(("Width %d and pitch %u not compatible for repeat\n", + 				 w, (unsigned)exaGetPixmapPitch(pPix))); + 	} else { +-	    need_src_tile_x = (w & (w - 1)) != 0 || badPitch; +-	    need_src_tile_y = (h & (h - 1)) != 0; ++	    info->accel_state->need_src_tile_x = (w & (w - 1)) != 0 || badPitch; ++	    info->accel_state->need_src_tile_y = (h & (h - 1)) != 0; + 	     + 	    if (!canTile1d) +-		need_src_tile_x = need_src_tile_y = need_src_tile_x || need_src_tile_y; ++		info->accel_state->need_src_tile_x = ++		    info->accel_state->need_src_tile_y = ++		    info->accel_state->need_src_tile_x || info->accel_state->need_src_tile_y; + 	} +  +-	if (need_src_tile_x) +-	  src_tile_width = w; +-	if (need_src_tile_y) +-	  src_tile_height = h; ++	if (info->accel_state->need_src_tile_x) ++	    info->accel_state->src_tile_width = w; ++	if (info->accel_state->need_src_tile_y) ++	    info->accel_state->src_tile_height = h; +     } +  +     return TRUE; +@@ -357,7 +352,8 @@ static Bool FUNC_NAME(R100TextureSetup)(PicturePtr pPict, PixmapPtr pPix, +     uint32_t txfilter, txformat, txoffset, txpitch; +     int w = pPict->pDrawable->width; +     int h = pPict->pDrawable->height; +-    Bool repeat = pPict->repeat && !(unit == 0 && (need_src_tile_x || need_src_tile_y)); ++    Bool repeat = pPict->repeat && ++	!(unit == 0 && (info->accel_state->need_src_tile_x || info->accel_state->need_src_tile_y)); +     int i; +     ACCEL_PREAMBLE(); +  +@@ -389,8 +385,8 @@ static Bool FUNC_NAME(R100TextureSetup)(PicturePtr pPict, PixmapPtr pPix, + 	txformat |= RADEON_TXFORMAT_NON_POWER2; +     txformat |= unit << 24; /* RADEON_TXFORMAT_ST_ROUTE_STQX */ +  +-    info->texW[unit] = 1; +-    info->texH[unit] = 1; ++    info->accel_state->texW[unit] = 1; ++    info->accel_state->texH[unit] = 1; +  +     switch (pPict->filter) { +     case PictFilterNearest: +@@ -427,10 +423,10 @@ static Bool FUNC_NAME(R100TextureSetup)(PicturePtr pPict, PixmapPtr pPix, +     FINISH_ACCEL(); +  +     if (pPict->transform != 0) { +-	is_transform[unit] = TRUE; +-	transform[unit] = pPict->transform; ++	info->accel_state->is_transform[unit] = TRUE; ++	info->accel_state->transform[unit] = pPict->transform; +     } else { +-	is_transform[unit] = FALSE; ++	info->accel_state->is_transform[unit] = FALSE; +     } +  +     return TRUE; +@@ -531,16 +527,16 @@ static Bool FUNC_NAME(R100PrepareComposite)(int op, +  +     TRACE; +  +-    if (!info->XInited3D) ++    if (!info->accel_state->XInited3D) + 	RADEONInit3DEngine(pScrn); +  +     if (!RADEONGetDestFormat(pDstPicture, &dst_format)) + 	return FALSE; +  +     if (pMask) +-	has_mask = TRUE; ++	info->accel_state->has_mask = TRUE; +     else +-	has_mask = FALSE; ++	info->accel_state->has_mask = FALSE; +  +     pixel_shift = pDst->drawable.bitsPerPixel >> 4; +  +@@ -569,7 +565,7 @@ static Bool FUNC_NAME(R100PrepareComposite)(int op, + 	    return FALSE; + 	pp_cntl |= RADEON_TEX_1_ENABLE; +     } else { +-	is_transform[1] = FALSE; ++	info->accel_state->is_transform[1] = FALSE; +     } +  +     RADEON_SWITCH_TO_3D(); +@@ -670,7 +666,8 @@ static Bool FUNC_NAME(R200TextureSetup)(PicturePtr pPict, PixmapPtr pPix, +     uint32_t txfilter, txformat, txoffset, txpitch; +     int w = pPict->pDrawable->width; +     int h = pPict->pDrawable->height; +-    Bool repeat = pPict->repeat && !(unit == 0 && (need_src_tile_x || need_src_tile_y)); ++    Bool repeat = pPict->repeat && ++	!(unit == 0 && (info->accel_state->need_src_tile_x || info->accel_state->need_src_tile_y)); +     int i; +     ACCEL_PREAMBLE(); +  +@@ -702,8 +699,8 @@ static Bool FUNC_NAME(R200TextureSetup)(PicturePtr pPict, PixmapPtr pPix, + 	txformat |= R200_TXFORMAT_NON_POWER2; +     txformat |= unit << R200_TXFORMAT_ST_ROUTE_SHIFT; +  +-    info->texW[unit] = w; +-    info->texH[unit] = h; ++    info->accel_state->texW[unit] = w; ++    info->accel_state->texH[unit] = h; +  +     switch (pPict->filter) { +     case PictFilterNearest: +@@ -742,10 +739,10 @@ static Bool FUNC_NAME(R200TextureSetup)(PicturePtr pPict, PixmapPtr pPix, +     FINISH_ACCEL(); +  +     if (pPict->transform != 0) { +-	is_transform[unit] = TRUE; +-	transform[unit] = pPict->transform; ++	info->accel_state->is_transform[unit] = TRUE; ++	info->accel_state->transform[unit] = pPict->transform; +     } else { +-	is_transform[unit] = FALSE; ++	info->accel_state->is_transform[unit] = FALSE; +     } +  +     return TRUE; +@@ -830,16 +827,16 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture, +  +     TRACE; +  +-    if (!info->XInited3D) ++    if (!info->accel_state->XInited3D) + 	RADEONInit3DEngine(pScrn); +  +     if (!RADEONGetDestFormat(pDstPicture, &dst_format)) + 	return FALSE; +  +     if (pMask) +-	has_mask = TRUE; ++	info->accel_state->has_mask = TRUE; +     else +-	has_mask = FALSE; ++	info->accel_state->has_mask = FALSE; +  +     pixel_shift = pDst->drawable.bitsPerPixel >> 4; +  +@@ -866,7 +863,7 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture, + 	    return FALSE; + 	pp_cntl |= RADEON_TEX_1_ENABLE; +     } else { +-	is_transform[1] = FALSE; ++	info->accel_state->is_transform[1] = FALSE; +     } +  +     RADEON_SWITCH_TO_3D(); +@@ -1045,15 +1042,15 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix, +      */ +     txformat0 |= R300_TXPITCH_EN; +  +-    info->texW[unit] = w; +-    info->texH[unit] = h; ++    info->accel_state->texW[unit] = w; ++    info->accel_state->texH[unit] = h; +  +-    if (pPict->repeat && !(unit == 0 && need_src_tile_x)) ++    if (pPict->repeat && !(unit == 0 && info->accel_state->need_src_tile_x)) +       txfilter = R300_TX_CLAMP_S(R300_TX_CLAMP_WRAP); +     else +       txfilter = R300_TX_CLAMP_S(R300_TX_CLAMP_CLAMP_GL); +  +-    if (pPict->repeat && !(unit == 0 && need_src_tile_y)) ++    if (pPict->repeat && !(unit == 0 && info->accel_state->need_src_tile_y)) +       txfilter |= R300_TX_CLAMP_T(R300_TX_CLAMP_WRAP); +     else +       txfilter |= R300_TX_CLAMP_T(R300_TX_CLAMP_CLAMP_GL); +@@ -1083,10 +1080,10 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix, +     FINISH_ACCEL(); +  +     if (pPict->transform != 0) { +-	is_transform[unit] = TRUE; +-	transform[unit] = pPict->transform; ++	info->accel_state->is_transform[unit] = TRUE; ++	info->accel_state->transform[unit] = pPict->transform; +     } else { +-	is_transform[unit] = FALSE; ++	info->accel_state->is_transform[unit] = FALSE; +     } +  +     return TRUE; +@@ -1191,16 +1188,16 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, +  +     TRACE; +  +-    if (!info->XInited3D) ++    if (!info->accel_state->XInited3D) + 	RADEONInit3DEngine(pScrn); +  +     if (!R300GetDestFormat(pDstPicture, &dst_format)) + 	return FALSE; +  +     if (pMask) +-	has_mask = TRUE; ++	info->accel_state->has_mask = TRUE; +     else +-	has_mask = FALSE; ++	info->accel_state->has_mask = FALSE; +  +     pixel_shift = pDst->drawable.bitsPerPixel >> 4; +  +@@ -1230,13 +1227,13 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, + 	    return FALSE; + 	txenable |= R300_TEX_1_ENABLE; +     } else { +-	is_transform[1] = FALSE; ++	info->accel_state->is_transform[1] = FALSE; +     } +  +     RADEON_SWITCH_TO_3D(); +  +     /* setup the VAP */ +-    if (info->has_tcl) { ++    if (info->accel_state->has_tcl) { + 	if (pMask) + 	    BEGIN_ACCEL(8); + 	else +@@ -1296,7 +1293,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, +      * - Xv +      * Here we select the offset of the vertex program we want to use +      */ +-    if (info->has_tcl) { ++    if (info->accel_state->has_tcl) { + 	if (pMask) { + 	    OUT_ACCEL_REG(R300_VAP_PVS_CODE_CNTL_0, + 			  ((0 << R300_PVS_FIRST_INST_SHIFT) | +@@ -1419,7 +1416,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, +  +  + 	/* setup the rasterizer, load FS */ +-	BEGIN_ACCEL(9); ++	BEGIN_ACCEL(10); + 	if (pMask) { + 	    /* 4 components: 2 for tex0, 2 for tex1 */ + 	    OUT_ACCEL_REG(R300_RS_COUNT, +@@ -1461,6 +1458,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, + 			   R300_RGBA_OUT)); + 	} +  ++	OUT_ACCEL_REG(R300_US_PIXSIZE, 1); /* highest temp used */ + 	/* shader output swizzling */ + 	OUT_ACCEL_REG(R300_US_OUT_FMT_0, output_fmt); +  +@@ -1474,7 +1472,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, + 	 * R300_ALU_RGB_OMASK - output components to write + 	 * R300_ALU_RGB_TARGET_A - render target + 	 */ +-	OUT_ACCEL_REG(R300_US_ALU_RGB_ADDR_0, ++	OUT_ACCEL_REG(R300_US_ALU_RGB_ADDR(0), + 		      (R300_ALU_RGB_ADDR0(0) | + 		       R300_ALU_RGB_ADDR1(1) | + 		       R300_ALU_RGB_ADDR2(0) | +@@ -1486,7 +1484,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, + 	/* RGB inst + 	 * ALU operation + 	 */ +-	OUT_ACCEL_REG(R300_US_ALU_RGB_INST_0, ++	OUT_ACCEL_REG(R300_US_ALU_RGB_INST(0), + 		      (R300_ALU_RGB_SEL_A(src_color) | + 		       R300_ALU_RGB_MOD_A(R300_ALU_RGB_MOD_NOP) | + 		       R300_ALU_RGB_SEL_B(mask_color) | +@@ -1503,7 +1501,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, + 	 * R300_ALU_ALPHA_OMASK - output components to write + 	 * R300_ALU_ALPHA_TARGET_A - render target + 	 */ +-	OUT_ACCEL_REG(R300_US_ALU_ALPHA_ADDR_0, ++	OUT_ACCEL_REG(R300_US_ALU_ALPHA_ADDR(0), + 		      (R300_ALU_ALPHA_ADDR0(0) | + 		       R300_ALU_ALPHA_ADDR1(1) | + 		       R300_ALU_ALPHA_ADDR2(0) | +@@ -1514,7 +1512,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, + 	/* Alpha inst + 	 * ALU operation + 	 */ +-	OUT_ACCEL_REG(R300_US_ALU_ALPHA_INST_0, ++	OUT_ACCEL_REG(R300_US_ALU_ALPHA_INST(0), + 		      (R300_ALU_ALPHA_SEL_A(src_alpha) | + 		       R300_ALU_ALPHA_MOD_A(R300_ALU_ALPHA_MOD_NOP) | + 		       R300_ALU_ALPHA_SEL_B(mask_alpha) | +@@ -1633,7 +1631,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, + 	    break; + 	} +  +-	BEGIN_ACCEL(6); ++	BEGIN_ACCEL(7); + 	if (pMask) { + 	    /* 4 components: 2 for tex0, 2 for tex1 */ + 	    OUT_ACCEL_REG(R300_RS_COUNT, +@@ -1662,12 +1660,13 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, + 	    OUT_ACCEL_REG(R500_US_CODE_OFFSET, 0); + 	} +  ++	OUT_ACCEL_REG(R300_US_PIXSIZE, 1); /* highest temp used */ + 	OUT_ACCEL_REG(R300_US_OUT_FMT_0, output_fmt); + 	FINISH_ACCEL(); +  + 	if (pMask) { + 	    BEGIN_ACCEL(19); +-	    OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, 0); ++	    OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, R500_US_VECTOR_INST_INDEX(0)); + 	    /* tex inst for src texture */ + 	    OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX | + 						   R500_INST_RGB_WMASK_R | +@@ -1739,7 +1738,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, + 	    OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); + 	} else { + 	    BEGIN_ACCEL(13); +-	    OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, 0); ++	    OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, R500_US_VECTOR_INST_INDEX(0)); + 	    /* tex inst for src texture */ + 	    OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX | + 						   R500_INST_TEX_SEM_WAIT | +@@ -1936,20 +1935,20 @@ static void FUNC_NAME(RadeonCompositeTile)(PixmapPtr pDst, +     maskBottomRight.x = IntToxFixed(maskX + w); +     maskBottomRight.y = IntToxFixed(maskY + h); +  +-    if (is_transform[0]) { +-	transformPoint(transform[0], &srcTopLeft); +-	transformPoint(transform[0], &srcTopRight); +-	transformPoint(transform[0], &srcBottomLeft); +-	transformPoint(transform[0], &srcBottomRight); ++    if (info->accel_state->is_transform[0]) { ++	transformPoint(info->accel_state->transform[0], &srcTopLeft); ++	transformPoint(info->accel_state->transform[0], &srcTopRight); ++	transformPoint(info->accel_state->transform[0], &srcBottomLeft); ++	transformPoint(info->accel_state->transform[0], &srcBottomRight); +     } +-    if (is_transform[1]) { +-	transformPoint(transform[1], &maskTopLeft); +-	transformPoint(transform[1], &maskTopRight); +-	transformPoint(transform[1], &maskBottomLeft); +-	transformPoint(transform[1], &maskBottomRight); ++    if (info->accel_state->is_transform[1]) { ++	transformPoint(info->accel_state->transform[1], &maskTopLeft); ++	transformPoint(info->accel_state->transform[1], &maskTopRight); ++	transformPoint(info->accel_state->transform[1], &maskBottomLeft); ++	transformPoint(info->accel_state->transform[1], &maskBottomRight); +     } +  +-    if (has_mask) ++    if (info->accel_state->has_mask) + 	vtx_count = VTX_COUNT_MASK; +     else + 	vtx_count = VTX_COUNT; +@@ -1962,21 +1961,21 @@ static void FUNC_NAME(RadeonCompositeTile)(PixmapPtr pDst, +  + #ifdef ACCEL_CP +     if (info->ChipFamily < CHIP_FAMILY_R200) { +-	BEGIN_RING(4 * vtx_count + 3); ++	BEGIN_RING(3 * vtx_count + 3); + 	OUT_RING(CP_PACKET3(RADEON_CP_PACKET3_3D_DRAW_IMMD, +-			    4 * vtx_count + 1)); +-	if (has_mask) ++			    3 * vtx_count + 1)); ++	if (info->accel_state->has_mask) + 	    OUT_RING(RADEON_CP_VC_FRMT_XY | + 		     RADEON_CP_VC_FRMT_ST0 | + 		     RADEON_CP_VC_FRMT_ST1); + 	else + 	    OUT_RING(RADEON_CP_VC_FRMT_XY | + 		     RADEON_CP_VC_FRMT_ST0); +-	OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_FAN | ++	OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_RECT_LIST | + 		 RADEON_CP_VC_CNTL_PRIM_WALK_RING | + 		 RADEON_CP_VC_CNTL_MAOS_ENABLE | + 		 RADEON_CP_VC_CNTL_VTX_FMT_RADEON_MODE | +-		 (4 << RADEON_CP_VC_CNTL_NUM_SHIFT)); ++		 (3 << RADEON_CP_VC_CNTL_NUM_SHIFT)); +     } else { + 	if (IS_R300_3D || IS_R500_3D) + 	    BEGIN_RING(4 * vtx_count + 4); +@@ -1985,7 +1984,7 @@ static void FUNC_NAME(RadeonCompositeTile)(PixmapPtr pDst, +  + 	OUT_RING(CP_PACKET3(R200_CP_PACKET3_3D_DRAW_IMMD_2, + 			    4 * vtx_count)); +-	OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_FAN | ++	OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_QUAD_LIST | + 		 RADEON_CP_VC_CNTL_PRIM_WALK_RING | + 		 (4 << RADEON_CP_VC_CNTL_NUM_SHIFT)); +     } +@@ -1993,43 +1992,49 @@ static void FUNC_NAME(RadeonCompositeTile)(PixmapPtr pDst, + #else /* ACCEL_CP */ +     if (IS_R300_3D || IS_R500_3D) + 	BEGIN_ACCEL(2 + vtx_count * 4); ++    else if (info->ChipFamily < CHIP_FAMILY_R200) ++	BEGIN_ACCEL(1 + vtx_count * 3); +     else + 	BEGIN_ACCEL(1 + vtx_count * 4); +  +-    if (info->ChipFamily < CHIP_FAMILY_R200) { +-	OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_TRIANGLE_FAN | ++    if (info->ChipFamily < CHIP_FAMILY_R200) ++	OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_RECTANGLE_LIST | + 					  RADEON_VF_PRIM_WALK_DATA | + 					  RADEON_VF_RADEON_MODE | +-					  4 << RADEON_VF_NUM_VERTICES_SHIFT)); +-    } else { ++					  (3 << RADEON_VF_NUM_VERTICES_SHIFT))); ++    else + 	OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_QUAD_LIST | + 					  RADEON_VF_PRIM_WALK_DATA | +-					  4 << RADEON_VF_NUM_VERTICES_SHIFT)); +-    } ++					  (4 << RADEON_VF_NUM_VERTICES_SHIFT))); ++ + #endif +  +-    if (has_mask) { +-	VTX_OUT_MASK((float)dstX,                                      (float)dstY, +-		xFixedToFloat(srcTopLeft.x) / info->texW[0],      xFixedToFloat(srcTopLeft.y) / info->texH[0], +-		xFixedToFloat(maskTopLeft.x) / info->texW[1],     xFixedToFloat(maskTopLeft.y) / info->texH[1]); ++    if (info->accel_state->has_mask) { ++	if (info->ChipFamily >= CHIP_FAMILY_R200) { ++	    VTX_OUT_MASK((float)dstX,                                      (float)dstY, ++			 xFixedToFloat(srcTopLeft.x) / info->accel_state->texW[0],      xFixedToFloat(srcTopLeft.y) / info->accel_state->texH[0], ++			 xFixedToFloat(maskTopLeft.x) / info->accel_state->texW[1],     xFixedToFloat(maskTopLeft.y) / info->accel_state->texH[1]); ++	} + 	VTX_OUT_MASK((float)dstX,                                      (float)(dstY + h), +-		xFixedToFloat(srcBottomLeft.x) / info->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->texH[0], +-		xFixedToFloat(maskBottomLeft.x) / info->texW[1],  xFixedToFloat(maskBottomLeft.y) / info->texH[1]); ++		xFixedToFloat(srcBottomLeft.x) / info->accel_state->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->accel_state->texH[0], ++		xFixedToFloat(maskBottomLeft.x) / info->accel_state->texW[1],  xFixedToFloat(maskBottomLeft.y) / info->accel_state->texH[1]); + 	VTX_OUT_MASK((float)(dstX + w),                                (float)(dstY + h), +-		xFixedToFloat(srcBottomRight.x) / info->texW[0],  xFixedToFloat(srcBottomRight.y) / info->texH[0], +-		xFixedToFloat(maskBottomRight.x) / info->texW[1], xFixedToFloat(maskBottomRight.y) / info->texH[1]); ++		xFixedToFloat(srcBottomRight.x) / info->accel_state->texW[0],  xFixedToFloat(srcBottomRight.y) / info->accel_state->texH[0], ++		xFixedToFloat(maskBottomRight.x) / info->accel_state->texW[1], xFixedToFloat(maskBottomRight.y) / info->accel_state->texH[1]); + 	VTX_OUT_MASK((float)(dstX + w),                                (float)dstY, +-		xFixedToFloat(srcTopRight.x) / info->texW[0],     xFixedToFloat(srcTopRight.y) / info->texH[0], +-		xFixedToFloat(maskTopRight.x) / info->texW[1],    xFixedToFloat(maskTopRight.y) / info->texH[1]); ++		xFixedToFloat(srcTopRight.x) / info->accel_state->texW[0],     xFixedToFloat(srcTopRight.y) / info->accel_state->texH[0], ++		xFixedToFloat(maskTopRight.x) / info->accel_state->texW[1],    xFixedToFloat(maskTopRight.y) / info->accel_state->texH[1]); +     } else { +-	VTX_OUT((float)dstX,                                      (float)dstY, +-		xFixedToFloat(srcTopLeft.x) / info->texW[0],      xFixedToFloat(srcTopLeft.y) / info->texH[0]); ++	if (info->ChipFamily >= CHIP_FAMILY_R200) { ++	    VTX_OUT((float)dstX,                                      (float)dstY, ++		    xFixedToFloat(srcTopLeft.x) / info->accel_state->texW[0],      xFixedToFloat(srcTopLeft.y) / info->accel_state->texH[0]); ++	} + 	VTX_OUT((float)dstX,                                      (float)(dstY + h), +-		xFixedToFloat(srcBottomLeft.x) / info->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->texH[0]); ++		xFixedToFloat(srcBottomLeft.x) / info->accel_state->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->accel_state->texH[0]); + 	VTX_OUT((float)(dstX + w),                                (float)(dstY + h), +-		xFixedToFloat(srcBottomRight.x) / info->texW[0],  xFixedToFloat(srcBottomRight.y) / info->texH[0]); ++		xFixedToFloat(srcBottomRight.x) / info->accel_state->texW[0],  xFixedToFloat(srcBottomRight.y) / info->accel_state->texH[0]); + 	VTX_OUT((float)(dstX + w),                                (float)dstY, +-		xFixedToFloat(srcTopRight.x) / info->texW[0],     xFixedToFloat(srcTopRight.y) / info->texH[0]); ++		xFixedToFloat(srcTopRight.x) / info->accel_state->texW[0],     xFixedToFloat(srcTopRight.y) / info->accel_state->texH[0]); +     } +  +     if (IS_R300_3D || IS_R500_3D) +@@ -2055,8 +2060,9 @@ static void FUNC_NAME(RadeonComposite)(PixmapPtr pDst, + { +     int tileSrcY, tileMaskY, tileDstY; +     int remainingHeight; +-     +-    if (!need_src_tile_x && !need_src_tile_y) { ++    RINFO_FROM_SCREEN(pDst->drawable.pScreen); ++ ++    if (!info->accel_state->need_src_tile_x && !info->accel_state->need_src_tile_y) { + 	FUNC_NAME(RadeonCompositeTile)(pDst, + 				       srcX, srcY, + 				       maskX, maskY, +@@ -2067,7 +2073,7 @@ static void FUNC_NAME(RadeonComposite)(PixmapPtr pDst, +  +     /* Tiling logic borrowed from exaFillRegionTiled */ +  +-    modulus(srcY, src_tile_height, tileSrcY); ++    modulus(srcY, info->accel_state->src_tile_height, tileSrcY); +     tileMaskY = maskY; +     tileDstY = dstY; +  +@@ -2075,18 +2081,18 @@ static void FUNC_NAME(RadeonComposite)(PixmapPtr pDst, +     while (remainingHeight > 0) { + 	int remainingWidth = width; + 	int tileSrcX, tileMaskX, tileDstX; +-	int h = src_tile_height - tileSrcY; ++	int h = info->accel_state->src_tile_height - tileSrcY; + 	 + 	if (h > remainingHeight) + 	    h = remainingHeight; + 	remainingHeight -= h; +  +-	modulus(srcX, src_tile_width, tileSrcX); ++	modulus(srcX, info->accel_state->src_tile_width, tileSrcX); + 	tileMaskX = maskX; + 	tileDstX = dstX; + 	 + 	while (remainingWidth > 0) { +-	    int w = src_tile_width - tileSrcX; ++	    int w = info->accel_state->src_tile_width - tileSrcX; + 	    if (w > remainingWidth) + 		w = remainingWidth; + 	    remainingWidth -= w; +diff --git a/src/radeon_legacy_memory.c b/src/radeon_legacy_memory.c +new file mode 100644 +index 0000000..2a9ee94 +--- /dev/null ++++ b/src/radeon_legacy_memory.c +@@ -0,0 +1,117 @@ ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++/* Driver data structures */ ++#include "radeon.h" ++ ++/* Allocates memory, either by resizing the allocation pointed to by mem_struct, ++ * or by freeing mem_struct (if non-NULL) and allocating a new space.  The size ++ * is measured in bytes, and the offset from the beginning of card space is ++ * returned. ++ */ ++uint32_t ++radeon_legacy_allocate_memory(ScrnInfoPtr pScrn, ++		       void **mem_struct, ++		       int size, ++		       int align) ++{ ++    ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex]; ++    RADEONInfoPtr info = RADEONPTR(pScrn); ++    uint32_t offset = 0; ++ ++#ifdef USE_EXA ++    if (info->useEXA) { ++	ExaOffscreenArea *area = *mem_struct; ++ ++	if (area != NULL) { ++	    if (area->size >= size) ++		return area->offset; ++ ++	    exaOffscreenFree(pScreen, area); ++	} ++ ++	area = exaOffscreenAlloc(pScreen, size, align, TRUE, ++				 NULL, NULL); ++ ++	*mem_struct = area; ++	if (area == NULL) ++	    return 0; ++	offset = area->offset; ++    } ++#endif /* USE_EXA */ ++#ifdef USE_XAA ++    if (!info->useEXA) { ++	FBLinearPtr linear = *mem_struct; ++	int cpp = info->CurrentLayout.bitsPerPixel / 8; ++ ++	/* XAA allocates in units of pixels at the screen bpp, so adjust size ++	 * appropriately. ++	 */ ++	size = (size + cpp - 1) / cpp; ++	align = (align + cpp - 1) / cpp; ++ ++	if (linear) { ++	    if(linear->size >= size) ++		return linear->offset * cpp; ++ ++	    if(xf86ResizeOffscreenLinear(linear, size)) ++		return linear->offset * cpp; ++ ++	    xf86FreeOffscreenLinear(linear); ++	} ++ ++	linear = xf86AllocateOffscreenLinear(pScreen, size, align, ++					     NULL, NULL, NULL); ++	*mem_struct = linear; ++ ++	if (!linear) { ++	    int max_size; ++ ++	    xf86QueryLargestOffscreenLinear(pScreen, &max_size, align, ++					    PRIORITY_EXTREME); ++ ++	    if (max_size < size) ++		return 0; ++ ++	    xf86PurgeUnlockedOffscreenAreas(pScreen); ++	    linear = xf86AllocateOffscreenLinear(pScreen, size, align, ++						 NULL, NULL, NULL); ++	    *mem_struct = linear; ++	    if (!linear) ++		return 0; ++	} ++	offset = linear->offset * cpp; ++    } ++#endif /* USE_XAA */ ++ ++    return offset; ++} ++ ++void ++radeon_legacy_free_memory(ScrnInfoPtr pScrn, ++		   void *mem_struct) ++{ ++    ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex]; ++    RADEONInfoPtr info = RADEONPTR(pScrn); ++ ++#ifdef USE_EXA ++    if (info->useEXA) { ++	ExaOffscreenArea *area = mem_struct; ++ ++	if (area != NULL) ++	    exaOffscreenFree(pScreen, area); ++	area = NULL; ++    } ++#endif /* USE_EXA */ ++#ifdef USE_XAA ++    if (!info->useEXA) { ++	FBLinearPtr linear = mem_struct; ++ ++	if (linear != NULL) ++	    xf86FreeOffscreenLinear(linear); ++	linear = NULL; ++    } ++#endif /* USE_XAA */ ++} +diff --git a/src/radeon_macros.h b/src/radeon_macros.h +index afe442e..f19bc3e 100644 +--- a/src/radeon_macros.h ++++ b/src/radeon_macros.h +@@ -51,32 +51,6 @@ +  + #include "compiler.h" +  +-#if HAVE_BYTESWAP_H +-#include <byteswap.h> +-#elif defined(USE_SYS_ENDIAN_H) +-#include <sys/endian.h> +-#else +-#define	bswap_16(value)  \ +- 	((((value) & 0xff) << 8) | ((value) >> 8)) +- +-#define	bswap_32(value)	\ +- 	(((uint32_t)bswap_16((uint16_t)((value) & 0xffff)) << 16) | \ +- 	(uint32_t)bswap_16((uint16_t)((value) >> 16))) +-  +-#define	bswap_64(value)	\ +- 	(((uint64_t)bswap_32((uint32_t)((value) & 0xffffffff)) \ +- 	    << 32) | \ +- 	(uint64_t)bswap_32((uint32_t)((value) >> 32))) +-#endif +- +-#if X_BYTE_ORDER == X_BIG_ENDIAN +-#define le32_to_cpu(x) bswap_32(x) +-#define le16_to_cpu(x) bswap_16(x) +-#else +-#define le32_to_cpu(x) (x) +-#define le16_to_cpu(x) (x) +-#endif +- + #define RADEON_BIOS8(v)  (info->VBIOS[v]) + #define RADEON_BIOS16(v) (info->VBIOS[v] | \ +                           (info->VBIOS[(v) + 1] << 8)) +diff --git a/src/radeon_output.c b/src/radeon_output.c +index 7b89d66..8c794fb 100644 +--- a/src/radeon_output.c ++++ b/src/radeon_output.c +@@ -173,9 +173,6 @@ static const uint32_t default_tvdac_adj [CHIP_FAMILY_LAST] = +  + static void RADEONUpdatePanelSize(xf86OutputPtr output); + static void RADEONGetTMDSInfoFromTable(xf86OutputPtr output); +-#define AVIVO_I2C_DISABLE 0 +-#define AVIVO_I2C_ENABLE 1 +-static Bool AVIVOI2CDoLock(xf86OutputPtr output, int lock_state); +  + extern void atombios_output_mode_set(xf86OutputPtr output, + 				     DisplayModePtr mode, +@@ -183,6 +180,8 @@ extern void atombios_output_mode_set(xf86OutputPtr output, + extern void atombios_output_dpms(xf86OutputPtr output, int mode); + extern RADEONMonitorType atombios_dac_detect(ScrnInfoPtr pScrn, xf86OutputPtr output); + extern int atombios_external_tmds_setup(xf86OutputPtr output, DisplayModePtr mode); ++extern AtomBiosResult ++atombios_lock_crtc(atomBiosHandlePtr atomBIOS, int crtc, int lock); + static void + radeon_bios_output_dpms(xf86OutputPtr output, int mode); + static void +@@ -213,88 +212,6 @@ void RADEONPrintPortMap(ScrnInfoPtr pScrn) +  + } +  +-static xf86MonPtr +-radeon_do_ddc(xf86OutputPtr output) +-{ +-    RADEONInfoPtr info = RADEONPTR(output->scrn); +-    unsigned char *RADEONMMIO = info->MMIO; +-    uint32_t DDCReg; +-    xf86MonPtr MonInfo = NULL; +-    RADEONOutputPrivatePtr radeon_output = output->driver_private; +-    int i, j; +- +-    if (radeon_output->pI2CBus) { +-	DDCReg = radeon_output->ddc_i2c.mask_clk_reg; +- +-	if (IS_AVIVO_VARIANT) { +-	    AVIVOI2CDoLock(output, AVIVO_I2C_ENABLE); +-	    MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus); +-	    AVIVOI2CDoLock(output, AVIVO_I2C_DISABLE); +-	} else if ((DDCReg == RADEON_LCD_GPIO_MASK) || (DDCReg == RADEON_MDGPIO_EN_REG)) { +-	    MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus); +-	} else { +-	    OUTREG(DDCReg, INREG(DDCReg) & +-		   (uint32_t)~(RADEON_GPIO_A_0 | RADEON_GPIO_A_1)); +- +-	    /* For some old monitors (like Compaq Presario FP500), we need +-	     * following process to initialize/stop DDC +-	     */ +-	    OUTREG(DDCReg, INREG(DDCReg) & ~(RADEON_GPIO_EN_1)); +-	    for (j = 0; j < 3; j++) { +-		OUTREG(DDCReg, +-		       INREG(DDCReg) & ~(RADEON_GPIO_EN_0)); +-		usleep(13000); +- +-		OUTREG(DDCReg, +-		       INREG(DDCReg) & ~(RADEON_GPIO_EN_1)); +-		for (i = 0; i < 10; i++) { +-		    usleep(15000); +-		    if (INREG(DDCReg) & RADEON_GPIO_Y_1) +-			break; +-		} +-		if (i == 10) continue; +- +-		usleep(15000); +- +-		OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_0); +-		usleep(15000); +- +-		OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_1); +-		usleep(15000); +-		OUTREG(DDCReg, +-		       INREG(DDCReg) & ~(RADEON_GPIO_EN_0)); +-		usleep(15000); +- +-		MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus); +- +-		OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_1); +-		OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_0); +-		usleep(15000); +-		OUTREG(DDCReg, +-		       INREG(DDCReg) & ~(RADEON_GPIO_EN_1)); +-		for (i = 0; i < 5; i++) { +-		    usleep(15000); +-		    if (INREG(DDCReg) & RADEON_GPIO_Y_1) +-			break; +-		} +-		usleep(15000); +-		OUTREG(DDCReg, +-		       INREG(DDCReg) & ~(RADEON_GPIO_EN_0)); +-		usleep(15000); +- +-		OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_1); +-		OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_0); +-		usleep(15000); +-		if (MonInfo)  break; +-	    } +-	    OUTREG(DDCReg, INREG(DDCReg) & +-		   ~(RADEON_GPIO_EN_0 | RADEON_GPIO_EN_1)); +-	} +-    } +- +-    return MonInfo; +-} +- + static RADEONMonitorType + radeon_ddc_connected(xf86OutputPtr output) + { +@@ -304,8 +221,20 @@ radeon_ddc_connected(xf86OutputPtr output) +     xf86MonPtr MonInfo = NULL; +     RADEONOutputPrivatePtr radeon_output = output->driver_private; +  +-    if (radeon_output->pI2CBus) +-	MonInfo = radeon_do_ddc(output); ++    if (radeon_output->pI2CBus) { ++	/* RV410 RADEON_GPIO_VGA_DDC seems to only work via hw i2c ++	 * We may want to extend this to other cases if the need arises... ++	 */ ++	if ((info->ChipFamily == CHIP_FAMILY_RV410) && ++	    (radeon_output->ddc_i2c.mask_clk_reg == RADEON_GPIO_VGA_DDC) && ++	    info->IsAtomBios) ++	    MonInfo = radeon_atom_get_edid(output); ++	else { ++	    RADEONI2CDoLock(output, TRUE); ++	    MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus); ++	    RADEONI2CDoLock(output, FALSE); ++	} ++    } +     if (MonInfo) { + 	if (!xf86ReturnOptValBool(info->Options, OPTION_IGNORE_EDID, FALSE)) + 	    xf86OutputSetEDID(output, MonInfo); +@@ -317,13 +246,14 @@ radeon_ddc_connected(xf86OutputPtr output) + 	    MonType = MT_DFP; + 	else if (radeon_output->type == OUTPUT_DP) + 	    MonType = MT_DFP; +-	else if (radeon_output->type == OUTPUT_DVI_I && (MonInfo->rawData[0x14] & 0x80)) /* if it's digital and DVI */ ++	else if (radeon_output->type == OUTPUT_DVI_I && ++		 (MonInfo->rawData[0x14] & 0x80)) /* if it's digital and DVI */ + 	    MonType = MT_DFP; + 	else + 	    MonType = MT_CRT; +     } else + 	MonType = MT_NONE; +-     ++ +     xf86DrvMsg(pScrn->scrnIndex, X_INFO, + 	       "Output: %s, Detected Monitor Type: %d\n", output->name, MonType); +  +@@ -537,7 +467,7 @@ radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode, + 		if (IS_AVIVO_VARIANT) { + 		    /* set to the panel's native mode */ + 		    adjusted_mode->HDisplay = radeon_output->PanelXRes; +-		    adjusted_mode->HDisplay = radeon_output->PanelYRes; ++		    adjusted_mode->VDisplay = radeon_output->PanelYRes; + 		    adjusted_mode->HTotal = radeon_output->PanelXRes + radeon_output->HBlank; + 		    adjusted_mode->HSyncStart = radeon_output->PanelXRes + radeon_output->HOverPlus; + 		    adjusted_mode->HSyncEnd = adjusted_mode->HSyncStart + radeon_output->HSyncWidth; +@@ -580,12 +510,20 @@ radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode, + 	} +     } +  ++    if (IS_AVIVO_VARIANT) { ++	/* hw bug */ ++	if ((mode->Flags & V_INTERLACE) ++	    && (mode->CrtcVSyncStart < (mode->CrtcVDisplay + 2))) ++	    adjusted_mode->CrtcVSyncStart = adjusted_mode->CrtcVDisplay + 2; ++    } ++ +     return TRUE; + } +  + static void + radeon_mode_prepare(xf86OutputPtr output) + { ++    RADEONInfoPtr info = RADEONPTR(output->scrn); +     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR (output->scrn); +     int o; +  +@@ -595,9 +533,12 @@ radeon_mode_prepare(xf86OutputPtr output) + 	    continue; + 	else if (loop_output->crtc) { + 	    xf86CrtcPtr other_crtc = loop_output->crtc; ++	    RADEONCrtcPrivatePtr other_radeon_crtc = other_crtc->driver_private; + 	    if (other_crtc->enabled) { +-		radeon_dpms(loop_output, DPMSModeOff); + 		radeon_crtc_dpms(other_crtc, DPMSModeOff); ++		if (IS_AVIVO_VARIANT) ++		    atombios_lock_crtc(info->atomBIOS, other_radeon_crtc->crtc_id, 1); ++		radeon_dpms(loop_output, DPMSModeOff); + 	    } + 	} +     } +@@ -625,6 +566,7 @@ radeon_mode_set(xf86OutputPtr output, DisplayModePtr mode, + static void + radeon_mode_commit(xf86OutputPtr output) + { ++    RADEONInfoPtr info = RADEONPTR(output->scrn); +     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR (output->scrn); +     int o; +  +@@ -634,9 +576,12 @@ radeon_mode_commit(xf86OutputPtr output) + 	    continue; + 	else if (loop_output->crtc) { + 	    xf86CrtcPtr other_crtc = loop_output->crtc; ++	    RADEONCrtcPrivatePtr other_radeon_crtc = other_crtc->driver_private; + 	    if (other_crtc->enabled) { +-		radeon_dpms(loop_output, DPMSModeOn);		 + 		radeon_crtc_dpms(other_crtc, DPMSModeOn); ++		if (IS_AVIVO_VARIANT) ++		    atombios_lock_crtc(info->atomBIOS, other_radeon_crtc->crtc_id, 0); ++		radeon_dpms(loop_output, DPMSModeOn); + 	    } + 	} +     } +@@ -1201,8 +1146,7 @@ radeon_create_resources(xf86OutputPtr output) + 	} +     } +  +-    if (IS_DCE3_VARIANT && +-	(OUTPUT_IS_DVI || (radeon_output->type == OUTPUT_HDMI))) { ++    if (OUTPUT_IS_DVI || (radeon_output->type == OUTPUT_HDMI)) { + 	coherent_mode_atom = MAKE_ATOM("coherent_mode"); +  + 	range[0] = 0; /* off */ +@@ -1214,7 +1158,7 @@ radeon_create_resources(xf86OutputPtr output) + 		       "RRConfigureOutputProperty error, %d\n", err); + 	} +  +-	data = 1; /* use coherent mode by default */ ++	data = 0; /* coherent mode off by default */ +  + 	err = RRChangeOutputProperty(output->randr_output, coherent_mode_atom, + 				     XA_INTEGER, 32, PropModeReplace, 1, &data, +@@ -1682,8 +1626,8 @@ Bool AVIVOI2CReset(ScrnInfoPtr pScrn) + } + #endif +  +-static +-Bool AVIVOI2CDoLock(xf86OutputPtr output, int lock_state) ++Bool ++RADEONI2CDoLock(xf86OutputPtr output, int lock_state) + { +     ScrnInfoPtr pScrn = output->scrn; +     RADEONInfoPtr  info       = RADEONPTR(pScrn); +@@ -1692,19 +1636,29 @@ Bool AVIVOI2CDoLock(xf86OutputPtr output, int lock_state) +     unsigned char *RADEONMMIO = info->MMIO; +     uint32_t temp; +  ++    if (lock_state) { ++	temp = INREG(pRADEONI2CBus->a_clk_reg); ++	temp &= ~(pRADEONI2CBus->a_clk_mask); ++	OUTREG(pRADEONI2CBus->a_clk_reg, temp); ++ ++	temp = INREG(pRADEONI2CBus->a_data_reg); ++	temp &= ~(pRADEONI2CBus->a_data_mask); ++	OUTREG(pRADEONI2CBus->a_data_reg, temp); ++    } ++ +     temp = INREG(pRADEONI2CBus->mask_clk_reg); +-    if (lock_state == AVIVO_I2C_ENABLE) +-	temp |= (pRADEONI2CBus->put_clk_mask); ++    if (lock_state) ++	temp |= (pRADEONI2CBus->mask_clk_mask); +     else +-	temp &= ~(pRADEONI2CBus->put_clk_mask); ++	temp &= ~(pRADEONI2CBus->mask_clk_mask); +     OUTREG(pRADEONI2CBus->mask_clk_reg, temp); +     temp = INREG(pRADEONI2CBus->mask_clk_reg); +  +     temp = INREG(pRADEONI2CBus->mask_data_reg); +-    if (lock_state == AVIVO_I2C_ENABLE) +-	temp |= (pRADEONI2CBus->put_data_mask); ++    if (lock_state) ++	temp |= (pRADEONI2CBus->mask_data_mask); +     else +-	temp &= ~(pRADEONI2CBus->put_data_mask); ++	temp &= ~(pRADEONI2CBus->mask_data_mask); +     OUTREG(pRADEONI2CBus->mask_data_reg, temp); +     temp = INREG(pRADEONI2CBus->mask_data_reg); +  +@@ -1786,8 +1740,12 @@ legacy_setup_i2c_bus(int ddc_line) + { +     RADEONI2CBusRec i2c; +  +-    i2c.mask_clk_mask = RADEON_GPIO_EN_1 | RADEON_GPIO_Y_1; +-    i2c.mask_data_mask =  RADEON_GPIO_EN_0 | RADEON_GPIO_Y_0; ++    i2c.hw_line = 0; ++    i2c.hw_capable = FALSE; ++    i2c.mask_clk_mask = RADEON_GPIO_EN_1; ++    i2c.mask_data_mask = RADEON_GPIO_EN_0; ++    i2c.a_clk_mask = RADEON_GPIO_A_1; ++    i2c.a_data_mask = RADEON_GPIO_A_0; +     i2c.put_clk_mask = RADEON_GPIO_EN_1; +     i2c.put_data_mask = RADEON_GPIO_EN_0; +     i2c.get_clk_mask = RADEON_GPIO_Y_1; +@@ -1796,6 +1754,8 @@ legacy_setup_i2c_bus(int ddc_line) + 	(ddc_line == RADEON_MDGPIO_EN_REG)) { + 	i2c.mask_clk_reg = ddc_line; + 	i2c.mask_data_reg = ddc_line; ++	i2c.a_clk_reg = ddc_line; ++	i2c.a_data_reg = ddc_line; + 	i2c.put_clk_reg = ddc_line; + 	i2c.put_data_reg = ddc_line; + 	i2c.get_clk_reg = ddc_line + 4; +@@ -1803,6 +1763,8 @@ legacy_setup_i2c_bus(int ddc_line) +     } else { + 	i2c.mask_clk_reg = ddc_line; + 	i2c.mask_data_reg = ddc_line; ++	i2c.a_clk_reg = ddc_line; ++	i2c.a_data_reg = ddc_line; + 	i2c.put_clk_reg = ddc_line; + 	i2c.put_data_reg = ddc_line; + 	i2c.get_clk_reg = ddc_line; +@@ -1822,6 +1784,8 @@ atom_setup_i2c_bus(int ddc_line) + { +     RADEONI2CBusRec i2c; +  ++    i2c.hw_line = 0; ++    i2c.hw_capable = FALSE; +     if (ddc_line == AVIVO_GPIO_0) { + 	i2c.put_clk_mask = (1 << 19); + 	i2c.put_data_mask = (1 << 18); +@@ -1829,6 +1793,8 @@ atom_setup_i2c_bus(int ddc_line) + 	i2c.get_data_mask = (1 << 18); + 	i2c.mask_clk_mask = (1 << 19); + 	i2c.mask_data_mask = (1 << 18); ++	i2c.a_clk_mask = (1 << 19); ++	i2c.a_data_mask = (1 << 18); +     } else { + 	i2c.put_clk_mask = (1 << 0); + 	i2c.put_data_mask = (1 << 8); +@@ -1836,9 +1802,13 @@ atom_setup_i2c_bus(int ddc_line) + 	i2c.get_data_mask = (1 << 8); + 	i2c.mask_clk_mask = (1 << 0); + 	i2c.mask_data_mask = (1 << 8); ++	i2c.a_clk_mask = (1 << 0); ++	i2c.a_data_mask = (1 << 8); +     } +     i2c.mask_clk_reg = ddc_line; +     i2c.mask_data_reg = ddc_line; ++    i2c.a_clk_reg = ddc_line + 0x4; ++    i2c.a_data_reg = ddc_line + 0x4; +     i2c.put_clk_reg = ddc_line + 0x8; +     i2c.put_data_reg = ddc_line + 0x8; +     i2c.get_clk_reg = ddc_line + 0xc; +@@ -2301,13 +2271,13 @@ static Bool RADEONSetupAppleConnectors(ScrnInfoPtr pScrn) + 	info->BiosConnector[0].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_DVI_DDC); + 	info->BiosConnector[0].DACType = DAC_NONE; + 	info->BiosConnector[0].TMDSType = TMDS_NONE; +-	info->BiosConnector[0].ConnectorType = CONNECTOR_VGA; ++	info->BiosConnector[0].ConnectorType = CONNECTOR_LVDS; + 	info->BiosConnector[0].valid = TRUE; +  + 	info->BiosConnector[1].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_VGA_DDC); + 	info->BiosConnector[1].DACType = DAC_PRIMARY; +-	info->BiosConnector[1].TMDSType = TMDS_INT; +-	info->BiosConnector[1].ConnectorType = CONNECTOR_DVI_I; ++	info->BiosConnector[1].TMDSType = TMDS_NONE; ++	info->BiosConnector[1].ConnectorType = CONNECTOR_VGA; + 	info->BiosConnector[1].valid = TRUE; +  + 	info->BiosConnector[2].ConnectorType = CONNECTOR_STV; +@@ -2677,7 +2647,6 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn) + { +     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); +     RADEONInfoPtr info       = RADEONPTR(pScrn); +-    RADEONEntPtr pRADEONEnt  = RADEONEntPriv(pScrn); +     xf86OutputPtr output; +     char *optstr; +     int i = 0; +@@ -2742,13 +2711,6 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn) + 	    RADEONSetupGenericConnectors(pScrn); +     } +  +-    if (!pRADEONEnt->HasCRTC2) { +-	for (i = 0; i < RADEON_MAX_BIOS_CONNECTOR; i++) { +-	    if (info->BiosConnector[i].ConnectorType == CONNECTOR_VGA) +-		info->BiosConnector[i].DACType = DAC_PRIMARY; +-	} +-    } +- +     /* parse connector table option */ +     optstr = (char *)xf86GetOptValString(info->Options, OPTION_CONNECTORTABLE); +  +diff --git a/src/radeon_pci_chipset_gen.h b/src/radeon_pci_chipset_gen.h +index 39adb5e..ff1801f 100644 +--- a/src/radeon_pci_chipset_gen.h ++++ b/src/radeon_pci_chipset_gen.h +@@ -1,6 +1,7 @@ + /* This file is autogenerated please do not edit */ + PciChipsets RADEONPciChipsets[] = { +  { PCI_CHIP_RV380_3150, PCI_CHIP_RV380_3150, RES_SHARED_VGA }, ++ { PCI_CHIP_RV380_3151, PCI_CHIP_RV380_3151, RES_SHARED_VGA }, +  { PCI_CHIP_RV380_3152, PCI_CHIP_RV380_3152, RES_SHARED_VGA }, +  { PCI_CHIP_RV380_3154, PCI_CHIP_RV380_3154, RES_SHARED_VGA }, +  { PCI_CHIP_RV380_3E50, PCI_CHIP_RV380_3E50, RES_SHARED_VGA }, +@@ -250,6 +251,9 @@ PciChipsets RADEONPciChipsets[] = { +  { PCI_CHIP_R600_940A, PCI_CHIP_R600_940A, RES_SHARED_VGA }, +  { PCI_CHIP_R600_940B, PCI_CHIP_R600_940B, RES_SHARED_VGA }, +  { PCI_CHIP_R600_940F, PCI_CHIP_R600_940F, RES_SHARED_VGA }, ++ { PCI_CHIP_RV770_9440, PCI_CHIP_RV770_9440, RES_SHARED_VGA }, ++ { PCI_CHIP_RV770_9441, PCI_CHIP_RV770_9441, RES_SHARED_VGA }, ++ { PCI_CHIP_RV770_9442, PCI_CHIP_RV770_9442, RES_SHARED_VGA }, +  { PCI_CHIP_RV610_94C0, PCI_CHIP_RV610_94C0, RES_SHARED_VGA }, +  { PCI_CHIP_RV610_94C1, PCI_CHIP_RV610_94C1, RES_SHARED_VGA }, +  { PCI_CHIP_RV610_94C3, PCI_CHIP_RV610_94C3, RES_SHARED_VGA }, +@@ -267,6 +271,7 @@ PciChipsets RADEONPciChipsets[] = { +  { PCI_CHIP_RV670_9507, PCI_CHIP_RV670_9507, RES_SHARED_VGA }, +  { PCI_CHIP_RV670_950F, PCI_CHIP_RV670_950F, RES_SHARED_VGA }, +  { PCI_CHIP_RV670_9511, PCI_CHIP_RV670_9511, RES_SHARED_VGA }, ++ { PCI_CHIP_RV670_9515, PCI_CHIP_RV670_9515, RES_SHARED_VGA }, +  { PCI_CHIP_RV630_9580, PCI_CHIP_RV630_9580, RES_SHARED_VGA }, +  { PCI_CHIP_RV630_9581, PCI_CHIP_RV630_9581, RES_SHARED_VGA }, +  { PCI_CHIP_RV630_9583, PCI_CHIP_RV630_9583, RES_SHARED_VGA }, +diff --git a/src/radeon_pci_device_match_gen.h b/src/radeon_pci_device_match_gen.h +index d81cbe3..d650f9f 100644 +--- a/src/radeon_pci_device_match_gen.h ++++ b/src/radeon_pci_device_match_gen.h +@@ -1,6 +1,7 @@ + /* This file is autogenerated please do not edit */ + static const struct pci_id_match radeon_device_match[] = { +  ATI_DEVICE_MATCH( PCI_CHIP_RV380_3150, 0 ), ++ ATI_DEVICE_MATCH( PCI_CHIP_RV380_3151, 0 ), +  ATI_DEVICE_MATCH( PCI_CHIP_RV380_3152, 0 ), +  ATI_DEVICE_MATCH( PCI_CHIP_RV380_3154, 0 ), +  ATI_DEVICE_MATCH( PCI_CHIP_RV380_3E50, 0 ), +@@ -250,6 +251,9 @@ static const struct pci_id_match radeon_device_match[] = { +  ATI_DEVICE_MATCH( PCI_CHIP_R600_940A, 0 ), +  ATI_DEVICE_MATCH( PCI_CHIP_R600_940B, 0 ), +  ATI_DEVICE_MATCH( PCI_CHIP_R600_940F, 0 ), ++ ATI_DEVICE_MATCH( PCI_CHIP_RV770_9440, 0 ), ++ ATI_DEVICE_MATCH( PCI_CHIP_RV770_9441, 0 ), ++ ATI_DEVICE_MATCH( PCI_CHIP_RV770_9442, 0 ), +  ATI_DEVICE_MATCH( PCI_CHIP_RV610_94C0, 0 ), +  ATI_DEVICE_MATCH( PCI_CHIP_RV610_94C1, 0 ), +  ATI_DEVICE_MATCH( PCI_CHIP_RV610_94C3, 0 ), +@@ -267,6 +271,7 @@ static const struct pci_id_match radeon_device_match[] = { +  ATI_DEVICE_MATCH( PCI_CHIP_RV670_9507, 0 ), +  ATI_DEVICE_MATCH( PCI_CHIP_RV670_950F, 0 ), +  ATI_DEVICE_MATCH( PCI_CHIP_RV670_9511, 0 ), ++ ATI_DEVICE_MATCH( PCI_CHIP_RV670_9515, 0 ), +  ATI_DEVICE_MATCH( PCI_CHIP_RV630_9580, 0 ), +  ATI_DEVICE_MATCH( PCI_CHIP_RV630_9581, 0 ), +  ATI_DEVICE_MATCH( PCI_CHIP_RV630_9583, 0 ), +diff --git a/src/radeon_probe.h b/src/radeon_probe.h +index 24af52b..c14241e 100644 +--- a/src/radeon_probe.h ++++ b/src/radeon_probe.h +@@ -166,6 +166,8 @@ typedef struct +     Bool   valid; +     uint32_t mask_clk_reg; +     uint32_t mask_data_reg; ++    uint32_t a_clk_reg; ++    uint32_t a_data_reg; +     uint32_t put_clk_reg; +     uint32_t put_data_reg; +     uint32_t get_clk_reg; +@@ -176,15 +178,15 @@ typedef struct +     uint32_t put_data_mask; +     uint32_t get_clk_mask; +     uint32_t get_data_mask; ++    uint32_t a_clk_mask; ++    uint32_t a_data_mask; ++    int hw_line; ++    Bool hw_capable; + } RADEONI2CBusRec, *RADEONI2CBusPtr; +  + typedef struct _RADEONCrtcPrivateRec { +-#ifdef USE_XAA +-    FBLinearPtr rotate_mem_xaa; +-#endif +-#ifdef USE_EXA +-    ExaOffscreenArea *rotate_mem_exa; +-#endif ++    void *crtc_rotate_mem; ++    void *cursor_mem; +     int crtc_id; +     int binding; +     uint32_t cursor_offset; +@@ -235,8 +237,10 @@ typedef struct _RADEONOutputPrivateRec { +     int               VSyncWidth; +     int               VBlank; +     int               Flags;            /* Saved copy of mode flags          */ +-    int               PanelPwrDly; +     int               DotClock; ++    int               PanelPwrDly; ++    int               lvds_misc; ++    int               lvds_ss_id; +     RADEONTMDSPll     tmds_pll[4]; +     RADEONRMXType     rmx_type; +     /* dvo */ +@@ -310,8 +314,10 @@ struct avivo_grph_state { +     uint32_t x_end; +     uint32_t y_end; +  ++    uint32_t desktop_height; +     uint32_t viewport_start; +     uint32_t viewport_size; ++    uint32_t mode_data_format; + }; +  + struct avivo_state +@@ -326,6 +332,7 @@ struct avivo_state +  +     uint32_t crtc_master_en; +     uint32_t crtc_tv_control; ++    uint32_t dc_lb_memory_split; +  +     struct avivo_pll_state pll1; +     struct avivo_pll_state pll2; +diff --git a/src/radeon_reg.h b/src/radeon_reg.h +index 59e2f12..19f9869 100644 +--- a/src/radeon_reg.h ++++ b/src/radeon_reg.h +@@ -1032,6 +1032,10 @@ + #define RADEON_OV0_BASE_ADDR                0x43c + #define RADEON_NB_TOM                       0x15c + #define R300_MC_INIT_MISC_LAT_TIMER         0x180 ++#       define R300_MC_DISP0R_INIT_LAT_SHIFT 8 ++#       define R300_MC_DISP0R_INIT_LAT_MASK  0xf ++#       define R300_MC_DISP1R_INIT_LAT_SHIFT 12 ++#       define R300_MC_DISP1R_INIT_LAT_MASK  0xf + #define RADEON_MCLK_CNTL                    0x0012 /* PLL */ + #       define RADEON_FORCEON_MCLKA         (1 << 16) + #       define RADEON_FORCEON_MCLKB         (1 << 17) +@@ -3185,6 +3189,7 @@ + #define RADEON_CP_VC_CNTL_PRIM_TYPE_RECT_LIST       0x00000008 + #define RADEON_CP_VC_CNTL_PRIM_TYPE_3VRT_POINT_LIST 0x00000009 + #define RADEON_CP_VC_CNTL_PRIM_TYPE_3VRT_LINE_LIST  0x0000000a ++#define RADEON_CP_VC_CNTL_PRIM_TYPE_QUAD_LIST       0x0000000d + #define RADEON_CP_VC_CNTL_PRIM_WALK_IND             0x00000010 + #define RADEON_CP_VC_CNTL_PRIM_WALK_LIST            0x00000020 + #define RADEON_CP_VC_CNTL_PRIM_WALK_RING            0x00000030 +@@ -3418,6 +3423,7 @@ + #define RS690_MC_AGP_LOCATION			0x101 + #define RS690_MC_AGP_BASE			0x102 + #define RS690_MC_AGP_BASE_2                     0x103 ++#define RS690_MC_INIT_MISC_LAT_TIMER            0x104 + #define RS690_MC_STATUS                         0x90 + #define RS690_MC_STATUS_IDLE                    (1 << 0) +  +@@ -3431,12 +3437,13 @@ + #define RS600_MC_STATUS                         0x0 + #define RS600_MC_STATUS_IDLE                    (1 << 0) +  +-#define AVIVO_MC_INDEX						0x0070 +-#define R520_MC_STATUS 0x00 +-#define R520_MC_STATUS_IDLE (1<<1) +-#define RV515_MC_STATUS 0x08 +-#define RV515_MC_STATUS_IDLE (1<<4) +-#define AVIVO_MC_DATA						0x0074 ++#define AVIVO_MC_INDEX				0x0070 ++#define R520_MC_STATUS                          0x00 ++#       define R520_MC_STATUS_IDLE              (1 << 1) ++#define RV515_MC_STATUS                         0x08 ++#       define RV515_MC_STATUS_IDLE             (1 << 4) ++#define RV515_MC_INIT_MISC_LAT_TIMER            0x09 ++#define AVIVO_MC_DATA				0x0074 +  + #define RV515_MC_FB_LOCATION   0x1 + #define RV515_MC_AGP_LOCATION  0x2 +@@ -3598,8 +3605,20 @@ + #define AVIVO_DC_LUTA_WHITE_OFFSET_GREEN        0x64d4 + #define AVIVO_DC_LUTA_WHITE_OFFSET_RED          0x64d8 +  +- +-#define AVIVO_D1MODE_DESKTOP_HEIGHT             0x652C ++#define AVIVO_DC_LB_MEMORY_SPLIT                0x6520 ++#       define AVIVO_DC_LB_MEMORY_SPLIT_MASK    0x3 ++#       define AVIVO_DC_LB_MEMORY_SPLIT_SHIFT   0 ++#       define AVIVO_DC_LB_MEMORY_SPLIT_D1HALF_D2HALF  0 ++#       define AVIVO_DC_LB_MEMORY_SPLIT_D1_3Q_D2_1Q    1 ++#       define AVIVO_DC_LB_MEMORY_SPLIT_D1_ONLY        2 ++#       define AVIVO_DC_LB_MEMORY_SPLIT_D1_1Q_D2_3Q    3 ++#       define AVIVO_DC_LB_MEMORY_SPLIT_SHIFT_MODE (1 << 2) ++#       define AVIVO_DC_LB_DISP1_END_ADR_SHIFT  4 ++#       define AVIVO_DC_LB_DISP1_END_ADR_MASK   0x7ff ++ ++#define AVIVO_D1MODE_DATA_FORMAT                0x6528 ++#       define AVIVO_D1MODE_INTERLEAVE_EN       (1 << 0) ++#define AVIVO_D1MODE_DESKTOP_HEIGHT             0x652c + #define AVIVO_D1MODE_VIEWPORT_START             0x6580 + #define AVIVO_D1MODE_VIEWPORT_SIZE              0x6584 + #define AVIVO_D1MODE_EXT_OVERSCAN_LEFT_RIGHT    0x6588 +@@ -3651,6 +3670,8 @@ + #define AVIVO_D2CUR_SIZE                        0x6c10 + #define AVIVO_D2CUR_POSITION                    0x6c14 +  ++#define AVIVO_D2MODE_DATA_FORMAT                0x6d28 ++#define AVIVO_D2MODE_DESKTOP_HEIGHT             0x6d2c + #define AVIVO_D2MODE_VIEWPORT_START             0x6d80 + #define AVIVO_D2MODE_VIEWPORT_SIZE              0x6d84 + #define AVIVO_D2MODE_EXT_OVERSCAN_LEFT_RIGHT    0x6d88 +@@ -3658,6 +3679,7 @@ +  + #define AVIVO_D2SCL_SCALER_ENABLE               0x6d90 + #define AVIVO_D2SCL_SCALER_TAP_CONTROL	 	0x6d94 ++#define AVIVO_D2SCL_UPDATE                      0x6dcc +  + #define AVIVO_DDIA_BIT_DEPTH_CONTROL				0x7214 +  +@@ -3918,6 +3940,8 @@ + #define R600_MC_VM_SYSTEM_APERTURE_HIGH_ADDR                       0x2194 + #define R600_MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR                    0x2198 +  ++#define R700_MC_VM_FB_LOCATION                                     0x2024 ++ + #define R600_HDP_NONSURFACE_BASE                                0x2c04 +  + #define R600_BUS_CNTL                                           0x5420 +@@ -4234,7 +4258,7 @@ + #define R300_PVS_SRC_ADDR_SEL(x)                        (x << 29) + #define R300_PVS_SRC_ADDR_MODE_1                        (1 << 31) +  +-#define R300_VAP_PVS_FLOW_CNTL_OPC		        0x22DC ++#define R300_VAP_PVS_FLOW_CNTL_OPC		        0x22dc + #define R300_VAP_OUT_VTX_FMT_0			        0x2090 + #       define R300_VTX_POS_PRESENT                     (1 << 0) + #       define R300_VTX_COLOR_0_PRESENT                 (1 << 1) +@@ -4322,6 +4346,7 @@ +  + #define R300_TX_INVALTAGS				0x4100 + #define R300_TX_FILTER0_0				0x4400 ++#define R300_TX_FILTER0_1				0x4404 + #       define R300_TX_CLAMP_S(x)                       (x << 0) + #       define R300_TX_CLAMP_T(x)                       (x << 3) + #       define R300_TX_CLAMP_R(x)                       (x << 6) +@@ -4339,7 +4364,9 @@ + #       define R300_TX_MIN_FILTER_LINEAR                (2 << 11) + #       define R300_TX_ID_SHIFT                         28 + #define R300_TX_FILTER1_0				0x4440 ++#define R300_TX_FILTER1_1				0x4444 + #define R300_TX_FORMAT0_0				0x4480 ++#define R300_TX_FORMAT0_1				0x4484 + #       define R300_TXWIDTH_SHIFT                       0 + #       define R300_TXHEIGHT_SHIFT                      11 + #       define R300_NUM_LEVELS_SHIFT                    26 +@@ -4347,6 +4374,7 @@ + #       define R300_TXPROJECTED                         (1 << 30) + #       define R300_TXPITCH_EN                          (1 << 31) + #define R300_TX_FORMAT1_0				0x44c0 ++#define R300_TX_FORMAT1_1				0x44c4 + #	define R300_TX_FORMAT_X8		    0x0 + #	define R300_TX_FORMAT_X16		    0x1 + #	define R300_TX_FORMAT_Y4X4		    0x2 +@@ -4420,10 +4448,12 @@ + #       define R300_TX_FORMAT_SWAP_YUV                 (1 << 24) +  + #define R300_TX_FORMAT2_0				0x4500 ++#define R300_TX_FORMAT2_1				0x4504 + #       define R500_TXWIDTH_11                          (1 << 15) + #       define R500_TXHEIGHT_11                         (1 << 16) +  + #define R300_TX_OFFSET_0				0x4540 ++#define R300_TX_OFFSET_1				0x4544 + #       define R300_ENDIAN_SWAP_16_BIT                  (1 << 0) + #       define R300_ENDIAN_SWAP_32_BIT                  (2 << 0) + #       define R300_ENDIAN_SWAP_HALF_DWORD              (3 << 0) +@@ -4500,6 +4530,7 @@ + #define R300_US_TEX_INST_0				0x4620 + #define R300_US_TEX_INST_1				0x4624 + #define R300_US_TEX_INST_2				0x4628 ++#define R300_US_TEX_INST(x)			        (R300_US_TEX_INST_0 + (x)*4) + #       define R300_TEX_SRC_ADDR(x)                     (x << 0) + #       define R300_TEX_DST_ADDR(x)                     (x << 6) + #       define R300_TEX_ID(x)                           (x << 11) +@@ -4512,11 +4543,13 @@ + #define R300_US_ALU_RGB_ADDR_0			        0x46c0 + #define R300_US_ALU_RGB_ADDR_1			        0x46c4 + #define R300_US_ALU_RGB_ADDR_2			        0x46c8 ++#define R300_US_ALU_RGB_ADDR(x)			        (R300_US_ALU_RGB_ADDR_0 + (x)*4) + /* for ADDR0-2, values 0-31 specify a location in the pixel stack, +    values 32-63 specify a constant */ + #       define R300_ALU_RGB_ADDR0(x)                    (x << 0) + #       define R300_ALU_RGB_ADDR1(x)                    (x << 6) + #       define R300_ALU_RGB_ADDR2(x)                    (x << 12) ++#       define R300_ALU_RGB_CONST(x)                    ((x) | (1 << 5)) + /* ADDRD - where on the pixel stack the result of this instruction +    will be written */ + #       define R300_ALU_RGB_ADDRD(x)                    (x << 18) +@@ -4526,6 +4559,7 @@ + #       define R300_ALU_RGB_MASK_R                      1 + #       define R300_ALU_RGB_MASK_G                      2 + #       define R300_ALU_RGB_MASK_B                      4 ++#       define R300_ALU_RGB_MASK_RGB                    7 + #       define R300_ALU_RGB_TARGET_A                    (0 << 29) + #       define R300_ALU_RGB_TARGET_B                    (1 << 29) + #       define R300_ALU_RGB_TARGET_C                    (2 << 29) +@@ -4533,6 +4567,7 @@ + #define R300_US_ALU_RGB_INST_0			        0x48c0 + #define R300_US_ALU_RGB_INST_1			        0x48c4 + #define R300_US_ALU_RGB_INST_2			        0x48c8 ++#define R300_US_ALU_RGB_INST(x)			        (R300_US_ALU_RGB_INST_0 + (x)*4) + #       define R300_ALU_RGB_SEL_A(x)                    (x << 0) + #       define R300_ALU_RGB_SRC0_RGB                    0 + #       define R300_ALU_RGB_SRC0_RRR                    1 +@@ -4604,11 +4639,13 @@ + #define R300_US_ALU_ALPHA_ADDR_0		        0x47c0 + #define R300_US_ALU_ALPHA_ADDR_1		        0x47c4 + #define R300_US_ALU_ALPHA_ADDR_2		        0x47c8 ++#define R300_US_ALU_ALPHA_ADDR(x)		        (R300_US_ALU_ALPHA_ADDR_0 + (x)*4) + /* for ADDR0-2, values 0-31 specify a location in the pixel stack, +    values 32-63 specify a constant */ + #       define R300_ALU_ALPHA_ADDR0(x)                  (x << 0) + #       define R300_ALU_ALPHA_ADDR1(x)                  (x << 6) + #       define R300_ALU_ALPHA_ADDR2(x)                  (x << 12) ++#       define R300_ALU_ALPHA_CONST(x)                  ((x) | (1 << 5)) + /* ADDRD - where on the pixel stack the result of this instruction +    will be written */ + #       define R300_ALU_ALPHA_ADDRD(x)                  (x << 18) +@@ -4624,6 +4661,7 @@ + #define R300_US_ALU_ALPHA_INST_0		        0x49c0 + #define R300_US_ALU_ALPHA_INST_1		        0x49c4 + #define R300_US_ALU_ALPHA_INST_2		        0x49c8 ++#define R300_US_ALU_ALPHA_INST(x)		        (R300_US_ALU_ALPHA_INST_0 + (x)*4) + #       define R300_ALU_ALPHA_SEL_A(x)                  (x << 0) + #       define R300_ALU_ALPHA_SRC0_R                    0 + #       define R300_ALU_ALPHA_SRC0_G                    1 +@@ -4680,6 +4718,15 @@ + #       define R300_ALU_ALPHA_OMOD_DIV_8                6 + #       define R300_ALU_ALPHA_CLAMP                     (1 << 30) +  ++#define R300_US_ALU_CONST_R_0                           0x4c00 ++#define R300_US_ALU_CONST_R(x)                          (R300_US_ALU_CONST_R_0 + (x)*16) ++#define R300_US_ALU_CONST_G_0                           0x4c04 ++#define R300_US_ALU_CONST_G(x)                          (R300_US_ALU_CONST_G_0 + (x)*16) ++#define R300_US_ALU_CONST_B_0                           0x4c08 ++#define R300_US_ALU_CONST_B(x)                          (R300_US_ALU_CONST_B_0 + (x)*16) ++#define R300_US_ALU_CONST_A_0                           0x4c0c ++#define R300_US_ALU_CONST_A(x)                          (R300_US_ALU_CONST_A_0 + (x)*16) ++ + #define R300_FG_DEPTH_SRC				0x4bd8 + #define R300_FG_FOG_BLEND				0x4bc0 + #define R300_FG_ALPHA_FUNC				0x4bd4 +@@ -4759,10 +4806,11 @@ +  + /* R500 US has to be loaded through an index/data pair */ + #define R500_GA_US_VECTOR_INDEX				0x4250 +-#   define R500_US_VECTOR_INDEX(x)			(x << 0) + #   define R500_US_VECTOR_TYPE_INST			(0 << 16) + #   define R500_US_VECTOR_TYPE_CONST			(1 << 16) + #   define R500_US_VECTOR_CLAMP				(1 << 17) ++#   define R500_US_VECTOR_INST_INDEX(x)			((x) | R500_US_VECTOR_TYPE_INST) ++#   define R500_US_VECTOR_CONST_INDEX(x)		((x) | R500_US_VECTOR_TYPE_CONST) + #define R500_GA_US_VECTOR_DATA				0x4254 +  + /* +diff --git a/src/radeon_render.c b/src/radeon_render.c +index dbd5b79..6668fe0 100644 +--- a/src/radeon_render.c ++++ b/src/radeon_render.c +@@ -268,7 +268,7 @@ RemoveLinear (FBLinearPtr linear) + { +    RADEONInfoPtr info = (RADEONInfoPtr)(linear->devPrivate.ptr); +  +-   info->RenderTex = NULL;  ++   info->accel_state->RenderTex = NULL;  + } +  + static void +@@ -276,13 +276,14 @@ RenderCallback (ScrnInfoPtr pScrn) + { +     RADEONInfoPtr  info       = RADEONPTR(pScrn); +  +-    if ((currentTime.milliseconds > info->RenderTimeout) && info->RenderTex) { +-	xf86FreeOffscreenLinear(info->RenderTex); +-	info->RenderTex = NULL; ++    if ((currentTime.milliseconds > info->accel_state->RenderTimeout) && ++	info->accel_state->RenderTex) { ++	xf86FreeOffscreenLinear(info->accel_state->RenderTex); ++	info->accel_state->RenderTex = NULL; +     } +  +-    if (!info->RenderTex) +-	info->RenderCallback = NULL; ++    if (!info->accel_state->RenderTex) ++	info->accel_state->RenderCallback = NULL; + } +  + static Bool +@@ -293,30 +294,30 @@ AllocateLinear ( +    RADEONInfoPtr  info       = RADEONPTR(pScrn); +    int cpp = info->CurrentLayout.bitsPerPixel / 8; +  +-   info->RenderTimeout = currentTime.milliseconds + 30000; +-   info->RenderCallback = RenderCallback; ++   info->accel_state->RenderTimeout = currentTime.milliseconds + 30000; ++   info->accel_state->RenderCallback = RenderCallback; +  +    /* XAA allocates in units of pixels at the screen bpp, so adjust size +     * appropriately. +     */ +    sizeNeeded = (sizeNeeded + cpp - 1) / cpp; +  +-   if (info->RenderTex) { +-	if (info->RenderTex->size >= sizeNeeded) ++   if (info->accel_state->RenderTex) { ++	if (info->accel_state->RenderTex->size >= sizeNeeded) + 	   return TRUE; + 	else { +-	   if (xf86ResizeOffscreenLinear(info->RenderTex, sizeNeeded)) ++	   if (xf86ResizeOffscreenLinear(info->accel_state->RenderTex, sizeNeeded)) + 		return TRUE; +  +-	   xf86FreeOffscreenLinear(info->RenderTex); +-	   info->RenderTex = NULL; ++	   xf86FreeOffscreenLinear(info->accel_state->RenderTex); ++	   info->accel_state->RenderTex = NULL; + 	} +    } +  +-   info->RenderTex = xf86AllocateOffscreenLinear(pScrn->pScreen, sizeNeeded, 32, +-						 NULL, RemoveLinear, info); ++   info->accel_state->RenderTex = xf86AllocateOffscreenLinear(pScrn->pScreen, sizeNeeded, 32, ++							      NULL, RemoveLinear, info); +  +-   return (info->RenderTex != NULL); ++   return (info->accel_state->RenderTex != NULL); + } +  + #if X_BYTE_ORDER == X_BIG_ENDIAN +@@ -435,7 +436,7 @@ static Bool FUNC_NAME(R100SetupTexture)( + 	txformat |= RADEON_TXFORMAT_NON_POWER2; +     } +  +-    offset = info->RenderTex->offset * pScrn->bitsPerPixel / 8; ++    offset = info->accel_state->RenderTex->offset * pScrn->bitsPerPixel / 8; +     dst = (uint8_t*)(info->FB + offset); +  +     /* Upload texture to card. */ +@@ -459,8 +460,8 @@ static Bool FUNC_NAME(R100SetupTexture)( +  + #else +  +-    if (info->accel->NeedToSync) +-	info->accel->Sync(pScrn); ++    if (info->accel_state->accel->NeedToSync) ++	info->accel_state->accel->Sync(pScrn); +  +     while (height--) { + 	memcpy(dst, src, width * tex_bytepp); +@@ -514,7 +515,7 @@ FUNC_NAME(R100SetupForCPUToScreenAlphaTexture) ( +     if (blend_cntl == 0) + 	return FALSE; +  +-    if (!info->XInited3D) ++    if (!info->accel_state->XInited3D) + 	RADEONInit3DEngine(pScrn); +  +     if (!FUNC_NAME(R100SetupTexture)(pScrn, maskFormat, alphaPtr, alphaPitch, +@@ -565,7 +566,7 @@ FUNC_NAME(R100SetupForCPUToScreenTexture) ( +     if (blend_cntl == 0) + 	return FALSE; +      +-    if (!info->XInited3D) ++    if (!info->accel_state->XInited3D) + 	RADEONInit3DEngine(pScrn); +  +     if (!FUNC_NAME(R100SetupTexture)(pScrn, srcFormat, texPtr, texPitch, width, +@@ -772,10 +773,10 @@ static Bool FUNC_NAME(R200SetupTexture)( + 	txformat |= RADEON_TXFORMAT_NON_POWER2; +     } +  +-    info->texW[0] = width; +-    info->texH[0] = height; ++    info->accel_state->texW[0] = width; ++    info->accel_state->texH[0] = height; +  +-    offset = info->RenderTex->offset * pScrn->bitsPerPixel / 8; ++    offset = info->accel_state->RenderTex->offset * pScrn->bitsPerPixel / 8; +     dst = (uint8_t*)(info->FB + offset); +  +     /* Upload texture to card. */ +@@ -799,8 +800,8 @@ static Bool FUNC_NAME(R200SetupTexture)( +  + #else +  +-    if (info->accel->NeedToSync) +-	info->accel->Sync(pScrn); ++    if (info->accel_state->accel->NeedToSync) ++	info->accel_state->accel->Sync(pScrn); +  +     while (height--) { + 	memcpy(dst, src, width * tex_bytepp); +@@ -855,7 +856,7 @@ FUNC_NAME(R200SetupForCPUToScreenAlphaTexture) ( +     if (blend_cntl == 0) + 	return FALSE; +  +-    if (!info->XInited3D) ++    if (!info->accel_state->XInited3D) + 	RADEONInit3DEngine(pScrn); +  +     if (!FUNC_NAME(R200SetupTexture)(pScrn, maskFormat, alphaPtr, alphaPitch, +@@ -907,7 +908,7 @@ FUNC_NAME(R200SetupForCPUToScreenTexture) ( +     if (blend_cntl == 0) + 	return FALSE; +  +-    if (!info->XInited3D) ++    if (!info->accel_state->XInited3D) + 	RADEONInit3DEngine(pScrn); +  +     if (!FUNC_NAME(R200SetupTexture)(pScrn, srcFormat, texPtr, texPitch, width, +@@ -974,10 +975,10 @@ FUNC_NAME(R200SubsequentCPUToScreenTexture) ( +      +     r = width + l; +     b = height + t; +-    fl = (float)srcx / info->texW[0]; +-    fr = (float)(srcx + width) / info->texW[0]; +-    ft = (float)srcy / info->texH[0]; +-    fb = (float)(srcy + height) / info->texH[0]; ++    fl = (float)srcx / info->accel_state->texW[0]; ++    fr = (float)(srcx + width) / info->accel_state->texW[0]; ++    ft = (float)srcy / info->accel_state->texH[0]; ++    fb = (float)(srcy + height) / info->accel_state->texH[0]; +  + #ifdef ACCEL_CP +     BEGIN_RING(24); +diff --git a/src/radeon_sarea.h b/src/radeon_sarea.h +deleted file mode 100644 +index 80333a4..0000000 +--- a/src/radeon_sarea.h ++++ /dev/null +@@ -1,231 +0,0 @@ +-/* +- * Copyright 2000 ATI Technologies Inc., Markham, Ontario, +- *                VA Linux Systems Inc., Fremont, California. +- * +- * All Rights Reserved. +- * +- * Permission is hereby granted, free of charge, to any person obtaining +- * a copy of this software and associated documentation files (the +- * "Software"), to deal in the Software without restriction, including +- * without limitation on the rights to use, copy, modify, merge, +- * publish, distribute, sublicense, and/or sell copies of the Software, +- * and to permit persons to whom the Software is furnished to do so, +- * subject to the following conditions: +- * +- * The above copyright notice and this permission notice (including the +- * next paragraph) shall be included in all copies or substantial +- * portions of the Software. +- * +- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +- * NON-INFRINGEMENT.  IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR +- * THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +- * DEALINGS IN THE SOFTWARE. +- */ +- +-/* +- * Authors: +- *   Kevin E. Martin <martin@xfree86.org> +- *   Gareth Hughes <gareth@valinux.com> +- * +- */ +- +-#ifndef _RADEON_SAREA_H_ +-#define _RADEON_SAREA_H_ +- +-/* WARNING: If you change any of these defines, make sure to change the +- * defines in the kernel file (radeon_drm.h) +- */ +-#ifndef __RADEON_SAREA_DEFINES__ +-#define __RADEON_SAREA_DEFINES__ +- +-/* What needs to be changed for the current vertex buffer? */ +-#define RADEON_UPLOAD_CONTEXT		0x00000001 +-#define RADEON_UPLOAD_VERTFMT		0x00000002 +-#define RADEON_UPLOAD_LINE		0x00000004 +-#define RADEON_UPLOAD_BUMPMAP		0x00000008 +-#define RADEON_UPLOAD_MASKS		0x00000010 +-#define RADEON_UPLOAD_VIEWPORT		0x00000020 +-#define RADEON_UPLOAD_SETUP		0x00000040 +-#define RADEON_UPLOAD_TCL		0x00000080 +-#define RADEON_UPLOAD_MISC		0x00000100 +-#define RADEON_UPLOAD_TEX0		0x00000200 +-#define RADEON_UPLOAD_TEX1		0x00000400 +-#define RADEON_UPLOAD_TEX2		0x00000800 +-#define RADEON_UPLOAD_TEX0IMAGES	0x00001000 +-#define RADEON_UPLOAD_TEX1IMAGES	0x00002000 +-#define RADEON_UPLOAD_TEX2IMAGES	0x00004000 +-#define RADEON_UPLOAD_CLIPRECTS		0x00008000 /* handled client-side */ +-#define RADEON_REQUIRE_QUIESCENCE	0x00010000 +-#define RADEON_UPLOAD_ZBIAS		0x00020000 +-#define RADEON_UPLOAD_ALL		0x0002ffff +-#define RADEON_UPLOAD_CONTEXT_ALL       0x000201ff +- +-#define RADEON_FRONT			0x1 +-#define RADEON_BACK			0x2 +-#define RADEON_DEPTH			0x4 +-#define RADEON_STENCIL                  0x8 +- +-/* Primitive types */ +-#define RADEON_POINTS			0x1 +-#define RADEON_LINES			0x2 +-#define RADEON_LINE_STRIP		0x3 +-#define RADEON_TRIANGLES		0x4 +-#define RADEON_TRIANGLE_FAN		0x5 +-#define RADEON_TRIANGLE_STRIP		0x6 +-#define RADEON_3VTX_POINTS		0x9 +-#define RADEON_3VTX_LINES		0xa +- +-/* Vertex/indirect buffer size */ +-#define RADEON_BUFFER_SIZE		65536 +- +-/* Byte offsets for indirect buffer data */ +-#define RADEON_INDEX_PRIM_OFFSET	20 +-#define RADEON_HOSTDATA_BLIT_OFFSET	32 +- +-#define RADEON_SCRATCH_REG_OFFSET	32 +- +-/* Keep these small for testing */ +-#define RADEON_NR_SAREA_CLIPRECTS	12 +- +-/* There are 2 heaps (local/GART).  Each region within a heap is a +- * minimum of 64k, and there are at most 64 of them per heap. +- */ +-#define RADEON_CARD_HEAP		0 +-#define RADEON_GART_HEAP		1 +-#define RADEON_NR_TEX_HEAPS		2 +-#define RADEON_NR_TEX_REGIONS		64 +-#define RADEON_LOG_TEX_GRANULARITY	16 +- +-#define RADEON_MAX_TEXTURE_LEVELS	12 +-#define RADEON_MAX_TEXTURE_UNITS	3 +- +-/* Blits have strict offset rules.  All blit offset must be aligned on +- * a 1K-byte boundary. +- */ +-#define RADEON_OFFSET_SHIFT		10 +-#define RADEON_OFFSET_ALIGN		(1 << RADEON_OFFSET_SHIFT) +-#define RADEON_OFFSET_MASK		(RADEON_OFFSET_ALIGN - 1) +- +-#endif /* __RADEON_SAREA_DEFINES__ */ +- +-typedef struct { +-    unsigned int red; +-    unsigned int green; +-    unsigned int blue; +-    unsigned int alpha; +-} radeon_color_regs_t; +- +-typedef struct { +-    /* Context state */ +-    unsigned int pp_misc; +-    unsigned int pp_fog_color; +-    unsigned int re_solid_color; +-    unsigned int rb3d_blendcntl; +-    unsigned int rb3d_depthoffset; +-    unsigned int rb3d_depthpitch; +-    unsigned int rb3d_zstencilcntl; +- +-    unsigned int pp_cntl; +-    unsigned int rb3d_cntl; +-    unsigned int rb3d_coloroffset; +-    unsigned int re_width_height; +-    unsigned int rb3d_colorpitch; +-    unsigned int se_cntl; +- +-    /* Vertex format state */ +-    unsigned int se_coord_fmt; +- +-    /* Line state */ +-    unsigned int re_line_pattern; +-    unsigned int re_line_state; +- +-    unsigned int se_line_width; +- +-    /* Bumpmap state */ +-    unsigned int pp_lum_matrix; +- +-    unsigned int pp_rot_matrix_0; +-    unsigned int pp_rot_matrix_1; +- +-    /* Mask state */ +-    unsigned int rb3d_stencilrefmask; +-    unsigned int rb3d_ropcntl; +-    unsigned int rb3d_planemask; +- +-    /* Viewport state */ +-    unsigned int se_vport_xscale; +-    unsigned int se_vport_xoffset; +-    unsigned int se_vport_yscale; +-    unsigned int se_vport_yoffset; +-    unsigned int se_vport_zscale; +-    unsigned int se_vport_zoffset; +- +-    /* Setup state */ +-    unsigned int se_cntl_status; +- +-    /* Misc state */ +-    unsigned int re_top_left; +-    unsigned int re_misc; +-} radeon_context_regs_t; +- +-/* Setup registers for each texture unit */ +-typedef struct { +-    unsigned int pp_txfilter; +-    unsigned int pp_txformat; +-    unsigned int pp_txoffset; +-    unsigned int pp_txcblend; +-    unsigned int pp_txablend; +-    unsigned int pp_tfactor; +-    unsigned int pp_border_color; +-} radeon_texture_regs_t; +- +-typedef struct { +-    /* The channel for communication of state information to the kernel +-     * on firing a vertex buffer. +-     */ +-    radeon_context_regs_t ContextState; +-    radeon_texture_regs_t TexState[RADEON_MAX_TEXTURE_UNITS]; +-    unsigned int dirty; +-    unsigned int vertsize; +-    unsigned int vc_format; +- +-    /* The current cliprects, or a subset thereof */ +-    drm_clip_rect_t boxes[RADEON_NR_SAREA_CLIPRECTS]; +-    unsigned int nbox; +- +-    /* Counters for throttling of rendering clients */ +-    unsigned int last_frame; +-    unsigned int last_dispatch; +-    unsigned int last_clear; +- +-    /* Maintain an LRU of contiguous regions of texture space.  If you +-     * think you own a region of texture memory, and it has an age +-     * different to the one you set, then you are mistaken and it has +-     * been stolen by another client.  If global texAge hasn't changed, +-     * there is no need to walk the list. +-     * +-     * These regions can be used as a proxy for the fine-grained texture +-     * information of other clients - by maintaining them in the same +-     * lru which is used to age their own textures, clients have an +-     * approximate lru for the whole of global texture space, and can +-     * make informed decisions as to which areas to kick out.  There is +-     * no need to choose whether to kick out your own texture or someone +-     * else's - simply eject them all in LRU order. +-     */ +-				/* Last elt is sentinal */ +-    drmTextureRegion texList[RADEON_NR_TEX_HEAPS][RADEON_NR_TEX_REGIONS+1]; +-				/* last time texture was uploaded */ +-    unsigned int texAge[RADEON_NR_TEX_HEAPS]; +- +-    int ctxOwner;		/* last context to upload state */ +-    int pfAllowPageFlip;	/* set by the 2d driver, read by the client */ +-    int pfCurrentPage;		/* set by kernel, read by others */ +-    int crtc2_base;		/* for pageflipping with CloneMode */ +-    int tiling_enabled;         /* set by drm, read by 2d + 3d clients */ +- } RADEONSAREAPriv, *RADEONSAREAPrivPtr; +- +-#endif +diff --git a/src/radeon_textured_video.c b/src/radeon_textured_video.c +index cfa349d..c185b46 100644 +--- a/src/radeon_textured_video.c ++++ b/src/radeon_textured_video.c +@@ -81,33 +81,43 @@ static __inline__ uint32_t F_TO_DW(float val) + } +  + #define ACCEL_MMIO +-#define VIDEO_PREAMBLE()	unsigned char *RADEONMMIO = info->MMIO +-#define BEGIN_VIDEO(n)		RADEONWaitForFifo(pScrn, (n)) +-#define OUT_VIDEO_REG(reg, val)	OUTREG(reg, val) +-#define OUT_VIDEO_REG_F(reg, val) OUTREG(reg, F_TO_DW(val)) +-#define FINISH_VIDEO() ++#define ACCEL_PREAMBLE()	unsigned char *RADEONMMIO = info->MMIO ++#define BEGIN_ACCEL(n)		RADEONWaitForFifo(pScrn, (n)) ++#define OUT_ACCEL_REG(reg, val)	OUTREG(reg, val) ++#define OUT_ACCEL_REG_F(reg, val) OUTREG(reg, F_TO_DW(val)) ++#define FINISH_ACCEL() +  + #include "radeon_textured_videofuncs.c" +  + #undef ACCEL_MMIO +-#undef VIDEO_PREAMBLE +-#undef BEGIN_VIDEO +-#undef OUT_VIDEO_REG +-#undef FINISH_VIDEO ++#undef ACCEL_PREAMBLE ++#undef BEGIN_ACCEL ++#undef OUT_ACCEL_REG ++#undef OUT_ACCEL_REG_F ++#undef FINISH_ACCEL +  + #ifdef XF86DRI +  + #define ACCEL_CP +-#define VIDEO_PREAMBLE()						\ ++#define ACCEL_PREAMBLE()						\ +     RING_LOCALS;							\ +     RADEONCP_REFRESH(pScrn, info) +-#define BEGIN_VIDEO(n)		BEGIN_RING(2*(n)) +-#define OUT_VIDEO_REG(reg, val)	OUT_RING_REG(reg, val) +-#define FINISH_VIDEO()		ADVANCE_RING() +-#define OUT_VIDEO_RING_F(x) OUT_RING(F_TO_DW(x)) ++#define BEGIN_ACCEL(n)		BEGIN_RING(2*(n)) ++#define OUT_ACCEL_REG(reg, val)	OUT_RING_REG(reg, val) ++#define OUT_ACCEL_REG_F(reg, val)	OUT_ACCEL_REG(reg, F_TO_DW(val)) ++#define FINISH_ACCEL()		ADVANCE_RING() ++#define OUT_RING_F(x) OUT_RING(F_TO_DW(x)) +  + #include "radeon_textured_videofuncs.c" +  ++#undef ACCEL_CP ++#undef ACCEL_PREAMBLE ++#undef BEGIN_ACCEL ++#undef OUT_ACCEL_REG ++#undef OUT_ACCEL_REG_F ++#undef FINISH_ACCEL ++#undef OUT_RING_F ++ + #endif /* XF86DRI */ +  + static int +@@ -187,18 +197,30 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn, +        dstPitch = (dstPitch + 15) & ~15; +  +     if (pPriv->video_memory != NULL && size != pPriv->size) { +-	RADEONFreeMemory(pScrn, pPriv->video_memory); ++	radeon_legacy_free_memory(pScrn, pPriv->video_memory); + 	pPriv->video_memory = NULL; +     } +  +     if (pPriv->video_memory == NULL) { +-	pPriv->video_offset = RADEONAllocateMemory(pScrn, +-						       &pPriv->video_memory, +-						       size * 2); ++	pPriv->video_offset = radeon_legacy_allocate_memory(pScrn, ++						            &pPriv->video_memory, ++						            size * 2, 64); + 	if (pPriv->video_offset == 0) + 	    return BadAlloc; +     } +  ++    /* Bicubic filter loading */ ++    if (!IS_R500_3D) ++	pPriv->bicubic_enabled = FALSE; ++    if (pPriv->bicubic_memory == NULL && pPriv->bicubic_enabled) { ++	pPriv->bicubic_offset = radeon_legacy_allocate_memory(pScrn, ++						              &pPriv->bicubic_memory, ++						              sizeof(bicubic_tex_512), 64); ++	pPriv->bicubic_src_offset = pPriv->bicubic_offset + info->fbLocation + pScrn->fbOffset; ++	if (pPriv->bicubic_offset == 0) ++		pPriv->bicubic_enabled = FALSE; ++    } ++ +     if (pDraw->type == DRAWABLE_WINDOW) + 	pPriv->pPixmap = (*pScreen->GetWindowPixmap)((WindowPtr)pDraw); +     else +@@ -267,6 +289,10 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn, + 	break; +     } +  ++    /* Upload bicubic filter tex */ ++    if (pPriv->bicubic_enabled) ++	RADEONCopyData(pScrn, (uint8_t *)bicubic_tex_512, (uint8_t *)(info->FB + pPriv->bicubic_offset), 1024, 1024, 1, 512, 2); ++ +     /* update cliplist */ +     if (!REGION_EQUAL(pScrn->pScreen, &pPriv->clip, clipBoxes)) { + 	REGION_COPY(pScrn->pScreen, &pPriv->clip, clipBoxes); +@@ -320,12 +346,16 @@ static XF86VideoFormatRec Formats[NUM_FORMATS] = +     {15, TrueColor}, {16, TrueColor}, {24, TrueColor} + }; +  +-#define NUM_ATTRIBUTES 0 ++#define NUM_ATTRIBUTES 1 +  +-static XF86AttributeRec Attributes[NUM_ATTRIBUTES] = ++static XF86AttributeRec Attributes[NUM_ATTRIBUTES+1] = + { ++    {XvSettable | XvGettable, 0, 1, "XV_BICUBIC"}, ++    {0, 0, 0, NULL} + }; +  ++static Atom xvBicubic; ++ + #define NUM_IMAGES 4 +  + static XF86ImageRec Images[NUM_IMAGES] = +@@ -336,6 +366,44 @@ static XF86ImageRec Images[NUM_IMAGES] = +     XVIMAGE_UYVY + }; +  ++int ++RADEONGetTexPortAttribute(ScrnInfoPtr  pScrn, ++		       Atom	    attribute, ++		       INT32	    *value, ++		       pointer	    data) ++{ ++    RADEONInfoPtr	info = RADEONPTR(pScrn); ++    RADEONPortPrivPtr	pPriv = (RADEONPortPrivPtr)data; ++ ++    if (info->accelOn) RADEON_SYNC(info, pScrn); ++ ++    if (attribute == xvBicubic) ++	*value = pPriv->bicubic_enabled ? 1 : 0; ++    else ++	return BadMatch; ++ ++    return Success; ++} ++ ++int ++RADEONSetTexPortAttribute(ScrnInfoPtr  pScrn, ++		       Atom	    attribute, ++		       INT32	    value, ++		       pointer	    data) ++{ ++    RADEONInfoPtr	info = RADEONPTR(pScrn); ++    RADEONPortPrivPtr	pPriv = (RADEONPortPrivPtr)data; ++ ++    RADEON_SYNC(info, pScrn); ++ ++    if (attribute == xvBicubic) ++	pPriv->bicubic_enabled = ClipValue (value, 0, 1); ++    else ++	return BadMatch; ++ ++    return Success; ++} ++ + XF86VideoAdaptorPtr + RADEONSetupImageTexturedVideo(ScreenPtr pScreen) + { +@@ -351,6 +419,8 @@ RADEONSetupImageTexturedVideo(ScreenPtr pScreen) +     if (adapt == NULL) + 	return NULL; +  ++    xvBicubic         = MAKE_ATOM("XV_BICUBIC"); ++ +     adapt->type = XvWindowMask | XvInputMask | XvImageMask; +     adapt->flags = 0; +     adapt->name = "Radeon Textured Video"; +@@ -367,8 +437,13 @@ RADEONSetupImageTexturedVideo(ScreenPtr pScreen) +     pPortPriv = + 	(RADEONPortPrivPtr)(&adapt->pPortPrivates[num_texture_ports]); +  +-    adapt->nAttributes = NUM_ATTRIBUTES; +-    adapt->pAttributes = Attributes; ++    if (IS_R500_3D) { ++	adapt->nAttributes = NUM_ATTRIBUTES; ++	adapt->pAttributes = Attributes; ++    } else { ++	adapt->nAttributes = 0; ++	adapt->pAttributes = NULL; ++    } +     adapt->pImages = Images; +     adapt->nImages = NUM_IMAGES; +     adapt->PutVideo = NULL; +@@ -376,8 +451,8 @@ RADEONSetupImageTexturedVideo(ScreenPtr pScreen) +     adapt->GetVideo = NULL; +     adapt->GetStill = NULL; +     adapt->StopVideo = RADEONStopVideo; +-    adapt->SetPortAttribute = RADEONSetPortAttribute; +-    adapt->GetPortAttribute = RADEONGetPortAttribute; ++    adapt->SetPortAttribute = RADEONSetTexPortAttribute; ++    adapt->GetPortAttribute = RADEONGetTexPortAttribute; +     adapt->QueryBestSize = RADEONQueryBestSize; +     adapt->PutImage = RADEONPutImageTextured; +     adapt->ReputImage = NULL; +@@ -390,6 +465,7 @@ RADEONSetupImageTexturedVideo(ScreenPtr pScreen) + 	pPriv->videoStatus = 0; + 	pPriv->currentBuffer = 0; + 	pPriv->doubleBuffer = 0; ++	pPriv->bicubic_enabled = (info->ChipFamily >= CHIP_FAMILY_RV515); +  + 	/* gotta uninit this someplace, XXX: shouldn't be necessary for textured */ + 	REGION_NULL(pScreen, &pPriv->clip); +diff --git a/src/radeon_textured_videofuncs.c b/src/radeon_textured_videofuncs.c +index 277d9b2..c5ad0e1 100644 +--- a/src/radeon_textured_videofuncs.c ++++ b/src/radeon_textured_videofuncs.c +@@ -45,26 +45,47 @@ + #endif + #endif +  ++#define VTX_DWORD_COUNT_FILTER 6 + #define VTX_DWORD_COUNT 4 +  + #ifdef ACCEL_CP +  ++#define VTX_OUT_FILTER(_dstX, _dstY, _srcX, _srcY, _maskX, _maskY)	\ ++do {									\ ++    OUT_RING_F(_dstX);						\ ++    OUT_RING_F(_dstY);						\ ++    OUT_RING_F(_srcX);						\ ++    OUT_RING_F(_srcY);						\ ++    OUT_RING_F(_maskX);						\ ++    OUT_RING_F(_maskY);						\ ++} while (0) ++ + #define VTX_OUT(_dstX, _dstY, _srcX, _srcY)	\ + do {								\ +-    OUT_VIDEO_RING_F(_dstX);						\ +-    OUT_VIDEO_RING_F(_dstY);						\ +-    OUT_VIDEO_RING_F(_srcX);						\ +-    OUT_VIDEO_RING_F(_srcY);						\ ++    OUT_RING_F(_dstX);						\ ++    OUT_RING_F(_dstY);						\ ++    OUT_RING_F(_srcX);						\ ++    OUT_RING_F(_srcY);						\ + } while (0) +  + #else /* ACCEL_CP */ +  ++#define VTX_OUT_FILTER(_dstX, _dstY, _srcX, _srcY, _maskX, _maskY)	\ ++do {									\ ++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _dstX);			\ ++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _dstY);			\ ++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _srcX);			\ ++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _srcY);			\ ++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _maskX);			\ ++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _maskY);			\ ++} while (0) ++ + #define VTX_OUT(_dstX, _dstY, _srcX, _srcY)	\ + do {								\ +-    OUT_VIDEO_REG_F(RADEON_SE_PORT_DATA0, _dstX);		\ +-    OUT_VIDEO_REG_F(RADEON_SE_PORT_DATA0, _dstY);		\ +-    OUT_VIDEO_REG_F(RADEON_SE_PORT_DATA0, _srcX);		\ +-    OUT_VIDEO_REG_F(RADEON_SE_PORT_DATA0, _srcY);		\ ++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _dstX);		\ ++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _dstY);		\ ++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _srcX);		\ ++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _srcY);		\ + } while (0) +  + #endif /* !ACCEL_CP */ +@@ -79,10 +100,10 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv +     uint32_t dst_offset, dst_pitch, dst_format; +     uint32_t txenable, colorpitch; +     uint32_t blendcntl; +-    int dstxoff, dstyoff, pixel_shift; ++    int dstxoff, dstyoff, pixel_shift, vtx_count; +     BoxPtr pBox = REGION_RECTS(&pPriv->clip); +     int nBox = REGION_NUM_RECTS(&pPriv->clip); +-    VIDEO_PREAMBLE(); ++    ACCEL_PREAMBLE(); +  +     pixel_shift = pPixmap->drawable.bitsPerPixel >> 4; +  +@@ -106,22 +127,27 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv +     dstyoff = 0; + #endif +  +-    if (!info->XInited3D) ++    if (!info->accel_state->XInited3D) + 	RADEONInit3DEngine(pScrn); +  +     /* we can probably improve this */ +-    BEGIN_VIDEO(2); ++    BEGIN_ACCEL(2); +     if (IS_R300_3D || IS_R500_3D) +-	OUT_VIDEO_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_DC_FLUSH_3D); ++	OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_DC_FLUSH_3D); +     else +-	OUT_VIDEO_REG(RADEON_RB3D_DSTCACHE_CTLSTAT, RADEON_RB3D_DC_FLUSH); ++	OUT_ACCEL_REG(RADEON_RB3D_DSTCACHE_CTLSTAT, RADEON_RB3D_DC_FLUSH); +     /* We must wait for 3d to idle, in case source was just written as a dest. */ +-    OUT_VIDEO_REG(RADEON_WAIT_UNTIL, ++    OUT_ACCEL_REG(RADEON_WAIT_UNTIL, + 		  RADEON_WAIT_HOST_IDLECLEAN | + 		  RADEON_WAIT_2D_IDLECLEAN | + 		  RADEON_WAIT_3D_IDLECLEAN | + 		  RADEON_WAIT_DMA_GUI_IDLE); +-    FINISH_VIDEO(); ++    FINISH_ACCEL(); ++ ++    if (pPriv->bicubic_enabled) ++	vtx_count = VTX_DWORD_COUNT_FILTER; ++    else ++	vtx_count = VTX_DWORD_COUNT; +  +     if (IS_R300_3D || IS_R500_3D) { + 	uint32_t output_fmt; +@@ -160,16 +186,17 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv + 	txformat1 |= R300_TX_FORMAT_YUV_TO_RGB_CLAMP; +  + 	txformat0 = ((((pPriv->w - 1) & 0x7ff) << R300_TXWIDTH_SHIFT) | +-		     (((pPriv->h - 1) & 0x7ff) << R300_TXHEIGHT_SHIFT)); +- +-	txformat0 |= R300_TXPITCH_EN; ++		     (((pPriv->h - 1) & 0x7ff) << R300_TXHEIGHT_SHIFT) | ++		     R300_TXPITCH_EN); +  +-	info->texW[0] = pPriv->w; +-	info->texH[0] = pPriv->h; ++	info->accel_state->texW[0] = pPriv->w; ++	info->accel_state->texH[0] = pPriv->h; +  + 	txfilter = (R300_TX_CLAMP_S(R300_TX_CLAMP_CLAMP_LAST) | + 		    R300_TX_CLAMP_T(R300_TX_CLAMP_CLAMP_LAST) | +-		    R300_TX_MAG_FILTER_LINEAR | R300_TX_MIN_FILTER_LINEAR); ++		    R300_TX_MAG_FILTER_LINEAR | ++		    R300_TX_MIN_FILTER_LINEAR | ++		    (0 << R300_TX_ID_SHIFT)); +  + 	/* pitch is in pixels */ + 	txpitch = pPriv->src_pitch / 2; +@@ -183,22 +210,58 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv +  + 	txoffset = pPriv->src_offset; +  +-	BEGIN_VIDEO(6); +-	OUT_VIDEO_REG(R300_TX_FILTER0_0, txfilter); +-	OUT_VIDEO_REG(R300_TX_FILTER1_0, 0); +-	OUT_VIDEO_REG(R300_TX_FORMAT0_0, txformat0); +-	OUT_VIDEO_REG(R300_TX_FORMAT1_0, txformat1); +-	OUT_VIDEO_REG(R300_TX_FORMAT2_0, txpitch); +-	OUT_VIDEO_REG(R300_TX_OFFSET_0, txoffset); +-	FINISH_VIDEO(); ++	BEGIN_ACCEL(6); ++	OUT_ACCEL_REG(R300_TX_FILTER0_0, txfilter); ++	OUT_ACCEL_REG(R300_TX_FILTER1_0, 0); ++	OUT_ACCEL_REG(R300_TX_FORMAT0_0, txformat0); ++	OUT_ACCEL_REG(R300_TX_FORMAT1_0, txformat1); ++	OUT_ACCEL_REG(R300_TX_FORMAT2_0, txpitch); ++	OUT_ACCEL_REG(R300_TX_OFFSET_0, txoffset); ++	FINISH_ACCEL(); +  + 	txenable = R300_TEX_0_ENABLE; +  ++	if (pPriv->bicubic_enabled) { ++		/* Size is 128x1 */ ++		txformat0 = ((0x7f << R300_TXWIDTH_SHIFT) | ++			     (0x0 << R300_TXHEIGHT_SHIFT) | ++			     R300_TXPITCH_EN); ++		/* Format is 32-bit floats, 4bpp */ ++		txformat1 = R300_EASY_TX_FORMAT(Z, Y, X, W, FL_R16G16B16A16); ++		/* Pitch is 127 (128-1) */ ++		txpitch = 0x7f; ++		/* Tex filter */ ++		txfilter = (R300_TX_CLAMP_S(R300_TX_CLAMP_WRAP) | ++			    R300_TX_CLAMP_T(R300_TX_CLAMP_WRAP) | ++			    R300_TX_MIN_FILTER_NEAREST | ++			    R300_TX_MAG_FILTER_NEAREST | ++			    (1 << R300_TX_ID_SHIFT)); ++ ++		BEGIN_ACCEL(6); ++		OUT_ACCEL_REG(R300_TX_FILTER0_1, txfilter); ++		OUT_ACCEL_REG(R300_TX_FILTER1_1, 0); ++		OUT_ACCEL_REG(R300_TX_FORMAT0_1, txformat0); ++		OUT_ACCEL_REG(R300_TX_FORMAT1_1, txformat1); ++		OUT_ACCEL_REG(R300_TX_FORMAT2_1, txpitch); ++		OUT_ACCEL_REG(R300_TX_OFFSET_1, pPriv->bicubic_src_offset); ++		FINISH_ACCEL(); ++ ++		/* Enable tex 1 */ ++		txenable |= R300_TEX_1_ENABLE; ++	} ++ + 	/* setup the VAP */ +-	if (info->has_tcl) +-	    BEGIN_VIDEO(6); +-	else +-	    BEGIN_VIDEO(4); ++	if (info->accel_state->has_tcl) { ++	    if (pPriv->bicubic_enabled) ++		BEGIN_ACCEL(7); ++	    else ++		BEGIN_ACCEL(6); ++	} else { ++	    if (pPriv->bicubic_enabled) ++		BEGIN_ACCEL(5); ++	    else ++		BEGIN_ACCEL(4); ++	} +  + 	/* These registers define the number, type, and location of data submitted + 	 * to the PVS unit of GA input (when PVS is disabled) +@@ -213,56 +276,90 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv + 	 * Textures 0-7 + 	 * Fog + 	 */ +-	OUT_VIDEO_REG(R300_VAP_PROG_STREAM_CNTL_0, +-		      ((R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_0_SHIFT) | +-		       (0 << R300_SKIP_DWORDS_0_SHIFT) | +-		       (0 << R300_DST_VEC_LOC_0_SHIFT) | +-		       R300_SIGNED_0 | +-		       (R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_1_SHIFT) | +-		       (0 << R300_SKIP_DWORDS_1_SHIFT) | +-		       (6 << R300_DST_VEC_LOC_1_SHIFT) | +-		       R300_LAST_VEC_1 | +-		       R300_SIGNED_1)); ++	if (pPriv->bicubic_enabled) { ++	    OUT_ACCEL_REG(R300_VAP_PROG_STREAM_CNTL_0, ++			  ((R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_0_SHIFT) | ++			   (0 << R300_SKIP_DWORDS_0_SHIFT) | ++			   (0 << R300_DST_VEC_LOC_0_SHIFT) | ++			   R300_SIGNED_0 | ++			   (R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_1_SHIFT) | ++			   (0 << R300_SKIP_DWORDS_1_SHIFT) | ++			   (6 << R300_DST_VEC_LOC_1_SHIFT) | ++			   R300_SIGNED_1)); ++	    OUT_ACCEL_REG(R300_VAP_PROG_STREAM_CNTL_1, ++			  ((R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_2_SHIFT) | ++			   (0 << R300_SKIP_DWORDS_2_SHIFT) | ++			   (7 << R300_DST_VEC_LOC_2_SHIFT) | ++			   R300_LAST_VEC_2 | ++			   R300_SIGNED_2)); ++	} else { ++	    OUT_ACCEL_REG(R300_VAP_PROG_STREAM_CNTL_0, ++			  ((R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_0_SHIFT) | ++			   (0 << R300_SKIP_DWORDS_0_SHIFT) | ++			   (0 << R300_DST_VEC_LOC_0_SHIFT) | ++			   R300_SIGNED_0 | ++			   (R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_1_SHIFT) | ++			   (0 << R300_SKIP_DWORDS_1_SHIFT) | ++			   (6 << R300_DST_VEC_LOC_1_SHIFT) | ++			   R300_LAST_VEC_1 | ++			   R300_SIGNED_1)); ++	} +  + 	/* load the vertex shader + 	 * We pre-load vertex programs in RADEONInit3DEngine(): ++	 * - exa mask/Xv bicubic + 	 * - exa no mask +-	 * - exa mask + 	 * - Xv + 	 * Here we select the offset of the vertex program we want to use + 	 */ +-	if (info->has_tcl) { +-	    OUT_VIDEO_REG(R300_VAP_PVS_CODE_CNTL_0, +-			  ((5 << R300_PVS_FIRST_INST_SHIFT) | +-			   (6 << R300_PVS_XYZW_VALID_INST_SHIFT) | +-			   (6 << R300_PVS_LAST_INST_SHIFT))); +-	    OUT_VIDEO_REG(R300_VAP_PVS_CODE_CNTL_1, +-			  (6 << R300_PVS_LAST_VTX_SRC_INST_SHIFT)); ++	if (info->accel_state->has_tcl) { ++	    if (pPriv->bicubic_enabled) { ++		OUT_ACCEL_REG(R300_VAP_PVS_CODE_CNTL_0, ++			      ((0 << R300_PVS_FIRST_INST_SHIFT) | ++			       (2 << R300_PVS_XYZW_VALID_INST_SHIFT) | ++			       (2 << R300_PVS_LAST_INST_SHIFT))); ++		OUT_ACCEL_REG(R300_VAP_PVS_CODE_CNTL_1, ++			      (2 << R300_PVS_LAST_VTX_SRC_INST_SHIFT)); ++	    } else { ++		OUT_ACCEL_REG(R300_VAP_PVS_CODE_CNTL_0, ++			      ((5 << R300_PVS_FIRST_INST_SHIFT) | ++			       (6 << R300_PVS_XYZW_VALID_INST_SHIFT) | ++			       (6 << R300_PVS_LAST_INST_SHIFT))); ++		OUT_ACCEL_REG(R300_VAP_PVS_CODE_CNTL_1, ++			      (6 << R300_PVS_LAST_VTX_SRC_INST_SHIFT)); ++	    } + 	} +  + 	/* Position and one set of 2 texture coordinates */ +-	OUT_VIDEO_REG(R300_VAP_OUT_VTX_FMT_0, R300_VTX_POS_PRESENT); +-	OUT_VIDEO_REG(R300_VAP_OUT_VTX_FMT_1, (2 << R300_TEX_0_COMP_CNT_SHIFT)); +-	OUT_VIDEO_REG(R300_US_OUT_FMT_0, output_fmt); +-	FINISH_VIDEO(); ++	OUT_ACCEL_REG(R300_VAP_OUT_VTX_FMT_0, R300_VTX_POS_PRESENT); ++	if (pPriv->bicubic_enabled) ++	    OUT_ACCEL_REG(R300_VAP_OUT_VTX_FMT_1, ((2 << R300_TEX_0_COMP_CNT_SHIFT) | ++						   (2 << R300_TEX_1_COMP_CNT_SHIFT))); ++	else ++	    OUT_ACCEL_REG(R300_VAP_OUT_VTX_FMT_1, (2 << R300_TEX_0_COMP_CNT_SHIFT)); ++ ++	OUT_ACCEL_REG(R300_US_OUT_FMT_0, output_fmt); ++	FINISH_ACCEL(); +  + 	/* setup pixel shader */ + 	if (IS_R300_3D) { +-	    BEGIN_VIDEO(8); ++	    BEGIN_ACCEL(9); + 	    /* 2 components: 2 for tex0 */ +-	    OUT_VIDEO_REG(R300_RS_COUNT, ++	    OUT_ACCEL_REG(R300_RS_COUNT, + 			  ((2 << R300_RS_COUNT_IT_COUNT_SHIFT) | + 			   R300_RS_COUNT_HIRES_EN)); + 	    /* R300_INST_COUNT_RS - highest RS instruction used */ +-	    OUT_VIDEO_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0) | R300_TX_OFFSET_RS(6)); ++	    OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0) | R300_TX_OFFSET_RS(6)); +  +-	    OUT_VIDEO_REG(R300_US_CODE_OFFSET, ++	    OUT_ACCEL_REG(R300_US_PIXSIZE, 0); /* highest temp used */ ++ ++	    OUT_ACCEL_REG(R300_US_CODE_OFFSET, + 			  (R300_ALU_CODE_OFFSET(0) | + 			   R300_ALU_CODE_SIZE(1) | + 			   R300_TEX_CODE_OFFSET(0) | + 			   R300_TEX_CODE_SIZE(1))); +  +-	    OUT_VIDEO_REG(R300_US_CODE_ADDR_3, ++	    OUT_ACCEL_REG(R300_US_CODE_ADDR_3, + 			  (R300_ALU_START(0) | + 			   R300_ALU_SIZE(0) | + 			   R300_TEX_START(0) | +@@ -273,7 +370,7 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv +  + 	    /* ALU inst */ + 	    /* RGB */ +-	    OUT_VIDEO_REG(R300_US_ALU_RGB_ADDR_0, ++	    OUT_ACCEL_REG(R300_US_ALU_RGB_ADDR_0, + 			  (R300_ALU_RGB_ADDR0(0) | + 			   R300_ALU_RGB_ADDR1(0) | + 			   R300_ALU_RGB_ADDR2(0) | +@@ -282,7 +379,7 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv + 					       R300_ALU_RGB_MASK_G | + 					       R300_ALU_RGB_MASK_B)) | + 			   R300_ALU_RGB_TARGET_A)); +-	    OUT_VIDEO_REG(R300_US_ALU_RGB_INST_0, ++	    OUT_ACCEL_REG(R300_US_ALU_RGB_INST_0, + 			  (R300_ALU_RGB_SEL_A(R300_ALU_RGB_SRC0_RGB) | + 			   R300_ALU_RGB_MOD_A(R300_ALU_RGB_MOD_NOP) | + 			   R300_ALU_RGB_SEL_B(R300_ALU_RGB_1_0) | +@@ -293,7 +390,7 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv + 			   R300_ALU_RGB_OMOD(R300_ALU_RGB_OMOD_NONE) | + 			   R300_ALU_RGB_CLAMP)); + 	    /* Alpha */ +-	    OUT_VIDEO_REG(R300_US_ALU_ALPHA_ADDR_0, ++	    OUT_ACCEL_REG(R300_US_ALU_ALPHA_ADDR_0, + 			  (R300_ALU_ALPHA_ADDR0(0) | + 			   R300_ALU_ALPHA_ADDR1(0) | + 			   R300_ALU_ALPHA_ADDR2(0) | +@@ -301,7 +398,7 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv + 			   R300_ALU_ALPHA_OMASK(R300_ALU_ALPHA_MASK_A) | + 			   R300_ALU_ALPHA_TARGET_A | + 			   R300_ALU_ALPHA_OMASK_W(R300_ALU_ALPHA_MASK_NONE))); +-	    OUT_VIDEO_REG(R300_US_ALU_ALPHA_INST_0, ++	    OUT_ACCEL_REG(R300_US_ALU_ALPHA_INST_0, + 			  (R300_ALU_ALPHA_SEL_A(R300_ALU_ALPHA_SRC0_A) | + 			   R300_ALU_ALPHA_MOD_A(R300_ALU_ALPHA_MOD_NOP) | + 			   R300_ALU_ALPHA_SEL_B(R300_ALU_ALPHA_1_0) | +@@ -311,118 +408,591 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv + 			   R300_ALU_ALPHA_OP(R300_ALU_ALPHA_OP_MAD) | + 			   R300_ALU_ALPHA_OMOD(R300_ALU_ALPHA_OMOD_NONE) | + 			   R300_ALU_ALPHA_CLAMP)); +-	    FINISH_VIDEO(); ++	    FINISH_ACCEL(); + 	} else { +-	    BEGIN_VIDEO(18); +-	    /* 2 components: 2 for tex0 */ +-	    OUT_VIDEO_REG(R300_RS_COUNT, +-			  ((2 << R300_RS_COUNT_IT_COUNT_SHIFT) | +-			   R300_RS_COUNT_HIRES_EN)); +- +-	    /* R300_INST_COUNT_RS - highest RS instruction used */ +-	    OUT_VIDEO_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0) | R300_TX_OFFSET_RS(6)); +- +-	    OUT_VIDEO_REG(R500_US_CODE_ADDR, (R500_US_CODE_START_ADDR(0) | +-					      R500_US_CODE_END_ADDR(1))); +-	    OUT_VIDEO_REG(R500_US_CODE_RANGE, (R500_US_CODE_RANGE_ADDR(0) | +-					       R500_US_CODE_RANGE_SIZE(1))); +-	    OUT_VIDEO_REG(R500_US_CODE_OFFSET, 0); +-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_INDEX, 0); +- +-	    /* tex inst */ +-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX | +-						   R500_INST_TEX_SEM_WAIT | +-						   R500_INST_RGB_WMASK_R | +-						   R500_INST_RGB_WMASK_G | +-						   R500_INST_RGB_WMASK_B | +-						   R500_INST_ALPHA_WMASK | +-						   R500_INST_RGB_CLAMP | +-						   R500_INST_ALPHA_CLAMP)); +- +-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) | +-						   R500_TEX_INST_LD | +-						   R500_TEX_SEM_ACQUIRE | +-						   R500_TEX_IGNORE_UNCOVERED)); +- +-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(0) | +-						   R500_TEX_SRC_S_SWIZ_R | +-						   R500_TEX_SRC_T_SWIZ_G | +-						   R500_TEX_DST_ADDR(0) | +-						   R500_TEX_DST_R_SWIZ_R | +-						   R500_TEX_DST_G_SWIZ_G | +-						   R500_TEX_DST_B_SWIZ_B | +-						   R500_TEX_DST_A_SWIZ_A)); +-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_DX_ADDR(0) | +-						   R500_DX_S_SWIZ_R | +-						   R500_DX_T_SWIZ_R | +-						   R500_DX_R_SWIZ_R | +-						   R500_DX_Q_SWIZ_R | +-						   R500_DY_ADDR(0) | +-						   R500_DY_S_SWIZ_R | +-						   R500_DY_T_SWIZ_R | +-						   R500_DY_R_SWIZ_R | +-						   R500_DY_Q_SWIZ_R)); +-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, 0x00000000); +-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, 0x00000000); +- +-	    /* ALU inst */ +-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_OUT | +-						   R500_INST_TEX_SEM_WAIT | +-						   R500_INST_LAST | +-						   R500_INST_RGB_OMASK_R | +-						   R500_INST_RGB_OMASK_G | +-						   R500_INST_RGB_OMASK_B | +-						   R500_INST_ALPHA_OMASK | +-						   R500_INST_RGB_CLAMP | +-						   R500_INST_ALPHA_CLAMP)); +- +-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) | +-						   R500_RGB_ADDR1(0) | +-						   R500_RGB_ADDR1_CONST | +-						   R500_RGB_ADDR2(0) | +-						   R500_RGB_ADDR2_CONST)); +-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) | +-						   R500_ALPHA_ADDR1(0) | +-						   R500_ALPHA_ADDR1_CONST | +-						   R500_ALPHA_ADDR2(0) | +-						   R500_ALPHA_ADDR2_CONST)); +- +-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC0 | +-						   R500_ALU_RGB_R_SWIZ_A_R | +-						   R500_ALU_RGB_G_SWIZ_A_G | +-						   R500_ALU_RGB_B_SWIZ_A_B | +-						   R500_ALU_RGB_SEL_B_SRC0 | +-						   R500_ALU_RGB_R_SWIZ_B_1 | +-						   R500_ALU_RGB_B_SWIZ_B_1 | +-						   R500_ALU_RGB_G_SWIZ_B_1)); +- +-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_OP_MAD | +-						   R500_ALPHA_SWIZ_A_A | +-						   R500_ALPHA_SWIZ_B_1)); +- +-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_OP_MAD | +-						   R500_ALU_RGBA_R_SWIZ_0 | +-						   R500_ALU_RGBA_G_SWIZ_0 | +-						   R500_ALU_RGBA_B_SWIZ_0 | +-						   R500_ALU_RGBA_A_SWIZ_0)); +-	    FINISH_VIDEO(); ++	    if (pPriv->bicubic_enabled) { ++		BEGIN_ACCEL(7); ++ ++		/* 4 components: 2 for tex0 and 2 for tex1 */ ++		OUT_ACCEL_REG(R300_RS_COUNT, ++			      ((4 << R300_RS_COUNT_IT_COUNT_SHIFT) | ++			       R300_RS_COUNT_HIRES_EN)); ++ ++		/* R300_INST_COUNT_RS - highest RS instruction used */ ++		OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(1) | R300_TX_OFFSET_RS(6)); ++ ++		/* Pixel stack frame size. */ ++		OUT_ACCEL_REG(R300_US_PIXSIZE, 5); ++ ++		/* FP length. */ ++		OUT_ACCEL_REG(R500_US_CODE_ADDR, (R500_US_CODE_START_ADDR(0) | ++						  R500_US_CODE_END_ADDR(13))); ++		OUT_ACCEL_REG(R500_US_CODE_RANGE, (R500_US_CODE_RANGE_ADDR(0) | ++						   R500_US_CODE_RANGE_SIZE(13))); ++ ++		/* Prepare for FP emission. */ ++		OUT_ACCEL_REG(R500_US_CODE_OFFSET, 0); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, R500_US_VECTOR_INST_INDEX(0)); ++		FINISH_ACCEL(); ++ ++		BEGIN_ACCEL(89); ++		/* Pixel shader. ++		 * I've gone ahead and annotated each instruction, since this ++		 * thing is MASSIVE. :3 ++		 * Note: In order to avoid buggies with temps and multiple ++		 * inputs, all temps are offset by 2. temp0 -> register2. */ ++ ++		/* TEX temp2, input1.xxxx, tex1, 1D */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(1) | ++						       R500_TEX_INST_LD | ++						       R500_TEX_IGNORE_UNCOVERED)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(1) | ++						       R500_TEX_SRC_S_SWIZ_R | ++						       R500_TEX_SRC_T_SWIZ_R | ++						       R500_TEX_SRC_R_SWIZ_R | ++						       R500_TEX_SRC_Q_SWIZ_R | ++						       R500_TEX_DST_ADDR(2) | ++						       R500_TEX_DST_R_SWIZ_R | ++						       R500_TEX_DST_G_SWIZ_G | ++						       R500_TEX_DST_B_SWIZ_B | ++						       R500_TEX_DST_A_SWIZ_A)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++ ++		/* TEX temp5, input1.yyyy, tex1, 1D */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX | ++						       R500_INST_TEX_SEM_WAIT | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(1) | ++						       R500_TEX_INST_LD | ++						       R500_TEX_SEM_ACQUIRE | ++						       R500_TEX_IGNORE_UNCOVERED)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(1) | ++						       R500_TEX_SRC_S_SWIZ_G | ++						       R500_TEX_SRC_T_SWIZ_G | ++						       R500_TEX_SRC_R_SWIZ_G | ++						       R500_TEX_SRC_Q_SWIZ_G | ++						       R500_TEX_DST_ADDR(5) | ++						       R500_TEX_DST_R_SWIZ_R | ++						       R500_TEX_DST_G_SWIZ_G | ++						       R500_TEX_DST_B_SWIZ_B | ++						       R500_TEX_DST_A_SWIZ_A)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++ ++		/* MUL temp4, const0.x0x0, temp2.yyxx */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU | ++						       R500_INST_TEX_SEM_WAIT | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B | ++						       R500_INST_ALPHA_WMASK)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) | ++						       R500_RGB_ADDR0_CONST | ++						       R500_RGB_ADDR1(2))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) | ++						       R500_ALPHA_ADDR0_CONST | ++						       R500_ALPHA_ADDR1(2))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC0 | ++						       R500_ALU_RGB_R_SWIZ_A_R | ++						       R500_ALU_RGB_G_SWIZ_A_0 | ++						       R500_ALU_RGB_B_SWIZ_A_R | ++						       R500_ALU_RGB_SEL_B_SRC1 | ++						       R500_ALU_RGB_R_SWIZ_B_G | ++						       R500_ALU_RGB_G_SWIZ_B_G | ++						       R500_ALU_RGB_B_SWIZ_B_R)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(4) | ++						       R500_ALPHA_OP_MAD | ++						       R500_ALPHA_SEL_A_SRC0 | ++						       R500_ALPHA_SWIZ_A_0 | ++						       R500_ALPHA_SEL_B_SRC1 | ++						       R500_ALPHA_SWIZ_B_R)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(4) | ++						       R500_ALU_RGBA_OP_MAD | ++						       R500_ALU_RGBA_R_SWIZ_0 | ++						       R500_ALU_RGBA_G_SWIZ_0 | ++						       R500_ALU_RGBA_B_SWIZ_0 | ++						       R500_ALU_RGBA_A_SWIZ_0)); ++ ++		/* MAD temp3, const0.0y0y, temp5.xxxx, temp4 */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B | ++						       R500_INST_ALPHA_WMASK)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) | ++						       R500_RGB_ADDR0_CONST | ++						       R500_RGB_ADDR1(5) | ++						       R500_RGB_ADDR2(4))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) | ++						       R500_ALPHA_ADDR0_CONST | ++						       R500_ALPHA_ADDR1(5) | ++						       R500_ALPHA_ADDR2(4))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC0 | ++						       R500_ALU_RGB_R_SWIZ_A_0 | ++						       R500_ALU_RGB_G_SWIZ_A_G | ++						       R500_ALU_RGB_B_SWIZ_A_0 | ++						       R500_ALU_RGB_SEL_B_SRC1 | ++						       R500_ALU_RGB_R_SWIZ_B_R | ++						       R500_ALU_RGB_G_SWIZ_B_R | ++						       R500_ALU_RGB_B_SWIZ_B_R)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(3) | ++						       R500_ALPHA_OP_MAD | ++						       R500_ALPHA_SEL_A_SRC0 | ++						       R500_ALPHA_SWIZ_A_G | ++						       R500_ALPHA_SEL_B_SRC1 | ++						       R500_ALPHA_SWIZ_B_R)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(3) | ++						       R500_ALU_RGBA_OP_MAD | ++						       R500_ALU_RGBA_SEL_C_SRC2 | ++						       R500_ALU_RGBA_R_SWIZ_R | ++						       R500_ALU_RGBA_G_SWIZ_G | ++						       R500_ALU_RGBA_B_SWIZ_B | ++						       R500_ALU_RGBA_A_SWIZ_A)); ++ ++		/* ADD temp3, temp3, input0.xyxy */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B | ++						       R500_INST_ALPHA_WMASK)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR1(3) | ++						       R500_RGB_ADDR2(0))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR1(3) | ++						       R500_ALPHA_ADDR2(0))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_R_SWIZ_A_1 | ++						       R500_ALU_RGB_G_SWIZ_A_1 | ++						       R500_ALU_RGB_B_SWIZ_A_1 | ++						       R500_ALU_RGB_SEL_B_SRC1 | ++						       R500_ALU_RGB_R_SWIZ_B_R | ++						       R500_ALU_RGB_G_SWIZ_B_G | ++						       R500_ALU_RGB_B_SWIZ_B_B)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(3) | ++						       R500_ALPHA_OP_MAD | ++						       R500_ALPHA_SWIZ_A_1 | ++						       R500_ALPHA_SEL_B_SRC1 | ++						       R500_ALPHA_SWIZ_B_A)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(3) | ++						       R500_ALU_RGBA_OP_MAD | ++						       R500_ALU_RGBA_SEL_C_SRC2 | ++						       R500_ALU_RGBA_R_SWIZ_R | ++						       R500_ALU_RGBA_G_SWIZ_G | ++						       R500_ALU_RGBA_B_SWIZ_R | ++						       R500_ALU_RGBA_A_SWIZ_G)); ++ ++		/* TEX temp1, temp3.zwxy, tex0, 1D */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B | ++						       R500_INST_ALPHA_WMASK)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) | ++						       R500_TEX_INST_LD | ++						       R500_TEX_IGNORE_UNCOVERED)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(3) | ++						       R500_TEX_SRC_S_SWIZ_B | ++						       R500_TEX_SRC_T_SWIZ_A | ++						       R500_TEX_SRC_R_SWIZ_R | ++						       R500_TEX_SRC_Q_SWIZ_G | ++						       R500_TEX_DST_ADDR(1) | ++						       R500_TEX_DST_R_SWIZ_R | ++						       R500_TEX_DST_G_SWIZ_G | ++						       R500_TEX_DST_B_SWIZ_B | ++						       R500_TEX_DST_A_SWIZ_A)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++ ++		/* TEX temp3, temp3.xyzw, tex0, 1D */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX | ++						       R500_INST_TEX_SEM_WAIT | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B | ++						       R500_INST_ALPHA_WMASK)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) | ++						       R500_TEX_INST_LD | ++						       R500_TEX_SEM_ACQUIRE | ++						       R500_TEX_IGNORE_UNCOVERED)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(3) | ++						       R500_TEX_SRC_S_SWIZ_R | ++						       R500_TEX_SRC_T_SWIZ_G | ++						       R500_TEX_SRC_R_SWIZ_B | ++						       R500_TEX_SRC_Q_SWIZ_A | ++						       R500_TEX_DST_ADDR(3) | ++						       R500_TEX_DST_R_SWIZ_R | ++						       R500_TEX_DST_G_SWIZ_G | ++						       R500_TEX_DST_B_SWIZ_B | ++						       R500_TEX_DST_A_SWIZ_A)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++ ++		/* MAD temp4, const1.0y0y, temp5.yyyy, temp4 */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B | ++						       R500_INST_ALPHA_WMASK)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) | ++						       R500_RGB_ADDR0_CONST | ++						       R500_RGB_ADDR1(5) | ++						       R500_RGB_ADDR2(4))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) | ++						       R500_ALPHA_ADDR0_CONST | ++						       R500_ALPHA_ADDR1(5) | ++						       R500_ALPHA_ADDR2(4))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC0 | ++						       R500_ALU_RGB_R_SWIZ_A_0 | ++						       R500_ALU_RGB_G_SWIZ_A_G | ++						       R500_ALU_RGB_B_SWIZ_A_0 | ++						       R500_ALU_RGB_SEL_B_SRC1 | ++						       R500_ALU_RGB_R_SWIZ_B_G | ++						       R500_ALU_RGB_G_SWIZ_B_G | ++						       R500_ALU_RGB_B_SWIZ_B_G)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(4) | ++						       R500_ALPHA_OP_MAD | ++						       R500_ALPHA_SEL_A_SRC0 | ++						       R500_ALPHA_SWIZ_A_G | ++						       R500_ALPHA_SEL_B_SRC1 | ++						       R500_ALPHA_SWIZ_B_G)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(4) | ++						       R500_ALU_RGBA_OP_MAD | ++						       R500_ALU_RGBA_SEL_C_SRC2 | ++						       R500_ALU_RGBA_R_SWIZ_R | ++						       R500_ALU_RGBA_G_SWIZ_G | ++						       R500_ALU_RGBA_B_SWIZ_B | ++						       R500_ALU_RGBA_A_SWIZ_A)); ++ ++		/* ADD temp0, temp4, input0.xyxy */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B | ++						       R500_INST_ALPHA_WMASK)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR1(4) | ++						       R500_RGB_ADDR2(0))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR1(4) | ++						       R500_ALPHA_ADDR2(0))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_R_SWIZ_A_1 | ++						       R500_ALU_RGB_G_SWIZ_A_1 | ++						       R500_ALU_RGB_B_SWIZ_A_1 | ++						       R500_ALU_RGB_SEL_B_SRC1 | ++						       R500_ALU_RGB_R_SWIZ_B_R | ++						       R500_ALU_RGB_G_SWIZ_B_G | ++						       R500_ALU_RGB_B_SWIZ_B_B)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(0) | ++						       R500_ALPHA_OP_MAD | ++						       R500_ALPHA_SWIZ_A_1 | ++						       R500_ALPHA_SEL_B_SRC1 | ++						       R500_ALPHA_SWIZ_B_A)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(0) | ++						       R500_ALU_RGBA_OP_MAD | ++						       R500_ALU_RGBA_SEL_C_SRC2 | ++						       R500_ALU_RGBA_R_SWIZ_R | ++						       R500_ALU_RGBA_G_SWIZ_G | ++						       R500_ALU_RGBA_B_SWIZ_R | ++						       R500_ALU_RGBA_A_SWIZ_G)); ++ ++		/* TEX temp4, temp0.zwzw, tex0, 1D */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX | ++						       R500_INST_TEX_SEM_WAIT | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B | ++						       R500_INST_ALPHA_WMASK)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) | ++						       R500_TEX_INST_LD | ++						       R500_TEX_IGNORE_UNCOVERED)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(0) | ++						       R500_TEX_SRC_S_SWIZ_B | ++						       R500_TEX_SRC_T_SWIZ_A | ++						       R500_TEX_SRC_R_SWIZ_B | ++						       R500_TEX_SRC_Q_SWIZ_A | ++						       R500_TEX_DST_ADDR(4) | ++						       R500_TEX_DST_R_SWIZ_R | ++						       R500_TEX_DST_G_SWIZ_G | ++						       R500_TEX_DST_B_SWIZ_B | ++						       R500_TEX_DST_A_SWIZ_A)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++ ++		/* TEX temp0, temp0.xyzw, tex0, 1D */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX | ++						       R500_INST_TEX_SEM_WAIT | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B | ++						   R500_INST_ALPHA_WMASK)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) | ++						       R500_TEX_INST_LD | ++						       R500_TEX_SEM_ACQUIRE | ++						       R500_TEX_IGNORE_UNCOVERED)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(0) | ++						       R500_TEX_SRC_S_SWIZ_R | ++						       R500_TEX_SRC_T_SWIZ_G | ++						       R500_TEX_SRC_R_SWIZ_B | ++						       R500_TEX_SRC_Q_SWIZ_A | ++						       R500_TEX_DST_ADDR(0) | ++						       R500_TEX_DST_R_SWIZ_R | ++						       R500_TEX_DST_G_SWIZ_G | ++						       R500_TEX_DST_B_SWIZ_B | ++						       R500_TEX_DST_A_SWIZ_A)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++ ++		/* LRP temp3, temp2.zzzz, temp1, temp3 -> ++		 * - PRESUB temps, temp1 - temp3 ++		 * - MAD temp2.zzzz, temps, temp3 */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B | ++						       R500_INST_ALPHA_WMASK)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(3) | ++						       R500_RGB_SRCP_OP_RGB1_MINUS_RGB0 | ++						       R500_RGB_ADDR1(1) | ++						       R500_RGB_ADDR2(2))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(3) | ++						       R500_ALPHA_SRCP_OP_A1_MINUS_A0 | ++						       R500_ALPHA_ADDR1(1) | ++						       R500_ALPHA_ADDR2(2))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC2 | ++						       R500_ALU_RGB_R_SWIZ_A_B | ++						       R500_ALU_RGB_G_SWIZ_A_B | ++						       R500_ALU_RGB_B_SWIZ_A_B | ++						       R500_ALU_RGB_SEL_B_SRCP | ++						       R500_ALU_RGB_R_SWIZ_B_R | ++						       R500_ALU_RGB_G_SWIZ_B_G | ++						       R500_ALU_RGB_B_SWIZ_B_B)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(3) | ++						       R500_ALPHA_OP_MAD | ++						       R500_ALPHA_SEL_A_SRC2 | ++						       R500_ALPHA_SWIZ_A_B | ++						       R500_ALPHA_SEL_B_SRCP | ++						       R500_ALPHA_SWIZ_B_A)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(3) | ++						       R500_ALU_RGBA_OP_MAD | ++						       R500_ALU_RGBA_SEL_C_SRC0 | ++						       R500_ALU_RGBA_R_SWIZ_R | ++						       R500_ALU_RGBA_G_SWIZ_G | ++						       R500_ALU_RGBA_B_SWIZ_B | ++						       R500_ALU_RGBA_A_SWIZ_A)); ++ ++		/* LRP temp0, temp2.zzzz, temp4, temp0 -> ++		 * - PRESUB temps, temp4 - temp1 ++		 * - MAD temp2.zzzz, temps, temp0 */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU | ++						       R500_INST_TEX_SEM_WAIT | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B | ++						       R500_INST_ALPHA_WMASK)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) | ++						       R500_RGB_SRCP_OP_RGB1_MINUS_RGB0 | ++						       R500_RGB_ADDR1(4) | ++						       R500_RGB_ADDR2(2))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) | ++						       R500_ALPHA_SRCP_OP_A1_MINUS_A0 | ++						       R500_ALPHA_ADDR1(4) | ++						       R500_ALPHA_ADDR2(2))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC2 | ++						       R500_ALU_RGB_R_SWIZ_A_B | ++						       R500_ALU_RGB_G_SWIZ_A_B | ++						       R500_ALU_RGB_B_SWIZ_A_B | ++						       R500_ALU_RGB_SEL_B_SRCP | ++						       R500_ALU_RGB_R_SWIZ_B_R | ++						       R500_ALU_RGB_G_SWIZ_B_G | ++						       R500_ALU_RGB_B_SWIZ_B_B)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(0) | ++						       R500_ALPHA_OP_MAD | ++						       R500_ALPHA_SEL_A_SRC2 | ++						       R500_ALPHA_SWIZ_A_B | ++						       R500_ALPHA_SEL_B_SRCP | ++						       R500_ALPHA_SWIZ_B_A)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(0) | ++						       R500_ALU_RGBA_OP_MAD | ++						       R500_ALU_RGBA_SEL_C_SRC0 | ++						       R500_ALU_RGBA_R_SWIZ_R | ++						       R500_ALU_RGBA_G_SWIZ_G | ++						       R500_ALU_RGBA_B_SWIZ_B | ++						       R500_ALU_RGBA_A_SWIZ_A)); ++ ++		/* LRP output, temp5.zzzz, temp3, temp0 -> ++		 * - PRESUB temps, temp3 - temp0 ++		 * - MAD temp5.zzzz, temps, temp0 */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_OUT | ++						       R500_INST_LAST | ++						       R500_INST_TEX_SEM_WAIT | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B | ++						       R500_INST_ALPHA_WMASK | ++						       R500_INST_RGB_OMASK_R | ++						       R500_INST_RGB_OMASK_G | ++						       R500_INST_RGB_OMASK_B | ++						       R500_INST_ALPHA_OMASK)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) | ++						       R500_RGB_SRCP_OP_RGB1_MINUS_RGB0 | ++						       R500_RGB_ADDR1(3) | ++						       R500_RGB_ADDR2(5))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) | ++						       R500_ALPHA_SRCP_OP_A1_MINUS_A0 | ++						       R500_ALPHA_ADDR1(3) | ++						       R500_ALPHA_ADDR2(5))); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC2 | ++						       R500_ALU_RGB_R_SWIZ_A_B | ++						       R500_ALU_RGB_G_SWIZ_A_B | ++						       R500_ALU_RGB_B_SWIZ_A_B | ++						       R500_ALU_RGB_SEL_B_SRCP | ++						       R500_ALU_RGB_R_SWIZ_B_R | ++						       R500_ALU_RGB_G_SWIZ_B_G | ++						       R500_ALU_RGB_B_SWIZ_B_B)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(0) | ++						       R500_ALPHA_OP_MAD | ++						       R500_ALPHA_SEL_A_SRC2 | ++						       R500_ALPHA_SWIZ_A_B | ++						       R500_ALPHA_SEL_B_SRCP | ++						       R500_ALPHA_SWIZ_B_A)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(0) | ++						       R500_ALU_RGBA_OP_MAD | ++						       R500_ALU_RGBA_SEL_C_SRC0 | ++						       R500_ALU_RGBA_R_SWIZ_R | ++						       R500_ALU_RGBA_G_SWIZ_G | ++						       R500_ALU_RGBA_B_SWIZ_B | ++						       R500_ALU_RGBA_A_SWIZ_A)); ++ ++		/* Shader constants. */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, R500_US_VECTOR_CONST_INDEX(0)); ++ ++		/* const0 = {1 / texture[0].width, 0, 0, 0} */ ++		OUT_ACCEL_REG_F(R500_GA_US_VECTOR_DATA, (1.0/(float)pPriv->w)); ++		OUT_ACCEL_REG_F(R500_GA_US_VECTOR_DATA, (1.0/(float)pPriv->h)); ++		OUT_ACCEL_REG_F(R500_GA_US_VECTOR_DATA, 0x0); ++		OUT_ACCEL_REG_F(R500_GA_US_VECTOR_DATA, 0x0); ++ ++		FINISH_ACCEL(); ++ ++	    } else { ++		BEGIN_ACCEL(19); ++		/* 2 components: 2 for tex0 */ ++		OUT_ACCEL_REG(R300_RS_COUNT, ++			      ((2 << R300_RS_COUNT_IT_COUNT_SHIFT) | ++			       R300_RS_COUNT_HIRES_EN)); ++ ++		/* R300_INST_COUNT_RS - highest RS instruction used */ ++		OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0) | R300_TX_OFFSET_RS(6)); ++ ++		/* Pixel stack frame size. */ ++		OUT_ACCEL_REG(R300_US_PIXSIZE, 0); /* highest temp used */ ++ ++		/* FP length. */ ++		OUT_ACCEL_REG(R500_US_CODE_ADDR, (R500_US_CODE_START_ADDR(0) | ++						  R500_US_CODE_END_ADDR(1))); ++		OUT_ACCEL_REG(R500_US_CODE_RANGE, (R500_US_CODE_RANGE_ADDR(0) | ++						   R500_US_CODE_RANGE_SIZE(1))); ++ ++		/* Prepare for FP emission. */ ++		OUT_ACCEL_REG(R500_US_CODE_OFFSET, 0); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, R500_US_VECTOR_INST_INDEX(0)); ++ ++		/* tex inst */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX | ++						       R500_INST_TEX_SEM_WAIT | ++						       R500_INST_RGB_WMASK_R | ++						       R500_INST_RGB_WMASK_G | ++						       R500_INST_RGB_WMASK_B | ++						       R500_INST_ALPHA_WMASK | ++						       R500_INST_RGB_CLAMP | ++						       R500_INST_ALPHA_CLAMP)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) | ++						       R500_TEX_INST_LD | ++						       R500_TEX_SEM_ACQUIRE | ++						       R500_TEX_IGNORE_UNCOVERED)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(0) | ++						       R500_TEX_SRC_S_SWIZ_R | ++						       R500_TEX_SRC_T_SWIZ_G | ++						       R500_TEX_DST_ADDR(0) | ++						       R500_TEX_DST_R_SWIZ_R | ++						       R500_TEX_DST_G_SWIZ_G | ++						       R500_TEX_DST_B_SWIZ_B | ++						       R500_TEX_DST_A_SWIZ_A)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_DX_ADDR(0) | ++						       R500_DX_S_SWIZ_R | ++						       R500_DX_T_SWIZ_R | ++						       R500_DX_R_SWIZ_R | ++						       R500_DX_Q_SWIZ_R | ++						       R500_DY_ADDR(0) | ++						       R500_DY_S_SWIZ_R | ++						       R500_DY_T_SWIZ_R | ++						       R500_DY_R_SWIZ_R | ++						       R500_DY_Q_SWIZ_R)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000); ++ ++		/* ALU inst */ ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_OUT | ++						       R500_INST_TEX_SEM_WAIT | ++						       R500_INST_LAST | ++						       R500_INST_RGB_OMASK_R | ++						       R500_INST_RGB_OMASK_G | ++						       R500_INST_RGB_OMASK_B | ++						       R500_INST_ALPHA_OMASK | ++						       R500_INST_RGB_CLAMP | ++						       R500_INST_ALPHA_CLAMP)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) | ++						       R500_RGB_ADDR1(0) | ++						       R500_RGB_ADDR1_CONST | ++						       R500_RGB_ADDR2(0) | ++						       R500_RGB_ADDR2_CONST)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) | ++						       R500_ALPHA_ADDR1(0) | ++						       R500_ALPHA_ADDR1_CONST | ++						       R500_ALPHA_ADDR2(0) | ++						       R500_ALPHA_ADDR2_CONST)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC0 | ++						       R500_ALU_RGB_R_SWIZ_A_R | ++						       R500_ALU_RGB_G_SWIZ_A_G | ++						       R500_ALU_RGB_B_SWIZ_A_B | ++						       R500_ALU_RGB_SEL_B_SRC0 | ++						       R500_ALU_RGB_R_SWIZ_B_1 | ++						       R500_ALU_RGB_B_SWIZ_B_1 | ++						       R500_ALU_RGB_G_SWIZ_B_1)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_OP_MAD | ++						       R500_ALPHA_SWIZ_A_A | ++						       R500_ALPHA_SWIZ_B_1)); ++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_OP_MAD | ++						       R500_ALU_RGBA_R_SWIZ_0 | ++						       R500_ALU_RGBA_G_SWIZ_0 | ++						       R500_ALU_RGBA_B_SWIZ_0 | ++						       R500_ALU_RGBA_A_SWIZ_0)); ++		FINISH_ACCEL(); ++	    } + 	} +  +-	BEGIN_VIDEO(5); +-	OUT_VIDEO_REG(R300_TX_INVALTAGS, 0); +-	OUT_VIDEO_REG(R300_TX_ENABLE, txenable); ++	BEGIN_ACCEL(6); ++	OUT_ACCEL_REG(R300_TX_INVALTAGS, 0); ++	OUT_ACCEL_REG(R300_TX_ENABLE, txenable); +  +-	OUT_VIDEO_REG(R300_RB3D_COLOROFFSET0, dst_offset); +-	OUT_VIDEO_REG(R300_RB3D_COLORPITCH0, colorpitch); ++	OUT_ACCEL_REG(R300_RB3D_COLOROFFSET0, dst_offset); ++	OUT_ACCEL_REG(R300_RB3D_COLORPITCH0, colorpitch); +  + 	blendcntl = RADEON_SRC_BLEND_GL_ONE | RADEON_DST_BLEND_GL_ZERO; + 	/* no need to enable blending */ +-	OUT_VIDEO_REG(R300_RB3D_BLENDCNTL, blendcntl); +-	FINISH_VIDEO(); ++	OUT_ACCEL_REG(R300_RB3D_BLENDCNTL, blendcntl); +  +-	BEGIN_VIDEO(1); +-	OUT_VIDEO_REG(R300_VAP_VTX_SIZE, VTX_DWORD_COUNT); +-	FINISH_VIDEO(); ++	OUT_ACCEL_REG(R300_VAP_VTX_SIZE, vtx_count); ++	FINISH_ACCEL(); +  +     } else { +  +@@ -453,20 +1023,20 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv + 	if (RADEONTilingEnabled(pScrn, pPixmap)) + 	    colorpitch |= RADEON_COLOR_TILE_ENABLE; +  +-	BEGIN_VIDEO(5); ++	BEGIN_ACCEL(5); +  +-	OUT_VIDEO_REG(RADEON_PP_CNTL, +-		    RADEON_TEX_0_ENABLE | RADEON_TEX_BLEND_0_ENABLE); +-	OUT_VIDEO_REG(RADEON_RB3D_CNTL, +-		    dst_format | RADEON_ALPHA_BLEND_ENABLE); +-	OUT_VIDEO_REG(RADEON_RB3D_COLOROFFSET, dst_offset); ++	OUT_ACCEL_REG(RADEON_PP_CNTL, ++		      RADEON_TEX_0_ENABLE | RADEON_TEX_BLEND_0_ENABLE); ++	OUT_ACCEL_REG(RADEON_RB3D_CNTL, ++		      dst_format | RADEON_ALPHA_BLEND_ENABLE); ++	OUT_ACCEL_REG(RADEON_RB3D_COLOROFFSET, dst_offset); +  +-	OUT_VIDEO_REG(RADEON_RB3D_COLORPITCH, colorpitch); ++	OUT_ACCEL_REG(RADEON_RB3D_COLORPITCH, colorpitch); +  +-	OUT_VIDEO_REG(RADEON_RB3D_BLENDCNTL, +-		    RADEON_SRC_BLEND_GL_ONE | RADEON_DST_BLEND_GL_ZERO); ++	OUT_ACCEL_REG(RADEON_RB3D_BLENDCNTL, ++		      RADEON_SRC_BLEND_GL_ONE | RADEON_DST_BLEND_GL_ZERO); +  +-	FINISH_VIDEO(); ++	FINISH_ACCEL(); +  +  + 	if ((info->ChipFamily == CHIP_FAMILY_RV250) || +@@ -474,77 +1044,82 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv + 	    (info->ChipFamily == CHIP_FAMILY_RS300) || + 	    (info->ChipFamily == CHIP_FAMILY_R200)) { +  +-	    info->texW[0] = pPriv->w; +-	    info->texH[0] = pPriv->h; +- +-	    BEGIN_VIDEO(12); +- +-	    OUT_VIDEO_REG(R200_SE_VTX_FMT_0, R200_VTX_XY); +-	    OUT_VIDEO_REG(R200_SE_VTX_FMT_1, +-			(2 << R200_VTX_TEX0_COMP_CNT_SHIFT)); +- +-	    OUT_VIDEO_REG(R200_PP_TXFILTER_0, +-			R200_MAG_FILTER_LINEAR | +-			R200_MIN_FILTER_LINEAR | +-			R200_YUV_TO_RGB); +-	    OUT_VIDEO_REG(R200_PP_TXFORMAT_0, txformat); +-	    OUT_VIDEO_REG(R200_PP_TXFORMAT_X_0, 0); +-	    OUT_VIDEO_REG(R200_PP_TXSIZE_0, +-			(pPriv->w - 1) | +-			((pPriv->h - 1) << RADEON_TEX_VSIZE_SHIFT)); +-	    OUT_VIDEO_REG(R200_PP_TXPITCH_0, pPriv->src_pitch - 32); +- +-	    OUT_VIDEO_REG(R200_PP_TXOFFSET_0, pPriv->src_offset); +- +-	    OUT_VIDEO_REG(R200_PP_TXCBLEND_0, +-			R200_TXC_ARG_A_ZERO | +-			R200_TXC_ARG_B_ZERO | +-			R200_TXC_ARG_C_R0_COLOR | +-			R200_TXC_OP_MADD); +-	    OUT_VIDEO_REG(R200_PP_TXCBLEND2_0, +-			R200_TXC_CLAMP_0_1 | R200_TXC_OUTPUT_REG_R0); +-	    OUT_VIDEO_REG(R200_PP_TXABLEND_0, +-			R200_TXA_ARG_A_ZERO | +-			R200_TXA_ARG_B_ZERO | +-			R200_TXA_ARG_C_R0_ALPHA | +-			R200_TXA_OP_MADD); +-	    OUT_VIDEO_REG(R200_PP_TXABLEND2_0, +-			R200_TXA_CLAMP_0_1 | R200_TXA_OUTPUT_REG_R0); +-	    FINISH_VIDEO(); ++	    info->accel_state->texW[0] = pPriv->w; ++	    info->accel_state->texH[0] = pPriv->h; ++ ++	    BEGIN_ACCEL(12); ++ ++	    OUT_ACCEL_REG(R200_SE_VTX_FMT_0, R200_VTX_XY); ++	    OUT_ACCEL_REG(R200_SE_VTX_FMT_1, ++			  (2 << R200_VTX_TEX0_COMP_CNT_SHIFT)); ++ ++	    OUT_ACCEL_REG(R200_PP_TXFILTER_0, ++			  R200_MAG_FILTER_LINEAR | ++			  R200_MIN_FILTER_LINEAR | ++			  R200_CLAMP_S_CLAMP_LAST | ++			  R200_CLAMP_T_CLAMP_LAST | ++			  R200_YUV_TO_RGB); ++	    OUT_ACCEL_REG(R200_PP_TXFORMAT_0, txformat); ++	    OUT_ACCEL_REG(R200_PP_TXFORMAT_X_0, 0); ++	    OUT_ACCEL_REG(R200_PP_TXSIZE_0, ++			  (pPriv->w - 1) | ++			  ((pPriv->h - 1) << RADEON_TEX_VSIZE_SHIFT)); ++	    OUT_ACCEL_REG(R200_PP_TXPITCH_0, pPriv->src_pitch - 32); ++ ++	    OUT_ACCEL_REG(R200_PP_TXOFFSET_0, pPriv->src_offset); ++ ++	    OUT_ACCEL_REG(R200_PP_TXCBLEND_0, ++			  R200_TXC_ARG_A_ZERO | ++			  R200_TXC_ARG_B_ZERO | ++			  R200_TXC_ARG_C_R0_COLOR | ++			  R200_TXC_OP_MADD); ++	    OUT_ACCEL_REG(R200_PP_TXCBLEND2_0, ++			  R200_TXC_CLAMP_0_1 | R200_TXC_OUTPUT_REG_R0); ++	    OUT_ACCEL_REG(R200_PP_TXABLEND_0, ++			  R200_TXA_ARG_A_ZERO | ++			  R200_TXA_ARG_B_ZERO | ++			  R200_TXA_ARG_C_R0_ALPHA | ++			  R200_TXA_OP_MADD); ++	    OUT_ACCEL_REG(R200_PP_TXABLEND2_0, ++			  R200_TXA_CLAMP_0_1 | R200_TXA_OUTPUT_REG_R0); ++	    FINISH_ACCEL(); + 	} else { +  +-	    info->texW[0] = 1; +-	    info->texH[0] = 1; +- +-	    BEGIN_VIDEO(8); +- +-	    OUT_VIDEO_REG(RADEON_SE_VTX_FMT, RADEON_SE_VTX_FMT_XY | +-			RADEON_SE_VTX_FMT_ST0); +- +-	    OUT_VIDEO_REG(RADEON_PP_TXFILTER_0, RADEON_MAG_FILTER_LINEAR | +-			RADEON_MIN_FILTER_LINEAR | +-			RADEON_YUV_TO_RGB); +-	    OUT_VIDEO_REG(RADEON_PP_TXFORMAT_0, txformat); +-	    OUT_VIDEO_REG(RADEON_PP_TXOFFSET_0, pPriv->src_offset); +-	    OUT_VIDEO_REG(RADEON_PP_TXCBLEND_0, +-			RADEON_COLOR_ARG_A_ZERO | +-			RADEON_COLOR_ARG_B_ZERO | +-			RADEON_COLOR_ARG_C_T0_COLOR | +-			RADEON_BLEND_CTL_ADD | +-			RADEON_CLAMP_TX); +-	    OUT_VIDEO_REG(RADEON_PP_TXABLEND_0, +-			RADEON_ALPHA_ARG_A_ZERO | +-			RADEON_ALPHA_ARG_B_ZERO | +-			RADEON_ALPHA_ARG_C_T0_ALPHA | +-			RADEON_BLEND_CTL_ADD | +-			RADEON_CLAMP_TX); +- +-	    OUT_VIDEO_REG(RADEON_PP_TEX_SIZE_0, +-			(pPriv->w - 1) | +-			((pPriv->h - 1) << RADEON_TEX_VSIZE_SHIFT)); +-	    OUT_VIDEO_REG(RADEON_PP_TEX_PITCH_0, +-			pPriv->src_pitch - 32); +-	    FINISH_VIDEO(); ++	    info->accel_state->texW[0] = 1; ++	    info->accel_state->texH[0] = 1; ++ ++	    BEGIN_ACCEL(8); ++ ++	    OUT_ACCEL_REG(RADEON_SE_VTX_FMT, (RADEON_SE_VTX_FMT_XY | ++					      RADEON_SE_VTX_FMT_ST0)); ++ ++	    OUT_ACCEL_REG(RADEON_PP_TXFILTER_0, ++			  RADEON_MAG_FILTER_LINEAR | ++			  RADEON_MIN_FILTER_LINEAR | ++			  RADEON_CLAMP_S_CLAMP_LAST | ++			  RADEON_CLAMP_T_CLAMP_LAST | ++			  RADEON_YUV_TO_RGB); ++	    OUT_ACCEL_REG(RADEON_PP_TXFORMAT_0, txformat); ++	    OUT_ACCEL_REG(RADEON_PP_TXOFFSET_0, pPriv->src_offset); ++	    OUT_ACCEL_REG(RADEON_PP_TXCBLEND_0, ++			  RADEON_COLOR_ARG_A_ZERO | ++			  RADEON_COLOR_ARG_B_ZERO | ++			  RADEON_COLOR_ARG_C_T0_COLOR | ++			  RADEON_BLEND_CTL_ADD | ++			  RADEON_CLAMP_TX); ++	    OUT_ACCEL_REG(RADEON_PP_TXABLEND_0, ++			  RADEON_ALPHA_ARG_A_ZERO | ++			  RADEON_ALPHA_ARG_B_ZERO | ++			  RADEON_ALPHA_ARG_C_T0_ALPHA | ++			  RADEON_BLEND_CTL_ADD | ++			  RADEON_CLAMP_TX); ++ ++	    OUT_ACCEL_REG(RADEON_PP_TEX_SIZE_0, ++			  (pPriv->w - 1) | ++			  ((pPriv->h - 1) << RADEON_TEX_VSIZE_SHIFT)); ++	    OUT_ACCEL_REG(RADEON_PP_TEX_PITCH_0, ++			  pPriv->src_pitch - 32); ++	    FINISH_ACCEL(); + 	} +     } +  +@@ -582,77 +1157,96 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv +  + #ifdef ACCEL_CP + 	if (info->ChipFamily < CHIP_FAMILY_R200) { +-	    BEGIN_RING(4 * VTX_DWORD_COUNT + 3); ++	    BEGIN_RING(3 * vtx_count + 3); + 	    OUT_RING(CP_PACKET3(RADEON_CP_PACKET3_3D_DRAW_IMMD, +-				4 * VTX_DWORD_COUNT + 1)); ++				3 * vtx_count + 1)); + 	    OUT_RING(RADEON_CP_VC_FRMT_XY | + 		     RADEON_CP_VC_FRMT_ST0); +-	    OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_FAN | ++	    OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_RECT_LIST | + 		     RADEON_CP_VC_CNTL_PRIM_WALK_RING | + 		     RADEON_CP_VC_CNTL_MAOS_ENABLE | + 		     RADEON_CP_VC_CNTL_VTX_FMT_RADEON_MODE | +-		     (4 << RADEON_CP_VC_CNTL_NUM_SHIFT)); ++		     (3 << RADEON_CP_VC_CNTL_NUM_SHIFT)); + 	} else { + 	    if (IS_R300_3D || IS_R500_3D) +-		BEGIN_RING(4 * VTX_DWORD_COUNT + 4); ++		BEGIN_RING(4 * vtx_count + 4); + 	    else +-		BEGIN_RING(4 * VTX_DWORD_COUNT + 2); ++		BEGIN_RING(4 * vtx_count + 2); + 	    OUT_RING(CP_PACKET3(R200_CP_PACKET3_3D_DRAW_IMMD_2, +-				4 * VTX_DWORD_COUNT)); +-	    OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_FAN | ++				4 * vtx_count)); ++	    OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_QUAD_LIST | + 		     RADEON_CP_VC_CNTL_PRIM_WALK_RING | + 		     (4 << RADEON_CP_VC_CNTL_NUM_SHIFT)); + 	} + #else /* ACCEL_CP */ + 	if (IS_R300_3D || IS_R500_3D) +-	    BEGIN_VIDEO(2 + VTX_DWORD_COUNT * 4); ++	    BEGIN_ACCEL(2 + vtx_count * 4); ++	else if (info->ChipFamily < CHIP_FAMILY_R200) ++	    BEGIN_ACCEL(1 + vtx_count * 3); + 	else +-	    BEGIN_VIDEO(1 + VTX_DWORD_COUNT * 4); ++	    BEGIN_ACCEL(1 + vtx_count * 4); +  +-	if (info->ChipFamily < CHIP_FAMILY_R200) { +-	    OUT_VIDEO_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_TRIANGLE_FAN | ++	if (info->ChipFamily < CHIP_FAMILY_R200) ++	    OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_RECTANGLE_LIST | + 					      RADEON_VF_PRIM_WALK_DATA | + 					      RADEON_VF_RADEON_MODE | +-					      4 << RADEON_VF_NUM_VERTICES_SHIFT)); +-	} else { +-	    OUT_VIDEO_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_QUAD_LIST | ++					      (3 << RADEON_VF_NUM_VERTICES_SHIFT))); ++	else ++	    OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_QUAD_LIST | + 					      RADEON_VF_PRIM_WALK_DATA | +-					      4 << RADEON_VF_NUM_VERTICES_SHIFT)); +-	} +-#endif ++					      (4 << RADEON_VF_NUM_VERTICES_SHIFT))); +  +-	VTX_OUT((float)dstX,                                      (float)dstY, +-		xFixedToFloat(srcTopLeft.x) / info->texW[0],      xFixedToFloat(srcTopLeft.y) / info->texH[0]); +-	VTX_OUT((float)dstX,                                      (float)(dstY + dsth), +-		xFixedToFloat(srcBottomLeft.x) / info->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->texH[0]); +-	VTX_OUT((float)(dstX + dstw),                                (float)(dstY + dsth), +-		xFixedToFloat(srcBottomRight.x) / info->texW[0],  xFixedToFloat(srcBottomRight.y) / info->texH[0]); +-	VTX_OUT((float)(dstX + dstw),                                (float)dstY, +-		xFixedToFloat(srcTopRight.x) / info->texW[0],     xFixedToFloat(srcTopRight.y) / info->texH[0]); ++#endif ++	if (pPriv->bicubic_enabled) { ++		VTX_OUT_FILTER((float)dstX,                       (float)dstY, ++		xFixedToFloat(srcTopLeft.x) / info->accel_state->texW[0],      xFixedToFloat(srcTopLeft.y) / info->accel_state->texH[0], ++		xFixedToFloat(srcTopLeft.x) + 0.5,                xFixedToFloat(srcTopLeft.y) + 0.5); ++		VTX_OUT_FILTER((float)dstX,                       (float)(dstY + dsth), ++		xFixedToFloat(srcBottomLeft.x) / info->accel_state->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->accel_state->texH[0], ++		xFixedToFloat(srcBottomLeft.x) + 0.5,             xFixedToFloat(srcBottomLeft.y) + 0.5); ++		VTX_OUT_FILTER((float)(dstX + dstw),              (float)(dstY + dsth), ++		xFixedToFloat(srcBottomRight.x) / info->accel_state->texW[0],  xFixedToFloat(srcBottomRight.y) / info->accel_state->texH[0], ++		xFixedToFloat(srcBottomRight.x) + 0.5,            xFixedToFloat(srcBottomRight.y) + 0.5); ++		VTX_OUT_FILTER((float)(dstX + dstw),              (float)dstY, ++		xFixedToFloat(srcTopRight.x) / info->accel_state->texW[0],     xFixedToFloat(srcTopRight.y) / info->accel_state->texH[0], ++		xFixedToFloat(srcTopRight.x) + 0.5,               xFixedToFloat(srcTopRight.y) + 0.5); ++	} else { ++		if (info->ChipFamily >= CHIP_FAMILY_R200) { ++			VTX_OUT((float)dstX,                              (float)dstY, ++			xFixedToFloat(srcTopLeft.x) / info->accel_state->texW[0],      xFixedToFloat(srcTopLeft.y) / info->accel_state->texH[0]); ++		} ++		VTX_OUT((float)dstX,                              (float)(dstY + dsth), ++		xFixedToFloat(srcBottomLeft.x) / info->accel_state->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->accel_state->texH[0]); ++		VTX_OUT((float)(dstX + dstw),                     (float)(dstY + dsth), ++		xFixedToFloat(srcBottomRight.x) / info->accel_state->texW[0],  xFixedToFloat(srcBottomRight.y) / info->accel_state->texH[0]); ++		VTX_OUT((float)(dstX + dstw),                     (float)dstY, ++		xFixedToFloat(srcTopRight.x) / info->accel_state->texW[0],     xFixedToFloat(srcTopRight.y) / info->accel_state->texH[0]); ++	} +  + 	if (IS_R300_3D || IS_R500_3D) + 	    /* flushing is pipelined, free/finish is not */ +-	    OUT_VIDEO_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_DC_FLUSH_3D); ++	    OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_DC_FLUSH_3D); +  + #ifdef ACCEL_CP + 	ADVANCE_RING(); + #else +-	FINISH_VIDEO(); ++	FINISH_ACCEL(); + #endif /* !ACCEL_CP */ +  + 	pBox++; +     } +  +     if (IS_R300_3D || IS_R500_3D) { +-	BEGIN_VIDEO(2); +-	OUT_VIDEO_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_RB3D_DC_FLUSH_ALL); ++	BEGIN_ACCEL(2); ++	OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_RB3D_DC_FLUSH_ALL); +     } else +-	BEGIN_VIDEO(1); +-    OUT_VIDEO_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_3D_IDLECLEAN); +-    FINISH_VIDEO(); ++	BEGIN_ACCEL(1); ++    OUT_ACCEL_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_3D_IDLECLEAN); ++    FINISH_ACCEL(); +  +     DamageDamageRegion(pPriv->pDraw, &pPriv->clip); + } +  + #undef VTX_OUT ++#undef VTX_OUT_FILTER + #undef FUNC_NAME +diff --git a/src/radeon_tv.c b/src/radeon_tv.c +index 90020b3..90d1ac9 100644 +--- a/src/radeon_tv.c ++++ b/src/radeon_tv.c +@@ -140,7 +140,7 @@ static const uint16_t vert_timing_PAL[] = +  **********************************************************************/ + static const TVModeConstants availableTVModes[] = + { +-    { ++    {   /* NTSC timing for 27 Mhz ref clk */ + 	800,                /* horResolution */ + 	600,                /* verResolution */ + 	TV_STD_NTSC,        /* standard */ +@@ -155,7 +155,7 @@ static const TVModeConstants availableTVModes[] = + 	4,                  /* crtcPLL_postDiv */ + 	1022,               /* pixToTV */ +     }, +-    { ++    {   /* PAL timing for 27 Mhz ref clk */ + 	800,               /* horResolution */ + 	600,               /* verResolution */ + 	TV_STD_PAL,        /* standard */ +@@ -169,7 +169,22 @@ static const TVModeConstants availableTVModes[] = + 	231,               /* crtcPLL_M */ + 	4,                 /* crtcPLL_postDiv */ + 	759,               /* pixToTV */ +-    } ++    }, ++    {   /* NTSC timing for 14 Mhz ref clk */ ++	800,                /* horResolution */ ++	600,                /* verResolution */ ++	TV_STD_NTSC,        /* standard */ ++	1018,               /* horTotal */ ++	727,                /* verTotal */ ++	813,                /* horStart */ ++	840,                /* horSyncStart */ ++	633,                /* verSyncStart */ ++	630627,             /* defRestart */ ++	347,                /* crtcPLL_N */ ++	14,                 /* crtcPLL_M */ ++	8,                  /* crtcPLL_postDiv */ ++	1022,               /* pixToTV */ ++    }, + }; +  + #define N_AVAILABLE_MODES (sizeof(availableModes) / sizeof(availableModes[ 0 ])) +@@ -582,6 +597,8 @@ static Bool RADEONInitTVRestarts(xf86OutputPtr output, RADEONSavePtr save, + 				 DisplayModePtr mode) + { +     RADEONOutputPrivatePtr radeon_output = output->driver_private; ++    RADEONInfoPtr  info       = RADEONPTR(output->scrn); ++    RADEONPLLPtr pll = &info->pll; +     int restart; +     unsigned hTotal; +     unsigned vTotal; +@@ -597,14 +614,21 @@ static Bool RADEONInitTVRestarts(xf86OutputPtr output, RADEONSavePtr save, +     /* FIXME: need to revisit this when we add more modes */ +     if (radeon_output->tvStd == TV_STD_NTSC || + 	radeon_output->tvStd == TV_STD_NTSC_J || +-        radeon_output->tvStd == TV_STD_PAL_M) +-	constPtr = &availableTVModes[0]; +-    else +-	constPtr = &availableTVModes[1]; ++	radeon_output->tvStd == TV_STD_PAL_M) { ++	if (pll->reference_freq == 2700) ++	    constPtr = &availableTVModes[0]; ++	else ++	    constPtr = &availableTVModes[2]; ++    } else { ++	if (pll->reference_freq == 2700) ++	    constPtr = &availableTVModes[1]; ++	else ++	    constPtr = &availableTVModes[1]; /* FIXME */ ++    } +  +     hTotal = constPtr->horTotal; +     vTotal = constPtr->verTotal; +-     ++ +     if (radeon_output->tvStd == TV_STD_NTSC || + 	radeon_output->tvStd == TV_STD_NTSC_J || +         radeon_output->tvStd == TV_STD_PAL_M || +@@ -696,6 +720,8 @@ void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save, +     ScrnInfoPtr pScrn = output->scrn; +     RADEONOutputPrivatePtr radeon_output = output->driver_private; +     RADEONInfoPtr  info = RADEONPTR(pScrn); ++    RADEONPLLPtr pll = &info->pll; ++    unsigned m, n, p; +     unsigned i; +     unsigned long vert_space, flicker_removal; +     uint32_t tmp; +@@ -703,14 +729,20 @@ void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save, +     const uint16_t *hor_timing; +     const uint16_t *vert_timing; +  +- +     /* FIXME: need to revisit this when we add more modes */ +     if (radeon_output->tvStd == TV_STD_NTSC || + 	radeon_output->tvStd == TV_STD_NTSC_J || +-	radeon_output->tvStd == TV_STD_PAL_M) +-	constPtr = &availableTVModes[0]; +-    else +-	constPtr = &availableTVModes[1]; ++	radeon_output->tvStd == TV_STD_PAL_M) { ++	if (pll->reference_freq == 2700) ++	    constPtr = &availableTVModes[0]; ++	else ++	    constPtr = &availableTVModes[2]; ++    } else { ++	if (pll->reference_freq == 2700) ++	    constPtr = &availableTVModes[1]; ++	else ++	    constPtr = &availableTVModes[1]; /* FIXME */ ++    } +  +     save->tv_crc_cntl = 0; +  +@@ -796,7 +828,10 @@ void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save, +     save->tv_vscaler_cntl1 = RADEON_Y_W_EN; +     save->tv_vscaler_cntl1 = + 	(save->tv_vscaler_cntl1 & 0xe3ff0000) | (vert_space * (1 << FRAC_BITS) / 10000); +-    save->tv_vscaler_cntl1 |= RADEON_RESTART_FIELD; ++ ++    if (pll->reference_freq == 2700) ++	save->tv_vscaler_cntl1 |= RADEON_RESTART_FIELD; ++ +     if (constPtr->horResolution == 1024) + 	save->tv_vscaler_cntl1 |= (4 << RADEON_Y_DEL_W_SIG_SHIFT); +     else +@@ -873,18 +908,33 @@ void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save, + #endif +  +     if (radeon_output->tvStd == TV_STD_NTSC || +-        radeon_output->tvStd == TV_STD_NTSC_J) +-	save->tv_pll_cntl = (NTSC_TV_PLL_M & RADEON_TV_M0LO_MASK) | +-	    (((NTSC_TV_PLL_M >> 8) & RADEON_TV_M0HI_MASK) << RADEON_TV_M0HI_SHIFT) | +-	    ((NTSC_TV_PLL_N & RADEON_TV_N0LO_MASK) << RADEON_TV_N0LO_SHIFT) | +-	    (((NTSC_TV_PLL_N >> 9) & RADEON_TV_N0HI_MASK) << RADEON_TV_N0HI_SHIFT) | +-	    ((NTSC_TV_PLL_P & RADEON_TV_P_MASK) << RADEON_TV_P_SHIFT); +-    else +-	save->tv_pll_cntl = (PAL_TV_PLL_M & RADEON_TV_M0LO_MASK) | +-	    (((PAL_TV_PLL_M >> 8) & RADEON_TV_M0HI_MASK) << RADEON_TV_M0HI_SHIFT) | +-	    ((PAL_TV_PLL_N & RADEON_TV_N0LO_MASK) << RADEON_TV_N0LO_SHIFT) | +-	    (((PAL_TV_PLL_N >> 9) & RADEON_TV_N0HI_MASK) << RADEON_TV_N0HI_SHIFT) | +-	    ((PAL_TV_PLL_P & RADEON_TV_P_MASK) << RADEON_TV_P_SHIFT); ++	radeon_output->tvStd == TV_STD_NTSC_J) { ++	if (pll->reference_freq == 2700) { ++	    m = NTSC_TV_PLL_M_27; ++	    n = NTSC_TV_PLL_N_27; ++	    p = NTSC_TV_PLL_P_27; ++	} else { ++	    m = NTSC_TV_PLL_M_14; ++	    n = NTSC_TV_PLL_N_14; ++	    p = NTSC_TV_PLL_P_14; ++	} ++    } else { ++	if (pll->reference_freq == 2700) { ++	    m = PAL_TV_PLL_M_27; ++	    n = PAL_TV_PLL_N_27; ++	    p = PAL_TV_PLL_P_27; ++	} else { ++	    /* FIXME */ ++	    m = PAL_TV_PLL_M_27; ++	    n = PAL_TV_PLL_N_27; ++	    p = PAL_TV_PLL_P_27; ++	} ++    } ++    save->tv_pll_cntl = (m & RADEON_TV_M0LO_MASK) | ++	(((m >> 8) & RADEON_TV_M0HI_MASK) << RADEON_TV_M0HI_SHIFT) | ++	((n & RADEON_TV_N0LO_MASK) << RADEON_TV_N0LO_SHIFT) | ++	(((n >> 9) & RADEON_TV_N0HI_MASK) << RADEON_TV_N0HI_SHIFT) | ++	((p & RADEON_TV_P_MASK) << RADEON_TV_P_SHIFT); +  +     save->tv_pll_cntl1 =  (((4 & RADEON_TVPCP_MASK)<< RADEON_TVPCP_SHIFT) | + 			   ((4 & RADEON_TVPVG_MASK) << RADEON_TVPVG_SHIFT) | +@@ -999,14 +1049,23 @@ void RADEONAdjustCrtcRegistersForTV(ScrnInfoPtr pScrn, RADEONSavePtr save, + { +     const TVModeConstants *constPtr; +     RADEONOutputPrivatePtr radeon_output = output->driver_private; ++    RADEONInfoPtr  info       = RADEONPTR(pScrn); ++    RADEONPLLPtr pll = &info->pll; +  +     /* FIXME: need to revisit this when we add more modes */ +     if (radeon_output->tvStd == TV_STD_NTSC || + 	radeon_output->tvStd == TV_STD_NTSC_J || +-        radeon_output->tvStd == TV_STD_PAL_M) +-	constPtr = &availableTVModes[0]; +-    else +-	constPtr = &availableTVModes[1]; ++	radeon_output->tvStd == TV_STD_PAL_M) { ++	if (pll->reference_freq == 2700) ++	    constPtr = &availableTVModes[0]; ++	else ++	    constPtr = &availableTVModes[2]; ++    } else { ++	if (pll->reference_freq == 2700) ++	    constPtr = &availableTVModes[1]; ++	else ++	    constPtr = &availableTVModes[1]; /* FIXME */ ++    } +  +     save->crtc_h_total_disp = (((constPtr->horResolution / 8) - 1) << RADEON_CRTC_H_DISP_SHIFT) | + 	(((constPtr->horTotal / 8) - 1) << RADEON_CRTC_H_TOTAL_SHIFT); +@@ -1030,14 +1089,23 @@ void RADEONAdjustPLLRegistersForTV(ScrnInfoPtr pScrn, RADEONSavePtr save, +     unsigned postDiv; +     const TVModeConstants *constPtr; +     RADEONOutputPrivatePtr radeon_output = output->driver_private; ++    RADEONInfoPtr  info       = RADEONPTR(pScrn); ++    RADEONPLLPtr pll = &info->pll; +  +     /* FIXME: need to revisit this when we add more modes */ +     if (radeon_output->tvStd == TV_STD_NTSC || + 	radeon_output->tvStd == TV_STD_NTSC_J || +-        radeon_output->tvStd == TV_STD_PAL_M) +-	constPtr = &availableTVModes[0]; +-    else +-	constPtr = &availableTVModes[1]; ++	radeon_output->tvStd == TV_STD_PAL_M) { ++	if (pll->reference_freq == 2700) ++	    constPtr = &availableTVModes[0]; ++	else ++	    constPtr = &availableTVModes[2]; ++    } else { ++	if (pll->reference_freq == 2700) ++	    constPtr = &availableTVModes[1]; ++	else ++	    constPtr = &availableTVModes[1]; /* FIXME */ ++    } +  +     save->htotal_cntl = (constPtr->horTotal & 0x7 /*0xf*/) | RADEON_HTOT_CNTL_VGA_EN; +  +@@ -1083,14 +1151,23 @@ void RADEONAdjustCrtc2RegistersForTV(ScrnInfoPtr pScrn, RADEONSavePtr save, + { +     const TVModeConstants *constPtr; +     RADEONOutputPrivatePtr radeon_output = output->driver_private; ++    RADEONInfoPtr  info       = RADEONPTR(pScrn); ++    RADEONPLLPtr pll = &info->pll; +  +     /* FIXME: need to revisit this when we add more modes */ +     if (radeon_output->tvStd == TV_STD_NTSC || + 	radeon_output->tvStd == TV_STD_NTSC_J || +-        radeon_output->tvStd == TV_STD_PAL_M) +-	constPtr = &availableTVModes[0]; +-    else +-	constPtr = &availableTVModes[1]; ++	radeon_output->tvStd == TV_STD_PAL_M) { ++	if (pll->reference_freq == 2700) ++	    constPtr = &availableTVModes[0]; ++	else ++	    constPtr = &availableTVModes[2]; ++    } else { ++	if (pll->reference_freq == 2700) ++	    constPtr = &availableTVModes[1]; ++	else ++	    constPtr = &availableTVModes[1]; /* FIXME */ ++    } +  +     save->crtc2_h_total_disp = (((constPtr->horResolution / 8) - 1) << RADEON_CRTC_H_DISP_SHIFT) | + 	(((constPtr->horTotal / 8) - 1) << RADEON_CRTC_H_TOTAL_SHIFT); +@@ -1114,14 +1191,23 @@ void RADEONAdjustPLL2RegistersForTV(ScrnInfoPtr pScrn, RADEONSavePtr save, +     unsigned postDiv; +     const TVModeConstants *constPtr; +     RADEONOutputPrivatePtr radeon_output = output->driver_private; ++    RADEONInfoPtr  info       = RADEONPTR(pScrn); ++    RADEONPLLPtr pll = &info->pll; +  +     /* FIXME: need to revisit this when we add more modes */ +     if (radeon_output->tvStd == TV_STD_NTSC || + 	radeon_output->tvStd == TV_STD_NTSC_J || +-        radeon_output->tvStd == TV_STD_PAL_M) +-	constPtr = &availableTVModes[0]; +-    else +-	constPtr = &availableTVModes[1]; ++	radeon_output->tvStd == TV_STD_PAL_M) { ++	if (pll->reference_freq == 2700) ++	    constPtr = &availableTVModes[0]; ++	else ++	    constPtr = &availableTVModes[2]; ++    } else { ++	if (pll->reference_freq == 2700) ++	    constPtr = &availableTVModes[1]; ++	else ++	    constPtr = &availableTVModes[1]; /* FIXME */ ++    } +  +     save->htotal_cntl2 = (constPtr->horTotal & 0x7); /* 0xf */ +  +diff --git a/src/radeon_tv.h b/src/radeon_tv.h +index c4b7838..8d77a77 100644 +--- a/src/radeon_tv.h ++++ b/src/radeon_tv.h +@@ -27,24 +27,31 @@ + #define MAX_H_SIZE 5 /* Range: [-5..5], negative is smaller, positive is larger */ +  + /* tv standard constants */ +-#define NTSC_TV_PLL_M 22 +-#define NTSC_TV_PLL_N 175 +-#define NTSC_TV_PLL_P 5 + #define NTSC_TV_CLOCK_T 233 + #define NTSC_TV_VFTOTAL 1 + #define NTSC_TV_LINES_PER_FRAME 525 + #define NTSC_TV_ZERO_H_SIZE 479166 + #define NTSC_TV_H_SIZE_UNIT 9478 +  +-#define PAL_TV_PLL_M 113 +-#define PAL_TV_PLL_N 668 +-#define PAL_TV_PLL_P 3 + #define PAL_TV_CLOCK_T 188 + #define PAL_TV_VFTOTAL 3 + #define PAL_TV_LINES_PER_FRAME 625 + #define PAL_TV_ZERO_H_SIZE 473200 + #define PAL_TV_H_SIZE_UNIT 9360 +  ++/* tv pll setting for 27 mhz ref clk */ ++#define NTSC_TV_PLL_M_27 22 ++#define NTSC_TV_PLL_N_27 175 ++#define NTSC_TV_PLL_P_27 5 ++ ++#define PAL_TV_PLL_M_27 113 ++#define PAL_TV_PLL_N_27 668 ++#define PAL_TV_PLL_P_27 3 ++ ++/* tv pll setting for 14 mhz ref clk */ ++#define NTSC_TV_PLL_M_14 33 ++#define NTSC_TV_PLL_N_14 693 ++#define NTSC_TV_PLL_P_14 7 +  + #define VERT_LEAD_IN_LINES 2 + #define FRAC_BITS 0xe +diff --git a/src/radeon_version.h b/src/radeon_version.h +index ccc1367..5717ead 100644 +--- a/src/radeon_version.h ++++ b/src/radeon_version.h +@@ -39,10 +39,9 @@ + #define R200_DRIVER_NAME     "r200" + #define R300_DRIVER_NAME     "r300" +  +-#define RADEON_VERSION_MAJOR 4 +-#define RADEON_VERSION_MAJOR_TILED 5 +-#define RADEON_VERSION_MINOR 3 +-#define RADEON_VERSION_PATCH 0 ++#define RADEON_VERSION_MAJOR PACKAGE_VERSION_MAJOR ++#define RADEON_VERSION_MINOR PACKAGE_VERSION_MINOR ++#define RADEON_VERSION_PATCH PACKAGE_VERSION_PATCHLEVEL +  + #ifndef RADEON_VERSION_EXTRA + #define RADEON_VERSION_EXTRA "" +diff --git a/src/radeon_video.c b/src/radeon_video.c +index ac60166..6249cea 100644 +--- a/src/radeon_video.c ++++ b/src/radeon_video.c +@@ -89,10 +89,6 @@ static void RADEON_MSP_SetEncoding(RADEONPortPrivPtr pPriv); + static void RADEON_TDA9885_SetEncoding(RADEONPortPrivPtr pPriv); + static void RADEON_FI1236_SetEncoding(RADEONPortPrivPtr pPriv); +  +- +- +-#define ClipValue(v,min,max) ((v) < (min) ? (min) : (v) > (max) ? (max) : (v)) +- + static Atom xvBrightness, xvColorKey, xvSaturation, xvDoubleBuffer; + static Atom xvRedIntensity, xvGreenIntensity, xvBlueIntensity; + static Atom xvContrast, xvHue, xvColor, xvAutopaintColorkey, xvSetDefaults; +@@ -106,7 +102,6 @@ static Atom xvEncoding, xvFrequency, xvVolume, xvMute, + 	      + static Atom xvOvAlpha, xvGrAlpha, xvAlphaMode; +  +- + #define GET_PORT_PRIVATE(pScrn) \ +    (RADEONPortPrivPtr)((RADEONPTR(pScrn))->adaptor->pPortPrivates[0].ptr) +  +@@ -245,19 +240,6 @@ radeon_crtc_clip_video(ScrnInfoPtr pScrn, + #endif + } +  +-#ifdef USE_EXA +-static void +-ATIVideoSave(ScreenPtr pScreen, ExaOffscreenArea *area) +-{ +-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; +-    RADEONInfoPtr info = RADEONPTR(pScrn); +-    RADEONPortPrivPtr pPriv = info->adaptor->pPortPrivates[0].ptr; +- +-    if (pPriv->video_memory == area) +-        pPriv->video_memory = NULL; +-} +-#endif /* USE_EXA */ +- + void RADEONInitVideo(ScreenPtr pScreen) + { +     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; +@@ -1632,13 +1614,12 @@ RADEONSetupImageVideo(ScreenPtr pScreen) +  +     pPriv->textured = FALSE; +  +-    if(pPriv->theatre != NULL)  +-    { ++    if(pPriv->theatre != NULL) { + 	/* video decoder is present, extend capabilities */ +        adapt->nEncodings = 13; +        adapt->pEncodings = InputVideoEncodings; +        adapt->type |= XvVideoMask; +-       adapt->nAttributes = NUM_DEC_ATTRIBUTES;     ++       adapt->nAttributes = NUM_DEC_ATTRIBUTES; +        adapt->PutVideo = RADEONPutVideo; +     } +  +@@ -1654,8 +1635,19 @@ RADEONStopVideo(ScrnInfoPtr pScrn, pointer data, Bool cleanup) +   unsigned char *RADEONMMIO = info->MMIO; +   RADEONPortPrivPtr pPriv = (RADEONPortPrivPtr)data; +  +-    if (pPriv->textured) +-	return; ++  if (pPriv->textured) { ++      if (cleanup) { ++	  if (pPriv->bicubic_memory != NULL) { ++	      radeon_legacy_free_memory(pScrn, pPriv->bicubic_memory); ++	      pPriv->bicubic_memory = NULL; ++	  } ++	  if (pPriv->video_memory != NULL) { ++	      radeon_legacy_free_memory(pScrn, pPriv->video_memory); ++	      pPriv->video_memory = NULL; ++	  } ++      } ++      return; ++  } +  +   REGION_EMPTY(pScrn->pScreen, &pPriv->clip); +  +@@ -1675,7 +1667,7 @@ RADEONStopVideo(ScrnInfoPtr pScrn, pointer data, Bool cleanup) +         if(pPriv->i2c != NULL) RADEON_board_setmisc(pPriv); +      } +      if (pPriv->video_memory != NULL) { +-	 RADEONFreeMemory(pScrn, pPriv->video_memory); ++	 radeon_legacy_free_memory(pScrn, pPriv->video_memory); + 	 pPriv->video_memory = NULL; +      } +      pPriv->videoStatus = 0; +@@ -1699,9 +1691,6 @@ RADEONSetPortAttribute(ScrnInfoPtr  pScrn, +     Bool		setAlpha = FALSE; +     unsigned char *RADEONMMIO = info->MMIO; +  +-    if (pPriv->textured) +-	return BadMatch; +- +     RADEON_SYNC(info, pScrn); +  + #define RTFSaturation(a)   (1.0 + ((a)*1.0)/1000.0) +@@ -1928,7 +1917,7 @@ RADEONSetPortAttribute(ScrnInfoPtr  pScrn, + 	if(pPriv->fi1236!=NULL){ + 		xf86_fi1236_dump_status(pPriv->fi1236); + 		} +-   }  ++   } +    else if(attribute == xvAdjustment)  +    { +   	pPriv->adjustment=value; +@@ -1973,9 +1962,6 @@ RADEONGetPortAttribute(ScrnInfoPtr  pScrn, +     RADEONInfoPtr	info = RADEONPTR(pScrn); +     RADEONPortPrivPtr	pPriv = (RADEONPortPrivPtr)data; +  +-    if (pPriv->textured) +-	return BadMatch; +- +     if (info->accelOn) RADEON_SYNC(info, pScrn); +  +     if(attribute == xvAutopaintColorkey) +@@ -2433,120 +2419,13 @@ RADEONCopyMungedData( +     } + } +  +- +-/* Allocates memory, either by resizing the allocation pointed to by mem_struct, +- * or by freeing mem_struct (if non-NULL) and allocating a new space.  The size +- * is measured in bytes, and the offset from the beginning of card space is +- * returned. +- */ +-uint32_t +-RADEONAllocateMemory( +-   ScrnInfoPtr pScrn, +-   void **mem_struct, +-   int size +-){ +-    ScreenPtr pScreen; +-    RADEONInfoPtr info = RADEONPTR(pScrn); +-    int offset = 0; +- +-    pScreen = screenInfo.screens[pScrn->scrnIndex]; +-#ifdef USE_EXA +-    if (info->useEXA) { +-	ExaOffscreenArea *area = *mem_struct; +- +-	if (area != NULL) { +-	    if (area->size >= size) +-		return area->offset; +- +-	    exaOffscreenFree(pScrn->pScreen, area); +-	} +- +-	area = exaOffscreenAlloc(pScrn->pScreen, size, 64, TRUE, ATIVideoSave, +-				 NULL); +-	*mem_struct = area; +-	if (area == NULL) +-	    return 0; +-	offset = area->offset; +-    } +-#endif /* USE_EXA */ +-#ifdef USE_XAA +-    if (!info->useEXA) { +-	FBLinearPtr linear = *mem_struct; +-	int cpp = info->CurrentLayout.bitsPerPixel / 8; +- +-	/* XAA allocates in units of pixels at the screen bpp, so adjust size +-	 * appropriately. +-	 */ +-	size = (size + cpp - 1) / cpp; +- +-	if (linear) { +-	    if(linear->size >= size) +-		return linear->offset * cpp; +- +-	    if(xf86ResizeOffscreenLinear(linear, size)) +-		return linear->offset * cpp; +- +-	    xf86FreeOffscreenLinear(linear); +-	} +- +-	linear = xf86AllocateOffscreenLinear(pScreen, size, 16, +-						NULL, NULL, NULL); +-	*mem_struct = linear; +- +-	if (!linear) { +-	    int max_size; +- +-	    xf86QueryLargestOffscreenLinear(pScreen, &max_size, 16, +-					    PRIORITY_EXTREME); +- +-	    if(max_size < size) +-		return 0; +- +-	    xf86PurgeUnlockedOffscreenAreas(pScreen); +-	    linear = xf86AllocateOffscreenLinear(pScreen, size, 16, +-						     NULL, NULL, NULL); +-	    *mem_struct = linear; +-	    if (!linear) +-		return 0; +-	} +-	offset = linear->offset * cpp; +-    } +-#endif /* USE_XAA */ +- +-    return offset; +-} +- +-void +-RADEONFreeMemory( +-   ScrnInfoPtr pScrn, +-   void *mem_struct +-){ +-    RADEONInfoPtr info = RADEONPTR(pScrn); +- +-#ifdef USE_EXA +-    if (info->useEXA) { +-	ExaOffscreenArea *area = mem_struct; +- +-	if (area != NULL) +-	    exaOffscreenFree(pScrn->pScreen, area); +-    } +-#endif /* USE_EXA */ +-#ifdef USE_XAA +-    if (!info->useEXA) { +-	FBLinearPtr linear = mem_struct; +- +-	if (linear != NULL) +-	    xf86FreeOffscreenLinear(linear); +-    } +-#endif /* USE_XAA */ +-} +- + static void + RADEONDisplayVideo( +     ScrnInfoPtr pScrn, +     xf86CrtcPtr crtc, +     RADEONPortPrivPtr pPriv, +     int id, ++    int base_offset, +     int offset1, int offset2, +     int offset3, int offset4, +     int offset5, int offset6, +@@ -2715,6 +2594,20 @@ RADEONDisplayVideo( +         } + #endif +  ++    /* Make the overlay base address as close to the buffers as possible to ++     * prevent the buffer offsets from exceeding the hardware limit of 128 MB. ++     * The base address must be aligned to a multiple of 4 MB. ++     */ ++    base_offset = ((info->fbLocation + base_offset) & (~0 << 22)) - ++	info->fbLocation; ++ ++    offset1 -= base_offset; ++    offset2 -= base_offset; ++    offset3 -= base_offset; ++    offset4 -= base_offset; ++    offset5 -= base_offset; ++    offset6 -= base_offset; ++ +     /* keep everything in 16.16 */ +  +     if (is_planar) { +@@ -2846,6 +2739,12 @@ RADEONDisplayVideo( + 	src_w >>= 1; +     OUTREG(RADEON_OV0_P2_X_START_END, (src_w + leftuv - 1) | (leftuv << 16)); +     OUTREG(RADEON_OV0_P3_X_START_END, (src_w + leftuv - 1) | (leftuv << 16)); ++    if (info->ModeReg->ov0_base_addr != (info->fbLocation + base_offset)) { ++	ErrorF("Changing OV0_BASE_ADDR from 0x%08x to 0x%08x\n", ++	       info->ModeReg->ov0_base_addr, info->fbLocation + base_offset); ++	info->ModeReg->ov0_base_addr = info->fbLocation + base_offset; ++	OUTREG(RADEON_OV0_BASE_ADDR, info->ModeReg->ov0_base_addr); ++    } +     OUTREG(RADEON_OV0_VID_BUF0_BASE_ADRS, offset1); +     OUTREG(RADEON_OV0_VID_BUF1_BASE_ADRS, offset2); +     OUTREG(RADEON_OV0_VID_BUF2_BASE_ADRS, offset3); +@@ -3038,9 +2937,9 @@ RADEONPutImage( +    if (idconv == FOURCC_YV12 || id == FOURCC_I420) { +       new_size += (dstPitch >> 1) * ((height + 1) & ~1); +    } +-   pPriv->video_offset = RADEONAllocateMemory(pScrn, &pPriv->video_memory, +-					      (pPriv->doubleBuffer ? +-					       (new_size * 2) : new_size)); ++   pPriv->video_offset = radeon_legacy_allocate_memory(pScrn, &pPriv->video_memory, ++						       (pPriv->doubleBuffer ? ++						       (new_size * 2) : new_size), 64); +    if (pPriv->video_offset == 0) +       return BadAlloc; +  +@@ -3150,9 +3049,10 @@ RADEONPutImage( +  +     /* FIXME: someone should look at these offsets, I don't think it makes sense how +               they are handled throughout the source. */ +-    RADEONDisplayVideo(pScrn, crtc, pPriv, idconv, offset, offset + d2line, offset + d3line, +-		     offset, offset + d2line, offset + d3line, width, height, dstPitch, +-		     xa, xb, ya, &dstBox, src_w, src_h, drw_w, drw_h, METHOD_BOB); ++    RADEONDisplayVideo(pScrn, crtc, pPriv, idconv, pPriv->video_offset, offset, ++		       offset + d2line, offset + d3line, offset, offset + d2line, ++		       offset + d3line, width, height, dstPitch, xa, xb, ya, ++		       &dstBox, src_w, src_h, drw_w, drw_h, METHOD_BOB); +  +     pPriv->videoStatus = CLIENT_VIDEO_ON; +  +@@ -3233,7 +3133,7 @@ RADEONVideoTimerCallback(ScrnInfoPtr pScrn, Time now) + 	} else {  /* FREE_TIMER */ + 	    if(pPriv->freeTime < now) { + 		if (pPriv->video_memory != NULL) { +-		    RADEONFreeMemory(pScrn, pPriv->video_memory); ++		    radeon_legacy_free_memory(pScrn, pPriv->video_memory); + 		    pPriv->video_memory = NULL; + 		} + 		pPriv->videoStatus = 0; +@@ -3268,7 +3168,7 @@ RADEONAllocateSurface( +     pitch = ((w << 1) + 15) & ~15; +     size = pitch * h; +  +-    offset = RADEONAllocateMemory(pScrn, &surface_memory, size); ++    offset = radeon_legacy_allocate_memory(pScrn, &surface_memory, size, 64); +     if (offset == 0) + 	return BadAlloc; +  +@@ -3276,18 +3176,18 @@ RADEONAllocateSurface( +     surface->height = h; +  +     if(!(surface->pitches = xalloc(sizeof(int)))) { +-	RADEONFreeMemory(pScrn, surface_memory); ++	radeon_legacy_free_memory(pScrn, surface_memory); + 	return BadAlloc; +     } +     if(!(surface->offsets = xalloc(sizeof(int)))) { + 	xfree(surface->pitches); +-	RADEONFreeMemory(pScrn, surface_memory); ++	radeon_legacy_free_memory(pScrn, surface_memory); + 	return BadAlloc; +     } +     if(!(pPriv = xalloc(sizeof(OffscreenPrivRec)))) { + 	xfree(surface->pitches); + 	xfree(surface->offsets); +-	RADEONFreeMemory(pScrn, surface_memory); ++	radeon_legacy_free_memory(pScrn, surface_memory); + 	return BadAlloc; +     } +  +@@ -3328,7 +3228,8 @@ RADEONFreeSurface( +  +     if(pPriv->isOn) + 	RADEONStopSurface(surface); +-    RADEONFreeMemory(pScrn, pPriv->surface_memory); ++    radeon_legacy_free_memory(pScrn, pPriv->surface_memory); ++    pPriv->surface_memory = NULL; +     xfree(surface->pitches); +     xfree(surface->offsets); +     xfree(surface->devPrivate.ptr); +@@ -3417,8 +3318,9 @@ RADEONDisplaySurface( + 		       surface->offsets[0], surface->offsets[0], + 		       surface->offsets[0], surface->offsets[0], + 		       surface->offsets[0], surface->offsets[0], +-		       surface->width, surface->height, surface->pitches[0], +-		       xa, xb, ya, &dstBox, src_w, src_h, drw_w, drw_h, METHOD_BOB); ++		       surface->offsets[0], surface->width, surface->height, ++		       surface->pitches[0], xa, xb, ya, &dstBox, src_w, src_h, ++		       drw_w, drw_h, METHOD_BOB); +  +     if (portPriv->autopaint_colorkey) + 	xf86XVFillKeyHelper(pScrn->pScreen, portPriv->colorKey, clipBoxes); +@@ -3602,9 +3504,9 @@ RADEONPutVideo( +    if (pPriv->capture_vbi_data) +       alloc_size += 2 * 2 * vbi_line_width * 21; +  +-   pPriv->video_offset = RADEONAllocateMemory(pScrn, &pPriv->video_memory, +-					      (pPriv->doubleBuffer ? +-					       (new_size * 2) : new_size)); ++   pPriv->video_offset = radeon_legacy_allocate_memory(pScrn, &pPriv->video_memory, ++						      (pPriv->doubleBuffer ? ++						      (new_size * 2) : new_size), 64); +    if (pPriv->video_offset == 0) +       return BadAlloc; +  +@@ -3705,10 +3607,12 @@ RADEONPutVideo( + 	    RADEONFillKeyHelper(pDraw, pPriv->colorKey, clipBoxes); +    } +  +-   RADEONDisplayVideo(pScrn, crtc, pPriv, id, offset1+top*srcPitch, offset2+top*srcPitch, +-		offset3+top*srcPitch, offset4+top*srcPitch, offset1+top*srcPitch, +-		offset2+top*srcPitch, width, height, dstPitch*mult/2, +-                     xa, xb, ya, &dstBox, src_w, src_h*mult/2, drw_w, drw_h, pPriv->overlay_deinterlacing_method); ++   RADEONDisplayVideo(pScrn, crtc, pPriv, id, pPriv->video_offset, ++		      offset1+top*srcPitch, offset2+top*srcPitch, ++		      offset3+top*srcPitch, offset4+top*srcPitch, ++		      offset1+top*srcPitch, offset2+top*srcPitch, width, height, ++		      dstPitch*mult/2, xa, xb, ya, &dstBox, src_w, src_h*mult/2, ++		      drw_w, drw_h, pPriv->overlay_deinterlacing_method); +  +    RADEONWaitForFifo(pScrn, 1); +    OUTREG(RADEON_OV0_REG_LOAD_CNTL,  RADEON_REG_LD_CTL_LOCK); +diff --git a/src/radeon_video.h b/src/radeon_video.h +index 096de37..11b8029 100644 +--- a/src/radeon_video.h ++++ b/src/radeon_video.h +@@ -13,6 +13,10 @@ +  + #include "xf86Crtc.h" +  ++#include "bicubic_table.h" ++ ++#define ClipValue(v,min,max) ((v) < (min) ? (min) : (v) > (max) ? (max) : (v)) ++ + /* Xvideo port struct */ + typedef struct { +    uint32_t	 transform_index; +@@ -37,7 +41,7 @@ typedef struct { +    uint32_t      radeon_N; +    uint32_t      i2c_status; +    uint32_t      i2c_cntl; +-    ++ +    FI1236Ptr     fi1236; +    uint8_t       tuner_type; +    MSP3430Ptr    msp3430; +@@ -46,7 +50,7 @@ typedef struct { +  +    /* VIP bus and devices */ +    GENERIC_BUS_Ptr  VIP; +-   TheatrePtr       theatre;    ++   TheatrePtr       theatre; +  +    Bool          video_stream_active; +    int           encoding; +@@ -56,7 +60,7 @@ typedef struct { +    int           sap_channel; +    int           v; +    uint32_t      adjustment; /* general purpose variable */ +-    ++ + #define METHOD_BOB      0 + #define METHOD_SINGLE   1 + #define METHOD_WEAVE    2 +@@ -82,13 +86,16 @@ typedef struct { +    xf86CrtcPtr   desired_crtc; +  +    int           size; +-#ifdef USE_EXA +-   ExaOffscreenArea *off_screen; +-#endif +  +    void         *video_memory; +    int           video_offset; +  ++   /* bicubic filtering */ ++   void         *bicubic_memory; ++   int           bicubic_offset; ++   Bool          bicubic_enabled; ++   uint32_t      bicubic_src_offset; ++ +    Atom          device_id, location_id, instance_id; +  +     /* textured video */ +@@ -106,18 +113,12 @@ typedef struct { +     int drw_x, drw_y; + } RADEONPortPrivRec, *RADEONPortPrivPtr; +  +- + void RADEONInitI2C(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv); + void RADEONResetI2C(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv); +  + void RADEONVIP_init(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv); + void RADEONVIP_reset(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv); +  +-uint32_t +-RADEONAllocateMemory(ScrnInfoPtr pScrn, void **mem_struct, int size); +-void +-RADEONFreeMemory(ScrnInfoPtr pScrn, void *mem_struct); +- + int  RADEONSetPortAttribute(ScrnInfoPtr, Atom, INT32, pointer); + int  RADEONGetPortAttribute(ScrnInfoPtr, Atom ,INT32 *, pointer); + void RADEONStopVideo(ScrnInfoPtr, pointer, Bool); diff --git a/abs/core-testing/xf86-video-ati/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-ati/mesa-7.1-link-shared.patch new file mode 100644 index 0000000..7fdbf14 --- /dev/null +++ b/abs/core-testing/xf86-video-ati/mesa-7.1-link-shared.patch @@ -0,0 +1,102 @@ +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile +--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000 +@@ -6,12 +6,17 @@ include $(TOP)/configs/current +  +  +  +-default: $(TOP)/$(LIB_DIR) subdirs ++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs +  +  + $(TOP)/$(LIB_DIR): + 	-mkdir $(TOP)/$(LIB_DIR) +  ++libdricore.so: ++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so ++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR)  +  + subdirs: + 	@for dir in $(DRI_DIRS) ; do \ +@@ -31,12 +36,14 @@ dri.pc: dri.pc.in + 	$(pcedit) $< > $@ +  +  +-install: dri.pc ++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so + 	@for dir in $(DRI_DIRS) ; do \ + 		if [ -d $$dir ] ; then \ + 			(cd $$dir && $(MAKE) install) || exit 1 ; \ + 		fi \ + 	done ++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) + 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal + 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \ + 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal +@@ -52,5 +59,6 @@ clean: + 			(cd $$dir && $(MAKE) clean) ; \ + 		fi \ + 	done ++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so + 	-rm -f common/*.o + 	-rm -f *.pc +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template +--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000 +@@ -1,6 +1,6 @@ + # -*-makefile-*- +  +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so +  + COMMON_SOURCES = \ +         ../common/utils.c \ +@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO +  + $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template + 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ +-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) ++		$(OBJECTS) $(WINOBJ) \ ++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \ ++		$(DRI_LIB_DEPS) +  +  + $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME) +diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S +--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000 +@@ -77,7 +77,6 @@ +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX +-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX + 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + 	pushl	%ebx +@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + 	pushl	%esi +@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + 	pushl	%esi +@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + 	.globl	_generic_read_RGBA_span_RGB565_MMX +-        .hidden _generic_read_RGBA_span_RGB565_MMX + 	.type	_generic_read_RGBA_span_RGB565_MMX, @function +  + _generic_read_RGBA_span_RGB565_MMX: diff --git a/abs/core-testing/xf86-video-chips/PKGBUILD b/abs/core-testing/xf86-video-chips/PKGBUILD index 60161c3..f63366d 100644 --- a/abs/core-testing/xf86-video-chips/PKGBUILD +++ b/abs/core-testing/xf86-video-chips/PKGBUILD @@ -1,22 +1,23 @@ -# $Id: PKGBUILD 3258 2008-06-21 18:34:07Z jgc $ +# $Id: PKGBUILD 22287 2008-12-25 17:17:00Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-chips -pkgver=1.2.0 +pkgver=1.2.1  pkgrel=1  pkgdesc="X.org Chips and Technologies video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=(glibc) -makedepends=('pkgconfig' 'xorg-server>=1.4.0.90') +makedepends=('pkgconfig' 'xorg-server>=1.5.3') +conflicts=('xorg-server<1.5.3')  groups=('xorg-video-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('2f2643fca6335f18024bffa6c4e0c12f')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } -md5sums=('0fec6bee65383790485d917247a61629') diff --git a/abs/core-testing/xf86-video-cirrus/PKGBUILD b/abs/core-testing/xf86-video-cirrus/PKGBUILD index 02aecfc..4527182 100644 --- a/abs/core-testing/xf86-video-cirrus/PKGBUILD +++ b/abs/core-testing/xf86-video-cirrus/PKGBUILD @@ -1,14 +1,15 @@ -# $Id: PKGBUILD 3247 2008-06-21 18:15:30Z jgc $ +# $Id: PKGBUILD 11420 2008-08-31 15:22:15Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-cirrus  pkgver=1.2.1 -pkgrel=1 +pkgrel=2  pkgdesc="X.org Cirrus Logic video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4.2') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906') +conflicts=('xorg-server<1.4.99.906')  groups=('xorg-video-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) diff --git a/abs/core-testing/xf86-video-dummy/PKGBUILD b/abs/core-testing/xf86-video-dummy/PKGBUILD index 51763f6..b060c9c 100644 --- a/abs/core-testing/xf86-video-dummy/PKGBUILD +++ b/abs/core-testing/xf86-video-dummy/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11419 2008-08-31 15:22:13Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-dummy -pkgver=0.2.0 -pkgrel=4 +pkgver=0.3.0 +pkgrel=1  pkgdesc="X.org dummy video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906') +conflicts=('xorg-server<1.4.99.906')  groups=('xorg-video-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('22b7cc20a33443cbd218bd2521850cfe') +md5sums=('3d96297556846bee02a74166ffb5d052')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } diff --git a/abs/core-testing/xf86-video-fbdev/PKGBUILD b/abs/core-testing/xf86-video-fbdev/PKGBUILD index c5d835c..05bcbca 100644 --- a/abs/core-testing/xf86-video-fbdev/PKGBUILD +++ b/abs/core-testing/xf86-video-fbdev/PKGBUILD @@ -1,23 +1,26 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11425 2008-08-31 15:24:08Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-fbdev -pkgver=0.3.1 -pkgrel=4 +pkgver=0.4.0 +pkgrel=1  pkgdesc="X.org framebuffer video driver"  arch=(i686 x86_64) +license=('custom')  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906') +conflicts=('xorg-server<1.4.99.906')  groups=('xorg-video-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('9ae810c6c6c3c9713a67866fe794d4ff') +md5sums=('6572b39fec77b8e6de1c858a93992924')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1 +  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} +  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1  } diff --git a/abs/core-testing/xf86-video-glint/PKGBUILD b/abs/core-testing/xf86-video-glint/PKGBUILD index 15c0dce..f52d528 100644 --- a/abs/core-testing/xf86-video-glint/PKGBUILD +++ b/abs/core-testing/xf86-video-glint/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 22285 2008-12-25 17:13:14Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-glint -pkgver=1.1.1 -pkgrel=5 +pkgver=1.2.2 +pkgrel=1  pkgdesc="X.org GLINT/Permedia video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.3.99.2' 'xf86driproto' 'mesa') +makedepends=('pkgconfig' 'xorg-server>=1.5.3') +conflicts=('xorg-server<1.5.3')  options=('!libtool')  groups=('xorg-video-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('4295a46a75fa98470c6dfb0e1a4f7e9f')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } -md5sums=('2cf49f701024a145bd25aff9da11d479') diff --git a/abs/core-testing/xf86-video-i128/PKGBUILD b/abs/core-testing/xf86-video-i128/PKGBUILD index fcf2c06..2c98984 100644 --- a/abs/core-testing/xf86-video-i128/PKGBUILD +++ b/abs/core-testing/xf86-video-i128/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11431 2008-08-31 15:26:32Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-i128 -pkgver=1.2.1 -pkgrel=4 +pkgver=1.3.0 +pkgrel=1  pkgdesc="X.org Number 9 I128 video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.2.0') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906') +conflicts=('xorg-server<1.4.99.906')  groups=('xorg-video-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('aff4922d2f02bad7e0d8649358edbcee')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } -md5sums=('d0080732eaa15059b0a953aa3522185a') diff --git a/abs/core-testing/xf86-video-i740/PKGBUILD b/abs/core-testing/xf86-video-i740/PKGBUILD index 9101847..3e0fd57 100644 --- a/abs/core-testing/xf86-video-i740/PKGBUILD +++ b/abs/core-testing/xf86-video-i740/PKGBUILD @@ -1,23 +1,22 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11440 2008-08-31 15:37:53Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-i740 -pkgver=1.1.0 -pkgrel=4 +pkgver=1.2.0 +pkgrel=1  pkgdesc="X.org Intel i740 video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')  groups=('xorg-video-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('57302e225060a7286ae1a970c87a589b') +md5sums=('d0e5a805c546b29b1dd3b55a68d16dc4')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } diff --git a/abs/core-testing/xf86-video-intel/20_thinkpad_g40_quirk.patch b/abs/core-testing/xf86-video-intel/20_thinkpad_g40_quirk.patch new file mode 100644 index 0000000..c2c72a7 --- /dev/null +++ b/abs/core-testing/xf86-video-intel/20_thinkpad_g40_quirk.patch @@ -0,0 +1,18 @@ +diff -Nurp xserver-xorg-video-intel-2.3.1-patched/src/i830_quirks.c xserver-xorg-video-intel-2.3.1-working/src/i830_quirks.c +--- xserver-xorg-video-intel-2.3.1-patched/src/i830_quirks.c	2008-06-20 00:05:23.000000000 -0700 ++++ xserver-xorg-video-intel-2.3.1-working/src/i830_quirks.c	2008-06-20 00:20:19.000000000 -0700 +@@ -266,9 +266,13 @@ static i830_quirk i830_quirk_list[] = { +     /* HP Compaq 6730s has no TV output */ +     { PCI_CHIP_IGD_GM, 0x103c, 0x30e8, quirk_ignore_tv }, +  ++    /* Thinkpad G40 needs pipe A force quirk (See LP: #240457) */ ++    { PCI_CHIP_I855_GM, 0x1014, 0x0543, quirk_pipea_force }, +     /* Thinkpad R31 needs pipe A force quirk */ +     { PCI_CHIP_I830_M, 0x1014, 0x0505, quirk_pipea_force }, +-    /* Dell Latitude D400 needs pipe A force quirk (LP: #228519) */ ++    /* Dell Latitude C400 needs pipe A force quirk (See LP: #216490) */ ++    { PCI_CHIP_I855_GM, 0x1028, 0x00c8, quirk_pipea_force }, ++    /* Dell Latitude D400 needs pipe A force quirk (See LP: #228519) */ +     { PCI_CHIP_I855_GM, 0x1028, 0x0139, quirk_pipea_force }, +     /* Dell Latitude D500 needs pipe A force quirk */ +     { PCI_CHIP_I855_GM, 0x1028, 0x0152, quirk_pipea_force }, diff --git a/abs/core-testing/xf86-video-intel/21_quirk_lenovo.patch b/abs/core-testing/xf86-video-intel/21_quirk_lenovo.patch new file mode 100644 index 0000000..8479a40 --- /dev/null +++ b/abs/core-testing/xf86-video-intel/21_quirk_lenovo.patch @@ -0,0 +1,12 @@ +diff -Nurp xserver-xorg-video-intel-2.3.2-1ubuntu2-patched/src/i830_quirks.c xserver-xorg-video-intel-2.3.2-1ubuntu2-working/src/i830_quirks.c +--- xserver-xorg-video-intel-2.3.2-1ubuntu2-patched/src/i830_quirks.c	2008-06-26 20:21:14.000000000 -0700 ++++ xserver-xorg-video-intel-2.3.2-1ubuntu2-working/src/i830_quirks.c	2008-06-26 20:30:23.000000000 -0700 +@@ -242,6 +242,8 @@ static i830_quirk i830_quirk_list[] = { +  +     /* Lenovo Napa TV (use dmi)*/ +     { PCI_CHIP_I945_GM, 0x17aa, SUBSYS_ANY, quirk_lenovo_tv_dmi }, ++    /* Lenovo T60/R60 needs pipe A force quirk (See LP: #243405) */ ++    { PCI_CHIP_I945_GM, 0x17aa, 0x201a, quirk_pipea_force }, +     /* Lenovo T61 has no TV output */ +     { PCI_CHIP_I965_GM, 0x17aa, 0x20b5, quirk_ignore_tv }, +     /* Lenovo 3000 v200 */ diff --git a/abs/core-testing/xf86-video-intel/23_quirks_studiohybrid_eeepc_and_w251u.patch b/abs/core-testing/xf86-video-intel/23_quirks_studiohybrid_eeepc_and_w251u.patch new file mode 100644 index 0000000..d82923f --- /dev/null +++ b/abs/core-testing/xf86-video-intel/23_quirks_studiohybrid_eeepc_and_w251u.patch @@ -0,0 +1,13 @@ +diff -Nurp xserver-xorg-video-intel-2.4.1-patched/src/i830_quirks.c xserver-xorg-video-intel-2.4.1-working/src/i830_quirks.c +--- xserver-xorg-video-intel-2.4.1-patched/src/i830_quirks.c	2008-09-08 20:12:28.000000000 -0700 ++++ xserver-xorg-video-intel-2.4.1-working/src/i830_quirks.c	2008-09-08 21:02:53.000000000 -0700 +@@ -312,6 +317,9 @@ static i830_quirk i830_quirk_list[] = { +     /* Sony vaio VGN-SZ4MN (See LP: #212163) */ +     { PCI_CHIP_I830_M, 0x104d, 0x81e6, quirk_pipea_force }, +  ++    /* Quanta Gigabyte W251U (See LP: #244242) */ ++    { PCI_CHIP_I945_GM, 0x152d, 0x0755, quirk_pipea_force }, ++ +     /* Ordi Enduro UW31 (See LP: #152416) */ +     { PCI_CHIP_I945_GM, 0x1584, 0x9900, quirk_ignore_tv }, +  diff --git a/abs/core-testing/xf86-video-intel/25_quirk_nc6110.patch b/abs/core-testing/xf86-video-intel/25_quirk_nc6110.patch new file mode 100644 index 0000000..a6db410 --- /dev/null +++ b/abs/core-testing/xf86-video-intel/25_quirk_nc6110.patch @@ -0,0 +1,13 @@ +diff --git a/src/i830_quirks.c b/src/i830_quirks.c +index 089e458..09b7c53 100644 +--- a/src/i830_quirks.c ++++ b/src/i830_quirks.c +@@ -278,6 +278,8 @@ static i830_quirk i830_quirk_list[] = { +     /* Samsung Q45 has no TV output */ +     { PCI_CHIP_I965_GM, 0x144d, 0xc510, quirk_ignore_tv }, +  ++    /* HP Compaq nx6110 has no TV output */ ++    { PCI_CHIP_I915_GM, 0x103c, 0x099c, quirk_ignore_tv }, +     /* HP Compaq 6730s has no TV output */ +     { PCI_CHIP_GM45_GM, 0x103c, 0x30e8, quirk_ignore_tv }, +  diff --git a/abs/core-testing/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch b/abs/core-testing/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch new file mode 100644 index 0000000..d74b809 --- /dev/null +++ b/abs/core-testing/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch @@ -0,0 +1,63 @@ +diff -Nurp patched/src/bios_reader/bios_reader.c working/src/bios_reader/bios_reader.c +--- patched/src/bios_reader/bios_reader.c	2008-10-16 14:06:07.000000000 -0700 ++++ working/src/bios_reader/bios_reader.c	2008-10-16 14:25:07.000000000 -0700 +@@ -180,6 +180,19 @@ static void dump_lvds_options(void *data +     printf("\tPFIT mode: %d\n", options->pfit_mode); + } +  ++static void dump_lvds_ptr_data(void *data, unsigned char *base) ++{ ++    struct bdb_lvds_lfp_data_ptrs *ptrs = data; ++ ++    struct lvds_fp_timing *fp_timing = ++        (struct lvds_fp_timing *)(base + ptrs->ptr[panel_type].fp_timing_offset); ++ ++    printf("LVDS timing pointer data:\n"); ++ ++    printf("\tpanel type %02i: %dx%d\n", panel_type, fp_timing->x_res, ++           fp_timing->y_res); ++} ++ + static void dump_lvds_data(void *data, unsigned char *base) + { +     struct bdb_lvds_lfp_data *lvds_data = data; +@@ -274,6 +287,8 @@ int main(int argc, char **argv) +     dump_general_definitions(find_section(bdb, BDB_GENERAL_DEFINITIONS)); +     dump_lvds_options(find_section(bdb, BDB_LVDS_OPTIONS)); +     dump_lvds_data(find_section(bdb, BDB_LVDS_LFP_DATA), bdb); ++    dump_lvds_ptr_data(find_section(bdb, BDB_LVDS_LFP_DATA_PTRS), ++                       (unsigned char *)bdb); +  +     return 0; + } +diff -Nurp patched/src/i830_bios.c working/src/i830_bios.c +--- patched/src/i830_bios.c	2008-10-16 14:06:07.000000000 -0700 ++++ working/src/i830_bios.c	2008-10-16 14:27:15.000000000 -0700 +@@ -89,7 +89,8 @@ parse_panel_data(I830Ptr pI830, struct b + { +     struct bdb_lvds_options *lvds_options; +     struct bdb_lvds_lfp_data *lvds_lfp_data; +-    struct bdb_lvds_lfp_data_entry *entry; ++    struct bdb_lvds_lfp_data_ptrs *lvds_lfp_data_ptrs; ++    int timing_offset; +     DisplayModePtr fixed_mode; +     unsigned char *timing_ptr; +  +@@ -104,12 +105,13 @@ parse_panel_data(I830Ptr pI830, struct b +     if (lvds_options->panel_type == 0xff) + 	return; +  +-    lvds_lfp_data = find_section(bdb, BDB_LVDS_LFP_DATA); +-    if (!lvds_lfp_data) ++    lvds_lfp_data_ptrs = find_section(bdb, BDB_LVDS_LFP_DATA_PTRS); ++    if (!lvds_lfp_data_ptrs) + 	return; +  +-    entry = &lvds_lfp_data->data[lvds_options->panel_type]; +-    timing_ptr = (unsigned char *)&entry->dvo_timing; ++    timing_offset = ++        lvds_lfp_data_ptrs->ptr[lvds_options->panel_type].dvo_timing_offset; ++    timing_ptr = (unsigned char *)bdb + timing_offset; +  +     fixed_mode = xnfalloc(sizeof(DisplayModeRec)); +     memset(fixed_mode, 0, sizeof(*fixed_mode)); diff --git a/abs/core-testing/xf86-video-intel/27_disable_fbc_on_965.patch b/abs/core-testing/xf86-video-intel/27_disable_fbc_on_965.patch new file mode 100644 index 0000000..cc881b9 --- /dev/null +++ b/abs/core-testing/xf86-video-intel/27_disable_fbc_on_965.patch @@ -0,0 +1,18 @@ +diff --git a/src/i830.h b/src/i830.h +index 5b78236..89f19d2 100644 +--- a/src/i830.h ++++ b/src/i830.h +@@ -950,6 +950,13 @@ static inline int i830_fb_compression_supported(I830Ptr pI830) +      */ +     if (!pI830->tiling || (IS_I965G(pI830) && pI830->accel <= ACCEL_XAA)) + 	return FALSE; ++    /* We have not gotten FBC to work consistently on 965GM. Our best ++     * working theory right now is that FBC simply isn't reliable on ++     * that device. See this bug report for more details: ++     * https://bugs.freedesktop.org/show_bug.cgi?id=16257 ++     */ ++    if (IS_I965GM(pI830)) ++	return FALSE; +     return TRUE; + } +  diff --git a/abs/core-testing/xf86-video-intel/PKGBUILD b/abs/core-testing/xf86-video-intel/PKGBUILD index 106ec41..3530b90 100644 --- a/abs/core-testing/xf86-video-intel/PKGBUILD +++ b/abs/core-testing/xf86-video-intel/PKGBUILD @@ -1,25 +1,43 @@ -# $Id: PKGBUILD 3246 2008-06-21 18:13:57Z jgc $ +# $Id: PKGBUILD 19083 2008-11-14 21:09:00Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org> +# Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-intel -pkgver=2.3.2 +pkgver=2.4.3  pkgrel=1 -pkgdesc="X.org Intel i810/i830/i915 video drivers" +pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/" -depends=('intel-dri' 'libdrm') -makedepends=('pkgconfig' 'xorg-server>=1.4.2' 'xorg-util-macros' 'xf86driproto>=2.0.4' 'glproto>=1.4.9' 'mesa>=7.0.3') - -options=('!libtool') +depends=('intel-dri>=7.2' 'libpciaccess>=0.10.5' 'libdrm>=2.3.1') +makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'xf86driproto>=2.0.4' 'glproto>=1.4.9' 'mesa>=7.2' 'libdrm=2.3.1') +conflicts=('xorg-server<1.5.3' 'xf86-video-i810') +replaces=('xf86-video-i810') +options=('!libtool' 'force')  groups=('xorg-video-drivers') -source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('fef32ffc428d9d565ab10b338ce17855') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +	20_thinkpad_g40_quirk.patch +	21_quirk_lenovo.patch +	23_quirks_studiohybrid_eeepc_and_w251u.patch +	25_quirk_nc6110.patch +	26_i830-use-lfp-data-ptrs.patch +	27_disable_fbc_on_965.patch) +md5sums=('a664819288b98a37f77ab6ae1e14c9d9' +         '68a362a168ffa4f37d9f722f43855468' +         '2d617364ac2e47ca366901d0b849b1a1' +         '3d0f8e593e8eac3000154feb6b0f45b8' +         '3deb800906e6845e8576d4e9d0f22b12' +         'cb7ee7a68858c038020e0cd991143d8e' +         'd215e428585c6e55aefd9f525ebfbe7b')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}" +  patch -Np1 -i "${srcdir}/20_thinkpad_g40_quirk.patch" || return 1 +  patch -Np1 -i "${srcdir}/21_quirk_lenovo.patch" || return 1 +  patch -Np1 -i "${srcdir}/23_quirks_studiohybrid_eeepc_and_w251u.patch" || return 1 +  patch -Np1 -i "${srcdir}/25_quirk_nc6110.patch" || return 1 +  patch -Np1 -i "${srcdir}/26_i830-use-lfp-data-ptrs.patch" || return 1 +  patch -Np1 -i "${srcdir}/27_disable_fbc_on_965.patch" || return 1    ./configure --prefix=/usr \                --enable-dri || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 -  rm -f ${startdir}/pkg/usr/lib/xorg/modules/drivers/i810_drv.so -  rm -f ${startdir}/pkg/usr/share/man/man4/i810.4* +  make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/core-testing/xf86-video-mach64/PKGBUILD b/abs/core-testing/xf86-video-mach64/PKGBUILD new file mode 100644 index 0000000..ed91461 --- /dev/null +++ b/abs/core-testing/xf86-video-mach64/PKGBUILD @@ -0,0 +1,48 @@ +# $Id: PKGBUILD 13016 2008-09-25 18:54:26Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +pkgname=xf86-video-mach64 +pkgver=6.8.0 +pkgrel=2 +_mesaver="7.2" +pkgdesc="X.org mach64 video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +depends=('libdrm>=2.3.1' 'libgl>=7.2') +makedepends=('pkgconfig' 'xorg-server>=1.5.1' 'mesa>=7.2' 'dri2proto' +	     'glproto>=1.4.9' 'xf86driproto' 'diffutils') +conflicts=('xorg-server<1.5.1') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +       http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2 +       mesa-7.1-link-shared.patch) +md5sums=('6081b8fa50c689d51f85c2fbaf93867e' +         '04d379292e023df0b0266825cb0dbde5' +         'f0baa948d9810f268413111ee439d24b') + +build() { +  cd ${startdir}/src/${pkgname}-${pkgver} +  ./configure --prefix=/usr \ +              --enable-dri || return 1 +  make || return 1 +  make DESTDIR=${startdir}/pkg install || return 1 + +  cd ${srcdir}/Mesa-${_mesaver} +  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch || return 1 +  ./configure --prefix=/usr \ +    --with-dri-driverdir=/usr/lib/xorg/modules/dri \ +    --with-dri-drivers=mach64 \ +    --enable-glx-tls \ +    --disable-ttm-api \ +    --with-driver=dri \ +    --enable-xcb \ +    --disable-glu \ +    --disable-glut \ +    --disable-glw || return 1 +  make || return 1 +  cd src/mesa/drivers/dri || return 1 +  make DESTDIR=${pkgdir} install || return 1 +  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so +  rm -rf ${pkgdir}/usr/include +  rm -rf ${pkgdir}/usr/lib/pkgconfig +} diff --git a/abs/core-testing/xf86-video-mach64/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-mach64/mesa-7.1-link-shared.patch new file mode 100644 index 0000000..7fdbf14 --- /dev/null +++ b/abs/core-testing/xf86-video-mach64/mesa-7.1-link-shared.patch @@ -0,0 +1,102 @@ +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile +--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000 +@@ -6,12 +6,17 @@ include $(TOP)/configs/current +  +  +  +-default: $(TOP)/$(LIB_DIR) subdirs ++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs +  +  + $(TOP)/$(LIB_DIR): + 	-mkdir $(TOP)/$(LIB_DIR) +  ++libdricore.so: ++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so ++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR)  +  + subdirs: + 	@for dir in $(DRI_DIRS) ; do \ +@@ -31,12 +36,14 @@ dri.pc: dri.pc.in + 	$(pcedit) $< > $@ +  +  +-install: dri.pc ++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so + 	@for dir in $(DRI_DIRS) ; do \ + 		if [ -d $$dir ] ; then \ + 			(cd $$dir && $(MAKE) install) || exit 1 ; \ + 		fi \ + 	done ++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) + 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal + 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \ + 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal +@@ -52,5 +59,6 @@ clean: + 			(cd $$dir && $(MAKE) clean) ; \ + 		fi \ + 	done ++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so + 	-rm -f common/*.o + 	-rm -f *.pc +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template +--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000 +@@ -1,6 +1,6 @@ + # -*-makefile-*- +  +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so +  + COMMON_SOURCES = \ +         ../common/utils.c \ +@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO +  + $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template + 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ +-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) ++		$(OBJECTS) $(WINOBJ) \ ++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \ ++		$(DRI_LIB_DEPS) +  +  + $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME) +diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S +--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000 +@@ -77,7 +77,6 @@ +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX +-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX + 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + 	pushl	%ebx +@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + 	pushl	%esi +@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + 	pushl	%esi +@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + 	.globl	_generic_read_RGBA_span_RGB565_MMX +-        .hidden _generic_read_RGBA_span_RGB565_MMX + 	.type	_generic_read_RGBA_span_RGB565_MMX, @function +  + _generic_read_RGBA_span_RGB565_MMX: diff --git a/abs/core-testing/xf86-video-mga/PKGBUILD b/abs/core-testing/xf86-video-mga/PKGBUILD index 1d07b1f..5681868 100644 --- a/abs/core-testing/xf86-video-mga/PKGBUILD +++ b/abs/core-testing/xf86-video-mga/PKGBUILD @@ -1,22 +1,25 @@ -# $Id: PKGBUILD 4390 2008-07-06 20:07:05Z jgc $ +# $Id: PKGBUILD 13014 2008-09-25 18:53:21Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-mga  pkgver=1.4.9 -pkgrel=1 +pkgrel=3  pkgdesc="X.org mga video driver" -mesaver="7.0.3" +_mesaver="7.2"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/" -depends=('libdrm' 'expat>=2.0') -makedepends=('pkgconfig' 'xorg-server>=1.4.2' 'imake' 'mesa>=7.0.3' \ +depends=('libgl>=7.2' 'expat>=2.0.1') +makedepends=('pkgconfig' 'xorg-server>=1.5.1' 'imake' 'mesa>=7.2'               'xf86driproto' 'glproto>=1.4.9') +conflicts=('xorg-server<1.5.1')  options=('!libtool' 'force')  groups=('xorg-video-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 -        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${mesaver}.tar.bz2) +        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2 +	mesa-7.1-link-shared.patch)  md5sums=('11066b84b949cd04300ec819c9c51532' -         'e6e6379d7793af40a6bc3ce1bace572e') +         '04d379292e023df0b0266825cb0dbde5' +         'f0baa948d9810f268413111ee439d24b')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} @@ -24,26 +27,22 @@ build() {                --enable-dri || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1 - -  cd ${startdir}/src/Mesa-${mesaver}/configs - -  CONFIG="linux-dri-x86" -  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64" -  echo "EXTRA_LIB_PATH =" >> ${CONFIG} -  echo "OPT_FLAGS = ${CFLAGS}" >> ${CONFIG} -  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG} -  echo "USING_EGL = 0" >> ${CONFIG} -  echo "PROGRAM_DIRS =" >> ${CONFIG} -  echo "MKDEP = makedepend" >> ${CONFIG} -  echo "DRI_DIRS = mga" >> ${CONFIG} -  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG} -  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG} - -  ln -s ${CONFIG} current -  cd ${startdir}/src/Mesa-${mesaver}/src/mesa -  make linux-solo || return 1 -  cd drivers/dri -  make DESTDIR=${startdir}/pkg install || return 1 +  cd ${srcdir}/Mesa-${_mesaver} +  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch || return 1 +  ./configure --prefix=/usr \ +    --with-dri-driverdir=/usr/lib/xorg/modules/dri \ +    --with-dri-drivers=mga \ +    --enable-glx-tls \ +    --disable-ttm-api \ +    --with-driver=dri \ +    --enable-xcb \ +    --disable-glu \ +    --disable-glut \ +    --disable-glw || return 1 +  make || return 1 +  cd src/mesa/drivers/dri || return 1 +  make DESTDIR=${pkgdir} install || return 1 +  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so +  rm -rf ${pkgdir}/usr/include +  rm -rf ${pkgdir}/usr/lib/pkgconfig  } diff --git a/abs/core-testing/xf86-video-mga/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-mga/mesa-7.1-link-shared.patch new file mode 100644 index 0000000..7fdbf14 --- /dev/null +++ b/abs/core-testing/xf86-video-mga/mesa-7.1-link-shared.patch @@ -0,0 +1,102 @@ +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile +--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000 +@@ -6,12 +6,17 @@ include $(TOP)/configs/current +  +  +  +-default: $(TOP)/$(LIB_DIR) subdirs ++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs +  +  + $(TOP)/$(LIB_DIR): + 	-mkdir $(TOP)/$(LIB_DIR) +  ++libdricore.so: ++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so ++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR)  +  + subdirs: + 	@for dir in $(DRI_DIRS) ; do \ +@@ -31,12 +36,14 @@ dri.pc: dri.pc.in + 	$(pcedit) $< > $@ +  +  +-install: dri.pc ++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so + 	@for dir in $(DRI_DIRS) ; do \ + 		if [ -d $$dir ] ; then \ + 			(cd $$dir && $(MAKE) install) || exit 1 ; \ + 		fi \ + 	done ++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) + 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal + 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \ + 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal +@@ -52,5 +59,6 @@ clean: + 			(cd $$dir && $(MAKE) clean) ; \ + 		fi \ + 	done ++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so + 	-rm -f common/*.o + 	-rm -f *.pc +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template +--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000 +@@ -1,6 +1,6 @@ + # -*-makefile-*- +  +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so +  + COMMON_SOURCES = \ +         ../common/utils.c \ +@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO +  + $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template + 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ +-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) ++		$(OBJECTS) $(WINOBJ) \ ++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \ ++		$(DRI_LIB_DEPS) +  +  + $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME) +diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S +--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000 +@@ -77,7 +77,6 @@ +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX +-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX + 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + 	pushl	%ebx +@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + 	pushl	%esi +@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + 	pushl	%esi +@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + 	.globl	_generic_read_RGBA_span_RGB565_MMX +-        .hidden _generic_read_RGBA_span_RGB565_MMX + 	.type	_generic_read_RGBA_span_RGB565_MMX, @function +  + _generic_read_RGBA_span_RGB565_MMX: diff --git a/abs/core-testing/xf86-video-neomagic/PKGBUILD b/abs/core-testing/xf86-video-neomagic/PKGBUILD index cbe614d..7d47807 100644 --- a/abs/core-testing/xf86-video-neomagic/PKGBUILD +++ b/abs/core-testing/xf86-video-neomagic/PKGBUILD @@ -1,22 +1,23 @@ -# $Id: PKGBUILD 3245 2008-06-21 18:12:45Z jgc $ +# $Id: PKGBUILD 22283 2008-12-25 17:06:50Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-neomagic -pkgver=1.2.1 +pkgver=1.2.2  pkgrel=1  pkgdesc="X.org neomagic video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4.2') +makedepends=('pkgconfig' 'xorg-server>=1.5.3') +conflicts=('xorg-server<1.5.3')  groups=('xorg-video-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('a72f57fca4f4dff9a2c82eb1fe7456f4') +md5sums=('896864e1a2d7333c16333a24eac17d00')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/core-testing/xf86-video-nv/PKGBUILD b/abs/core-testing/xf86-video-nv/PKGBUILD index ad4b2ee..7c74343 100644 --- a/abs/core-testing/xf86-video-nv/PKGBUILD +++ b/abs/core-testing/xf86-video-nv/PKGBUILD @@ -1,26 +1,28 @@ -# $Id: PKGBUILD 1904 2008-05-22 18:19:19Z jgc $ +# $Id: PKGBUILD 11446 2008-08-31 15:40:39Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org> +  pkgname=xf86-video-nv -pkgver=2.1.9 +pkgver=2.1.12  pkgrel=1  pkgdesc="X.org nv video driver"  arch=(i686 x86_64) +license=('custom')  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4.0.90') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906') +conflicts=('xorg-server<1.4.99.906')  options=('!libtool') -license=('custom')  groups=('xorg-video-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('c6b7e52fa18455c22eb040b8d2575ce5')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1 -  install -m644 -D ${startdir}/src/${pkgname}-${pkgver}/COPYING \ -                   ${startdir}/pkg/usr/share/licenses/${pkgname}/LICENSE +  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} +  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1  } +md5sums=('42f12a36d7afc26c817e8e8f5c8b7274') diff --git a/abs/core-testing/xf86-video-openchrome/LICENSE.txt b/abs/core-testing/xf86-video-openchrome/LICENSE.txt new file mode 100644 index 0000000..dff1dc3 --- /dev/null +++ b/abs/core-testing/xf86-video-openchrome/LICENSE.txt @@ -0,0 +1,26 @@ +/* + * Copyright 2005-2007 The Openchrome Project  [openchrome.org] + * Copyright 2004-2006 Luc Verhaegen. + * Copyright 2004-2005 The Unichrome Project  [unichrome.sf.net] + * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved. + * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sub license, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ diff --git a/abs/core-testing/xf86-video-openchrome/PKGBUILD b/abs/core-testing/xf86-video-openchrome/PKGBUILD new file mode 100644 index 0000000..235dba8 --- /dev/null +++ b/abs/core-testing/xf86-video-openchrome/PKGBUILD @@ -0,0 +1,29 @@ +# $Id: PKGBUILD 11506 2008-08-31 18:01:45Z jgc $ +# Contributor: Paul Mattal <paul@mattal.com> +# Maintainer: Juergen Hoetzel <juergen@hoetzel.info> + +pkgname=xf86-video-openchrome +pkgver=0.2.903 +pkgrel=1 +pkgdesc="X.Org Openchrome drivers" +arch=(i686 x86_64) +license=('custom') +url="http://www.openchrome.org" +depends=('unichrome-dri>=7.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906' 'xf86driproto' 'xorg-util-macros' 'libxvmc' 'glproto' 'mesa>=7.1') +replaces=('openchrome' 'xf86-video-via') +options=('!libtool' 'force' '!makeflags') +conflicts=('xf86-video-via' 'xf86-video-unichrome' 'openchrome' 'xorg-server<1.4.99.906') +source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.gz +	LICENSE.txt) +md5sums=('bcb3ba67e89824c132790c3a0365c6a5' +         'addb3cf2671f4cf7e91156952de1627f') + +build() { +  cd ${startdir}/src/${pkgname}-$pkgver || return 1 +  ./configure --prefix=/usr || return 1 +  make || return 1 +  make DESTDIR=${startdir}/pkg install || return 1 +  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} +  install -m644 ${srcdir}/LICENSE.txt ${pkgdir}/usr/share/licenses/${pkgname}/COPYING || return 1 +} diff --git a/abs/core-testing/xf86-video-r128/PKGBUILD b/abs/core-testing/xf86-video-r128/PKGBUILD new file mode 100644 index 0000000..9339f9a --- /dev/null +++ b/abs/core-testing/xf86-video-r128/PKGBUILD @@ -0,0 +1,48 @@ +# $Id: PKGBUILD 13012 2008-09-25 18:50:04Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +pkgname=xf86-video-r128 +pkgver=6.8.0 +pkgrel=2 +_mesaver="7.2" +pkgdesc="X.org ati Rage128 video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +depends=('libdrm>=2.3.1' 'libgl>=7.2') +makedepends=('pkgconfig' 'xorg-server>=1.5.1' 'imake' 'mesa>=7.2' +	     'glproto>=1.4.9' 'xf86driproto' 'diffutils') +conflicts=('xorg-server<1.5.1') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +       http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2 +       mesa-7.1-link-shared.patch) +md5sums=('007bec0c6b07d9d3aeca4da18e561efb' +         '04d379292e023df0b0266825cb0dbde5' +         'f0baa948d9810f268413111ee439d24b') + +build() { +  cd ${startdir}/src/${pkgname}-${pkgver} +  ./configure --prefix=/usr \ +              --enable-dri || return 1 +  make || return 1 +  make DESTDIR=${startdir}/pkg install || return 1 + +  cd ${srcdir}/Mesa-${_mesaver} +  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch || return 1 +  ./configure --prefix=/usr \ +    --with-dri-driverdir=/usr/lib/xorg/modules/dri \ +    --with-dri-drivers=r128 \ +    --enable-glx-tls \ +    --disable-ttm-api \ +    --with-driver=dri \ +    --enable-xcb \ +    --disable-glu \ +    --disable-glut \ +    --disable-glw || return 1 +  make || return 1 +  cd src/mesa/drivers/dri || return 1 +  make DESTDIR=${pkgdir} install || return 1 +  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so +  rm -rf ${pkgdir}/usr/include +  rm -rf ${pkgdir}/usr/lib/pkgconfig +} diff --git a/abs/core-testing/xf86-video-r128/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-r128/mesa-7.1-link-shared.patch new file mode 100644 index 0000000..7fdbf14 --- /dev/null +++ b/abs/core-testing/xf86-video-r128/mesa-7.1-link-shared.patch @@ -0,0 +1,102 @@ +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile +--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000 +@@ -6,12 +6,17 @@ include $(TOP)/configs/current +  +  +  +-default: $(TOP)/$(LIB_DIR) subdirs ++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs +  +  + $(TOP)/$(LIB_DIR): + 	-mkdir $(TOP)/$(LIB_DIR) +  ++libdricore.so: ++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so ++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR)  +  + subdirs: + 	@for dir in $(DRI_DIRS) ; do \ +@@ -31,12 +36,14 @@ dri.pc: dri.pc.in + 	$(pcedit) $< > $@ +  +  +-install: dri.pc ++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so + 	@for dir in $(DRI_DIRS) ; do \ + 		if [ -d $$dir ] ; then \ + 			(cd $$dir && $(MAKE) install) || exit 1 ; \ + 		fi \ + 	done ++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) + 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal + 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \ + 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal +@@ -52,5 +59,6 @@ clean: + 			(cd $$dir && $(MAKE) clean) ; \ + 		fi \ + 	done ++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so + 	-rm -f common/*.o + 	-rm -f *.pc +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template +--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000 +@@ -1,6 +1,6 @@ + # -*-makefile-*- +  +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so +  + COMMON_SOURCES = \ +         ../common/utils.c \ +@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO +  + $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template + 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ +-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) ++		$(OBJECTS) $(WINOBJ) \ ++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \ ++		$(DRI_LIB_DEPS) +  +  + $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME) +diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S +--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000 +@@ -77,7 +77,6 @@ +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX +-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX + 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + 	pushl	%ebx +@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + 	pushl	%esi +@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + 	pushl	%esi +@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + 	.globl	_generic_read_RGBA_span_RGB565_MMX +-        .hidden _generic_read_RGBA_span_RGB565_MMX + 	.type	_generic_read_RGBA_span_RGB565_MMX, @function +  + _generic_read_RGBA_span_RGB565_MMX: diff --git a/abs/core-testing/xf86-video-radeonhd/PKGBUILD b/abs/core-testing/xf86-video-radeonhd/PKGBUILD index 7173afd..ce29874 100644 --- a/abs/core-testing/xf86-video-radeonhd/PKGBUILD +++ b/abs/core-testing/xf86-video-radeonhd/PKGBUILD @@ -1,26 +1,27 @@ -# $Id: PKGBUILD 861 2008-04-23 21:44:36Z juergen $ +# $Id: PKGBUILD 22422 2008-12-26 19:30:38Z jgc $  # Maintainer:  <juergen@archlinux.org>  pkgname=xf86-video-radeonhd -pkgver=1.2.1 +pkgver=1.2.4  pkgrel=1  pkgdesc="Experimental Radeon HD video driver for r500 and r600 ATI cards"  arch=(i686 x86_64)  url="http://wiki.x.org/wiki/radeonhd"  license=('custom') -depends=('glibc') -makedepends=('pkgconfig' 'xorg-server' 'diffutils') +depends=('glibc' 'ati-dri>=7.2' 'libdrm' 'libpciaccess') +makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'diffutils') +conflicts=('xorg-server<1.5.3')  options=('!libtool')  conflicts=('xf86-video-radeonhd-git')  replaces=('xf86-video-radeonhd-git')  groups=('xorg-video-drivers') -source=(ftp://ftp.freedesktop.org/pub/individual/driver/$pkgname-$pkgver.tar.bz2) -md5sums=('9db15e1f1f891f514ca72dd9a3cc360a') +source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('3c9cfffe7e3d795dde59ea0eef7361b1')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} -  make DESTDIR=${startdir}/pkg install || return 1 -  install -m644 -D ${startdir}/src/${pkgname}-${pkgver}/COPYING \ -                   ${startdir}/pkg/usr/share/licenses/${pkgname}/LICENSE || return 1 +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1 +  make || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1  } diff --git a/abs/core-testing/xf86-video-rendition/PKGBUILD b/abs/core-testing/xf86-video-rendition/PKGBUILD index 20fba5f..6bb78d2 100644 --- a/abs/core-testing/xf86-video-rendition/PKGBUILD +++ b/abs/core-testing/xf86-video-rendition/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11462 2008-08-31 15:55:46Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-rendition -pkgver=4.1.3 -pkgrel=4 +pkgver=4.2.0 +pkgrel=1  pkgdesc="X.org Rendition video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.2.0') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906') +conflicts=('xorg-server<1.4.99.906')  options=('!libtool')  groups=('xorg-video-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('7c03de3804d4c4f6ff59f74050d24b2b')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } -md5sums=('a8b97feccb32184820d5856fe78d34db') diff --git a/abs/core-testing/xf86-video-s3/PKGBUILD b/abs/core-testing/xf86-video-s3/PKGBUILD index c7aefc2..f294fe9 100644 --- a/abs/core-testing/xf86-video-s3/PKGBUILD +++ b/abs/core-testing/xf86-video-s3/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 22275 2008-12-25 16:57:57Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-s3 -pkgver=0.5.0 -pkgrel=4 +pkgver=0.6.1 +pkgrel=1  pkgdesc="X.org S3 video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.2.0') +makedepends=('pkgconfig' 'xorg-server>=1.5.3') +conflicts=('xorg-server<1.5.3')  options=('!libtool')  groups=('xorg-video-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('a5f1f2f93a50e56bd3aeed009c407337')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } -md5sums=('d95ab6445cab477f39adfbbc81006f67') diff --git a/abs/core-testing/xf86-video-s3virge/PKGBUILD b/abs/core-testing/xf86-video-s3virge/PKGBUILD index 4a27540..18391fb 100644 --- a/abs/core-testing/xf86-video-s3virge/PKGBUILD +++ b/abs/core-testing/xf86-video-s3virge/PKGBUILD @@ -1,49 +1,24 @@ -# $Id: PKGBUILD 3244 2008-06-21 18:11:55Z jgc $ +# $Id: PKGBUILD 22269 2008-12-25 16:53:28Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-s3virge -pkgver=1.10.1 +pkgver=1.10.2  pkgrel=1  pkgdesc="X.org S3 Virge video driver" -mesaver="7.0.3"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/" -depends=('expat>=2.0' 'libdrm') -makedepends=('pkgconfig' 'xorg-server>=1.4.2' 'imake' 'mesa>=7.0.3') +depends=('glibc') +makedepends=('pkgconfig' 'xorg-server>=1.5.3') +conflicts=('xorg-server<1.5.3')  options=(!libtool)  groups=('xorg-video-drivers') -source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 -        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${mesaver}.tar.bz2) -md5sums=('4a293047e988d4ea1e9e96d3b5793f43' -         'e6e6379d7793af40a6bc3ce1bace572e') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('69784e4964d75487d81be4eae3d467dd')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr \ -              --enable-dri || return 1 +              --disable-dri || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 - - -  cd ${startdir}/src/Mesa-${mesaver}/configs - -  CONFIG="linux-dri-x86" -  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64" -  echo "EXTRA_LIB_PATH =" >> ${CONFIG} -  echo "OPT_FLAGS = ${CFLAGS}" >> ${CONFIG} -  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG} -  echo "USING_EGL = 0" >> ${CONFIG} -  echo "PROGRAM_DIRS =" >> ${CONFIG} -  echo "MKDEP = makedepend" >> ${CONFIG} -  echo "DRI_DIRS = s3v" >> ${CONFIG} -  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG} -  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG} - -  ln -s ${CONFIG} current -  cd ${startdir}/src/Mesa-${mesaver}/src/mesa -  make linux-solo || return 1 -  cd drivers/dri -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/core-testing/xf86-video-savage/PKGBUILD b/abs/core-testing/xf86-video-savage/PKGBUILD index 99e5324..0cdb7c7 100644 --- a/abs/core-testing/xf86-video-savage/PKGBUILD +++ b/abs/core-testing/xf86-video-savage/PKGBUILD @@ -1,21 +1,24 @@ -# $Id: PKGBUILD 3243 2008-06-21 18:08:53Z jgc $ +# $Id: PKGBUILD 13010 2008-09-25 18:47:39Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-savage  pkgver=2.2.1 -pkgrel=1 +pkgrel=2  pkgdesc="X.org savage video driver" -mesaver="7.0.3" +_mesaver="7.2"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/" -depends=('libdrm>=2.3.0' 'expat>=2.0') -makedepends=('pkgconfig' 'xorg-server>=1.4.2' 'imake' 'mesa>=7.0.3' 'xf86driproto' 'glproto>=1.4.9') +depends=('libgl>=7.2') +makedepends=('pkgconfig' 'xorg-server>=1.5.1' 'imake' 'mesa>=7.2' 'xf86driproto' 'glproto>=1.4.9') +conflicts=('xorg-server<1.5.1')  options=(!libtool)  groups=('xorg-video-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 -	http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${mesaver}.tar.bz2) +	http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2 +	mesa-7.1-link-shared.patch)  md5sums=('62b8aba48b54eaefeae87df502bf219c' -	 'e6e6379d7793af40a6bc3ce1bace572e') +         '04d379292e023df0b0266825cb0dbde5' +         'f0baa948d9810f268413111ee439d24b')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} @@ -24,26 +27,22 @@ build() {    make || return 1    make DESTDIR=${startdir}/pkg install || return 1 -  cd ${startdir}/src/Mesa-${mesaver} - -  cd configs -  CONFIG="linux-dri-x86" -  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64" -  echo "EXTRA_LIB_PATH =" >> ${CONFIG} -  echo "OPT_FLAGS = ${CFLAGS} -fno-strict-aliasing" >> ${CONFIG} -  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG} -  echo "USING_EGL = 0" >> ${CONFIG} -  echo "PROGRAM_DIRS =" >> ${CONFIG} -  echo "MKDEP = makedepend" >> ${CONFIG} -  echo "DRI_DIRS = savage" >> ${CONFIG} -  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG} -  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG} - -  ln -s ${CONFIG} current -  cd ${startdir}/src/Mesa-${mesaver}/src/mesa -  make linux-solo || return 1 -  cd drivers/dri -  make DESTDIR=${startdir}/pkg install || return 1 +  cd ${startdir}/src/Mesa-${_mesaver} +  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch +  ./configure --prefix=/usr \ +    --with-dri-driverdir=/usr/lib/xorg/modules/dri \ +    --with-dri-drivers=savage \ +    --enable-glx-tls \ +    --disable-ttm-api \ +    --with-driver=dri \ +    --enable-xcb \ +    --disable-glu \ +    --disable-glut \ +    --disable-glw || return 1 +  make || return 1 +  cd src/mesa/drivers/dri || return 1 +  make DESTDIR=${pkgdir} install || return 1 +  rm -rf ${pkgdir}/usr/lib/pkgconfig +  rm -rf ${pkgdir}/usr/include +  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so  } diff --git a/abs/core-testing/xf86-video-savage/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-savage/mesa-7.1-link-shared.patch new file mode 100644 index 0000000..7fdbf14 --- /dev/null +++ b/abs/core-testing/xf86-video-savage/mesa-7.1-link-shared.patch @@ -0,0 +1,102 @@ +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile +--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000 +@@ -6,12 +6,17 @@ include $(TOP)/configs/current +  +  +  +-default: $(TOP)/$(LIB_DIR) subdirs ++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs +  +  + $(TOP)/$(LIB_DIR): + 	-mkdir $(TOP)/$(LIB_DIR) +  ++libdricore.so: ++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so ++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR)  +  + subdirs: + 	@for dir in $(DRI_DIRS) ; do \ +@@ -31,12 +36,14 @@ dri.pc: dri.pc.in + 	$(pcedit) $< > $@ +  +  +-install: dri.pc ++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so + 	@for dir in $(DRI_DIRS) ; do \ + 		if [ -d $$dir ] ; then \ + 			(cd $$dir && $(MAKE) install) || exit 1 ; \ + 		fi \ + 	done ++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) + 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal + 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \ + 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal +@@ -52,5 +59,6 @@ clean: + 			(cd $$dir && $(MAKE) clean) ; \ + 		fi \ + 	done ++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so + 	-rm -f common/*.o + 	-rm -f *.pc +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template +--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000 +@@ -1,6 +1,6 @@ + # -*-makefile-*- +  +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so +  + COMMON_SOURCES = \ +         ../common/utils.c \ +@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO +  + $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template + 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ +-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) ++		$(OBJECTS) $(WINOBJ) \ ++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \ ++		$(DRI_LIB_DEPS) +  +  + $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME) +diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S +--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000 +@@ -77,7 +77,6 @@ +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX +-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX + 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + 	pushl	%ebx +@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + 	pushl	%esi +@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + 	pushl	%esi +@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + 	.globl	_generic_read_RGBA_span_RGB565_MMX +-        .hidden _generic_read_RGBA_span_RGB565_MMX + 	.type	_generic_read_RGBA_span_RGB565_MMX, @function +  + _generic_read_RGBA_span_RGB565_MMX: diff --git a/abs/core-testing/xf86-video-siliconmotion/PKGBUILD b/abs/core-testing/xf86-video-siliconmotion/PKGBUILD index 0e785ed..3518f94 100644 --- a/abs/core-testing/xf86-video-siliconmotion/PKGBUILD +++ b/abs/core-testing/xf86-video-siliconmotion/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 23018 2009-01-01 16:25:18Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-siliconmotion -pkgver=1.5.1 -pkgrel=4 +pkgver=1.7.0 +pkgrel=1  pkgdesc="X.org siliconmotion video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.2.0') +makedepends=('pkgconfig' 'xorg-server>=1.5.3') +conflicts=('xorg-server<1.5.3')  options=('!libtool')  groups=('xorg-video-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('f9acffba89d8be200f91bab3d1df80da')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } -md5sums=('ee35d7714ce44a2b5ac7ad7b7b7dd75a') diff --git a/abs/core-testing/xf86-video-sis/PKGBUILD b/abs/core-testing/xf86-video-sis/PKGBUILD index 02c519d..dfb0625 100644 --- a/abs/core-testing/xf86-video-sis/PKGBUILD +++ b/abs/core-testing/xf86-video-sis/PKGBUILD @@ -1,48 +1,48 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 22281 2008-12-25 17:05:24Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-sis -pkgver=0.9.4 -pkgrel=3 +pkgver=0.10.1 +pkgrel=1  pkgdesc="X.org SiS video driver" -mesaver="7.0.4" +_mesaver="7.2"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/" -depends=('libdrm>=2.3.0' 'expat>=2.0') -makedepends=('pkgconfig' 'xorg-server>=1.4.0.90' 'imake' 'xf86driproto' 'mesa>=7.0.3rc1' 'glproto>=1.4.9') +depends=('libgl>=7.2') +makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'xf86driproto' 'mesa>=7.1' 'glproto>=1.4.9') +conflicts=('xorg-server<1.5.1')  options=('!libtool')  groups=('xorg-video-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 -        http://voxel.dl.sourceforge.net/sourceforge/mesa3d/MesaLib-${mesaver}.tar.gz) -md5sums=('43f12cabf770b06170cdd1cdaafdc50f' -         '909afa3a01ae31478d363837681415ac') +	http://downloads.sourceforge.net/mesa3d/MesaLib-${_mesaver}.tar.bz2 +	mesa-7.1-link-shared.patch) +md5sums=('9f57c2f5ccbd8340db32da1c74083771' +         '04d379292e023df0b0266825cb0dbde5' +         'f0baa948d9810f268413111ee439d24b')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr \                --enable-dri || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1 -  cd ${startdir}/src/Mesa-${mesaver}/configs - -  CONFIG="linux-dri-x86" -  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64" -  echo "EXTRA_LIB_PATH =" >> ${CONFIG} -  echo "OPT_FLAGS = ${CFLAGS}" >> ${CONFIG} -  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG} -  echo "USING_EGL = 0" >> ${CONFIG} -  echo "PROGRAM_DIRS =" >> ${CONFIG} -  echo "MKDEP = makedepend" >> ${CONFIG} -  echo "DRI_DIRS = sis" >> ${CONFIG} -  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG} -  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG} - -  ln -s ${CONFIG} current -  cd ${startdir}/src/Mesa-${mesaver}/src/mesa -  make linux-solo || return 1 -  cd drivers/dri -  make DESTDIR=${startdir}/pkg install || return 1 +  cd "${srcdir}/Mesa-${_mesaver}" +  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1 +  ./configure --prefix=/usr \ +    --with-dri-driverdir=/usr/lib/xorg/modules/dri \ +    --with-dri-drivers=sis \ +    --enable-glx-tls \ +    --disable-ttm-api \ +    --with-driver=dri \ +    --enable-xcb \ +    --disable-glu \ +    --disable-glut \ +    --disable-glw || return 1 +  make || return 1 +  cd src/mesa/drivers/dri || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  rm -rf "${pkgdir}/usr/lib/pkgconfig" +  rm -rf "${pkgdir}/usr/include" +  rm -f "${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so"  } diff --git a/abs/core-testing/xf86-video-sis/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-sis/mesa-7.1-link-shared.patch new file mode 100644 index 0000000..7fdbf14 --- /dev/null +++ b/abs/core-testing/xf86-video-sis/mesa-7.1-link-shared.patch @@ -0,0 +1,102 @@ +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile +--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000 +@@ -6,12 +6,17 @@ include $(TOP)/configs/current +  +  +  +-default: $(TOP)/$(LIB_DIR) subdirs ++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs +  +  + $(TOP)/$(LIB_DIR): + 	-mkdir $(TOP)/$(LIB_DIR) +  ++libdricore.so: ++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so ++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR)  +  + subdirs: + 	@for dir in $(DRI_DIRS) ; do \ +@@ -31,12 +36,14 @@ dri.pc: dri.pc.in + 	$(pcedit) $< > $@ +  +  +-install: dri.pc ++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so + 	@for dir in $(DRI_DIRS) ; do \ + 		if [ -d $$dir ] ; then \ + 			(cd $$dir && $(MAKE) install) || exit 1 ; \ + 		fi \ + 	done ++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) + 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal + 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \ + 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal +@@ -52,5 +59,6 @@ clean: + 			(cd $$dir && $(MAKE) clean) ; \ + 		fi \ + 	done ++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so + 	-rm -f common/*.o + 	-rm -f *.pc +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template +--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000 +@@ -1,6 +1,6 @@ + # -*-makefile-*- +  +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so +  + COMMON_SOURCES = \ +         ../common/utils.c \ +@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO +  + $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template + 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ +-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) ++		$(OBJECTS) $(WINOBJ) \ ++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \ ++		$(DRI_LIB_DEPS) +  +  + $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME) +diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S +--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000 +@@ -77,7 +77,6 @@ +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX +-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX + 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + 	pushl	%ebx +@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + 	pushl	%esi +@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + 	pushl	%esi +@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + 	.globl	_generic_read_RGBA_span_RGB565_MMX +-        .hidden _generic_read_RGBA_span_RGB565_MMX + 	.type	_generic_read_RGBA_span_RGB565_MMX, @function +  + _generic_read_RGBA_span_RGB565_MMX: diff --git a/abs/core-testing/xf86-video-sisusb/PKGBUILD b/abs/core-testing/xf86-video-sisusb/PKGBUILD index 43992ab..0d205b1 100644 --- a/abs/core-testing/xf86-video-sisusb/PKGBUILD +++ b/abs/core-testing/xf86-video-sisusb/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11481 2008-08-31 16:45:57Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-sisusb -pkgver=0.8.1 -pkgrel=4 +pkgver=0.9.0 +pkgrel=1  pkgdesc="X.org SiS USB video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906') +conflicts=('xorg-server<1.4.99.906')  groups=('xorg-video-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('cbd669507e4aa35e468905f09b546333') +md5sums=('7b1f5465f423a859f306f4f1d6306a1b')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } diff --git a/abs/core-testing/xf86-video-tdfx/PKGBUILD b/abs/core-testing/xf86-video-tdfx/PKGBUILD index 82a75af..0f62948 100644 --- a/abs/core-testing/xf86-video-tdfx/PKGBUILD +++ b/abs/core-testing/xf86-video-tdfx/PKGBUILD @@ -1,49 +1,48 @@ -# $Id: PKGBUILD 3259 2008-06-21 18:34:20Z jgc $ +# $Id: PKGBUILD 22277 2008-12-25 17:00:41Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-tdfx -pkgver=1.4.0 +pkgver=1.4.1  pkgrel=1  pkgdesc="X.org tdfx video driver" -_mesaver="7.0.3" +_mesaver="7.2"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/" -depends=('expat>=2.0' 'libdrm>=2.3.0') -makedepends=('pkgconfig' 'xorg-server>=1.4.0.90' 'imake' 'mesa>=7.0.3') +depends=('libgl>=7.2') +makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'mesa>=7.2') +conflicts=('xorg-server<1.5.3')  options=(!libtool)  groups=('xorg-video-drivers')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 -        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2) +        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2 +	mesa-7.1-link-shared.patch) +md5sums=('59acf2a4f721f9b7abbd121748467b16' +         '04d379292e023df0b0266825cb0dbde5' +         'f0baa948d9810f268413111ee439d24b')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr \                --enable-dri || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1 -  cd ${startdir}/src/Mesa-${_mesaver} -  cd configs - -  CONFIG="linux-dri-x86" -  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64" -  echo "EXTRA_LIB_PATH =" >> ${CONFIG} -  echo "OPT_FLAGS = ${CFLAGS} -fno-strict-aliasing" >> ${CONFIG} -  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG} -  echo "USING_EGL = 0" >> ${CONFIG} -  echo "PROGRAM_DIRS =" >> ${CONFIG} -  echo "MKDEP = makedepend" >> ${CONFIG} -  echo "DRI_DIRS = tdfx" >> ${CONFIG} -  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG} -  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG} - -  ln -s ${CONFIG} current -  cd ${startdir}/src/Mesa-${_mesaver}/src/mesa -  make linux-solo || return 1 -  cd drivers/dri -  make DESTDIR=${startdir}/pkg install || return 1 +  cd "${srcdir}/Mesa-${_mesaver}" +  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1 +  ./configure --prefix=/usr \ +    --with-dri-driverdir=/usr/lib/xorg/modules/dri \ +    --with-dri-drivers=tdfx \ +    --enable-glx-tls \ +    --disable-ttm-api \ +    --with-driver=dri \ +    --enable-xcb \ +    --disable-glu \ +    --disable-glut \ +    --disable-glw || return 1 +  make || return 1 +  cd src/mesa/drivers/dri || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  rm -rf "${pkgdir}/usr/lib/pkgconfig" +  rm -rf "${pkgdir}/usr/include" +  rm -f "${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so"  } -md5sums=('b13132f24683ef759bfb0c1db5096496' -         'e6e6379d7793af40a6bc3ce1bace572e') diff --git a/abs/core-testing/xf86-video-tdfx/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-tdfx/mesa-7.1-link-shared.patch new file mode 100644 index 0000000..7fdbf14 --- /dev/null +++ b/abs/core-testing/xf86-video-tdfx/mesa-7.1-link-shared.patch @@ -0,0 +1,102 @@ +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile +--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000 +@@ -6,12 +6,17 @@ include $(TOP)/configs/current +  +  +  +-default: $(TOP)/$(LIB_DIR) subdirs ++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs +  +  + $(TOP)/$(LIB_DIR): + 	-mkdir $(TOP)/$(LIB_DIR) +  ++libdricore.so: ++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so ++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR)  +  + subdirs: + 	@for dir in $(DRI_DIRS) ; do \ +@@ -31,12 +36,14 @@ dri.pc: dri.pc.in + 	$(pcedit) $< > $@ +  +  +-install: dri.pc ++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so + 	@for dir in $(DRI_DIRS) ; do \ + 		if [ -d $$dir ] ; then \ + 			(cd $$dir && $(MAKE) install) || exit 1 ; \ + 		fi \ + 	done ++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) + 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal + 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \ + 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal +@@ -52,5 +59,6 @@ clean: + 			(cd $$dir && $(MAKE) clean) ; \ + 		fi \ + 	done ++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so + 	-rm -f common/*.o + 	-rm -f *.pc +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template +--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000 +@@ -1,6 +1,6 @@ + # -*-makefile-*- +  +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so +  + COMMON_SOURCES = \ +         ../common/utils.c \ +@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO +  + $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template + 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ +-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) ++		$(OBJECTS) $(WINOBJ) \ ++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \ ++		$(DRI_LIB_DEPS) +  +  + $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME) +diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S +--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000 +@@ -77,7 +77,6 @@ +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX +-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX + 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + 	pushl	%ebx +@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + 	pushl	%esi +@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + 	pushl	%esi +@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + 	.globl	_generic_read_RGBA_span_RGB565_MMX +-        .hidden _generic_read_RGBA_span_RGB565_MMX + 	.type	_generic_read_RGBA_span_RGB565_MMX, @function +  + _generic_read_RGBA_span_RGB565_MMX: diff --git a/abs/core-testing/xf86-video-trident/PKGBUILD b/abs/core-testing/xf86-video-trident/PKGBUILD index 5616e12..874f185 100644 --- a/abs/core-testing/xf86-video-trident/PKGBUILD +++ b/abs/core-testing/xf86-video-trident/PKGBUILD @@ -1,49 +1,49 @@ -# $Id: PKGBUILD 3257 2008-06-21 18:32:30Z jgc $ +# $Id: PKGBUILD 22291 2008-12-25 17:22:27Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-trident -pkgver=1.3.0 -pkgrel=2 +pkgver=1.3.1 +pkgrel=1  pkgdesc="X.org Trident video driver" -_mesaver="7.0.3" +_mesaver="7.2"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/" -depends=('libdrm>=2.3.0' 'expat>=2.0') -makedepends=('pkgconfig' 'xorg-server>=1.4.0.90' 'imake' 'mesa>=7.0.3' 'xf86driproto') +depends=('libgl>=7.2') +makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'mesa>=7.2' 'xf86driproto') +conflicts=('xorg-server<1.5.3')  groups=('xorg-video-drivers')  options=(!libtool)  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 -        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2) +        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2 +	mesa-7.1-link-shared.patch) +md5sums=('9f280bef235426394013cb5e1854b823' +         '04d379292e023df0b0266825cb0dbde5' +         'f0baa948d9810f268413111ee439d24b')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr \                --enable-dri || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1 -  cd ${startdir}/src/Mesa-${_mesaver} -  cd configs - -  CONFIG="linux-dri-x86" -  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64" -  echo "EXTRA_LIB_PATH =" >> ${CONFIG} -  echo "OPT_FLAGS = ${CFLAGS}" >> ${CONFIG} -  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG} -  echo "USING_EGL = 0" >> ${CONFIG} -  echo "PROGRAM_DIRS =" >> ${CONFIG} -  echo "MKDEP = makedepend" >> ${CONFIG} -  echo "DRI_DIRS = trident" >> ${CONFIG} -  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} -  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG} -  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG} - -  ln -s ${CONFIG} current -  cd ${startdir}/src/Mesa-${_mesaver}/src/mesa -  make linux-solo || return 1 -  cd drivers/dri -  make DESTDIR=${startdir}/pkg install || return 1 +  cd "${srcdir}/Mesa-${_mesaver}" +  cd ${srcdir}/Mesa-${pkgver} +  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1 +  ./configure --prefix=/usr \ +    --with-dri-driverdir=/usr/lib/xorg/modules/dri \ +    --with-dri-drivers=trident \ +    --enable-glx-tls \ +    --disable-ttm-api \ +    --with-driver=dri \ +    --enable-xcb \ +    --disable-glu \ +    --disable-glut \ +    --disable-glw || return 1 +  make || return 1 +  cd src/mesa/drivers/dri || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  rm -rf "${pkgdir}/usr/lib/pkgconfig" +  rm -rf "${pkgdir}/usr/include" +  rm -f "${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so"  } -md5sums=('e89799579d0cf3858362bd751469e0bf' -         'e6e6379d7793af40a6bc3ce1bace572e') diff --git a/abs/core-testing/xf86-video-trident/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-trident/mesa-7.1-link-shared.patch new file mode 100644 index 0000000..7fdbf14 --- /dev/null +++ b/abs/core-testing/xf86-video-trident/mesa-7.1-link-shared.patch @@ -0,0 +1,102 @@ +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile +--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000 +@@ -6,12 +6,17 @@ include $(TOP)/configs/current +  +  +  +-default: $(TOP)/$(LIB_DIR) subdirs ++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs +  +  + $(TOP)/$(LIB_DIR): + 	-mkdir $(TOP)/$(LIB_DIR) +  ++libdricore.so: ++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so ++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR)  +  + subdirs: + 	@for dir in $(DRI_DIRS) ; do \ +@@ -31,12 +36,14 @@ dri.pc: dri.pc.in + 	$(pcedit) $< > $@ +  +  +-install: dri.pc ++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so + 	@for dir in $(DRI_DIRS) ; do \ + 		if [ -d $$dir ] ; then \ + 			(cd $$dir && $(MAKE) install) || exit 1 ; \ + 		fi \ + 	done ++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) + 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal + 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \ + 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal +@@ -52,5 +59,6 @@ clean: + 			(cd $$dir && $(MAKE) clean) ; \ + 		fi \ + 	done ++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so + 	-rm -f common/*.o + 	-rm -f *.pc +diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template +--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000 +@@ -1,6 +1,6 @@ + # -*-makefile-*- +  +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so +  + COMMON_SOURCES = \ +         ../common/utils.c \ +@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO +  + $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template + 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ +-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) ++		$(OBJECTS) $(WINOBJ) \ ++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \ ++		$(DRI_LIB_DEPS) +  +  + $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME) +diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S +--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000 ++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000 +@@ -77,7 +77,6 @@ +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX +-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX + 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + 	pushl	%ebx +@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX +  */ +  + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + 	pushl	%esi +@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 +-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 + 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + 	pushl	%esi +@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE +  + 	.text + 	.globl	_generic_read_RGBA_span_RGB565_MMX +-        .hidden _generic_read_RGBA_span_RGB565_MMX + 	.type	_generic_read_RGBA_span_RGB565_MMX, @function +  + _generic_read_RGBA_span_RGB565_MMX: diff --git a/abs/core-testing/xf86-video-tseng/PKGBUILD b/abs/core-testing/xf86-video-tseng/PKGBUILD index 6863c46..f5909d7 100644 --- a/abs/core-testing/xf86-video-tseng/PKGBUILD +++ b/abs/core-testing/xf86-video-tseng/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 22279 2008-12-25 17:02:55Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-tseng -pkgver=1.1.1 -pkgrel=4 +pkgver=1.2.1 +pkgrel=1  pkgdesc="X.org tseng video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.2.0') +makedepends=('pkgconfig' 'xorg-server>=1.5.3') +conflicts=('xorg-server<1.5.3')  groups=('xorg-video-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('2f687eddae5dafa5dcc05116561e267c')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } -md5sums=('488aa9c3ec7a95e6589afa4b50bec8b4') diff --git a/abs/core-testing/xf86-video-unichrome/PKGBUILD b/abs/core-testing/xf86-video-unichrome/PKGBUILD index 2f618ca..7f3bc57 100644 --- a/abs/core-testing/xf86-video-unichrome/PKGBUILD +++ b/abs/core-testing/xf86-video-unichrome/PKGBUILD @@ -1,26 +1,23 @@ -# $Id: PKGBUILD 3256 2008-06-21 18:31:47Z jgc $ +# $Id: PKGBUILD 22301 2008-12-25 18:28:12Z jgc $  # Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-unichrome -pkgver=0.2.6 -pkgrel=8 +pkgver=0.2.7 +pkgrel=0.1 +_gitversion=1464eb9ecb178163af0e85443c3e591755c8c320  pkgdesc="Unichrome video drivers for X.Org"  arch=(i686 x86_64)  url="http://unichrome.sf.net/" -depends=('unichrome-dri>=7.0.3') -makedepends=('pkgconfig' 'xorg-server>=1.4.0.90' 'xorg-util-macros' 'xf86driproto' \ -             'glproto' 'mesa>=7.0.3' 'autoconf' 'automake' 'libtool') +depends=('unichrome-dri>=7.2') +makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'xorg-util-macros' 'xf86driproto' 'glproto' 'mesa>=7.2' 'autoconf' 'automake' 'libtool')  options=('!libtool') -conflicts=('xf86-video-via' 'openchrome') -groups=('xorg-video-drivers') -source=(http://downloads.sf.net/unichrome/${pkgname}-${pkgver}.tar.gz -	fix-defines.patch) -md5sums=('fd81a739ae8145bb9729fa9665ef426c' '84142497ed91048bb2d0d082ce8a0229') +conflicts=('xf86-video-via' 'openchrome' 'xf86-video-openchrome' 'xorg-server<1.5.3') +source=(http://cgit.freedesktop.org/~libv/${pkgname}/snapshot/${pkgname}-${_gitversion}.tar.bz2) +md5sums=('dfef1e3b9ed24d50938ea5ee6f708457')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  patch -Np1 -i ${startdir}/src/fix-defines.patch || return 1 +  cd "${srcdir}/${pkgname}-${_gitversion}"    ./autogen.sh --prefix=/usr \                 --enable-dri    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/core-testing/xf86-video-v4l/PKGBUILD b/abs/core-testing/xf86-video-v4l/PKGBUILD index dc8ba80..518e267 100644 --- a/abs/core-testing/xf86-video-v4l/PKGBUILD +++ b/abs/core-testing/xf86-video-v4l/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11496 2008-08-31 16:52:37Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-v4l -pkgver=0.1.1 -pkgrel=4 +pkgver=0.2.0 +pkgrel=1  pkgdesc="X.org v4l video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906') +conflicts=('xorg-server<1.4.99.906')  groups=('xorg-video-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('69339c38eba2cebc357d67e7a755d734') +md5sums=('2251ae2a0a905764941cd7b098e85ad1')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } diff --git a/abs/core-testing/xf86-video-vesa/PKGBUILD b/abs/core-testing/xf86-video-vesa/PKGBUILD index ed4acc7..bbccb88 100644 --- a/abs/core-testing/xf86-video-vesa/PKGBUILD +++ b/abs/core-testing/xf86-video-vesa/PKGBUILD @@ -1,21 +1,20 @@ -# $Id: PKGBUILD 5566 2008-07-18 20:48:52Z jgc $ +# $Id: PKGBUILD 22267 2008-12-25 16:51:23Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-vesa -pkgver=1.3.0 -pkgrel=6 +pkgver=2.1.0 +pkgrel=1  pkgdesc="X.org vesa video driver"  arch=(i686 x86_64)  license=('custom')  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4.2') +makedepends=('pkgconfig' 'xorg-server>=1.5.3') +conflicts=('xorg-server<1.5.3')  groups=('xorg' 'xorg-video-drivers') -options=('!libtool' 'force') -source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 -	COPYING) -md5sums=('4a307852f3b4850e436a41dab2a73676' -         'e5418e7a75e21268637984e70265e146') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('d813269613b4d63ff6dbfbfbd104cc84')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} @@ -23,5 +22,5 @@ build() {    make || return 1    make DESTDIR=${startdir}/pkg install || return 1    install -d -m755 ${pkgdir}/usr/share/licenses/${pkgname} -  install -m644 ${srcdir}/COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1 +  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1  } diff --git a/abs/core-testing/xf86-video-vga/PKGBUILD b/abs/core-testing/xf86-video-vga/PKGBUILD index 1ac84a7..034c440 100644 --- a/abs/core-testing/xf86-video-vga/PKGBUILD +++ b/abs/core-testing/xf86-video-vga/PKGBUILD @@ -1,23 +1,29 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 15043 2008-10-12 12:14:52Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-vga  pkgver=4.1.0 -pkgrel=4 +pkgrel=6  pkgdesc="X.org VGA 16 color video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.1.1') -groups=('xorg-video-drivers') +makedepends=('pkgconfig' 'xorg-server>=1.5.2') +conflicts=('xorg-server<1.5.2')  options=('!libtool') -source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('b93e5fe9757db779a75cd3ce97b9613d') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +	pciaccess.patch) +md5sums=('b93e5fe9757db779a75cd3ce97b9613d' +         'fe3a45179f51fb86215f6fd2b5ac0747')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  cd "${srcdir}/${pkgname}-${pkgver}" +  patch -Np1 -i "${srcdir}/pciaccess.patch" || return 1 +  libtoolize --force || return 1 +  aclocal || return 1 +  autoconf || return 1 +  automake || return 1 +  ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/core-testing/xf86-video-vga/pciaccess.patch b/abs/core-testing/xf86-video-vga/pciaccess.patch new file mode 100644 index 0000000..141701f --- /dev/null +++ b/abs/core-testing/xf86-video-vga/pciaccess.patch @@ -0,0 +1,371 @@ +From: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br> +Date: Fri, 18 Jul 2008 21:27:26 +0000 (-0300) +Subject: Add libpciaccess and remove xf1bpp and xf4bpp support. +X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-vga.git;a=commitdiff;h=97e2d12548921d92b6dc2dcce8abee48f25981d2 + +Add libpciaccess and remove xf1bpp and xf4bpp support. + +  The driver is not fully functional, starts at 320x200, but may require +running something like vbetool post before starting the X Server, and does +not restore console as usually linux consoles use vesafb, but should work +correctly if console is in a "standard vga mode". +--- + +--- a/configure.ac ++++ b/configure.ac +@@ -57,6 +57,22 @@ PKG_CHECK_MODULES(XORG, [xorg-server >=  + sdkdir=$(pkg-config --variable=sdkdir xorg-server) +  + # Checks for libraries. ++SAVE_CPPFLAGS="$CPPFLAGS" ++CPPFLAGS="$CPPFLAGS $XORG_CFLAGS" ++AC_CHECK_DECL(XSERVER_LIBPCIACCESS, ++              [XSERVER_LIBPCIACCESS=yes], [XSERVER_LIBPCIACCESS=no], ++              [#include "xorg-server.h"]) ++AC_CHECK_HEADER(xf1bpp.h,[AC_DEFINE(HAVE_XF1BPP, 1, [Have 1bpp support])],[]) ++AC_CHECK_HEADER(xf4bpp.h,[AC_DEFINE(HAVE_XF4BPP, 1, [Have 4bpp support])],[]) ++CPPFLAGS="$SAVE_CPPFLAGS" ++ ++if test "x$XSERVER_LIBPCIACCESS" = xyes; then ++    PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0]) ++    XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS" ++fi ++AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) ++ ++# Checks for libraries. +  + # Checks for header files. + AC_HEADER_STDC +--- a/src/generic.c ++++ b/src/generic.c +@@ -50,8 +50,13 @@ +  + #include "fb.h" +  ++#if HAVE_XF4BPP + #include "xf4bpp.h" ++#endif ++ ++#if HAVE_XF1BPP + #include "xf1bpp.h" ++#endif +  + #include "shadowfb.h" +  +@@ -62,6 +67,10 @@ + #include "xf86Resources.h" + #include "xf86int10.h" +  ++#ifdef XSERVER_LIBPCIACCESS ++#include <pciaccess.h> ++#endif ++ + /* Some systems #define VGA for their own purposes */ + #undef VGA +  +@@ -79,10 +88,31 @@ + #define CLOCK_TOLERANCE 2000 /* Clock matching tolerance (2MHz) */ + #endif +  ++/* ++ * This structure is used to wrap the screen's CloseScreen vector. ++ */ ++typedef struct _GenericRec ++{ ++    Bool ShadowFB; ++    Bool KGAUniversal; ++    CARD8 * ShadowPtr; ++    CARD32 ShadowPitch; ++    CloseScreenProcPtr CloseScreen; ++    OptionInfoPtr Options; ++#ifdef XSERVER_LIBPCIACCESS ++    struct pci_device *pciInfo; ++#endif ++} GenericRec, *GenericPtr; ++ ++ + /* Forward definitions */ + static const OptionInfoRec *GenericAvailableOptions(int chipid, int busid); + static void                 GenericIdentify(int); + static Bool                 GenericProbe(DriverPtr, int); ++#ifdef XSERVER_LIBPCIACCESS ++static Bool GenericPciProbe(DriverPtr drv, int entity_num, ++			    struct pci_device *dev, intptr_t match_data); ++#endif + static Bool                 GenericPreInit(ScrnInfoPtr, int); + static Bool                 GenericScreenInit(int, ScreenPtr, int, char **); + static Bool                 GenericSwitchMode(int, DisplayModePtr, int); +@@ -97,6 +127,24 @@ static Bool                 GenericMapMe +  + static ModeStatus GenericValidMode(int, DisplayModePtr, Bool, int); +  ++static GenericPtr GenericGetRec(ScrnInfoPtr pScreenInfo); ++ ++enum GenericTypes ++{ ++    CHIP_VGA_GENERIC ++}; ++ ++#ifdef XSERVER_LIBPCIACCESS ++static const struct pci_id_match generic_device_match[] = { ++    { ++	PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, ++	0x00030000, 0x00ffffff, CHIP_VGA_GENERIC ++    }, ++ ++    { 0, 0, 0 }, ++}; ++#endif ++ + /* The root of all evil... */ + _X_EXPORT DriverRec VGA = + { +@@ -106,7 +154,13 @@ _X_EXPORT DriverRec VGA = +     GenericProbe, +     GenericAvailableOptions, +     NULL, +-    0 ++    0, ++    NULL, ++ ++#ifdef XSERVER_LIBPCIACCESS ++    generic_device_match, ++    GenericPciProbe ++#endif + }; +  + typedef enum +@@ -146,8 +200,12 @@ static const char *vgahwSymbols[] = + #ifdef XFree86LOADER + static const char *miscfbSymbols[] = + { ++#if HAVE_XF1BPP +     "xf1bppScreenInit", ++#endif ++#if HAVE_XF4BPP +     "xf4bppScreenInit", ++#endif +     NULL + }; + #endif +@@ -210,7 +268,13 @@ GenericSetup(pointer Module, pointer Opt +     if (!Initialised) +     { + 	Initialised = TRUE; +-	xf86AddDriver(&VGA, Module, 0); ++	xf86AddDriver(&VGA, Module, ++#ifdef XSERVER_LIBPCIACCESS ++		      HaveDriverFuncs ++#else ++		      0 ++#endif ++		      ); + 	LoaderRefSymLists(vgahwSymbols, miscfbSymbols, fbSymbols, + 			  shadowfbSymbols, int10Symbols, NULL); + 	return (pointer)TRUE; +@@ -224,11 +288,6 @@ GenericSetup(pointer Module, pointer Opt + #endif +  +  +-enum GenericTypes +-{ +-    CHIP_VGA_GENERIC +-}; +- + /* Supported chipsets */ + static SymTabRec GenericChipsets[] = + { +@@ -236,11 +295,13 @@ static SymTabRec GenericChipsets[] = +     {-1,               NULL} + }; +  ++#ifndef XSERVER_LIBPCIACCESS + static PciChipsets GenericPCIchipsets[] = + { +     {CHIP_VGA_GENERIC, PCI_CHIP_VGA, RES_SHARED_VGA}, +     {-1,               -1,           RES_UNDEFINED}, + }; ++#endif +  + static IsaChipsets GenericISAchipsets[] = + { +@@ -267,6 +328,37 @@ GenericAvailableOptions(int chipid, int  +  * do a minimal probe for supported hardware. +  */ +  ++#ifdef XSERVER_LIBPCIACCESS ++static Bool ++GenericPciProbe(DriverPtr drv, int entity_num, struct pci_device *dev, ++		intptr_t match_data) ++{ ++    ScrnInfoPtr pScrn; ++ ++    pScrn = xf86ConfigPciEntity(NULL, 0, entity_num, NULL, ++				NULL, NULL, NULL, NULL, NULL); ++    if (pScrn != NULL) { ++	GenericPtr pGeneric = GenericGetRec(pScrn); ++ ++	pScrn->driverVersion = VGA_VERSION_CURRENT; ++	pScrn->driverName    = VGA_DRIVER_NAME; ++	pScrn->name	     = VGA_NAME; ++	pScrn->Probe	     = GenericProbe; ++	pScrn->PreInit       = GenericPreInit; ++	pScrn->ScreenInit    = GenericScreenInit; ++	pScrn->SwitchMode    = GenericSwitchMode; ++	pScrn->AdjustFrame   = GenericAdjustFrame; ++	pScrn->EnterVT       = GenericEnterVT; ++	pScrn->LeaveVT       = GenericLeaveVT; ++	pScrn->FreeScreen    = GenericFreeScreen; ++ ++	pGeneric->pciInfo    = dev; ++    } ++ ++    return (pScrn != NULL); ++} ++#endif ++ + static Bool + GenericProbe(DriverPtr drv, int flags) + { +@@ -283,6 +375,7 @@ GenericProbe(DriverPtr drv, int flags) +     if ((numDevSections = xf86MatchDevice(VGA_NAME, &devSections)) <= 0) + 	return FALSE; +  ++#ifndef XSERVER_LIBPCIACCESS +     /* PCI BUS */ +     if (xf86GetPciVideoInfo()) +     { +@@ -324,6 +417,7 @@ GenericProbe(DriverPtr drv, int flags) + 	    xfree(usedChips); + 	} +     } ++#endif +  +     /* Isa Bus */ +     numUsed = xf86MatchIsaInstances(VGA_NAME, GenericChipsets, +@@ -391,20 +485,6 @@ VGAFindIsaDevice(GDevPtr dev) +     return (int)CHIP_VGA_GENERIC; + } +  +-/* +- * This structure is used to wrap the screen's CloseScreen vector. +- */ +-typedef struct _GenericRec +-{ +-    Bool ShadowFB; +-    Bool KGAUniversal; +-    CARD8 * ShadowPtr; +-    CARD32 ShadowPitch; +-    CloseScreenProcPtr CloseScreen; +-    OptionInfoPtr Options; +-} GenericRec, *GenericPtr; +- +- + static GenericPtr + GenericGetRec(ScrnInfoPtr pScreenInfo) + { +@@ -509,8 +589,14 @@ GenericPreInit(ScrnInfoPtr pScreenInfo,  +  +     switch (pScreenInfo->depth) +     { +-	case 1:  Module = "xf1bpp"; Sym = "xf1bppScreenInit";  break; +-	case 4:  Module = "xf4bpp"; Sym = "xf4bppScreenInit";  break; ++	case 1: ++#if HAVE_XF1BPP ++	Module = "xf1bpp"; Sym = "xf1bppScreenInit";  break; ++#endif ++	case 4: ++#if HAVE_XF4BPP ++	Module = "xf4bpp"; Sym = "xf4bppScreenInit";  break; ++#endif + 	case 8:  Module = "fb";                                break; +  + 	default: +@@ -673,6 +759,8 @@ GenericPreInit(ScrnInfoPtr pScreenInfo,  +     /* Set display resolution */ +     xf86SetDpi(pScreenInfo, 0, 0); +  ++ ++#if HAVE_XF1BPP && HAVE_XF4BPP +     if (xf86ReturnOptValBool(pGenericPriv->Options, OPTION_SHADOW_FB, FALSE)) +     { + 	pGenericPriv->ShadowFB = TRUE; +@@ -688,7 +776,7 @@ GenericPreInit(ScrnInfoPtr pScreenInfo,  + 		   "Enabling universal \"KGA\" treatment.\n"); +     } +  +-#ifdef SPECIAL_FB_BYTE_ACCESS ++#  ifdef SPECIAL_FB_BYTE_ACCESS +     if (!pGenericPriv->ShadowFB && (pScreenInfo->depth == 4)) +     { + 	xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, +@@ -696,8 +784,13 @@ GenericPreInit(ScrnInfoPtr pScreenInfo,  + 	    "  ShadowFB enabled.\n"); + 	pGenericPriv->ShadowFB = TRUE; +     } ++#  endif ++ ++#else ++    pGenericPriv->ShadowFB = TRUE; + #endif +  ++ +     if (pGenericPriv->ShadowFB) +     { + 	pScreenInfo->bitmapBitOrder = BITMAP_BIT_ORDER; +@@ -1378,6 +1471,7 @@ GenericScreenInit(int scrnIndex, ScreenP + #endif + 		ShadowFBInit(pScreen, GenericRefreshArea1bpp); + 	    } ++#if HAVE_XF1BPP + 	    else + 	    { + 		Inited = xf1bppScreenInit(pScreen, pvgaHW->Base, +@@ -1386,6 +1480,7 @@ GenericScreenInit(int scrnIndex, ScreenP + 					  pScreenInfo->xDpi, pScreenInfo->yDpi, + 					  pScreenInfo->displayWidth); + 	    } ++#endif + 	    break; + 	case 4: + 	    if (pGenericPriv->ShadowFB) +@@ -1410,6 +1505,7 @@ GenericScreenInit(int scrnIndex, ScreenP + #endif + 		ShadowFBInit(pScreen, GenericRefreshArea4bpp); + 	    } ++#if HAVE_XF4BPP + 	    else + 	    { + 		Inited = xf4bppScreenInit(pScreen, pvgaHW->Base, +@@ -1418,6 +1514,7 @@ GenericScreenInit(int scrnIndex, ScreenP + 					  pScreenInfo->xDpi, pScreenInfo->yDpi, + 					  pScreenInfo->displayWidth); + 	    } ++#endif + 	    break; + 	case 8: + 	    Inited = fbScreenInit(pScreen, pvgaHW->Base, +@@ -1579,6 +1676,9 @@ GenericMapMem(ScrnInfoPtr scrp) + { +     vgaHWPtr hwp = VGAHWPTR(scrp); +     int scr_index = scrp->scrnIndex; ++#ifdef XSERVER_LIBPCIACCESS ++    GenericPtr pPriv = GenericGetRec(scrp); ++#endif +  +     if (hwp->Base) + 	return TRUE; +@@ -1589,7 +1689,12 @@ GenericMapMem(ScrnInfoPtr scrp) +     if (hwp->MapPhys == 0) + 	hwp->MapPhys = VGA_DEFAULT_PHYS_ADDR; +  +-    hwp->Base = xf86MapDomainMemory(scr_index, VIDMEM_MMIO, hwp->Tag, ++    hwp->Base = xf86MapDomainMemory(scr_index, VIDMEM_MMIO, ++#ifdef XSERVER_LIBPCIACCESS ++				    pPriv->pciInfo, ++#else ++				    hwp->Tag, ++#endif + 				    hwp->MapPhys, hwp->MapSize); +     return hwp->Base != NULL; + } diff --git a/abs/core-testing/xf86-video-vmware/PKGBUILD b/abs/core-testing/xf86-video-vmware/PKGBUILD index 5992099..f259c2e 100644 --- a/abs/core-testing/xf86-video-vmware/PKGBUILD +++ b/abs/core-testing/xf86-video-vmware/PKGBUILD @@ -1,18 +1,19 @@ -# $Id: PKGBUILD 3242 2008-06-21 18:06:18Z jgc $ +# $Id: PKGBUILD 11487 2008-08-31 16:48:39Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-vmware -pkgver=10.16.2 +pkgver=10.16.5  pkgrel=1  pkgdesc="X.org vmware video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.4.2' 'randrproto' 'renderproto' 'xextproto' 'xineramaproto' 'videoproto') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906' 'randrproto' 'renderproto' 'xextproto' 'xineramaproto' 'videoproto') +conflicts=('xorg-server<1.4.99.906')  groups=('xorg-video-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -md5sums=('d79b660e1effb86628930e5c01989216') +md5sums=('6d78c82ea7c2bb0fcb587d7bb4e8f60a')  build() {    cd ${startdir}/src/${pkgname}-${pkgver} diff --git a/abs/core-testing/xf86-video-voodoo/PKGBUILD b/abs/core-testing/xf86-video-voodoo/PKGBUILD index bbbc518..d35e2ac 100644 --- a/abs/core-testing/xf86-video-voodoo/PKGBUILD +++ b/abs/core-testing/xf86-video-voodoo/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 11484 2008-08-31 16:48:17Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xf86-video-voodoo -pkgver=1.1.1 -pkgrel=4 +pkgver=1.2.0 +pkgrel=1  pkgdesc="X.org voodoo video driver"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('glibc') -makedepends=('pkgconfig' 'xorg-server>=1.2.0') +makedepends=('pkgconfig' 'xorg-server>=1.4.99.906') +conflicts=('xorg-server<1.4.99.906')  groups=('xorg-video-drivers')  options=('!libtool')  source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)  build() {    cd ${startdir}/src/${pkgname}-${pkgver} -  ./configure --prefix=/usr \ -              --build=${CHOST} --host=${CHOST} +  ./configure --prefix=/usr || return 1    make || return 1    make DESTDIR=${startdir}/pkg install || return 1  } -md5sums=('bc878e795688b49a595b355482d27174') +md5sums=('7c681d9b57f5e1f798263fc1a9d99245') diff --git a/abs/core-testing/xkeyboard-config/PKGBUILD b/abs/core-testing/xkeyboard-config/PKGBUILD index 5b26253..abac013 100644 --- a/abs/core-testing/xkeyboard-config/PKGBUILD +++ b/abs/core-testing/xkeyboard-config/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 7542 2008-08-02 21:31:59Z jgc $ -# Maintainer: Alexander Baldeck <kth5@archlinux.org> +# $Id: PKGBUILD 22425 2008-12-26 19:55:49Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xkeyboard-config -pkgver=1.3 -pkgrel=1 +pkgver=1.4 +pkgrel=2  pkgdesc="X keyboard configuration files"  arch=(i686 x86_64)  license=('custom') @@ -12,19 +12,21 @@ makedepends=('perlxml' 'pkgconfig')  provides=('xkbdata')  replaces=('xkbdata')  conflicts=('xkbdata') -source=(http://xlibs.freedesktop.org/xkbdesc/xkeyboard-config-${pkgver}.tar.bz2) -md5sums=('d9e9f69f9c6ef5c5a8255cfbe6a57d51') +source=(http://xlibs.freedesktop.org/xkbdesc/xkeyboard-config-${pkgver}.tar.bz2 +	fix-abnt2.patch) +md5sums=('a9fe7efbc67a6966c4d4501f0cf88073' '5af20ec00a42a051cf0d7bcb572471df')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}" +  patch -Np1 -i "${srcdir}/fix-abnt2.patch" || return 1    ./configure --prefix=/usr \                --with-xkb-base=/usr/share/X11/xkb \                --with-xkb-rules-symlink=xorg \                --enable-compat-rules=yes || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 -  rm -f ${startdir}/pkg/usr/share/X11/xkb/compiled || return 1 -  install -m755 -d ${startdir}/pkg/var/lib/xkb -  install -m755 -d ${startdir}/pkg/usr/share/licenses/${pkgname} -  install -m644 COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/ || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  rm -f "${pkgdir}/usr/share/X11/xkb/compiled" || return 1 +  install -m755 -d "${pkgdir}/var/lib/xkb" +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1  } diff --git a/abs/core-testing/xkeyboard-config/fix-abnt2.patch b/abs/core-testing/xkeyboard-config/fix-abnt2.patch new file mode 100644 index 0000000..a451df8 --- /dev/null +++ b/abs/core-testing/xkeyboard-config/fix-abnt2.patch @@ -0,0 +1,20 @@ +From b67326a9b271332c5bef23115d9c4ac7e7b2e6d9 Mon Sep 17 00:00:00 2001 +From: Sergey V. Udaltsov<svu@gnome.org> +Date: Wed, 26  Nov  2008  23:19:41  +0000 +Subject: fixed abnt2 keycodes, b.fd.o#18712 + +--- +diff --git a/keycodes/evdev b/keycodes/evdev +index 760e2d0..9da2cd5 100644 +--- a/keycodes/evdev ++++ b/keycodes/evdev +@@ -311,6 +311,7 @@ xkb_keycodes "jp106" { + // For brazilian ABNT2 keyboard. + xkb_keycodes "abnt2" { +     include "evdev(evdev)" ++    <KPPT> = 129; + }; +  + // PC98 +-- +cgit v0.8.1-24-ge5fb diff --git a/abs/core-testing/xorg-apps/PKGBUILD b/abs/core-testing/xorg-apps/PKGBUILD index dae4b4e..adaccd2 100644 --- a/abs/core-testing/xorg-apps/PKGBUILD +++ b/abs/core-testing/xorg-apps/PKGBUILD @@ -1,22 +1,21 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# $Id: PKGBUILD 19081 2008-11-14 21:07:55Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xorg-apps -pkgver=1.0.3 -pkgrel=3 +pkgver=7.4 +pkgrel=1  pkgdesc="Various X.Org applications"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=(libxcursor libxkbfile libpng libxft libfontenc libxaw)  makedepends=(pkgconfig xbitmaps) -  source=(${url}/releases/individual/app/oclock-1.0.1.tar.bz2          ${url}/releases/individual/app/luit-1.0.3.tar.bz2 -        ${url}/releases/individual/app/xclock-1.0.2.tar.bz2 +        ${url}/releases/individual/app/xclock-1.0.3.tar.bz2          ${url}/releases/individual/app/xpr-1.0.2.tar.bz2 -        ${url}/releases/individual/app/xwd-1.0.1.tar.bz2 +        ${url}/releases/individual/app/xwd-1.0.2.tar.bz2          ${url}/releases/individual/app/xwud-1.0.1.tar.bz2 -        ${url}/releases/individual/app/x11perf-1.4.1.tar.bz2 +        ${url}/releases/individual/app/x11perf-1.5.tar.bz2          ${url}/releases/individual/app/xbiff-1.0.1.tar.bz2          ${url}/releases/individual/app/xclipboard-1.0.1.tar.bz2          ${url}/releases/individual/app/xconsole-1.0.3.tar.bz2 @@ -26,14 +25,35 @@ source=(${url}/releases/individual/app/oclock-1.0.1.tar.bz2          ${url}/releases/individual/app/xload-1.0.2.tar.bz2          ${url}/releases/individual/app/xlogo-1.0.1.tar.bz2          ${url}/releases/individual/app/xmag-1.0.2.tar.bz2 -        ${url}/releases/individual/app/xmessage-1.0.1.tar.bz2 +        ${url}/releases/individual/app/xmessage-1.0.2.tar.bz2          ${url}/releases/individual/app/xcalc-1.0.2.tar.bz2 -	${url}/releases/individual/app/xman-1.0.2.tar.bz2 -	${url}/releases/individual/app/xedit-1.0.2.tar.bz2 +	${url}/releases/individual/app/xman-1.0.3.tar.bz2 +	${url}/releases/individual/app/xedit-1.1.2.tar.bz2  	${url}/releases/individual/app/xmh-1.0.1.tar.bz2) +md5sums=('91f49547f9ed3cd0137c8b7c3183e360' +         'b01e4f71c20fc1c79ed727759c1df40c' +         '2b1a3d030d87e62a591db8ee4c0072e6' +         '6b3a6896081f628bf5a2c9129417c86f' +         '0a6ef08a2ac08ad5c4dd1522eb3788a3' +         '6e3c5d0297d88e890b6f5df31f73dd60' +         '31283bfc3c78718ac1bd71e510d4e774' +         '404f5add4537d22dd109c33e518a5190' +         '2c6ecedb10dc51adbb64c95f22fd99c2' +         '0e1a3110bebabecc2897d67a973526b0' +         '6fc90896b8c786cb1a2100b4167f7874' +         '033f14f7c4e30d1f4edbb22d5ef86883' +         'f66d76abb0f75514ca32272e23cca757' +         'b41ed6b4bcfc9897366c27a94d2bf150' +         '4c5482552f38a7d42398a694cc9b2ee6' +         '7c6a783e42c88360ac31d259a864a19d' +         'b4b561ef11fd184989a6062962e86748' +         'd31a99795b9668f047aa11bf36df6df0' +         '3d3a4b310a65ccce82472ef83acbbf97' +         '67193be728414d45a1922911e6437991' +         '656bcbdd41818a8b5a9f7dba77a3eeba')  build() { -  cd ${startdir}/src +  cd "${srcdir}"    for i in *; do      if [ -d "${i}" ]; then        pushd "${i}" @@ -47,32 +67,11 @@ build() {  	      -i Makefile.* || return 1  	;;        esac -      ./configure --prefix=/usr --disable-xprint \ +      ./configure --prefix=/usr --disable-xprint --mandir=/usr/share/man \                    --with-localealiasfile=/usr/share/X11/locale/locale.alias        make || return 1 -      make DESTDIR=${startdir}/pkg install || return 1 +      make DESTDIR="${pkgdir}" install || return 1        popd      fi    done  } -md5sums=('91f49547f9ed3cd0137c8b7c3183e360' -         'b01e4f71c20fc1c79ed727759c1df40c' -         '6b930326f71993fb54b7203902b387cd' -         '6b3a6896081f628bf5a2c9129417c86f' -         '911addfb7fa402217ddac63e5c1d97c7' -         '6e3c5d0297d88e890b6f5df31f73dd60' -         'fd06c8b8e3572a0e14af65a49e0dd7d1' -         '404f5add4537d22dd109c33e518a5190' -         '2c6ecedb10dc51adbb64c95f22fd99c2' -         '0e1a3110bebabecc2897d67a973526b0' -         '6fc90896b8c786cb1a2100b4167f7874' -         '033f14f7c4e30d1f4edbb22d5ef86883' -         'f66d76abb0f75514ca32272e23cca757' -         'b41ed6b4bcfc9897366c27a94d2bf150' -         '4c5482552f38a7d42398a694cc9b2ee6' -         '7c6a783e42c88360ac31d259a864a19d' -         'b3674c3a00a089764d86aa94e257ccec' -         'd31a99795b9668f047aa11bf36df6df0' -         '855f2dbfa2aff58b8b9cd6a1c1120fad' -         'c56160e93c24ddf17e69891ed50deb72' -         '656bcbdd41818a8b5a9f7dba77a3eeba') diff --git a/abs/core-testing/xorg-server-utils/PKGBUILD b/abs/core-testing/xorg-server-utils/PKGBUILD index eb30890..84b4d12 100644 --- a/abs/core-testing/xorg-server-utils/PKGBUILD +++ b/abs/core-testing/xorg-server-utils/PKGBUILD @@ -1,17 +1,15 @@ -# $Id: PKGBUILD 3241 2008-06-21 18:04:39Z jgc $ +# $Id: PKGBUILD 19183 2008-11-16 22:56:53Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xorg-server-utils -pkgver=7.3 -pkgrel=1 +pkgver=7.4 +pkgrel=2  pkgdesc="X.Org utilities required by xorg-server"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/" -depends=('libxfontcache' 'libxi' 'liblbxutil' 'libxrandr>=1.2.1' 'libxxf86misc' -         'libxaw' 'libxxf86vm' 'libxtrap' 'mcpp>=2.6' 'xtrans') -makedepends=('pkgconfig' 'xbitmaps' 'xproxymngproto') +depends=('libxfontcache' 'libxi' 'libxmu' 'libxxf86misc' 'libxrandr' 'libxxf86vm' 'mcpp>=2.6') +makedepends=('pkgconfig' 'xbitmaps' 'bigreqsproto' 'xtrans')  source=(${url}/releases/individual/app/iceauth-1.0.2.tar.bz2 -        ${url}/releases/individual/app/lbxproxy-1.0.1.tar.bz2          ${url}/releases/individual/app/rgb-1.0.3.tar.bz2          ${url}/releases/individual/app/sessreg-1.0.4.tar.bz2          ${url}/releases/individual/app/xcmsdb-1.0.1.tar.bz2 @@ -24,13 +22,8 @@ source=(${url}/releases/individual/app/iceauth-1.0.2.tar.bz2          ${url}/releases/individual/app/xrefresh-1.0.2.tar.bz2          ${url}/releases/individual/app/xset-1.0.4.tar.bz2          ${url}/releases/individual/app/xsetmode-1.0.0.tar.bz2 -        ${url}/releases/individual/app/xsetpointer-1.0.1.tar.bz2 -        ${url}/releases/individual/app/xsetroot-1.0.2.tar.bz2 -        ${url}/releases/individual/app/xstdcmap-1.0.1.tar.bz2 -        ${url}/releases/individual/app/xtrap-1.0.2.tar.bz2 -        ${url}/releases/individual/app/xvidtune-1.0.1.tar.bz2) +        ${url}/releases/individual/app/xsetroot-1.0.2.tar.bz2)  md5sums=('7ab8b64edf0212a9d9a3c8129901a450' -         '9d5045a5c76b1fe360221b967a5aa0e9'           '44ea16cc3104de6401bc74035f642357'           '839e968d7197b9563f0fd8a5a3aac2e3'           '8579d5f50ba7f0c4a5bf16b9670fea01' @@ -43,11 +36,7 @@ md5sums=('7ab8b64edf0212a9d9a3c8129901a450'           '1228f890f86148e4e6ae22aa73118cbb'           '2f41fd983ba4d89419204854936025e2'           'd074e79d380b031d2f60e4cd56538c93' -         '9e5bcbeda4aaf02bfa095e41d30baee4' -         '9af7db9f3052aef0b11636720b3101dd' -         '86ab558441edfb86f853639e4290a754' -         '97a62a011a11f03b46d72851aa298fa8' -         'e0744594f4e5969b20df28d897781318') +         '9af7db9f3052aef0b11636720b3101dd')  build() {    cd ${startdir}/src @@ -56,19 +45,14 @@ build() {        pushd "${i}"        case "${i}" in          xrdb*) -	  ./configure --prefix=/usr --with-cpp=/usr/bin/mcpp\ -@old -	;; -	lbxproxy*) -	  sed -e 's|$(libdir)/X11/lbxproxy|$(datadir)/X11/libxproxy|g' \ -	      -i Makefile.* || return 1 -	  ./configure --prefix=/usr +	  ./configure --prefix=/usr --mandir=/usr/share/man --with-cpp=/usr/bin/mcpp\ -@old || return 1  	;;  	*) -	  ./configure --prefix=/usr +	  ./configure --prefix=/usr --mandir=/usr/share/man || return 1  	;;        esac        make || return 1 -      make DESTDIR=${startdir}/pkg install || return 1 +      make DESTDIR="${pkgdir}" install || return 1        popd      fi    done diff --git a/abs/core-testing/xorg-server/001_fedora_extramodes.patch b/abs/core-testing/xorg-server/001_fedora_extramodes.patch new file mode 100644 index 0000000..30743b8 --- /dev/null +++ b/abs/core-testing/xorg-server/001_fedora_extramodes.patch @@ -0,0 +1,85 @@ +From: Adam Jackson <ajax@redhat.com> +Date: Sun, 28 Oct 2007 09:37:52 +0100 +Subject: [PATCH] Fedora extra modes list + +--- +Index: xorg-server/hw/xfree86/common/extramodes +=================================================================== +--- xorg-server.orig/hw/xfree86/common/extramodes ++++ xorg-server/hw/xfree86/common/extramodes +@@ -3,16 +3,75 @@ + // + // $XFree86: xc/programs/Xserver/hw/xfree86/etc/extramodes,v 1.5 2002/06/05 19:43:05 dawes Exp $ + // ++// NOTE:  Please keep all video modes sorted in order of X res, then Y res for ++//        ease of maintenance and readability. +  + # 832x624 @ 75Hz (74.55Hz) (fix if the official/Apple spec is different) hsync: 49.725kHz + ModeLine "832x624" 57.284 832  864  928 1152  624  625  628  667 -Hsync -Vsync +  ++# 1152x864 @ 60.00 Hz (GTF) hsync: 53.70 kHz; pclk: 81.62 MHz ++Modeline "1152x864"  81.62  1152 1216 1336 1520  864 865 868 895  -HSync +Vsync ++ ++# 1152x864 @ 70.00 Hz (GTF) hsync: 63.00 kHz; pclk: 96.77 MHz ++Modeline "1152x864"  96.77  1152 1224 1344 1536  864 865 868 900  -HSync +Vsync ++ ++# 1152x864 @ 75.00 Hz (GTF) hsync: 67.65 kHz; pclk: 104.99 MHz ++Modeline "1152x864"  104.99  1152 1224 1352 1552  864 865 868 902  -HSync +Vsync ++ ++# 1152x864 @ 85.00 Hz (GTF) hsync: 77.10 kHz; pclk: 119.65 MHz ++Modeline "1152x864"  119.65  1152 1224 1352 1552  864 865 868 907  -HSync +Vsync ++ ++# 1152x864 @ 85Hz (Red Hat custom modeline) ++ModeLine "1152x864"  121.5 1152 1216 1344 1568    864  865  868  911 +hsync -vsync ++ ++# 1152x864 @ 100.00 Hz (GTF) hsync: 91.50 kHz; pclk: 143.47 MHz ++Modeline "1152x864"  143.47  1152 1232 1360 1568  864 865 868 915  -HSync +Vsync ++ ++# 1360x768 59.96 Hz (CVT) hsync: 47.37 kHz; pclk: 72.00 MHz ++Modeline "1360x768"   72.00  1360 1408 1440 1520  768 771 781 790 +hsync -vsync ++ ++# 1360x768 59.80 Hz (CVT) hsync: 47.72 kHz; pclk: 84.75 MHz ++Modeline "1360x768"   84.75  1360 1432 1568 1776  768 771 781 798 -hsync +vsync ++ + # 1400x1050 @ 60Hz (VESA GTF) hsync: 65.5kHz + ModeLine "1400x1050" 122.0 1400 1488 1640 1880   1050 1052 1064 1082 +hsync +vsync +  ++# 1400x1050 @ 70.00 Hz (GTF) hsync: 76.51 kHz; pclk: 145.06 MHz ++Modeline "1400x1050"  145.06  1400 1496 1648 1896  1050 1051 1054 1093  -HSync +Vsync ++ + # 1400x1050 @ 75Hz (VESA GTF) hsync: 82.2kHz + ModeLine "1400x1050" 155.8 1400 1464 1784 1912   1050 1052 1064 1090 +hsync +vsync +  ++# 1400x1050 @ 85.00 Hz (GTF) hsync: 93.76 kHz; pclk: 179.26 MHz ++Modeline "1400x1050"  179.26  1400 1504 1656 1912  1050 1051 1054 1103  -HSync +Vsync ++ ++# 1440x900 @ 60.00 Hz (CVT) field rate 59.89 Hz; hsync: 55.93 kHz; pclk: 106.50 MHz ++Modeline "1440x900"  106.50  1440 1520 1672 1904  900 903 909 934  -HSync +Vsync ++ ++# 1600x1024 for SGI 1600 SW ++ModeLine "1600x1024" 103.125 1600 1600 1656 1664 1024 1024 1029 1030 +Hsync +Vsync ++ ++# 1680x1050 59.88 Hz (CVT 1.76MA-R) hsync: 64.67 kHz; pclk: 119.00 MHz ++Modeline "1680x1050"  119.00  1680 1728 1760 1840  1050 1053 1059 1080 +hsync -vsync ++ ++# 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz ++Modeline "1680x1050"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync ++ ++# 1680x1050 69.88 Hz (CVT) hsync: 76.58 kHz; pclk: 174.00 MHz ++Modeline "1680x1050"  174.00  1680 1800 1976 2272  1050 1053 1059 1096 -hsync +vsync ++ ++# 1680x1050 74.89 Hz (CVT 1.76MA) hsync: 82.31 kHz; pclk: 187.00 MHz ++Modeline "1680x1050"  187.00  1680 1800 1976 2272  1050 1053 1059 1099 -hsync +vsync ++ ++# 1680x1050 84.94 Hz (CVT 1.76MA) hsync: 93.86 kHz; pclk: 214.75 MHz ++Modeline "1680x1050"  214.75  1680 1808 1984 2288  1050 1053 1059 1105 -hsync +vsync ++ ++# 1920x1080 59.93 Hz (CVT 2.07M9-R) hsync: 66.59 kHz; pclk: 138.50 MHz ++Modeline "1920x1080"  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync ++ ++# 1920x1200 59.95 Hz (CVT 2.30MA-R) hsync: 74.04 kHz; pclk: 154.00 MHz ++Modeline "1920x1200"  154.00  1920 1968 2000 2080  1200 1203 1209 1235 +hsync -vsync ++ + # 1920x1440 @ 85Hz (VESA GTF) hsync: 128.5kHz + Modeline "1920x1440" 341.35  1920 2072 2288 2656  1440 1441 1444 1512 -hsync +vsync +  diff --git a/abs/core-testing/xorg-server/PKGBUILD b/abs/core-testing/xorg-server/PKGBUILD index f9a3401..2dacf0b 100644 --- a/abs/core-testing/xorg-server/PKGBUILD +++ b/abs/core-testing/xorg-server/PKGBUILD @@ -1,42 +1,54 @@ +# $Id: PKGBUILD 21903 2008-12-17 20:32:54Z jgc $ +# Maintainer: Alexander Baldeck <kth5@archlinux.org> +# Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xorg-server -pkgver=1.4.2 -pkgrel=2 -_mesaver=7.0.3 +pkgver=1.5.3 +pkgrel=4  pkgdesc="X.Org X servers"  arch=('i686' 'x86_64')  license=('custom')  url="http://xorg.freedesktop.org" -depends=('libxkbui' 'ncurses' 'libxxf86misc' 'libxfont' -         'libxaw' 'libxxf86vm' 'xcursor-themes' -	 'xkeyboard-config' 'xorg-server-utils' 'xorg-utils' 'libdrm>=2.3.0' -	 'xorg-fonts-misc' 'pixman>=0.10' 'xbitmaps') -makedepends=('pkgconfig' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto' -             'xf86bigfontproto' 'resourceproto' 'evieext' 'damageproto>=1.1.0' -	     'compositeproto>=0.4' 'scrnsaverproto' 'libxres' 'xorg-util-macros' -	     'randrproto' 'glproto>=1.4.9' 'renderproto>=0.9.3' 'autoconf' -	     'automake' 'libtool' 'bison' 'flex' 'gcc' 'libxrender' -	     'libxfixes' 'quilt' 'mesa') +depends=('libx11>=1.1.5' 'libxkbui>=1.0.2' 'libgl' 'libxfont>=1.3.3' 'openssl>=0.9.8h' 'libxxf86misc>=1.0.1' 'libpciaccess>=0.10.5' 'libxv>=1.0.4' 'libxaw>=1.0.4' 'pixman>=0.11.10' 'hal>=0.5.11' 'xcursor-themes' 'xkeyboard-config>=1.3' 'xorg-server-utils' 'xorg-utils' 'xorg-fonts-misc' 'xbitmaps' 'libdrm>=2.3.1' 'diffutils' 'xf86-input-evdev') +makedepends=('glproto>=1.4.9' 'xf86driproto>=2.0.4' 'mesa>=7.2' 'randrproto>=1.2.2' 'renderproto>=0.9.3' 'scrnsaverproto>=1.1.0' 'fontsproto>=2.0.2' 'videoproto>=2.2.2' 'compositeproto>=0.4' 'trapproto>=3.4.3' 'resourceproto>=1.0.2' 'xineramaproto>=1.1.2' 'evieext>=1.0.2' 'libxkbfile>=1.0.5' 'libxmu>=1.0.4' 'libxpm>=3.5.7' 'libxxf86dga>=1.0.2' 'inputproto>=1.4.4' 'xcmiscproto>=1.1.2' 'bigreqsproto' 'libdrm=2.3.1' 'xtrans')  options=('!libtool')  provides=('x-server')  groups=('xorg')  install=xorg-server.install  source=(${url}/releases/individual/xserver/${pkgname}-${pkgver}.tar.bz2 -	http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2 -	ftp://ftp.archlinux.org/other/xorg-server/xorg-server-patches-1.4.2-1.tar.bz2) -md5sums=('fa2915ae377f61c340a18ebef484b64b' -         'e6e6379d7793af40a6bc3ce1bace572e' -         'bc907d6d69b55b445c3046a4d7ecc8ef') +	xserver-1.5-branch-4970d.patch +	001_fedora_extramodes.patch +	xorg-redhat-die-ugly-pattern-die-die-die.patch +	xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch +	xserver-1.5.3-AEI-on-by-default.patch) +md5sums=('308971036e25250e7fe3cccfd5a120f8' +         '61f9bb524501247dce647b218ad14347' +         '033427f2b406cba8dd6103ff374e7156' +         '1a336eb22e27cbf443ec5a2ecddfa93c' +         '7b03ba9b75d795e4f7fdfaa550d97159' +         '63d1d61d217005db7c23c4a98fc3e7eb')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} -  quilt push -a || return 1 -  libtoolize --force --copy || return 1 -  aclocal || return 1 -  autoconf || return 1 -  automake --add-missing || return 1 +  cd "${srcdir}/${pkgname}-${pkgver}" +  # Upstream commits from server-1.5 branch +  patch -Np1 -i "${srcdir}/xserver-1.5-branch-4970d.patch" || return 1 + +  # extramodes +  patch -Np1 -i "${srcdir}/001_fedora_extramodes.patch" || return 1 + +  # Get rid of the ugly pattern +  patch -Np3 -i "${srcdir}/xorg-redhat-die-ugly-pattern-die-die-die.patch" || return 1 + +  # Patch from Fedora to fix FS#12248 +  patch -Np1 -i "${srcdir}/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch" || return 1 + +  # Upstream patch to fix evdev issues with >=2.1.0 +  patch -Np1 -i "${srcdir}/xserver-1.5.3-AEI-on-by-default.patch" || return 1 + +  # Fix dbus config path +  sed -i -e 's/\$(sysconfdir)/\/etc/' config/Makefile.*  || return 1 +    ./configure --prefix=/usr \ -              --with-mesa-source=${startdir}/src/Mesa-${_mesaver} \                --enable-ipv6 \                --enable-dri \                --disable-dmx \ @@ -51,39 +63,43 @@ build() {                --enable-glx-tls \                --enable-xorgcfg \  	      --enable-kdrive \ +              --enable-install-setuid \ +              --enable-config-hal \ +	      --enable-config-dbus \  	      --disable-xfbdev \  	      --disable-xfake \  	      --disable-xsdl \  	      --disable-kdrive-vesa \ -              --enable-install-setuid \ +	      --disable-dri2 \                --disable-xprint \ +              --disable-static \                --sysconfdir=/etc/X11 \                --localstatedir=/var \                --with-default-font-path=/usr/share/fonts/misc,/usr/share/fonts/100dpi:unscaled,/usr/share/fonts/75dpi:unscaled,/usr/share/fonts/TTF,/usr/share/fonts/Type1 \ -              --with-rgb-path=/usr/share/X11/rgb \                --with-xkb-path=/usr/share/X11/xkb \ -              --with-xkb-output=/usr/share/X11/xkb/compiled \ -              --with-dri-driver-path=/usr/lib/xorg/modules/dri \ -              --disable-config-hal \ -              --disable-static  --enable-null-root-cursor +              --with-xkb-output=/var/lib/xkb \ +              --with-dri-driver-path=/usr/lib/xorg/modules/dri || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 +  make DESTDIR="${pkgdir}" install || return 1 -  install -m755 -d ${startdir}/pkg/etc/X11 || return 1 -  install -m755 -d ${startdir}/pkg/var/lib || return 1 -  mv ${startdir}/pkg/usr/share/X11/xkb/compiled ${startdir}/pkg/var/lib/xkb -  ln -sf /var/lib/xkb ${startdir}/pkg/usr/share/X11/xkb/compiled || return 1 +  rm -rf "${pkgdir}/var/log" || return 1 -  cd ${startdir}/pkg/usr/lib/xorg/modules/extensions -  mv libGLcore.so libGLcore.xorg -  mv libglx.so libglx.xorg +  install -m755 -d "${pkgdir}/etc/X11" || return 1 +  install -m755 -d "${pkgdir}/var/lib/xkb" || return 1    # No longer needed, but as nvidia-utils mangles these files,    # keep them like this so they can be restored -  mv ${startdir}/pkg/usr/lib/xorg/modules/libwfb.so \ -     ${startdir}/pkg/usr/lib/xorg/modules/libwfb.so.1.4 || return 1 +  mv "${pkgdir}/usr/lib/xorg/modules/libwfb.so" \ +     "${pkgdir}/usr/lib/xorg/modules/libwfb.so.1.4" || return 1 + +  # Needed for non-mesa drivers, libgl will restore it +  mv "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" \ +     "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg" || return 1 + +  mv "${pkgdir}/usr/lib/xorg/modules/extensions/libdri.so" \ +     "${pkgdir}/usr/lib/xorg/modules/extensions/libdri.xorg" || return 1 -  install -m755 -d ${startdir}/pkg/usr/share/licenses/${pkgname} -  install -m644 ${startdir}/src/${pkgname}-${pkgver}/COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/ || return 1 +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1  } diff --git a/abs/core-testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch b/abs/core-testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch new file mode 100644 index 0000000..4e782f1 --- /dev/null +++ b/abs/core-testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch @@ -0,0 +1,16 @@ +Remove the default root window grey stipple pattern, replacing it with +blackness. + +--- xc/programs/Xserver/dix/window.c.die-ugly-pattern-die-die-die	Tue Feb 12 16:33:04 2002 ++++ xc/programs/Xserver/dix/window.c	Tue Feb 12 16:45:32 2002 +@@ -119,8 +119,8 @@ +  * +  ******/ +  +-static unsigned char _back_lsb[4] = {0x88, 0x22, 0x44, 0x11}; +-static unsigned char _back_msb[4] = {0x11, 0x44, 0x22, 0x88}; ++static unsigned char _back_lsb[4] = {0x00, 0x00, 0x00, 0x00}; ++static unsigned char _back_msb[4] = {0x00, 0x00, 0x00, 0x00}; +  + int screenIsSaved = SCREEN_SAVER_OFF; +  diff --git a/abs/core-testing/xorg-server/xorg-server.install b/abs/core-testing/xorg-server/xorg-server.install index f7ff03a..c67438d 100644 --- a/abs/core-testing/xorg-server/xorg-server.install +++ b/abs/core-testing/xorg-server/xorg-server.install @@ -1,12 +1,33 @@  post_install() { -  rm -f /usr/lib/xorg/modules/libwfb.so -  ln -sf libwfb.so.1.4 /usr/lib/xorg/modules/libwfb.so +  rm -f usr/lib/xorg/modules/libwfb.so +  ln -sf libwfb.so.1.4 usr/lib/xorg/modules/libwfb.so + +  cmp usr/lib/xorg/modules/extensions/libdri.so usr/lib/xorg/modules/extensions/libglx.xorg >/dev/null 2>&1 && rm -f usr/lib/xorg/modules/extensions/libdri.so + +  # If the symlink is dead or non-existent, remove it and make a new one +  if [ ! -e usr/lib/xorg/modules/extensions/libdri.so ]; then +    rm -f usr/lib/xorg/modules/extensions/libdri.so +    ln -sf libdri.xorg usr/lib/xorg/modules/extensions/libdri.so +  fi  }  post_upgrade() { +  if [ "`vercmp $2 1.4.99.906`" -lt 0 ]; then +    cat << _EOF + +  Input device handling has changed in xorg-server 1.5. +  Please read http://wiki.archlinux.org/index.php/Xorg_input_hotplugging. + +_EOF +  fi    post_install  }  post_remove() {    rm -f /usr/lib/xorg/modules/libwfb.so + +  # If the symlink is dead, remove it +  if [ ! -e usr/lib/xorg/modules/extensions/libdri.so ]; then +    rm -f usr/lib/xorg/modules/extensions/libdri.so +  fi  } diff --git a/abs/core-testing/xorg-server/xserver-1.5-branch-4970d.patch b/abs/core-testing/xorg-server/xserver-1.5-branch-4970d.patch new file mode 100644 index 0000000..23cdab0 --- /dev/null +++ b/abs/core-testing/xorg-server/xserver-1.5-branch-4970d.patch @@ -0,0 +1,246 @@ +diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/config/x11-input.fdi xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/config/x11-input.fdi +--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/config/x11-input.fdi	2008-11-05 20:39:01.000000000 +0000 ++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/config/x11-input.fdi	2008-12-16 19:19:00.000000000 +0000 +@@ -64,8 +64,8 @@ +       <merge key="input.x11_options.XkbRules" type="string">base</merge> +  +       <!-- If we're using Linux, we use evdev by default (falling back to +-           keyboard otherwise). --> +-      <merge key="input.x11_driver" type="string">keyboard</merge> ++           kbd otherwise). --> ++      <merge key="input.x11_driver" type="string">kbd</merge> +       <merge key="input.x11_options.XkbModel" type="string">pc105</merge> +       <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" +              string="Linux"> +diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/exa/exa_accel.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/exa/exa_accel.c +--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/exa/exa_accel.c	2008-11-05 20:39:01.000000000 +0000 ++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/exa/exa_accel.c	2008-12-16 19:19:00.000000000 +0000 +@@ -398,6 +398,10 @@ +     RegionPtr srcregion = NULL, dstregion = NULL; +     xRectangle *rects; +  ++    /* avoid doing copy operations if no boxes */ ++    if (nbox == 0) ++	return; ++ +     pSrcPixmap = exaGetDrawablePixmap (pSrcDrawable); +     pDstPixmap = exaGetDrawablePixmap (pDstDrawable); +  +diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/common/xf86Helper.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/common/xf86Helper.c +--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/common/xf86Helper.c	2008-11-05 20:39:01.000000000 +0000 ++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/common/xf86Helper.c	2008-12-16 19:19:00.000000000 +0000 +@@ -448,10 +448,6 @@ + #define GLOBAL_DEFAULT_DEPTH 24 + #endif +  +-#ifndef GLOBAL_DEFAULT_FBBPP +-#define GLOBAL_DEFAULT_FBBPP 32 +-#endif +- + _X_EXPORT Bool + xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int dummy, int fbbpp, + 		int depth24flags) +@@ -529,7 +525,6 @@ + 	    if (depth > 0) + 		scrp->depth = depth; + 	} else { +-	    scrp->bitsPerPixel = GLOBAL_DEFAULT_FBBPP; + 	    scrp->depth = GLOBAL_DEFAULT_DEPTH; + 	} +     } +diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/os-support/linux/int10/linux.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/os-support/linux/int10/linux.c +--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/os-support/linux/int10/linux.c	2008-11-05 20:39:01.000000000 +0000 ++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/os-support/linux/int10/linux.c	2008-12-16 19:19:00.000000000 +0000 +@@ -1,6 +1,6 @@ + /* +  * linux specific part of the int10 module +- * Copyright 1999, 2000, 2001, 2002, 2003, 2004 Egbert Eich ++ * Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2008 Egbert Eich +  */ + #ifdef HAVE_XORG_CONFIG_H + #include <xorg-config.h> +@@ -357,7 +357,10 @@ + 		   "shmat(low_mem) error: %s\n",strerror(errno)); + 	return FALSE; +     } +-     ++    if (mprotect((void*)0, V_RAM, PROT_READ|PROT_WRITE|PROT_EXEC) != 0) ++        xf86DrvMsg(pInt->scrnIndex, X_ERROR, ++		   "Cannot set EXEC bit on low memory: %s\n", strerror(errno)); ++ +     if (((linuxInt10Priv*)pInt->private)->highMem >= 0) { + 	addr = shmat(((linuxInt10Priv*)pInt->private)->highMem, + 		     (char*)HIGH_MEM, 0); +@@ -368,6 +371,11 @@ + 		       "shmget error: %s\n",strerror(errno)); + 	    return FALSE; + 	} ++	if (mprotect((void*)HIGH_MEM, HIGH_MEM_SIZE, ++		     PROT_READ|PROT_WRITE|PROT_EXEC) != 0) ++	    xf86DrvMsg(pInt->scrnIndex, X_ERROR, ++		       "Cannot set EXEC bit on high memory: %s\n", ++		       strerror(errno)); +     } else { + 	if ((fd = open(DEV_MEM, O_RDWR, 0)) >= 0) { + 	    if (mmap((void *)(V_BIOS), SYS_BIOS - V_BIOS, +diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaa.h xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaa.h +--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaa.h	2008-11-05 20:39:01.000000000 +0000 ++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaa.h	2008-12-16 19:19:00.000000000 +0000 +@@ -2,6 +2,10 @@ + #ifndef _XAA_H + #define _XAA_H +  ++#define XAA_VERSION_MAJOR   1 ++#define XAA_VERSION_MINOR   2 ++#define XAA_VERSION_RELEASE 1 ++ + /* +  +    ******** OPERATION SPECIFIC FLAGS ********* +diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaaInitAccel.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaaInitAccel.c +--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaaInitAccel.c	2008-11-05 20:39:01.000000000 +0000 ++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaaInitAccel.c	2008-12-16 19:19:00.000000000 +0000 +@@ -103,7 +103,9 @@ + 	MODINFOSTRING1, + 	MODINFOSTRING2, + 	XORG_VERSION_CURRENT, +-	1, 2, 0, ++	XAA_VERSION_MAJOR, ++	XAA_VERSION_MINOR, ++	XAA_VERSION_RELEASE, + 	ABI_CLASS_VIDEODRV,		/* requires the video driver ABI */ + 	ABI_VIDEODRV_VERSION, + 	MOD_CLASS_NONE, +diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaawrap.h xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaawrap.h +--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaawrap.h	2008-11-05 20:39:01.000000000 +0000 ++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaawrap.h	2008-12-16 19:19:00.000000000 +0000 +@@ -48,8 +48,8 @@ +     XAAPixmapPtr pixPriv = XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pDraw));\ +     GCFuncs *oldFuncs = pGC->funcs;\ +     pGC->funcs = pGCPriv->wrapFuncs;\ +-    pGC->ops = pGCPriv->wrapOps +- ++    pGC->ops = pGCPriv->wrapOps; \ ++    SYNC_CHECK(pGC) +      + #define XAA_PIXMAP_OP_EPILOGUE(pGC)\ +     pGCPriv->wrapOps = pGC->ops;\ +diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/mi/miinitext.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/mi/miinitext.c +--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/mi/miinitext.c	2008-11-05 20:39:01.000000000 +0000 ++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/mi/miinitext.c	2008-12-16 19:19:00.000000000 +0000 +@@ -661,7 +661,8 @@ + #endif +  + #ifdef GLXEXT +-    GlxPushProvider(&__glXDRISWRastProvider); ++    if (serverGeneration == 1) ++	GlxPushProvider(&__glXDRISWRastProvider); +     if (!noGlxExtension) GlxExtensionInit(); + #endif + } +diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/os/utils.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/os/utils.c +--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/os/utils.c	2008-11-05 20:39:01.000000000 +0000 ++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/os/utils.c	2008-12-16 19:19:00.000000000 +0000 +@@ -1702,7 +1702,7 @@ +     int pid; + } *pidlist; +  +-void (*old_alarm)(int) = NULL; /* XXX horrible awful hack */ ++OsSigHandlerPtr old_alarm = NULL; /* XXX horrible awful hack */ +  + pointer + Popen(char *command, char *type) +@@ -1726,7 +1726,7 @@ +     } +  +     /* Ignore the smart scheduler while this is going on */ +-    old_alarm = signal(SIGALRM, SIG_IGN); ++    old_alarm = OsSignal(SIGALRM, SIG_IGN); +     if (old_alarm == SIG_ERR) { +       perror("signal"); +       return NULL; +@@ -1737,7 +1737,7 @@ + 	close(pdes[0]); + 	close(pdes[1]); + 	xfree(cur); +-	if (signal(SIGALRM, old_alarm) == SIG_ERR) ++	if (OsSignal(SIGALRM, old_alarm) == SIG_ERR) + 	  perror("signal"); + 	return NULL; +     case 0:	/* child */ +@@ -1914,7 +1914,7 @@ +     /* allow EINTR again */ +     OsReleaseSignals (); +      +-    if (old_alarm && signal(SIGALRM, old_alarm) == SIG_ERR) { ++    if (old_alarm && OsSignal(SIGALRM, old_alarm) == SIG_ERR) { +       perror("signal"); +       return -1; +     } +diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/xkb/xkbEvents.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/xkb/xkbEvents.c +--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/xkb/xkbEvents.c	2008-11-05 20:39:01.000000000 +0000 ++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/xkb/xkbEvents.c	2008-12-16 19:19:00.000000000 +0000 +@@ -109,7 +109,7 @@ + register CARD16	changed,bState; +  +     interest = kbd->xkb_interest; +-    if (!interest) ++    if (!interest || !kbd->key || !kbd->key->xkbInfo) + 	return; +     xkbi = kbd->key->xkbInfo; +     state= &xkbi->state; +@@ -168,6 +168,9 @@ + unsigned	time = 0,initialized; + CARD16		changed; +  ++    if (!kbd->key || !kbd->key->xkbInfo) ++        return; ++ +     xkbi = kbd->key->xkbInfo; +     initialized= 0; +  +@@ -291,7 +294,7 @@ + Time 		 	time = 0; +  +     interest = kbd->xkb_interest; +-    if (!interest) ++    if (!interest || !kbd->key || !kbd->key->xkbInfo) + 	return; +     xkbi = kbd->key->xkbInfo; +   +@@ -401,6 +404,9 @@ + Time 		time = 0; + XID		winID = 0; +  ++    if (!kbd->key || !kbd->key->xkbInfo) ++        return; ++ +     xkbi = kbd->key->xkbInfo; +  +     if ((force||(xkbi->desc->ctrls->enabled_ctrls&XkbAudibleBellMask))&& +@@ -616,11 +622,12 @@ + XkbInterestPtr	 interest; + Time 		 time = 0; +  +-    xkbi = kbd->key->xkbInfo; +     interest = kbd->xkb_interest; +-    if (!interest) ++    if (!interest || !kbd->key || !kbd->key->xkbInfo) + 	return; +   ++    xkbi = kbd->key->xkbInfo; ++ +     initialized = 0; +     pEv->mods= xkbi->state.mods; +     pEv->group= xkbi->state.group; +@@ -996,6 +1003,10 @@ + ClientPtr	client = NULL; +  +     found= False; ++ ++    if (!dev->key || !dev->key->xkbInfo) ++        return found; ++ +     autoCtrls= autoValues= 0; +     if ( dev->xkb_interest ) { + 	interest = dev->xkb_interest; diff --git a/abs/core-testing/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch b/abs/core-testing/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch new file mode 100644 index 0000000..2ac6095 --- /dev/null +++ b/abs/core-testing/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch @@ -0,0 +1,69 @@ +From 638cab7e1dc3711f7fb04155bcdabf4b8895cc5e Mon Sep 17 00:00:00 2001 +From: Peter Hutterer <peter.hutterer@who-t.net> +Date: Mon, 4 Aug 2008 17:08:36 +0930 +Subject: [PATCH] xfree86: force SwitchCoreKeyboard for evdev devices (updated). + +If an evdev keyboard device is added through the HAL mechanism, force a +SwitchCoreKeyboard to load the evdev map into the VCK. This way, by the time a +client starts the evdev keymap is already there, leading to less pain lateron. + +Works if: +- all keyboards are hotplugged through HAL, and/or +- the xorg.conf keyboard uses the kbd driver. + +Has no effect (i.e. busted keymaps) if: +- an evdev keyboard device has been specified in the xorg.conf. +- we don't have a device at startup and plug a device in after starting the +  desktop environment. +- if the device we use isn't the first one reported by HAL. + +If HAL isn't set up, this patch is a noop. +--- + hw/xfree86/common/xf86Xinput.c |   31 +++++++++++++++++++++++++++++++ + 1 files changed, 31 insertions(+), 0 deletions(-) + +diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c +index 710e787..dacc3dc 100644 +--- a/hw/xfree86/common/xf86Xinput.c ++++ b/hw/xfree86/common/xf86Xinput.c +@@ -423,6 +423,37 @@ NewInputDeviceRequest (InputOption *options, DeviceIntPtr *pdev) +         (!is_auto || xf86Info.autoEnableDevices)) +         EnableDevice(dev); +  ++    /* XXX: The VCK always starts with built-in defaults for keymap. These ++     * defaults are different to the evdev ones. When the first key is hit on ++     * an extension device, the keymap is copied into the VCK's and any ++     * changes made at runtime to the VCK map are lost. ++     * ++     * Assumption: if we have at least one evdev keyboard device, we can ++     * ignore kbd devices. Force a SwitchCoreKeyboard so the VCK has the same ++     * keymap as we do. ++     * ++     * Next time we hit a key, we don't change the map over anymore (see ++     * SwitchCoreKeyboard), and live happily ever after. ++     * Until we have 2 physical keyboards. Or the first real keyboard isn't ++     * actually the one we use. Oh well. ++     * ++     */ ++    if (dev->key) ++    { ++        InputInfoPtr info; ++ ++        /* Search if there is one other keyboard that uses evdev. */ ++        for (info = xf86InputDevs; info; info = info->next) ++        { ++            if (info != pInfo && info->dev && info->dev->key && ++                (strcmp(info->drv->driverName, "evdev") == 0)) ++                break; ++        } ++ ++        if (!info) ++            SwitchCoreKeyboard(dev); ++    } ++ +     *pdev = dev; +     return Success; +  +--  +1.5.5.1 + diff --git a/abs/core-testing/xorg-server/xserver-1.5.3-AEI-on-by-default.patch b/abs/core-testing/xorg-server/xserver-1.5.3-AEI-on-by-default.patch new file mode 100644 index 0000000..d6cdf83 --- /dev/null +++ b/abs/core-testing/xorg-server/xserver-1.5.3-AEI-on-by-default.patch @@ -0,0 +1,108 @@ +From 15bf414daa83967fd1f24bd48bd01ea941c11ce2 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer <peter.hutterer@redhat.com> +Date: Thu, 13 Nov 2008 10:17:33 +1000 +Subject: [PATCH] xfree86: AllowEmptyInput is true by default - update the xf86Info defaults. + +Also set AutoAddDevices and AutoEnableDevices to their defaults. + +And in doing so, switch the rest of the defaults over to named intializers. + +Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com> +(cherry picked from commit 0b56b44addc323a00eb7cd86240cb0dd4275bcf8) + +Conflicts: + +	hw/xfree86/common/xf86Globals.c +--- + hw/xfree86/common/xf86Globals.c |   69 ++++++++++++++++++++------------------ + 1 files changed, 36 insertions(+), 33 deletions(-) + +diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c +index f5babbc..a5edd82 100644 +--- a/hw/xfree86/common/xf86Globals.c ++++ b/hw/xfree86/common/xf86Globals.c +@@ -95,45 +95,48 @@ InputInfoPtr xf86InputDevs = NULL; + /* Globals that video drivers may not access */ +  + xf86InfoRec xf86Info = { +-	-1,		/* consoleFd */ +-	-1,		/* vtno */ +-	FALSE,		/* vtSysreq */ +-	SKWhenNeeded,	/* ddxSpecialKeys */ +-	NULL,		/* pMouse */ ++    .consoleFd                  = -1, ++    .vtno                       = -1, ++    .vtSysreq                   = FALSE, ++    .ddxSpecialKeys             = SKWhenNeeded, ++    .pMouse                     = NULL, + #ifdef XINPUT +-	NULL,		/* mouseLocal */ ++    .mouseLocal                 = NULL, + #endif +-	-1,		/* lastEventTime */ +-	FALSE,		/* vtRequestsPending */ +-	FALSE,		/* inputPending */ +-	FALSE,		/* dontVTSwitch */ +-	FALSE,		/* dontZap */ +-	FALSE,		/* dontZoom */ +-	FALSE,		/* notrapSignals */ +-	FALSE,		/* caughtSignal */ +-	FALSE,		/* sharedMonitor */ +-	NULL,		/* currentScreen */ ++    .lastEventTime              = -1, ++    .vtRequestsPending          = FALSE, ++    .inputPending               = FALSE, ++    .dontVTSwitch               = FALSE, ++    .dontZap                    = FALSE, ++    .dontZoom                   = FALSE, ++    .notrapSignals              = FALSE, ++    .caughtSignal               = FALSE, ++    .sharedMonitor              = FALSE, ++    .currentScreen              = NULL, + #ifdef CSRG_BASED +-	-1,		/* screenFd */ +-	-1,		/* consType */ ++    .screenFd                   = -1, ++    .consType                   = -1, + #endif +-	FALSE,		/* allowMouseOpenFail */ +-	TRUE,		/* vidModeEnabled */ +-	FALSE,		/* vidModeAllowNonLocal */ +-	TRUE,		/* miscModInDevEnabled */ +-	FALSE,		/* miscModInDevAllowNonLocal */ +-	PCIOsConfig,	/* pciFlags */ +-	Pix24DontCare,	/* pixmap24 */ +-	X_DEFAULT,	/* pix24From */ ++    .allowMouseOpenFail         = FALSE, ++    .vidModeEnabled             = TRUE, ++    .vidModeAllowNonLocal       = FALSE, ++    .miscModInDevEnabled        = TRUE, ++    .miscModInDevAllowNonLocal  = FALSE, ++    .pciFlags                   = PCIOsConfig, ++    .pixmap24                   = Pix24DontCare, ++    .pix24From                  = X_DEFAULT, + #ifdef __i386__ +-	FALSE,		/* pc98 */ ++    .pc98                       = FALSE, + #endif +-	TRUE,		/* pmFlag */ +-	LogNone,	/* syncLog */ +-	0,		/* estimateSizesAggressively */ +-	FALSE,		/* kbdCustomKeycodes */ +-	FALSE,		/* disableRandR */ +-	X_DEFAULT	/* randRFrom */ ++    .pmFlag                     = TRUE, ++    .log                        = LogNone, ++    .estimateSizesAggressively  = 0, ++    .kbdCustomKeycodes          = FALSE, ++    .disableRandR               = FALSE, ++    .randRFrom                  = X_DEFAULT, ++    .allowEmptyInput            = TRUE, ++    .autoAddDevices             = TRUE, ++    .autoEnableDevices          = TRUE + }; + const char *xf86ConfigFile = NULL; + const char *xf86InputDeviceList = NULL; +--  +1.6.0.3 + diff --git a/abs/core-testing/xorg-util-macros/PKGBUILD b/abs/core-testing/xorg-util-macros/PKGBUILD index 8388da6..af3786a 100644 --- a/abs/core-testing/xorg-util-macros/PKGBUILD +++ b/abs/core-testing/xorg-util-macros/PKGBUILD @@ -1,21 +1,21 @@ -# $Id: PKGBUILD 3239 2008-06-21 17:46:04Z jgc $ +# $Id: PKGBUILD 21902 2008-12-17 20:27:32Z jgc $  #Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xorg-util-macros -pkgver=1.1.6 +pkgver=1.2.1  pkgrel=1  pkgdesc="X.Org Autotools macros"  arch=(i686 x86_64)  license=('custom')  url="http://xorg.freedesktop.org/"  source=(${url}/releases/individual/util/util-macros-${pkgver}.tar.bz2) -md5sums=('5b82bf7c25112f2ce7e2a3638a91a83c') +md5sums=('dc7ddaf9bea8b341510efe4dac125af4')  build() { -  cd ${startdir}/src/util-macros-${pkgver} +  cd "${srcdir}/util-macros-${pkgver}"    ./configure --prefix=/usr || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 -  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} -  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname} || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1  } diff --git a/abs/core-testing/xorg-utils/PKGBUILD b/abs/core-testing/xorg-utils/PKGBUILD index 6fe2d0f..61a55ce 100644 --- a/abs/core-testing/xorg-utils/PKGBUILD +++ b/abs/core-testing/xorg-utils/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 18574 2008-11-07 22:08:19Z jgc $ +# $Id: PKGBUILD 18946 2008-11-12 04:14:33Z eric $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xorg-utils @@ -8,7 +8,7 @@ pkgdesc="Collection of client utilities used to query the X server"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/"  depends=('libxxf86dga' 'libxi' 'libxxf86misc' 'libxtst' 'libxinerama' 'libxv' -         'libdmx' 'libxft' 'libxaw') +         'libdmx' 'libxft' 'libxaw>=1.0.5')  makedepends=('pkgconfig' 'mesa')  source=(${url}/releases/individual/app/xdpyinfo-1.0.3.tar.bz2          ${url}/releases/individual/app/xdriinfo-1.0.2.tar.bz2 @@ -21,16 +21,11 @@ source=(${url}/releases/individual/app/xdpyinfo-1.0.3.tar.bz2          ${url}/releases/individual/app/xprop-1.0.4.tar.bz2          ${url}/releases/individual/app/xvinfo-1.0.2.tar.bz2          ${url}/releases/individual/app/xwininfo-1.0.4.tar.bz2) -md5sums=('b7cbab6cbcd12bf7ad65dbc12d86e104' -         'a5ec51ed9f0a55dc3462d90d52ff899c' -         'a9532c3d1683c99bb5df1895cb3a60b1' -         'c72abd90f50ef459bc14b39ec9fcc7f8' -         '288fe4cf8a990e4e602aac16dd9109fb' -         '69adcda848479acc3b82b3928812d191' -         '44473b880d26bfbe8b3d4d72b183cba7' -         '28958248590ff60ecd70e8f590d977b7' -         '48aa8fd78802f477dcbf9ef0dfd9f783' -         'e1e318436f49e2f0f3764593dadd9ad2' +md5sums=('b7cbab6cbcd12bf7ad65dbc12d86e104' 'a5ec51ed9f0a55dc3462d90d52ff899c'\ +         'a9532c3d1683c99bb5df1895cb3a60b1' 'c72abd90f50ef459bc14b39ec9fcc7f8'\ +         '288fe4cf8a990e4e602aac16dd9109fb' '69adcda848479acc3b82b3928812d191'\ +         '44473b880d26bfbe8b3d4d72b183cba7' '28958248590ff60ecd70e8f590d977b7'\ +         '48aa8fd78802f477dcbf9ef0dfd9f783' 'e1e318436f49e2f0f3764593dadd9ad2'\           'e2a9bf5ab7f2a0866700a3b49dd8c6bf')  build() { @@ -38,7 +33,7 @@ build() {    for i in *; do      if [ -d "${i}" ]; then        pushd "${i}" -      ./configure --prefix=/usr || return 1 +      ./configure --prefix=/usr --mandir=/usr/share/man || return 1        make || return 1        make DESTDIR="${pkgdir}" install || return 1        popd diff --git a/abs/core-testing/xorg-xkb-utils/PKGBUILD b/abs/core-testing/xorg-xkb-utils/PKGBUILD index 5bfac78..15ab306 100644 --- a/abs/core-testing/xorg-xkb-utils/PKGBUILD +++ b/abs/core-testing/xorg-xkb-utils/PKGBUILD @@ -1,33 +1,31 @@ -# $Id: PKGBUILD 4399 2008-07-06 20:26:41Z jgc $ +# $Id: PKGBUILD 18690 2008-11-08 17:01:43Z jgc $  # Maintainer: Alexander Baldeck <alexander@archlinux.org>  # Contributor: Jan de Groot <jgc@archlinux.org>  pkgname=xorg-xkb-utils -pkgver=7.3 +pkgver=7.4  pkgrel=1  pkgdesc="X.org keyboard utilities"  arch=(i686 x86_64)  url="http://xorg.freedesktop.org/" -depends=('libxaw' 'libxkbfile') +depends=('libxaw>=1.0.5' 'libxkbfile')  makedepends=(pkgconfig)  source=(${url}/releases/individual/app/xkbutils-1.0.1.tar.bz2          ${url}/releases/individual/app/xkbcomp-1.0.5.tar.bz2          ${url}/releases/individual/app/xkbevd-1.0.2.tar.bz2 -        ${url}/releases/individual/app/xkbprint-1.0.1.tar.bz2          ${url}/releases/individual/app/setxkbmap-1.0.4.tar.bz2)  md5sums=('84396a3dd75337caaae29d8fa5616fb1'           '6cc96c3e4ed5d9802fe717beac008f19'           '68f2a143716c23b566f8509d9498f516' -         'b98ae2d8b21c545b7b322d0b302efefa'           '6fab3bb176be9e510c5613d054ef1ca4')  build() { -  cd ${startdir}/src +  cd "${srcdir}"    for i in *; do      if [ -d "${i}" ]; then        pushd "${i}" -      ./configure --prefix=/usr +      ./configure --prefix=/usr || return 1        make || return 1 -      make DESTDIR=${startdir}/pkg install || return 1 +      make DESTDIR="${pkgdir}" install || return 1        popd      fi    done diff --git a/abs/core-testing/xterm/PKGBUILD b/abs/core-testing/xterm/PKGBUILD index ced251a..f3ac735 100644 --- a/abs/core-testing/xterm/PKGBUILD +++ b/abs/core-testing/xterm/PKGBUILD @@ -1,21 +1,22 @@ -# $Id: PKGBUILD 3697 2008-06-29 12:44:48Z jgc $ +# $Id: PKGBUILD 18684 2008-11-08 16:46:33Z jgc $  #  ppc Maintainer: Alexander Baldeck <alexander@archlinux.org>  # i686 Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=xterm -pkgver=235 +pkgver=237  pkgrel=1  pkgdesc="X Terminal Emulator"  arch=(i686 x86_64)  url="http://invisible-island.net/xterm/" -depends=('libxft' 'libxaw' 'ncurses' 'xorg-apps') +depends=('libxft' 'libxaw>=1.0.5' 'ncurses' 'xorg-apps')  groups=('xorg')  source=(ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver}.tgz) -md5sums=('5060cab9cef0ea09a24928f3c7fbde2b') +md5sums=('6d5f9e124fd3e09487f47c66da8c7345')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver} +  cd "${srcdir}/${pkgname}-${pkgver}"    ./configure --prefix=/usr \                --libdir=/etc \ +              --mandir=/usr/share/man \  	      --with-app-defaults=/usr/share/X11/app-defaults/ \                --with-x \  	      --disable-full-tgetent \ @@ -38,6 +39,6 @@ build() {  	      --enable-mini-luit \  	      --enable-narrowproto || return 1    make || return 1 -  make DESTDIR=${startdir}/pkg install || return 1 -  chmod 0755 ${startdir}/pkg/usr/bin/xterm || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  chmod 0755 "${pkgdir}/usr/bin/xterm" || return 1  } diff --git a/abs/extra-testing/esound/PKGBUILD b/abs/extra-testing/esound/PKGBUILD new file mode 100644 index 0000000..b157aab --- /dev/null +++ b/abs/extra-testing/esound/PKGBUILD @@ -0,0 +1,34 @@ +# $Id: PKGBUILD 19662 2008-11-28 20:35:54Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +pkgname=esound +pkgver=0.2.41 +pkgrel=1 +pkgdesc="Enlightened Sound Daemon" +arch=(i686 x86_64) +license=('LGPL') +depends=('audiofile' 'tcp_wrappers' 'alsa-lib>=1.0.18') +url="http://www.tux.org/~ricdude/EsounD.html" +provides=("esd=${pkgver}") +replaces=('esd') +conflicts=('esd') +backup=('etc/esd.conf') +options=('!libtool') +source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.2/${pkgname}-${pkgver}.tar.bz2 +	esd-0.2.38-alsa-drain.patch +	esd) +md5sums=('8d9aad3d94d15e0d59ba9dc0ea990c6c' +         '3de93efcd1bc196a3585e6aef50eac48' +         'a4c76e7c7f75b201ea7ab6fb15b47472') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  patch -Np1 -i "${srcdir}/esd-0.2.38-alsa-drain.patch" || return 1 +  ./configure --prefix=/usr --sysconfdir=/etc \ +              --localstatedir=/var --disable-static \ +              --with-audiofile --with-libwrap \ +	      --enable-alsa --disable-artstest || return 1 +  make || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  install -m755 -d "${pkgdir}/etc/rc.d" +  install -m755 "${srcdir}/esd" "${pkgdir}/etc/rc.d/esd" || return 1 +} diff --git a/abs/extra-testing/esound/esd b/abs/extra-testing/esound/esd new file mode 100755 index 0000000..d90ef55 --- /dev/null +++ b/abs/extra-testing/esound/esd @@ -0,0 +1,37 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/bin/esd` +case "$1" in +  start) +    stat_busy "Starting Esound Daemon" +    if [ -z "$PID" ]; then  +       /usr/bin/esd -nobeeps & +    fi +    if [ ! -z "$PID" -o $? -gt 0 ]; then +      stat_fail +    else +      add_daemon esd +      stat_done +    fi +    ;; +  stop) +    stat_busy "Stopping Esound Daemon" +    [ ! -z "$PID" ]  && kill $PID &> /dev/null +    if [ $? -gt 0 ]; then +      stat_fail +    else +      rm_daemon esd +      stat_done +    fi +    ;; +  restart) +    $0 stop +    sleep 1 +    $0 start +    ;; +  *) +    echo "usage: $0 {start|stop|restart}"   +esac diff --git a/abs/extra-testing/esound/esd-0.2.38-alsa-drain.patch b/abs/extra-testing/esound/esd-0.2.38-alsa-drain.patch new file mode 100644 index 0000000..f2fb716 --- /dev/null +++ b/abs/extra-testing/esound/esd-0.2.38-alsa-drain.patch @@ -0,0 +1,11 @@ +--- esound-0.2.38/audio_alsa09.c.old	2007-06-11 12:22:24.000000000 +0200 ++++ esound-0.2.38/audio_alsa09.c	2007-06-11 12:22:49.000000000 +0200 +@@ -486,7 +486,7 @@ void esd_audio_flush(void) + 	} +  + 	if (alsa_playback_handle != NULL) +-		snd_pcm_drain( alsa_playback_handle ); ++		snd_pcm_drop( alsa_playback_handle ); +    + 	if (alsadbg)  + 		print_state(); diff --git a/abs/extra-testing/libdvdcss/PKGBUILD b/abs/extra-testing/libdvdcss/PKGBUILD new file mode 100644 index 0000000..9b5253e --- /dev/null +++ b/abs/extra-testing/libdvdcss/PKGBUILD @@ -0,0 +1,22 @@ +# $Id: PKGBUILD 14403 2008-10-06 08:19:39Z douglas $ +# Maintainer: arjan <arjan@archlinux.org> +# Contributor Sarah Hay <sarahhay@mb.sympatico.ca> + +pkgname=libdvdcss +pkgver=1.2.10 +pkgrel=1 +pkgdesc="libdvdcss is a cross-platform library for transparent DVD device access with on-the-fly CSS decryption." +arch=('i686' 'x86_64') +depends=('glibc') +options=('!libtool') +source=(http://download.videolan.org/pub/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2) +url="http://www.videolan.org/libdvdcss/" + +md5sums=('ebd5370b79ac5a83e5c61b24a214cf74') + +build() { +  cd $startdir/src/$pkgname-$pkgver +  ./configure --prefix=/usr +  make || return 1 +  make DESTDIR=$startdir/pkg install +} diff --git a/abs/extra-testing/live-media/PKGBUILD b/abs/extra-testing/live-media/PKGBUILD index 5e37fe1..f3f230d 100644 --- a/abs/extra-testing/live-media/PKGBUILD +++ b/abs/extra-testing/live-media/PKGBUILD @@ -1,16 +1,17 @@ -#$Id: PKGBUILD 13918 2008-09-29 20:59:34Z giovanni $ -#Maintainer: Aaron, phrakture, Griffin <aaron@archlinux.org> -#Contributor: Gilles CHAUVIN <gcnweb@gmail.com> +#$Id: PKGBUILD 21746 2008-12-15 23:00:08Z giovanni $ +# Maintainer: Giovanni Scafora <giovanni@archlinux.org> +# Contributor: Gilles CHAUVIN <gcnweb@gmail.com>  pkgname=live-media -pkgver=2008.10.07 +pkgver=2008.12.20  pkgrel=1  pkgdesc="A set of C++ libraries for multimedia streaming"  arch=('i686' 'x86_64')  license=('LGPL') -url="http://live555.com/liveMedia/" +url="http://live555.com/liveMedia"  depends=(gcc-libs)  source=(http://live555.com/liveMedia/public/live.$pkgver.tar.gz) +md5sums=('266d9b15f57ca952667780d9c2185e5e')  build()  { diff --git a/abs/extra-testing/mercurial/ChangeLog b/abs/extra-testing/mercurial/ChangeLog new file mode 100644 index 0000000..fa0df00 --- /dev/null +++ b/abs/extra-testing/mercurial/ChangeLog @@ -0,0 +1,17 @@ + +2009-01-03  Douglas Soares de Andrade  <douglas@archlinux.org> + +	* Updated for i686: 1.1.2 + +2008-12-02  Douglas Soares de Andrade  <douglas@archlinux.org> + +	* Updated for i686: 1.1 + +2008-08-17  Douglas Soares de Andrade  <douglas@archlinux.org> + +	* Updated for i686: 1.0.2 + +2008-07-10  Douglas Soares de Andrade  <douglas@archlinux.org> + +	* Updated for i686: 1.0.1 + diff --git a/abs/extra-testing/mercurial/PKGBUILD b/abs/extra-testing/mercurial/PKGBUILD new file mode 100644 index 0000000..74de74a --- /dev/null +++ b/abs/extra-testing/mercurial/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 23135 2009-01-03 12:10:17Z douglas $ +# Contributor: Jeff Mickey <jeff@archlinux.org> +# Contributor: Giovanni Scafora <linuxmania@gmail.com> +# Contributor: David 'SleepyDog' <goodluv@gmail.com> +# Maintainer: Douglas Soares de Andrade <douglas@archlinux.org> + +pkgname=mercurial +pkgver=1.1.2 +pkgrel=1 +pkgdesc="A scalable distributed SCM tool" +url="http://www.selenic.com/mercurial" +license=("GPL") +depends=('python>=2.5') +source=(http://www.selenic.com/mercurial/release/$pkgname-$pkgver.tar.gz) +arch=('i686' 'x86_64') + +build() { +    cd $startdir/src/$pkgname-$pkgver +    python setup.py install --root $startdir/pkg +     +    install -d $startdir/pkg/usr/share/man/{man1,man5} +    install -m644 doc/hg.1 $startdir/pkg/usr/share/man/man1 +    install -m644 doc/{hgrc.5,hgignore.5} $startdir/pkg/usr/share/man/man5 +    install -m755 contrib/hgk $startdir/pkg/usr/bin +    install -m644 -D contrib/zsh_completion $startdir/pkg/usr/share/zsh/site-functions/_hg +    install -m644 -D contrib/bash_completion $startdir/pkg/etc/bash_completion.d/hg  +    install -d $startdir/pkg/usr/share/emacs/site-lisp +    install -m644 contrib/{mq.el,mercurial.el} $startdir/pkg/usr/share/emacs/site-lisp +    install -m644 -D contrib/vim/HGAnnotate.vim $startdir/pkg/usr/share/vim/syntax/HGAnnotate.vim + +    # Autoloading plugins to vim = no good.   +    #  install -d $startdir/pkg/usr/share/vim/plugin +    #  install -m644 contrib/vim/{hg-menu.vim,hgcommand.vim,patchreview.vim} $startdir/pkg/usr/share/vim/plugin +} +md5sums=('4fd3b9a2e5dcd025840c3849b136bec8') diff --git a/abs/extra-testing/mingetty/PKGBUILD b/abs/extra-testing/mingetty/PKGBUILD new file mode 100644 index 0000000..d24a8b5 --- /dev/null +++ b/abs/extra-testing/mingetty/PKGBUILD @@ -0,0 +1,30 @@ +# Contributor: stonecrest <stonecrestATgmailDOTcom> +pkgname=mingetty +pkgver=1.08 +pkgrel=2 +pkgdesc="Designed to be a minimal getty and allows automatic logins." +arch=('i686' 'x86_64') +url="http://sourceforge.net/projects/mingetty" +license=('GPL') +depends=('glibc') +makedepends=('gcc' 'make') +provides=('mingetty') +conflicts=('mingetty') +md5sums=('2a75ad6487ff271424ffc00a64420990' +         'b1bcb0668c34d4981e3acddc3990dfdb') +source=(http://downloads.sourceforge.net/sourceforge/mingetty/$pkgname-$pkgver.tar.gz +		mingetty-utf8.patch) + +build() { +	patch $startdir/src/$pkgname-$pkgver/mingetty.c mingetty-utf8.patch || return 1 + +	mkdir -p $startdir/pkg/sbin || return 1 +	mkdir -p $startdir/pkg/usr/man/man8 || return 1 +	 +	cd $startdir/src || return 1 +	cd $startdir/src/$pkgname-$pkgver || return 1 +	 +	LDFLAGS="-s" make || return 1 +	install -m 0755 mingetty $startdir/pkg/sbin || return 1 +	install -m 0644 mingetty.8 $startdir/pkg/usr/man/man8 || return 1 +} diff --git a/abs/extra-testing/mingetty/mingetty-utf8.patch b/abs/extra-testing/mingetty/mingetty-utf8.patch new file mode 100644 index 0000000..c269039 --- /dev/null +++ b/abs/extra-testing/mingetty/mingetty-utf8.patch @@ -0,0 +1,158 @@ +diff -Nru mingetty-1.07.orig/mingetty.c mingetty-1.07/mingetty.c +--- mingetty-1.07.orig/mingetty.c	2004-01-03 15:15:56.000000000 +0200 ++++ mingetty-1.07/mingetty.c	2006-11-22 22:13:26.967910100 +0200 +@@ -16,10 +16,15 @@ +  * - autologin only at first login +  * - /etc/mingetty.conf that can be used instead of /etc/inittab for +  *   command line options +- * - Can UTF-8 setup be done within mingetty? ++ * - Can UTF-8 setup be done within mingetty? Let's try now :-) (VinzC) +  * - Also add /bin/login-type functionality in here? +  */ +  ++/* Additional comments: Vincent Cadet <vcadet@hotmail.com> (2006-11-21) ++ * - Attempt to make mingetty support UTF-8. Modifications were imported ++ *   from Suse migetty.c 0.9.6s. ++ */ ++ + #include <stdio.h> + #include <stdlib.h> + #include <unistd.h> +@@ -39,6 +44,19 @@ + #include <syslog.h> + #include <sys/utsname.h> + #include <time.h> ++#include <locale.h> ++#include <iconv.h> ++#include <wctype.h> ++#include <sys/kd.h> ++#include <sys/ttydefaults.h> ++ ++#ifndef IUTF8 ++# ifndef ASM_IUTF8 ++#  error ASM_IUTF8 input flag not defined - Cannot define IUTF8 ++# else ++#  define IUTF8	ASM_IUTF8 ++# endif ++#endif +  + /* name of this program (argv[0]) */ + static char *progname; +@@ -74,6 +92,8 @@ + static char *autologin = NULL; + /* try to read a char before dropping to login prompt */ + static int loginpause = 0; ++/* terminal mode */ ++static int mode = K_RAW; +  + /* error() - output error messages */ + static void error (const char *fmt, ...) +@@ -187,10 +207,21 @@ + 	if (fd > 2) + 		close (fd); +  ++	/* Detect mode of current keyboard setup, e.g. for UTF-8 */ ++	if (ioctl(0, KDGKBMODE, &mode) < 0) ++		mode = K_RAW; ++ + 	/* Write a reset string to the terminal. This is very linux-specific + 	   and should be checked for other systems. */ + 	if (noclear == 0) +-		write (0, "\033c", 2); ++		/* don't write a full reset (ESC c) because this leaves the  ++		   unicode mode again if the terminal was in unicode mode ++		   and also undos the ESC sequences in CONSOLE_MAGIC which ++		   are needed for some languages/console-fonts. ++		   Just put the cursor to the home position (ESC [ H), ++		   erase everything below the cursor (ESC [ J), and set the ++		   scrolling region to the full window (ESC [ r) */ ++		write (0, "\033[r\033[H\033[J", 9); +  + 	sigaction (SIGHUP, &sa_old, NULL); + } +@@ -292,32 +323,75 @@ +  + static char *get_logname (void) + { +-	static char logname[40]; ++	static char logname[4*UT_NAMESIZE]; + 	char *bp; + 	unsigned char c; ++	int ascii; ++	iconv_t ic; +  + 	tcflush (0, TCIFLUSH);		/* flush pending input */ ++ ++	/* Check for UTF-8 mode */ ++	switch(mode) { ++		case K_UNICODE: ++			ascii = 0; ++			setlocale(LC_CTYPE, "en_US.UTF-8"); ++			break; ++		case K_RAW: ++		case K_MEDIUMRAW: ++		case K_XLATE: ++		default: ++			ascii = 1; ++			setlocale(LC_CTYPE, "POSIX"); ++			break; ++	} ++ + 	for (*logname = 0; *logname == 0;) { + 		do_prompt (1); + 		for (bp = logname;;) { + 			if (read (0, &c, 1) < 1) { +-				if (errno == EINTR || errno == EIO +-					|| errno == ENOENT) ++				if (errno == EINTR || errno == EAGAIN) { ++					usleep(1000); ++					continue; ++				} ++				if (errno == EIO || errno == ENOENT) + 					exit (EXIT_SUCCESS); + 				error ("%s: read: %s", tty, strerror (errno)); + 			} + 			if (c == '\n' || c == '\r') { + 				*bp = 0; + 				break; +-			} else if (!isprint (c)) +-				error ("%s: invalid character 0x%x in login" +-					" name", tty, c); ++			} ++ ++			if (ascii && !isprint (c)) ++				error ("%s: invalid character 0x%x in login name", tty, c); + 			else if ((size_t)(bp - logname) >= sizeof (logname) - 1) + 				error ("%s: too long login name", tty); +-			else +-				*bp++ = c; ++ ++			*bp++ = c; + 		} + 	} ++ ++	if (!ascii && (ic = iconv_open("WCHAR_T", "UTF-8"))) { ++		char tmpbuf[4*sizeof(logname)], *op, *lp; ++		size_t len = bp - logname; ++		size_t out = sizeof(tmpbuf) - 1; ++		size_t wcl; ++		wint_t *wcp; ++ ++		op = tmpbuf; ++		lp = logname; ++		if ((wcl = iconv(ic , &lp, &len, &op, &out)) == (size_t)-1) ++			error ("%s: invalid character conversion for login name", tty); ++		iconv_close(ic); ++ ++		wcp = (wint_t*)tmpbuf; ++		wcp[wcl] = (wint_t)0; ++		while (*wcp) { ++			if (!iswprint(*wcp++)) ++				error ("%s: invalid character for login name found", tty); ++ 		} ++ 	} + 	return logname; + } +  + + diff --git a/abs/extra-testing/mjpegtools/PKGBUILD b/abs/extra-testing/mjpegtools/PKGBUILD index 340b25b..161e7fc 100644 --- a/abs/extra-testing/mjpegtools/PKGBUILD +++ b/abs/extra-testing/mjpegtools/PKGBUILD @@ -1,23 +1,25 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Contributor: Damir Perisa <damir.perisa@bluewin.ch> +# Mantainer: Roberto Carvajal <roberto@archlinux.org> +  pkgname=mjpegtools -pkgver=1.9.0 -pkgrel=1 +pkgver=1.8.0 +pkgrel=3  pkgdesc="The mjpeg programs are a set of tools that can do recording of videos and playback, simple cut-and-paste editing and the MPEG compression of audio and video under Linux. "  arch=(i686 x86_64)  license=('GPL')  url="http://mjpeg.sourceforge.net/" -#depends=('libjpeg' 'libpng' 'sdl' 'gcc' 'libdv') -depends=('libjpeg' 'libpng'  'gcc-libs' 'libdv') +depends=('libjpeg' 'libpng' 'sdl' 'gcc' 'libdv')  makedepends=('gtk2')  options=('!makeflags' '!libtool') -source=(http://downloads.sourceforge.net/sourceforge/mjpeg/${pkgname}-${pkgver}rc3.tar.gz -	mjpegtools-1.8.0-gcc41.patch  mjpegtools-1.8.0-libc.patch 1.9.patch) -#md5sums=('6fd98362310480bdaf7171e9659f165f' '803eccd889c60a442ee23ba65951fadc') +source=(http://downloads.sourceforge.net/sourceforge/mjpeg/${pkgname}-${pkgver}.tar.gz +	mjpegtools-1.8.0-gcc41.patch mjpegtools-1.8.0-libc.patch) +md5sums=('6fd98362310480bdaf7171e9659f165f' '803eccd889c60a442ee23ba65951fadc' '23b09a1ccae1b08a15076e696ccfd050')  build() { -  cd ${startdir}/src/${pkgname}-${pkgver}rc3 -#  patch -Np1 -i ${startdir}/src/mjpegtools-1.8.0-gcc41.patch || return 1 -#  patch -Np1 -i ${startdir}/src/mjpegtools-1.8.0-libc.patch || return 1 -  patch -Np1 -i ${startdir}/src/1.9.patch || return 1 +  cd ${startdir}/src/${pkgname}-${pkgver} +  patch -Np1 -i ${startdir}/src/mjpegtools-1.8.0-gcc41.patch || return 1 +  patch -Np1 -i ${startdir}/src/mjpegtools-1.8.0-libc.patch || return 1    ./configure --prefix=/usr    find -name Makefile -exec sed -i -e 's:-march=k8 -mtune=k8::' -e 's:-march=pentium3 -mtune=pentium3::' {} \; diff --git a/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-gcc41.patch b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-gcc41.patch index e04db90..77d556f 100644 --- a/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-gcc41.patch +++ b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-gcc41.patch @@ -10,123 +10,3 @@ diff -ur mjpegtools-1.8.0-orig/y4mdenoise/Region2D.hh mjpegtools-1.8.0/y4mdenois   // The 2-dimensional region class.  Parameterized by the numeric type - - -diff -ur mjpegtools-1.8.0.old/mpeg2enc/encodertypes.h mjpegtools-1.8.0/mpeg2enc/encodertypes.h ---- mjpegtools-1.8.0.old/mpeg2enc/encodertypes.h	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mpeg2enc/encodertypes.h	2008-10-28 13:34:41.000000000 -0500 -@@ -23,7 +23,9 @@ -  * 02111-1307, USA. -  * -  */ -- -+ -+#include <cstdlib> -+ - #include "config.h" - - -diff -ur mjpegtools-1.8.0.old/mpeg2enc/macroblock.cc mjpegtools-1.8.0/mpeg2enc/macroblock.cc ---- mjpegtools-1.8.0.old/mpeg2enc/macroblock.cc	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mpeg2enc/macroblock.cc	2008-10-28 13:32:54.000000000 -0500 -@@ -19,6 +19,9 @@ -  * -  */ -  -+ -+#include <limits> -+ - #include <stdio.h> -  - #include "macroblock.hh" -@@ -49,7 +52,7 @@ - { -     vector<MotionEst>::iterator i; -     vector<MotionEst>::iterator min_me; --    int best_score = INT_MAX; -+    int best_score = std::numeric_limits<int>::max(); -     int cur_score; -  -     // - -diff -ur mjpegtools-1.8.0.old/mpeg2enc/picturereader.cc mjpegtools-1.8.0/mpeg2enc/picturereader.cc ---- mjpegtools-1.8.0.old/mpeg2enc/picturereader.cc	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mpeg2enc/picturereader.cc	2008-10-28 13:36:50.000000000 -0500 -@@ -20,6 +20,8 @@ -  */ -  -  -+#include <limits> -+ - #include "picturereader.hh" - #include <stdio.h> - #include <stdlib.h> -@@ -37,7 +39,7 @@ - 	frames_read = 0; - 	last_frame = -1; -     lum_mean = 0; --    istrm_nframes = INT_MAX; -+    istrm_nframes = std::numeric_limits<int>::max(); - } -  - - -diff -ur mjpegtools-1.8.0.old/mplex/inputstrm.cpp mjpegtools-1.8.0/mplex/inputstrm.cpp ---- mjpegtools-1.8.0.old/mplex/inputstrm.cpp	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mplex/inputstrm.cpp	2008-10-28 13:56:15.000000000 -0500 -@@ -21,6 +21,8 @@ -  */ -  -  -+#include <limits> -+ - #include <config.h> - #include <assert.h> -  -@@ -72,7 +74,7 @@ -     au(0), - 	muxinto( into ), - 	kind(_kind), --    buffer_min(INT_MAX), -+    buffer_min(std::numeric_limits<int>::max()), -     buffer_max(1) - { - } - -diff -ur mjpegtools-1.8.0.old/mplex/multiplexor.cpp mjpegtools-1.8.0/mplex/multiplexor.cpp ---- mjpegtools-1.8.0.old/mplex/multiplexor.cpp	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mplex/multiplexor.cpp	2008-10-28 13:59:51.000000000 -0500 -@@ -19,6 +19,7 @@ -  */ -  - #define STREAM_LOGGING -+#include <cstring> - #include <config.h> - #include <math.h> - #include <stdlib.h> - -diff -ur mjpegtools-1.8.0.old/mplex/padstrm.cpp mjpegtools-1.8.0/mplex/padstrm.cpp ---- mjpegtools-1.8.0.old/mplex/padstrm.cpp	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mplex/padstrm.cpp	2008-10-28 14:03:24.000000000 -0500 -@@ -20,6 +20,8 @@ -  */ -  -  -+#include <cstring> -+ - #ifdef HAVE_CONFIG_H - #include "config.h" - #endif - - -diff -ur mjpegtools-1.8.0.old/mplex/main.cpp mjpegtools-1.8.0/mplex/main.cpp ---- mjpegtools-1.8.0.old/mplex/main.cpp	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mplex/main.cpp	2008-10-28 14:06:49.000000000 -0500 -@@ -26,6 +26,7 @@ - *************************************************************************/ -  - #include <config.h> -+#include <cstring> - #include <stdio.h> - #ifdef HAVE_GETOPT_H - #include <getopt.h> diff --git a/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-libc.patch b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-libc.patch index 6ea14e0..7cffada 100644 --- a/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-libc.patch +++ b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-libc.patch @@ -1,142 +1,154 @@ -diff -ur mjpegtools-1.8.0.old/mpeg2enc/encodertypes.h mjpegtools-1.8.0/mpeg2enc/encodertypes.h ---- mjpegtools-1.8.0.old/mpeg2enc/encodertypes.h	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mpeg2enc/encodertypes.h	2008-10-28 13:34:41.000000000 -0500 -@@ -23,7 +23,9 @@ -  * 02111-1307, USA. -  * -  */ -- -+ -+#include <cstdlib> -+ +diff -Naur mjpegtools-1.8.0.orig/mpeg2enc/encodertypes.h mjpegtools-1.8.0/mpeg2enc/encodertypes.h +--- mjpegtools-1.8.0.orig/mpeg2enc/encodertypes.h	2008-12-10 10:57:56.000000000 -0600 ++++ mjpegtools-1.8.0/mpeg2enc/encodertypes.h	2008-12-10 11:02:08.000000000 -0600 +@@ -26,7 +26,7 @@ +    #include "config.h" +- ++#include <stdlib.h> -diff -ur mjpegtools-1.8.0.old/mpeg2enc/macroblock.cc mjpegtools-1.8.0/mpeg2enc/macroblock.cc ---- mjpegtools-1.8.0.old/mpeg2enc/macroblock.cc	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mpeg2enc/macroblock.cc	2008-10-28 13:32:54.000000000 -0500 -@@ -19,6 +19,9 @@ -  * -  */ -  -+ -+#include <limits> -+ - #include <stdio.h> -  - #include "macroblock.hh" -@@ -49,7 +52,7 @@ + class Parity   { -     vector<MotionEst>::iterator i; -     vector<MotionEst>::iterator min_me; --    int best_score = INT_MAX; -+    int best_score = std::numeric_limits<int>::max(); -     int cur_score; -  -     // -diff -ur mjpegtools-1.8.0.old/mpeg2enc/motionest.cc mjpegtools-1.8.0/mpeg2enc/motionest.cc ---- mjpegtools-1.8.0.old/mpeg2enc/motionest.cc	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mpeg2enc/motionest.cc	2008-10-28 13:38:03.000000000 -0500 -@@ -45,6 +45,8 @@ -  * +diff -Naur mjpegtools-1.8.0.orig/mpeg2enc/macroblock.cc mjpegtools-1.8.0/mpeg2enc/macroblock.cc +--- mjpegtools-1.8.0.orig/mpeg2enc/macroblock.cc	2008-12-10 10:57:56.000000000 -0600 ++++ mjpegtools-1.8.0/mpeg2enc/macroblock.cc	2008-12-10 11:02:41.000000000 -0600 +@@ -20,6 +20,7 @@    */ -+#include <limits> -+ - #include <config.h>   #include <stdio.h> - #include <stdlib.h> -@@ -1643,7 +1645,7 @@ - 		 a basis for setting thresholds for rejecting really dud 4*4 - 		 and 2*2 sub-sampled matches. - 	*/ --	best.weight = psad_00(reffld+i0+j0*lx,ssblk->mb,lx,h,INT_MAX); -+	best.weight = psad_00(reffld+i0+j0*lx,ssblk->mb,lx,h,std::numeric_limits<int>::max()); - 	best.x = 0; - 	best.y = 0; -  -@@ -1714,7 +1716,7 @@ - 	/* Final polish: half-pel search of best 1*1 against - 	   reconstructed image.  - 	*/ --	res->sad = INT_MAX; -+	res->sad = std::numeric_limits<int>::max(); - 	x = (i0+best.x)<<1; - 	y = (j0+best.y)<<1; -  -diff -ur mjpegtools-1.8.0.old/mpeg2enc/picturereader.cc mjpegtools-1.8.0/mpeg2enc/picturereader.cc ---- mjpegtools-1.8.0.old/mpeg2enc/picturereader.cc	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mpeg2enc/picturereader.cc	2008-10-28 13:36:50.000000000 -0500 -@@ -20,6 +20,8 @@ -  */ -  ++#include <limits.h> -+#include <limits> -+ - #include "picturereader.hh" - #include <stdio.h> + #include "macroblock.hh" + #include "mpeg2syntaxcodes.h" +diff -Naur mjpegtools-1.8.0.orig/mpeg2enc/picturereader.cc mjpegtools-1.8.0/mpeg2enc/picturereader.cc +--- mjpegtools-1.8.0.orig/mpeg2enc/picturereader.cc	2008-12-10 10:57:56.000000000 -0600 ++++ mjpegtools-1.8.0/mpeg2enc/picturereader.cc	2008-12-10 11:03:04.000000000 -0600 +@@ -25,6 +25,7 @@   #include <stdlib.h> -@@ -37,7 +39,7 @@ - 	frames_read = 0; - 	last_frame = -1; -     lum_mean = 0; --    istrm_nframes = INT_MAX; -+    istrm_nframes = std::numeric_limits<int>::max(); - } -  -  -diff -ur mjpegtools-1.8.0.old/mplex/inputstrm.cpp mjpegtools-1.8.0/mplex/inputstrm.cpp ---- mjpegtools-1.8.0.old/mplex/inputstrm.cpp	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mplex/inputstrm.cpp	2008-10-28 13:56:15.000000000 -0500 -@@ -21,6 +21,8 @@ -  */ -  + #include <unistd.h> + #include <string.h> ++#include <limits.h> + #include <errno.h> + #include "simd.h" + #include "mpeg2encoder.hh" +diff -Naur mjpegtools-1.8.0.orig/mplex/inputstrm.cpp mjpegtools-1.8.0/mplex/inputstrm.cpp +--- mjpegtools-1.8.0.orig/mplex/inputstrm.cpp	2008-12-10 10:58:55.000000000 -0600 ++++ mjpegtools-1.8.0/mplex/inputstrm.cpp	2008-12-10 11:03:36.000000000 -0600 +@@ -23,6 +23,7 @@ -+#include <limits> -+   #include <config.h>   #include <assert.h> ++#include <limits.h> -@@ -72,7 +74,7 @@ -     au(0), - 	muxinto( into ), - 	kind(_kind), --    buffer_min(INT_MAX), -+    buffer_min(std::numeric_limits<int>::max()), -     buffer_max(1) - { - } -diff -ur mjpegtools-1.8.0.old/mplex/main.cpp mjpegtools-1.8.0/mplex/main.cpp ---- mjpegtools-1.8.0.old/mplex/main.cpp	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mplex/main.cpp	2008-10-28 14:06:49.000000000 -0500 -@@ -26,6 +26,7 @@ - *************************************************************************/ + #include "mjpeg_types.h" + #include "inputstrm.hpp" +diff -Naur mjpegtools-1.8.0.orig/mplex/padstrm.cpp mjpegtools-1.8.0/mplex/padstrm.cpp +--- mjpegtools-1.8.0.orig/mplex/padstrm.cpp	2008-12-10 10:58:55.000000000 -0600 ++++ mjpegtools-1.8.0/mplex/padstrm.cpp	2008-12-10 11:04:06.000000000 -0600 +@@ -24,6 +24,7 @@ + #include "config.h" + #endif - #include <config.h> -+#include <cstring> - #include <stdio.h> - #ifdef HAVE_GETOPT_H - #include <getopt.h> -diff -ur mjpegtools-1.8.0.old/mplex/multiplexor.cpp mjpegtools-1.8.0/mplex/multiplexor.cpp ---- mjpegtools-1.8.0.old/mplex/multiplexor.cpp	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mplex/multiplexor.cpp	2008-10-28 13:59:51.000000000 -0500 -@@ -19,6 +19,7 @@ -  */ -  - #define STREAM_LOGGING -+#include <cstring> ++#include <string.h> + #include "padstrm.hpp" +  +  +diff -Naur mjpegtools-1.8.0.orig/mplex/multiplexor.cpp mjpegtools-1.8.0/mplex/multiplexor.cpp +--- mjpegtools-1.8.0.orig/mplex/multiplexor.cpp	2008-12-10 10:58:55.000000000 -0600 ++++ mjpegtools-1.8.0/mplex/multiplexor.cpp	2008-12-10 11:04:53.000000000 -0600 +@@ -22,6 +22,7 @@   #include <config.h>   #include <math.h>   #include <stdlib.h> -diff -ur mjpegtools-1.8.0.old/mplex/padstrm.cpp mjpegtools-1.8.0/mplex/padstrm.cpp ---- mjpegtools-1.8.0.old/mplex/padstrm.cpp	2008-10-28 13:17:34.000000000 -0500 -+++ mjpegtools-1.8.0/mplex/padstrm.cpp	2008-10-28 14:03:24.000000000 -0500 -@@ -20,6 +20,8 @@ -  */ -  ++#include <string.h> -+#include <cstring> -+ - #ifdef HAVE_CONFIG_H - #include "config.h" + #include <mjpeg_types.h> + #include <mjpeg_logging.h> +diff -Naur mjpegtools-1.8.0.orig/mplex/main.cpp mjpegtools-1.8.0/mplex/main.cpp +--- mjpegtools-1.8.0.orig/mplex/main.cpp	2008-12-10 10:58:55.000000000 -0600 ++++ mjpegtools-1.8.0/mplex/main.cpp	2008-12-10 11:05:20.000000000 -0600 +@@ -31,6 +31,7 @@ + #include <getopt.h>   #endif + #include <string> ++#include <string.h> + #include <memory> + #include <sys/stat.h> + #ifndef _WIN32 +diff -Naur mjpegtools-1.8.0.orig/y4mdenoise/Set.hh mjpegtools-1.8.0/y4mdenoise/Set.hh +--- mjpegtools-1.8.0.orig/y4mdenoise/Set.hh	2008-12-10 11:00:49.000000000 -0600 ++++ mjpegtools-1.8.0/y4mdenoise/Set.hh	2008-12-10 11:06:30.000000000 -0600 +@@ -23,7 +23,7 @@ + 		// How we implement ourselves. + 	 + public: +-	typedef typename Imp::Allocator Allocator; ++	typedef typename Imp::Allocator_t Allocator; + 		// The type of allocator to use to allocate items in the set. +  + 	Set (const PRED &a_rPred = PRED(), +diff -Naur mjpegtools-1.8.0.orig/y4mdenoise/SkipList.hh mjpegtools-1.8.0/y4mdenoise/SkipList.hh +--- mjpegtools-1.8.0.orig/y4mdenoise/SkipList.hh	2008-12-10 11:00:49.000000000 -0600 ++++ mjpegtools-1.8.0/y4mdenoise/SkipList.hh	2008-12-10 11:09:34.000000000 -0600 +@@ -57,19 +57,19 @@ + 		// Will give good sorting for up to e^10 items. + 	 + public: +-	typedef Allocator<Node,HEADERCHUNK> Allocator; ++	typedef Allocator<Node,HEADERCHUNK> Allocator_t; + 		// The type of node allocator to use. +  +-	static Allocator sm_oNodeAllocator; ++	static Allocator_t sm_oNodeAllocator; + 		// The default node allocator. +  + 	SkipList (const PRED &a_rPred = PRED(), +-			Allocator &a_rAlloc = sm_oNodeAllocator); ++			Allocator_t &a_rAlloc = sm_oNodeAllocator); + 		// Default constructor.  Must be followed by Init(). +  + 	SkipList (Status_t &a_reStatus, bool a_bAllowDuplicates, + 			uint32_t a_nRandSeed, const PRED &a_rPred = PRED(), +-			Allocator &a_rAlloc = sm_oNodeAllocator); ++			Allocator_t &a_rAlloc = sm_oNodeAllocator); + 		// Constructor.  Specify whether or not duplicates are allowed, + 		// and provide a random number seed. +  +@@ -255,7 +255,7 @@ +  + private: + 	 +-	Allocator &m_rNodeAllocator; ++	Allocator_t &m_rNodeAllocator; + 		// Where we get memory to allocate nodes. +  + 	bool m_bAllowDuplicates; +@@ -337,7 +337,7 @@ +  + // The default node allocator.  Allocates 64K at a time. + template <class KEY, class VALUE, class KEYFN, class PRED> +-typename SkipList<KEY,VALUE,KEYFN,PRED>::Allocator ++typename SkipList<KEY,VALUE,KEYFN,PRED>::Allocator_t + 	SkipList<KEY,VALUE,KEYFN,PRED>::sm_oNodeAllocator (65536); +  +  +@@ -345,7 +345,7 @@ + // Default constructor.  Must be followed by Init(). + template <class KEY, class VALUE, class KEYFN, class PRED> + SkipList<KEY,VALUE,KEYFN,PRED>::SkipList (const PRED &a_rPred, +-		Allocator &a_rAlloc) ++		Allocator_t &a_rAlloc) + 	: m_rNodeAllocator (a_rAlloc), m_oPred (a_rPred) + { + 	// Set up some defaults. +@@ -371,7 +371,7 @@ + template <class KEY, class VALUE, class KEYFN, class PRED> + SkipList<KEY,VALUE,KEYFN,PRED>::SkipList (Status_t &a_reStatus, + 		bool a_bAllowDuplicates, uint32_t a_nRandSeed, +-		const PRED &a_rPred, Allocator &a_rAlloc) ++		const PRED &a_rPred, Allocator_t &a_rAlloc) + 	: m_rNodeAllocator (a_rAlloc), m_oPred (a_rPred) + { + 	// Make sure they didn't start us off with an error. + diff --git a/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-limits.h.patch b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-limits.h.patch new file mode 100644 index 0000000..41a59ca --- /dev/null +++ b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-limits.h.patch @@ -0,0 +1,30 @@ +--- mjpegtools-1.8.0.orig/mpeg2enc/macroblock.cc	2007-11-29 19:45:06 +0000 ++++ mjpegtools-1.8.0.orig/mpeg2enc/macroblock.cc	2007-11-29 19:45:33 +0000 +@@ -20,6 +20,7 @@  +  */ +  + #include <stdio.h> ++#include <limits.h> +  + #include "macroblock.hh" + #include "mpeg2syntaxcodes.h" +--- mjpegtools-1.8.0.orig/mpeg2enc/picturereader.cc	2007-11-29 19:45:06 +0000 ++++ mjpegtools-1.8.0.orig/mpeg2enc/picturereader.cc	2007-11-29 19:45:52 +0000 +@@ -26,6 +26,7 @@  + #include <unistd.h> + #include <string.h> + #include <errno.h> ++#include <limits.h> + #include "simd.h" + #include "mpeg2encoder.hh" +  +--- mjpegtools-1.8.0.orig/mplex/inputstrm.cpp	2007-11-29 19:45:06 +0000 ++++ mjpegtools-1.8.0.orig/mplex/inputstrm.cpp	2007-11-29 19:46:15 +0000 +@@ -23,6 +23,7 @@  +  + #include <config.h> + #include <assert.h> ++#include <limits.h> +  + #include "mjpeg_types.h" + #include "inputstrm.hpp" diff --git a/abs/extra-testing/mplayer/PKGBUILD b/abs/extra-testing/mplayer/PKGBUILD index 43dad94..c1fdb7c 100644 --- a/abs/extra-testing/mplayer/PKGBUILD +++ b/abs/extra-testing/mplayer/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 3632 2008-06-26 11:48:49Z paul $ +# $Id: PKGBUILD 20619 2008-12-06 02:41:24Z allan $  # Maintainer: Thomas Bächler <thomas@archlinux.org>  pkgname=mplayer  pkgver=1.0rc2 -pkgrel=6 +pkgrel=9  pkgdesc="A movie player for linux"  arch=(i686 x86_64)  depends=('libxxf86dga' 'libxv' 'libmad' 'giflib' 'cdparanoia' 'gtk2' -         'sdl' 'lame' 'libtheora' 'xvidcore' +         'sdl' 'lame' 'libtheora' 'xvidcore' 'zlib'           'libgl' 'smbclient' 'aalib' 'jack-audio-connection-kit' -         'x264>=20080625' 'faac' 'lirc-utils' 'ttf-dejavu') +         'x264>=20080625' 'faac' 'lirc-utils' 'ttf-dejavu' 'fribidi')  license=('GPL')  url="http://www.mplayerhq.hu/"  makedepends=('libcaca' 'unzip' 'live-media' 'libdca' 'mesa') @@ -19,17 +19,14 @@ source=(http://www.mplayerhq.hu/MPlayer/releases/MPlayer-${pkgver}.tar.bz2          http://www.mplayerhq.hu/MPlayer/patches/demux_mov_fix_20080129.diff          http://www.mplayerhq.hu/MPlayer/patches/url_fix_20080120.diff          http://www.mplayerhq.hu/MPlayer/patches/stream_cddb_fix_20080120.diff -	ivtv_2.6.24.patch) -md5sums=('7e27e535c2d267637df34898f1b91707' -         'e4e2020d11b681aac898103b3ba723c4' -         '320af7daa1b248ee8e8c15d34d7923e3' -         'ce999929155f509a3e6bee41d9d613ed' -         '6a2c124586e1e6c44ae4ca1b4be9b6e4' -         'c7d1bcdd61fcceb7598d61fe2213c587' -	 '1ef35068587f6b6dbc99342567895236') +	ivtv_2.6.24.patch mplayer_desktop.patch) +md5sums=('7e27e535c2d267637df34898f1b91707' 'e4e2020d11b681aac898103b3ba723c4'\ +         '320af7daa1b248ee8e8c15d34d7923e3' 'ce999929155f509a3e6bee41d9d613ed'\ +         '6a2c124586e1e6c44ae4ca1b4be9b6e4' 'c7d1bcdd61fcceb7598d61fe2213c587'\ +         '1ef35068587f6b6dbc99342567895236' '4c49195a4a1702f0cb321abdc3c07741')  build() { -  cd $startdir/src/MPlayer-${pkgver} +  cd ${srcdir}/MPlayer-${pkgver}    # Custom CFLAGS break the mplayer build    unset CFLAGS @@ -39,19 +36,22 @@ build() {    # Workaround for changed ivtv interface since it went mainline in 2.6.24    patch -p1 -i ../ivtv_2.6.24.patch || return 1 -   + +  # mplayer.desktop fix +  patch -p1 -i ../mplayer_desktop.patch || return 1 +    # Fix security issues    for p in demux_audio_fix_20080129.diff demux_mov_fix_20080129.diff url_fix_20080120.diff stream_cddb_fix_20080120.diff; do      patch -p0 -i ../${p}    done -  cd $startdir/src/MPlayer-${pkgver} +  cd ${srcdir}/MPlayer-${pkgver}    ./configure --prefix=/usr --enable-gui --disable-arts --enable-x11 \        --enable-runtime-cpudetection --confdir=/etc/mplayer --disable-nas \        --enable-gl --enable-tv-v4l1 --enable-tv-v4l2 --enable-largefiles \        --disable-liblzo --disable-speex --disable-openal \ -      --disable-fribidi --disable-libdv --disable-musepack \ +      --enable-fribidi --disable-libdv --disable-musepack \        --language=all --disable-dvdnav --disable-esd --disable-mga \        --disable-libamr_nb \        --with-extraincdir=/usr/lib/live-media @@ -59,9 +59,9 @@ build() {    [ "$CARCH" = "i686" ] &&  sed 's|-march=i486|-march=i686|g' -i config.mak    make || return 1 -  make -j1 DESTDIR=${startdir}/pkg install -  cp etc/{codecs.conf,input.conf,example.conf} ${startdir}/pkg/etc/mplayer/ -  ln -s /usr/share/fonts/TTF/DejaVuSans.ttf ${startdir}/pkg/usr/share/mplayer/subfont.ttf -  rm -rf ${startdir}/pkg/usr/share/mplayer/font -  mv ${startdir}/src/Blue ${startdir}/pkg/usr/share/mplayer/skins/default +  make -j1 DESTDIR=${pkgdir} install +  cp etc/{codecs.conf,input.conf,example.conf} ${pkgdir}/etc/mplayer/ +  ln -s /usr/share/fonts/TTF/DejaVuSans.ttf ${pkgdir}/usr/share/mplayer/subfont.ttf +  rm -rf ${pkgdir}/usr/share/mplayer/font +  mv ${srcdir}/Blue ${pkgdir}/usr/share/mplayer/skins/default  } diff --git a/abs/extra-testing/mplayer/demux_audio_fix_20080129.diff b/abs/extra-testing/mplayer/demux_audio_fix_20080129.diff deleted file mode 100644 index 1b18b6e..0000000 --- a/abs/extra-testing/mplayer/demux_audio_fix_20080129.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- libmpdemux/demux_audio.c	(revision 24724) -+++ libmpdemux/demux_audio.c	(working copy) -@@ -229,6 +229,8 @@ -           ptr += 4; -  -           comment = ptr; -+          if (&comment[length] < comments || &comment[length] >= &comments[blk_len]) -+            return; -           c = comment[length]; -           comment[length] = 0; -  diff --git a/abs/extra-testing/mplayer/demux_mov_fix_20080129.diff b/abs/extra-testing/mplayer/demux_mov_fix_20080129.diff deleted file mode 100644 index d83477b..0000000 --- a/abs/extra-testing/mplayer/demux_mov_fix_20080129.diff +++ /dev/null @@ -1,45 +0,0 @@ ---- libmpdemux/demux_mov.c	(revision 24724) -+++ libmpdemux/demux_mov.c	(working copy) -@@ -173,11 +173,12 @@ -     i=trak->chunkmap_size; -     while(i>0){ - 	--i; --	for(j=trak->chunkmap[i].first;j<last;j++){ -+	j=FFMAX(trak->chunkmap[i].first, 0); -+	for(;j<last;j++){ - 	    trak->chunks[j].desc=trak->chunkmap[i].sdid; - 	    trak->chunks[j].size=trak->chunkmap[i].spc; - 	} --	last=trak->chunkmap[i].first; -+	last=FFMIN(trak->chunkmap[i].first, trak->chunks_size); -     } -  - #if 0 -@@ -235,6 +236,8 @@ -     s=0; -     for(j=0;j<trak->durmap_size;j++){ - 	for(i=0;i<trak->durmap[j].num;i++){ -+	    if (s >= trak->samples_size) -+		break; - 	    trak->samples[s].pts=pts; - 	    ++s; - 	    pts+=trak->durmap[j].dur; -@@ -246,6 +249,8 @@ -     for(j=0;j<trak->chunks_size;j++){ - 	off_t pos=trak->chunks[j].pos; - 	for(i=0;i<trak->chunks[j].size;i++){ -+	    if (s >= trak->samples_size) -+		break; - 	    trak->samples[s].pos=pos; - 	    mp_msg(MSGT_DEMUX, MSGL_DBG3, "Sample %5d: pts=%8d  off=0x%08X  size=%d\n",s, - 		trak->samples[s].pts, -@@ -1568,8 +1573,7 @@ - 			if( udta_len>udta_size) - 				udta_len=udta_size; - 			{ --			char dump[udta_len-4]; --			stream_read(demuxer->stream, (char *)&dump, udta_len-4-4); -+			stream_skip(demuxer->stream, udta_len-4-4); - 			udta_size -= udta_len; - 			} - 		    } diff --git a/abs/extra-testing/mplayer/mplayer_desktop.patch b/abs/extra-testing/mplayer/mplayer_desktop.patch new file mode 100644 index 0000000..7fb2bba --- /dev/null +++ b/abs/extra-testing/mplayer/mplayer_desktop.patch @@ -0,0 +1,11 @@ +--- MPlayer-1.0rc2.orig/etc/mplayer.desktop	2008-11-17 02:09:22.000000000 +0200 ++++ MPlayer-1.0rc2/etc/mplayer.desktop	2008-11-17 02:09:33.000000000 +0200 +@@ -10,7 +10,7 @@ + Comment[it]=Lettore multimediale + Icon=mplayer.xpm + TryExec=gmplayer +-Exec=gmplayer %U ++Exec=gmplayer %F + Terminal=false + Categories=GTK;AudioVideo;Audio;Video;Player;TV; + MimeType=application/ogg;application/x-ogg;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/m4a;audio/x-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg;video/x-mpeg2;video/msvideo;video/x-msvideo;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/x-fli;video/x-theora;video/x-matroska; diff --git a/abs/extra-testing/mplayer/stream_cddb_fix_20080120.diff b/abs/extra-testing/mplayer/stream_cddb_fix_20080120.diff deleted file mode 100644 index 45f7226..0000000 --- a/abs/extra-testing/mplayer/stream_cddb_fix_20080120.diff +++ /dev/null @@ -1,32 +0,0 @@ ---- stream/stream_cddb.c	(revision 24724) -+++ stream/stream_cddb.c	(working copy) -@@ -53,6 +53,7 @@ - #include "version.h" - #include "stream.h" - #include "network.h" -+#include "libavutil/intreadwrite.h" -  - #define DEFAULT_FREEDB_SERVER	"freedb.freedb.org" - #define DEFAULT_CACHE_DIR	"/.cddb/" -@@ -453,8 +454,9 @@ - 		} else { - 			len = ptr2-ptr+1; - 		} -+		len = FFMIN(sizeof(album_title) - 1, len); - 		strncpy(album_title, ptr, len); --		album_title[len-2]='\0'; -+		album_title[len]='\0'; - 	} - 	mp_msg(MSGT_DEMUX, MSGL_STATUS, MSGTR_MPDEMUX_CDDB_ParseOKFoundAlbumTitle, album_title); - 	return 0; -@@ -490,8 +492,9 @@ - 				} else { - 					len = ptr2-ptr+1; - 				} -+				len = FFMIN(sizeof(album_title) - 1, len); - 				strncpy(album_title, ptr, len); --				album_title[len-2]='\0'; -+				album_title[len]='\0'; - 			} - 			mp_msg(MSGT_DEMUX, MSGL_STATUS, MSGTR_MPDEMUX_CDDB_ParseOKFoundAlbumTitle, album_title); - 			return cddb_request_titles(cddb_data); diff --git a/abs/extra-testing/mplayer/url_fix_20080120.diff b/abs/extra-testing/mplayer/url_fix_20080120.diff deleted file mode 100644 index a073589..0000000 --- a/abs/extra-testing/mplayer/url_fix_20080120.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- stream/url.c	(revision 24724) -+++ stream/url.c	(working copy) -@@ -328,6 +328,7 @@ - 		} - 	} - 	 -+	tmp = NULL; - 	while(i < len) { - 		// look for the next char that must be kept - 		for  (j=i;j<len;j++) { diff --git a/abs/extra-testing/rsync/ChangeLog b/abs/extra-testing/rsync/ChangeLog new file mode 100644 index 0000000..c6ae50d --- /dev/null +++ b/abs/extra-testing/rsync/ChangeLog @@ -0,0 +1,25 @@ +2008-12-29  Eric Belanger  <eric@archlinux.org> + +	* rsync 3.0.5-1 +	* Upstream update + +2008-09-06  Eric Belanger  <eric@archlinux.org> + +	* rsync 3.0.4-1 +	* Upstream update + +2008-07-05  Eric Belanger  <eric@archlinux.org> + +	* rsync 3.0.3-1 +	* Upstream update + +2008-04-13  Eric Belanger  <eric@archlinux.org> + +	* rsync 3.0.2-1 +	* Upstream update +	 +2008-03-01  Eric Belanger  <eric@archlinux.org> + +	* rsync 3.0.0-1 +	* Upstream update +	* Updated license diff --git a/abs/extra-testing/rsync/PKGBUILD b/abs/extra-testing/rsync/PKGBUILD new file mode 100644 index 0000000..c2c5e2c --- /dev/null +++ b/abs/extra-testing/rsync/PKGBUILD @@ -0,0 +1,33 @@ +# $Id: PKGBUILD 22959 2008-12-30 04:53:36Z eric $ +# Maintainer: Eric Belanger <eric@archlinux.org> +# Contributor: Judd Vinet <jvinet@zeroflux.org> + +pkgname=rsync +pkgver=3.0.5 +pkgrel=1 +pkgdesc="A file transfer program to keep remote files in sync" +arch=('i686' 'x86_64') +url="http://samba.anu.edu.au/rsync/" +license=('GPL3') +depends=('acl') +backup=('etc/rsyncd.conf' 'etc/xinetd.d/rsync') +source=(http://rsync.samba.org/ftp/rsync/${pkgname}-${pkgver}.tar.gz \ +        rsyncd.conf rsyncd rsync.xinetd) +md5sums=('a130e736c011572cb423b6245e97fc4b' '4395c0591638349b1a7aeaaa4da1f03a'\ +         '9de4d03d49f4b5c73ffd67d452716a49' 'ea3e9277dc908bc51f9eddc0f6b935c1') +sha1sums=('d95e75af9456b0edca68bde17260c98261b4b8c5' +          '48be09294134dfed888818872fe552a59c29147a' +          'ebec275bbd0c11692c91dc59368349601bd9eaf4' +          'fdb99785bc87ee13d77aa90dc1804f3f75dd7fc1') + +build() { +  cd ${srcdir}/${pkgname}-${pkgver} +  ./prepare-source || return 1 +  ./configure --prefix=/usr --with-included-popt \ +              --enable-acl-support --enable-xattr-support || return 1 +  make || return 1 +  make DESTDIR=${pkgdir} install || return 1 +  install -D -m 755 ../rsyncd ${pkgdir}/etc/rc.d/rsyncd || return 1 +  install -D -m 644 ../rsyncd.conf ${pkgdir}/etc/rsyncd.conf || return 1 +  install -D -m 644 ../rsync.xinetd ${pkgdir}/etc/xinetd.d/rsync || return 1 +} diff --git a/abs/extra-testing/rsync/rsync.xinetd b/abs/extra-testing/rsync/rsync.xinetd new file mode 100644 index 0000000..f5b6b1e --- /dev/null +++ b/abs/extra-testing/rsync/rsync.xinetd @@ -0,0 +1,11 @@ +service rsync +{ +        socket_type             = stream +        wait                    = no +        user                    = root +        server                  = /usr/bin/rsync +        server_args             = --daemon +        log_on_success  += HOST DURATION +        log_on_failure  += HOST +        disable                 = yes +} diff --git a/abs/extra-testing/rsync/rsyncd b/abs/extra-testing/rsync/rsyncd new file mode 100644 index 0000000..e1313dc --- /dev/null +++ b/abs/extra-testing/rsync/rsyncd @@ -0,0 +1,37 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in +  start) +    stat_busy "Starting rsyncd" +    [ ! -f /var/run/daemons/rsyncd ] && /usr/bin/rsync --daemon +    if [ $? -gt 0 ]; then +      stat_fail +    else +      pgrep -of "/usr/bin/rsync --daemon" > /var/run/rsyncd.pid +      add_daemon rsyncd +      stat_done +    fi +    ;; + +  stop) +    stat_busy "Stopping rsyncd" +    [ -f /var/run/rsyncd.pid ] && kill `cat /var/run/rsyncd.pid` +    if [ $? -gt 0 ]; then +      stat_fail +    else +      rm_daemon rsyncd +      stat_done +    fi +    ;; +  restart) +    $0 stop +    sleep 1 +    $0 start +    ;; +  *) +    echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/abs/extra-testing/rsync/rsyncd.conf b/abs/extra-testing/rsync/rsyncd.conf new file mode 100644 index 0000000..f7161f3 --- /dev/null +++ b/abs/extra-testing/rsync/rsyncd.conf @@ -0,0 +1,16 @@ +uid = nobody +gid = nobody +use chroot = no +max connections = 4 +syslog facility = local5 +pid file = /var/run/rsyncd.pid + +[ftp] +        path = /home/ftp +        comment = ftp area + +#[cvs] +#        path = /data/cvs +#        comment = CVS repository (requires authentication) +#        auth users = tridge, susan +#        secrets file = /etc/rsyncd.secrets diff --git a/abs/extra-testing/setuptools/PKGBUILD b/abs/extra-testing/setuptools/PKGBUILD new file mode 100644 index 0000000..53c26a9 --- /dev/null +++ b/abs/extra-testing/setuptools/PKGBUILD @@ -0,0 +1,23 @@ +# $Id: PKGBUILD 16826 2008-10-22 12:40:52Z douglas $ +# Maintainer: simo <simo@archlinux.org> +# Contributor: William Rea <sillywilly@gmail.com> +# Contributor: Todd Maynard <arch@toddmaynard.com> + +pkgname=setuptools +pkgver=0.6c9 +pkgrel=2 +pkgdesc="setuptools is a collection of enhancements to the Python distutils" +license=('PSF') +arch=(i686 x86_64) +url="http://peak.telecommunity.com/DevCenter/setuptools" +depends=('python') +source=(http://cheeseshop.python.org/packages/source/s/$pkgname/$pkgname-$pkgver.tar.gz) + +md5sums=('3864c01d9c719c8924c455714492295e') + +build() { +  cd $startdir/src/$pkgname-$pkgver +  mkdir -p $startdir/pkg/usr/lib/python2.6/site-packages +  python setup.py install --root=$startdir/pkg +  echo "/usr/lib/python2.6/site-packages/$pkgname-$pkgver-py2.6.egg" > $startdir/pkg/usr/lib/python2.6/site-packages/setuptools.pth +} diff --git a/abs/extra-testing/sharutils/PKGBUILD b/abs/extra-testing/sharutils/PKGBUILD new file mode 100644 index 0000000..6971668 --- /dev/null +++ b/abs/extra-testing/sharutils/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Kevin Piche <kevin@archlinux.org> +# Contributor: Tom Newsom <Jeepster@gmx.co.uk> + +pkgname=sharutils +pkgver=4.6.3 +pkgrel=1 +pkgdesc="GNU shar makes so-called shell archives out of many files" +arch=(i686 x86_64) +depends=('gettext') +source=(ftp://ftp.gnu.org/pub/gnu/$pkgname/REL-$pkgver/$pkgname-$pkgver.tar.gz) +url="http://www.gnu.org/software/sharutils/" +md5sums=('74127a560e59be6dfa8b59993eb0ca91') + +build() { +  cd $startdir/src/$pkgname-$pkgver +  ./configure --prefix=/usr --disable-nls +  make || return 1 +  make prefix=$startdir/pkg/usr install +} diff --git a/abs/extra-testing/v4l-dvb-dvico/PKGBUILD b/abs/extra-testing/v4l-dvb-dvico/PKGBUILD new file mode 100644 index 0000000..4f4de06 --- /dev/null +++ b/abs/extra-testing/v4l-dvb-dvico/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 5936 2008-07-21 20:24:16Z thomas $ +# Maintainer: Cecil Watson<knoppmyth@gmail.com> + +pkgname=v4l-dvb +_kernver=2.6.27-ARCH +pkgver=1 +pkgrel=1 +pkgdesc="V4L-DVB drivers from mercurial" +arch=('i686' 'x86_64') +license=('GPL2') +url="http://linuxtv.org/" +depends=('kernel26') +makedepends=(kernel-headers) +install=v4l-dvb.install +source=(http://linuxtv.org/hg/~pascoe/xc-test/archive/tip.tar.bz2) + +build() { +  cd $startdir/src/xc-test-d4f7804a393c +  make KERNDIR=/lib/modules/$_kernver/build \ +  DESTDIR=$startdir/pkg KERNELRELEASE=$_kernver all || return 1 +  make KERNDIR=/lib/modules/$_kernver/build \ +  DESTDIR=$startdir/pkg KERNELRELEASE=$_kernver install || return 1 +  rm -fr $startdir/pkg/lib/modules/$_kernver/modules* +} diff --git a/abs/extra-testing/v4l-dvb-dvico/v4l-dvb.install b/abs/extra-testing/v4l-dvb-dvico/v4l-dvb.install new file mode 100644 index 0000000..c87bb82 --- /dev/null +++ b/abs/extra-testing/v4l-dvb-dvico/v4l-dvb.install @@ -0,0 +1,23 @@ +# arg 1:  the new package version +post_install() { +  KERNEL_VERSION='2.6.26-ARCH' +  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1                 +} + +# arg 1:  the new package version +# arg 2:  the old package version +post_upgrade() { +  KERNEL_VERSION='2.6.26-ARCH' +  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1         + +} + +# arg 1:  the old package version +post_remove() { +  KERNEL_VERSION='2.6.26-ARCH' +  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1         +} + +op=$1 +shift +$op $* diff --git a/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD b/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD new file mode 100644 index 0000000..632a13b --- /dev/null +++ b/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 5936 2008-07-21 20:24:16Z thomas $ +# Maintainer: Cecil Watson<knoppmyth@gmail.com> + +pkgname=v4l-dvb-hdpvr +_kernver=2.6.27-ARCH +pkgver=1 +pkgrel=2 +pkgdesc="V4L-DVB drivers for HD-PVR from mercurial" +arch=('i686' 'x86_64') +license=('GPL2') +url="http://linuxtv.org/" +depends=('kernel26') +replaces=(v4l-dvb) +makedepends=(kernel-headers mercurial) +install=v4l-dvb-hdpvr.install +source=() + +build() { +  cd $startdir/src/ +  hg clone http://hg.jannau.net/hdpvr/ || return 1 +  cd hdpvr +  make KERNDIR=/lib/modules/$_kernver/build \ +  DESTDIR=$startdir/pkg KERNELRELEASE=$_kernver all || return 1 +  make KERNDIR=/lib/modules/$_kernver/build \ +  DESTDIR=$startdir/pkg KERNELRELEASE=$_kernver install || return 1 +  rm -fr $startdir/pkg/lib/modules/$_kernver/modules* +} diff --git a/abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb-hdpvr.install b/abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb-hdpvr.install new file mode 100644 index 0000000..c87bb82 --- /dev/null +++ b/abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb-hdpvr.install @@ -0,0 +1,23 @@ +# arg 1:  the new package version +post_install() { +  KERNEL_VERSION='2.6.26-ARCH' +  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1                 +} + +# arg 1:  the new package version +# arg 2:  the old package version +post_upgrade() { +  KERNEL_VERSION='2.6.26-ARCH' +  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1         + +} + +# arg 1:  the old package version +post_remove() { +  KERNEL_VERSION='2.6.26-ARCH' +  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1         +} + +op=$1 +shift +$op $* diff --git a/abs/extra-testing/xine-lib/ChangeLog b/abs/extra-testing/xine-lib/ChangeLog index 57c843e..4b27a0a 100644 --- a/abs/extra-testing/xine-lib/ChangeLog +++ b/abs/extra-testing/xine-lib/ChangeLog @@ -1,3 +1,15 @@ +2008-12-05  Eric Belanger  <eric@archlinux.org> + +	* xine-lib 1.1.15-4 +	* Rebuilt against heimdal 1.2.1 +	* Added xcb support + +2008-11-27  Eric Belanger  <eric@archlinux.org> + +	* xine-lib 1.1.15-3 +	* Added jack support (close FS#12020) +	* Fixed several build issue (close FS#12117) +  2008-08-14  Eric Belanger  <eric@archlinux.org>  	* xine-lib 1.1.15-1 diff --git a/abs/extra-testing/xine-lib/PKGBUILD b/abs/extra-testing/xine-lib/PKGBUILD index de79173..2988b74 100644 --- a/abs/extra-testing/xine-lib/PKGBUILD +++ b/abs/extra-testing/xine-lib/PKGBUILD @@ -1,36 +1,44 @@ -# $Id: PKGBUILD 10479 2008-08-29 07:46:38Z pierre $ +# $Id: PKGBUILD 20666 2008-12-06 08:58:36Z allan $  # Maintainer: Eric Belanger <eric@archlinux.org>  # Contributor: Judd Vinet <jvinet@zeroflux.org>  pkgname=xine-lib  pkgver=1.1.15 -pkgrel=2 +pkgrel=4  pkgdesc="A free video player for Unix"  arch=('i686' 'x86_64')  url="http://xinehq.de/"  license=('LGPL' 'GPL') -depends=('libgl' 'libxvmc' 'flac>=1.1.4' 'libvorbis' 'sdl' 'libmng' 'libtheora' -         'libxcb' 'wavpack' 'ffmpeg>=20080715') -makedepends=('pkgconfig' 'libtool' 'automake' 'autoconf' 'imagemagick'  -             'smbclient' 'mesa' 'alsa-lib' ) +depends=('libgl' 'libxvmc' 'esound' 'flac>=1.1.4' 'libvorbis' 'sdl' 'libmng' 'libtheora' +         'libxcb' 'wavpack' 'ffmpeg>=20080715' 'heimdal>=1.2.1') +makedepends=('pkgconfig' 'libtool' 'imagemagick' 'smbclient' 'mesa' 'alsa-lib'  +             'vcdimager' 'jack-audio-connection-kit')  options=('!libtool')  source=(http://downloads.sourceforge.net/sourceforge/xine/${pkgname}-${pkgver}.tar.bz2 -        xine-lib-1.1.1-configure-no-mcpu-march.patch xine-header.patch) -md5sums=('42a2b4893b7f892eb334de2fc36d49c8' '9776df4eb54d2f1f68d8268adbc3b5c2' -         'b139ee72700f8d118f9051e9140473f5') +        xine-lib-1.1.1-configure-no-mcpu-march.patch xine-header.patch xine-imagemagick.patch) +md5sums=('42a2b4893b7f892eb334de2fc36d49c8' '9776df4eb54d2f1f68d8268adbc3b5c2'\ +         'b139ee72700f8d118f9051e9140473f5' '45d248d45b747f049129925cbf25716d') +sha1sums=('bcb567ea2a11c5f26b2384d5400b8466ea9048c6' +          '121a8358d7919b2e51067412373f52848290338a' +          '30cd75db3f0c0002f467d85466f1c404452397df' +          'f0a0c04d5dfa3d0cd9246a1310f628deff489c12')  build() {    cd ${srcdir}/${pkgname}-${pkgver} -  patch -Np0 -i ../xine-lib-1.1.1-configure-no-mcpu-march.patch || return 1 -  patch -p0 -i ../xine-header.patch || return 1 + +  patch -p0 < ../xine-lib-1.1.1-configure-no-mcpu-march.patch || return 1 +  patch -p0 <../xine-header.patch || return 1 +  #patch -p1 <../xine-imagemagick.patch || return 1 +    libtoolize --force --copy || return 1    aclocal -I m4 || return 1    autoconf || return 1    automake --add-missing || return 1    ./configure --prefix=/usr --with-w32-path=/usr/lib/codecs \ -    --with-xv-path=/usr/lib --with-libflac --with-wavpack \ -    --without-arts --without-jack --without-speex \ +    --with-xv-path=/usr/lib --with-xxmc-path=/usr/lib --with-xvmc-path=/usr/lib \ +    --with-libflac --with-wavpack --with-xcb \ +    --without-arts --with-jack --without-speex \      --disable-gnomevfs --without-pulseaudio --disable-aalib \      --disable-modplug --with-external-ffmpeg || return 1    make || return 1 diff --git a/abs/extra-testing/xine-lib/xine-imagemagick.patch b/abs/extra-testing/xine-lib/xine-imagemagick.patch new file mode 100644 index 0000000..9faa4ab --- /dev/null +++ b/abs/extra-testing/xine-lib/xine-imagemagick.patch @@ -0,0 +1,11 @@ +--- xine-lib-1.1.15.orig/src/libxinevdec/image.c ++++ xine-lib-1.1.15/src/libxinevdec/image.c +@@ -110,7 +110,7 @@ +     width = MagickGetImageWidth(wand) & ~1; /* must be even for init_yuv_planes */ +     height = MagickGetImageHeight(wand); +     img_buf = malloc(width * height * 3); +-    MagickGetImagePixels(wand, 0, 0, width, height, "RGB", CharPixel, img_buf); ++    MagickGetAuthenticPixels(wand, 0, 0, width, height, "RGB", CharPixel, img_buf); +     DestroyMagickWand(wand); +  +     _x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_WIDTH, width);  | 
