From 1be91e5a2aefe59dfe4726bbc7d21d2383e640ce Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Wed, 5 Oct 2011 02:42:51 +0200 Subject: [PATCH 01/15] Do not split Hg's and git's log output into lines - this will make it impossible for us to detect proper line endings later on. --- src/IDF/Scm/Git.php | 32 +++++++++++--------------------- src/IDF/Scm/Mercurial.php | 31 +++++++++++++++---------------- 2 files changed, 26 insertions(+), 37 deletions(-) diff --git a/src/IDF/Scm/Git.php b/src/IDF/Scm/Git.php index 53bb417..051085e 100644 --- a/src/IDF/Scm/Git.php +++ b/src/IDF/Scm/Git.php @@ -507,33 +507,23 @@ class IDF_Scm_Git extends IDF_Scm "'".$this->mediumtree_fmt."'", escapeshellarg($commit)); } - $out = array(); $cmd = Pluf::f('idf_exec_cmd_prefix', '').$cmd; - self::exec('IDF_Scm_Git::getCommit', $cmd, $out, $ret); - if ($ret != 0 or count($out) == 0) { + $out = self::shell_exec('IDF_Scm_Git::getCommit', $cmd); + if (strlen($out) == 0) { return false; } - if ($getdiff) { - $log = array(); - $change = array(); - $inchange = false; - foreach ($out as $line) { - if (!$inchange and 0 === strpos($line, 'diff --git a')) { - $inchange = true; - } - if ($inchange) { - $change[] = $line; - } else { - $log[] = $line; - } - } - $out = self::parseLog($log); - $out[0]->diff = implode("\n", $change); + + $diffStart = strpos($out, 'diff --git a'); + $diff = ''; + if ($diffStart !== false) { + $log = substr($out, 0, $diffStart); + $diff = substr($out, $diffStart); } else { - $out = self::parseLog($out); - $out[0]->diff = ''; + $log = $out; } + $out = self::parseLog(preg_split('/\r\n|\n/', $log)); + $out[0]->diff = $diff; $out[0]->branch = implode(', ', $this->inBranches($out[0]->commit, null)); return $out[0]; } diff --git a/src/IDF/Scm/Mercurial.php b/src/IDF/Scm/Mercurial.php index 95ddada..484f3a2 100644 --- a/src/IDF/Scm/Mercurial.php +++ b/src/IDF/Scm/Mercurial.php @@ -408,24 +408,23 @@ class IDF_Scm_Mercurial extends IDF_Scm escapeshellarg($commit), escapeshellarg($this->repo), escapeshellarg($logStyle->get())); - $out = array(); $cmd = Pluf::f('idf_exec_cmd_prefix', '').$cmd; - self::exec('IDF_Scm_Mercurial::getCommit', $cmd, $out); - $log = array(); - $change = array(); - $inchange = false; - foreach ($out as $line) { - if (!$inchange and 0 === strpos($line, 'diff -r')) { - $inchange = true; - } - if ($inchange) { - $change[] = $line; - } else { - $log[] = $line; - } + $out = self::shell_exec('IDF_Scm_Mercurial::getCommit', $cmd); + if (strlen($out) == 0) { + return false; } - $out = self::parseLog($log); - $out[0]->diff = implode("\n", $change); + + $diffStart = strpos($out, 'diff -r'); + $diff = ''; + if ($diffStart !== false) { + $log = substr($out, 0, $diffStart); + $diff = substr($out, $diffStart); + } else { + $log = $out; + } + + $out = self::parseLog(preg_split('/\r\n|\n/', $log)); + $out[0]->diff = $diff; return $out[0]; } From d0e29777469897fd8bfd21b11b16bb57e87d38e1 Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Wed, 5 Oct 2011 02:44:04 +0200 Subject: [PATCH 02/15] Add support for line ending detection in our diff parser. Line endings are now preserved during the diff parsing. When the diff is then rendered later on, we replace non-printable characters by their ordinal counterparts, so a user can easily grasp changes when a hunk comes with edits that might be invisible at first. The expected format for the diff test suite has changed from serialized PHP to var_export, which is easier readable, editable and understandable, while still keeping parsable as well. Support for old Macintosh line endings could not be added, mainly because modern SCMs do not support single \r in their unified diff output either and working around and parsing these "lines" would have been a major headache with not much outcome (given the fact that all Macs that have been sold since 2001 or 2002 have been BSD-based and as such used Unix line endings by default). This commit fixes issue 636. --- src/IDF/Diff.php | 59 +- test/IDF/DiffTest.php | 4 +- .../test-01-svn-new-files.expected | 7051 ++++++++++++++++- ...test-02-svn-new-files-with-properties.diff | 371 +- ...-02-svn-new-files-with-properties.expected | 106 +- .../test-03-mtn-new-file-single-line.expected | 34 +- .../test-04-mtn-new-file-multi-lines.expected | 40 +- ...test-05-mtn-change-to-single-line.expected | 40 +- .../test-06-mtn-single-line.expected | 40 +- ...t-07-mtn-single-line-to-multiline.expected | 40 +- ...-mtn-multiline-diff-with-property.expected | 46 +- .../IDF_DiffTest/test-09-hg-new-file.expected | 34 +- .../IDF_DiffTest/test-10-hg-change.expected | 40 +- .../test-11-git-add-singleline-file.expected | 34 +- .../test-12-git-add-multiline-file.expected | 46 +- .../test-13-git-change-file.expected | 52 +- ...-14-git-change-file-to-singleline.expected | 46 +- ...15-git-change-single-line-invalid.expected | 40 +- .../test-16-git-newline-removed.expected | 40 +- .../test-17-git-newline-added.expected | 40 +- .../IDF_DiffTest/test-18-git-lineendings.diff | 10 + .../test-18-git-lineendings.expected | 51 + www/media/idf/css/style.css | 46 +- 23 files changed, 7905 insertions(+), 405 deletions(-) create mode 100644 test/data/IDF_DiffTest/test-18-git-lineendings.diff create mode 100644 test/data/IDF_DiffTest/test-18-git-lineendings.expected diff --git a/src/IDF/Diff.php b/src/IDF/Diff.php index 8909618..501b2b1 100644 --- a/src/IDF/Diff.php +++ b/src/IDF/Diff.php @@ -35,9 +35,29 @@ class IDF_Diff public function __construct($diff, $path_strip_level = 0) { $this->path_strip_level = $path_strip_level; + $this->lines = self::splitIntoLines($diff); + } + + /** + * Splits a diff into separate lines while retaining the individual + * line ending character for every line + */ + private static function splitIntoLines($diff) + { // this works because in unified diff format even empty lines are // either prefixed with a '+', '-' or ' ' - $this->lines = preg_split("/\015\012|\015|\012/", $diff, -1, PREG_SPLIT_NO_EMPTY); + $splitted = preg_split("/\r\n|\n/", $diff, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE); + + $last_off = -1; + $lines = array(); + while (($split = array_shift($splitted)) !== null) { + if ($last_off != -1) { + $lines[] .= substr($diff, $last_off, $split[1] - $last_off); + } + $last_off = $split[1]; + } + $lines[] = substr($diff, $last_off); + return $lines; } public function parse() @@ -66,12 +86,12 @@ class IDF_Diff } // use new file name by default - preg_match("/^\+\+\+ ([^\t]+)/", $newfileline, $m); + preg_match("/^\+\+\+ ([^\t\n\r]+)/", $newfileline, $m); $current_file = $m[1]; if ($current_file === '/dev/null') { // except if it's /dev/null, use the old one instead // eg. mtn 0.48 and newer - preg_match("/^--- ([^\t]+)/", $oldfileline, $m); + preg_match("/^--- ([^\t\r\n]+)/", $oldfileline, $m); $current_file = $m[1]; } if ($this->path_strip_level > 0) { @@ -102,10 +122,11 @@ class IDF_Diff while ($i < $diffsize && ($addlines >= 0 || $dellines >= 0)) { $linetype = $this->lines[$i] != '' ? $this->lines[$i][0] : false; + $content = substr($this->lines[$i], 1); switch ($linetype) { case ' ': $files[$current_file]['chunks'][$current_chunk][] = - array($delstart, $addstart, substr($this->lines[$i++], 1)); + array($delstart, $addstart, $content); $dellines--; $addlines--; $delstart++; @@ -113,23 +134,26 @@ class IDF_Diff break; case '+': $files[$current_file]['chunks'][$current_chunk][] = - array('', $addstart, substr($this->lines[$i++], 1)); + array('', $addstart, $content); $addlines--; $addstart++; break; case '-': $files[$current_file]['chunks'][$current_chunk][] = - array($delstart, '', substr($this->lines[$i++], 1)); + array($delstart, '', $content); $dellines--; $delstart++; break; case '\\': - // ignore newline handling for now, see issue 636 - $i++; + // no new line at the end of this file; remove pseudo new line from last line + $cur = count($files[$current_file]['chunks'][$current_chunk]) - 1; + $files[$current_file]['chunks'][$current_chunk][$cur][2] = + rtrim($files[$current_file]['chunks'][$current_chunk][$cur][2], "\r\n"); continue; default: break 2; } + $i++; } $current_chunk++; } @@ -156,13 +180,15 @@ class IDF_Diff foreach ($file['chunks'] as $chunk) { foreach ($chunk as $line) { if ($line[0] and $line[1]) { - $class = 'diff-c'; + $class = 'diff diff-c'; } elseif ($line[0]) { - $class = 'diff-r'; + $class = 'diff diff-r'; } else { - $class = 'diff-a'; + $class = 'diff diff-a'; } - $line_content = self::padLine(Pluf_esc($line[2])); + $line_content = Pluf_esc($line[2]); + $line_content = preg_replace("/\t/", " ", $line_content); + $line_content = self::makeNonPrintableCharsVisible($line_content); $out .= sprintf('%s%s%s'."\n", $line[0], $line[1], $class, $pretty, $line_content); } if (count($file['chunks']) > $cc) @@ -174,6 +200,13 @@ class IDF_Diff return Pluf_Template::markSafe($out); } + private static function makeNonPrintableCharsVisible($line) + { + return preg_replace('/([^[:print:]])/e', + '"".bin2hex("\\1").""', + $line); + } + public static function padLine($line) { $line = str_replace("\t", ' ', $line); @@ -208,7 +241,7 @@ class IDF_Diff */ public function fileCompare($orig, $chunks, $filename, $context=10) { - $orig_lines = preg_split("/\015\012|\015|\012/", $orig); + $orig_lines = self::splitIntoLines($orig); $new_chunks = $this->mergeChunks($orig_lines, $chunks, $context); return $this->renderCompared($new_chunks, $filename); } diff --git a/test/IDF/DiffTest.php b/test/IDF/DiffTest.php index 62cf53d..3ff8b09 100644 --- a/test/IDF/DiffTest.php +++ b/test/IDF/DiffTest.php @@ -38,11 +38,9 @@ class IDF_DiffTest extends PHPUnit_Framework_TestCase } $expectedfile = str_replace('.diff', '.expected', $difffile); - $expectedcontent = @file_get_contents($expectedfile); - $diffcontent = file_get_contents($difffile); $diff = new IDF_Diff($diffcontent, $diffprefix); - $this->assertEquals(unserialize($expectedcontent), + $this->assertEquals(require_once($expectedfile), $diff->parse(), 'parsed diff '.$difffile.' does not match'); } diff --git a/test/data/IDF_DiffTest/test-01-svn-new-files.expected b/test/data/IDF_DiffTest/test-01-svn-new-files.expected index 00c201a..045287c 100644 --- a/test/data/IDF_DiffTest/test-01-svn-new-files.expected +++ b/test/data/IDF_DiffTest/test-01-svn-new-files.expected @@ -1 +1,7050 @@ -a:12:{s:32:"src/mainboard/lenovo/x60/Kconfig";a:2:{s:6:"chunks";a:1:{i:0;a:7:{i:0;a:3:{i:0;s:2:"21";i:1;s:2:"21";i:2;s:29:" select BOARD_ROMSIZE_KB_2048";}i:1;a:3:{i:0;i:22;i:1;i:22;i:2;s:33:" select CHANNEL_XOR_RANDOMIZATION";}i:2;a:3:{i:0;i:23;i:1;i:23;i:2;s:24:" select HAVE_SMI_HANDLER";}i:3;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:24:" select HAVE_ACPI_TABLES";}i:4;a:3:{i:0;i:24;i:1;i:25;i:2;b:0;}i:5;a:3:{i:0;i:25;i:1;i:26;i:2;s:20:"config MAINBOARD_DIR";}i:6;a:3:{i:0;i:26;i:1;i:27;i:2;s:7:" string";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:2:"21";i:1;s:1:"6";}i:1;a:2:{i:0;s:2:"21";i:1;s:1:"7";}}}}s:36:"src/mainboard/lenovo/x60/acpi/ac.asl";a:2:{s:6:"chunks";a:1:{i:0;a:44:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"/*";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:45:" * This file is part of the coreboot project.";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:2:" *";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:58:" * Copyright (c) 2011 Sven Schnelle ";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:2:" *";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:64:" * This program is free software; you can redistribute it and/or";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:65:" * modify it under the terms of the GNU General Public License as";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:58:" * published by the Free Software Foundation; version 2 of";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:15:" * the License.";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:2:" *";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:66:" * This program is distributed in the hope that it will be useful,";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:65:" * but WITHOUT ANY WARRANTY; without even the implied warranty of";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:64:" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:47:" * GNU General Public License for more details.";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:2:" *";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:68:" * You should have received a copy of the GNU General Public License";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:62:" * along with this program; if not, write to the Free Software";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:57:" * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:20:" * MA 02110-1301 USA";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:3:" */";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;b:0;}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:38:"Field(ERAM, ByteAcc, NoLock, Preserve)";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:1:"{";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:16:" Offset (0x46),";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:8:" , 4,";}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;s:14:" HPAC, 1";}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;s:1:"}";}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;b:0;}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;s:10:"Device(AC)";}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:1:"{";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:23:" Name(_HID, "ACPI0003")";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:17:" Name(_UID, 0x00)";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:32:" Name(_PCL, Package() { \_SB } )";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;b:0;}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:31:" Method(_PSR, 0, NotSerialized)";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;s:2:" {";}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:15:" return (HPAC)";}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;s:2:" }";}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;b:0;}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;s:31:" Method(_STA, 0, NotSerialized)";}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;s:2:" {";}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;s:15:" Return (0x0f)";}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;s:2:" }";}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:1:"}";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"44";}}}}s:47:"src/mainboard/lenovo/x60/acpi/i945_pci_irqs.asl";a:2:{s:6:"chunks";a:1:{i:0;a:63:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"/*";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:45:" * This file is part of the coreboot project.";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:2:" *";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:58:" * Copyright (C) 2011 Sven Schnelle ";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:2:" *";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:64:" * This program is free software; you can redistribute it and/or";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:65:" * modify it under the terms of the GNU General Public License as";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:58:" * published by the Free Software Foundation; version 2 of";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:15:" * the License.";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:2:" *";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:66:" * This program is distributed in the hope that it will be useful,";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:65:" * but WITHOUT ANY WARRANTY; without even the implied warranty of";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:64:" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:47:" * GNU General Public License for more details.";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:2:" *";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:68:" * You should have received a copy of the GNU General Public License";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:62:" * along with this program; if not, write to the Free Software";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:57:" * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:20:" * MA 02110-1301 USA";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:3:" */";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;b:0;}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:58:"/* This is board specific information: IRQ routing for the";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:7:" * i945";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:3:" */";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;b:0;}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;b:0;}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;s:24:"// PCI Interrupt Routing";}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;s:12:"Method(_PRT)";}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;s:1:"{";}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:12:" If (PICM) {";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:21:" Return (Package() {";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:47:" Package() { 0x0002ffff, 0, 0, 0x10 }, // VGA";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:49:" Package() { 0x001bffff, 1, 0, 0x11 }, // Audio";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;s:54:" Package() { 0x001cffff, 0, 0, 0x14 }, // PCI bridge";}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:54:" Package() { 0x001cffff, 1, 0, 0x15 }, // PCI bridge";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;s:54:" Package() { 0x001cffff, 2, 0, 0x16 }, // PCI bridge";}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:54:" Package() { 0x001cffff, 3, 0, 0x17 }, // PCI bridge";}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;s:47:" Package() { 0x001dffff, 0, 0, 0x10 }, // USB";}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;s:47:" Package() { 0x001dffff, 1, 0, 0x11 }, // USB";}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;s:47:" Package() { 0x001dffff, 2, 0, 0x12 }, // USB";}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;s:47:" Package() { 0x001dffff, 3, 0, 0x13 }, // USB";}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;s:47:" Package() { 0x001fffff, 0, 0, 0x17 }, // LPC";}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;s:47:" Package() { 0x001fffff, 1, 0, 0x10 }, // IDE";}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:48:" Package() { 0x001fffff, 2, 0, 0x10 } // SATA";}i:44;a:3:{i:0;s:0:"";i:1;i:45;i:2;s:4:" })";}i:45;a:3:{i:0;s:0:"";i:1;i:46;i:2;s:9:" } Else {";}i:46;a:3:{i:0;s:0:"";i:1;i:47;i:2;s:21:" Return (Package() {";}i:47;a:3:{i:0;s:0:"";i:1;i:48;i:2;s:62:" Package() { 0x0002ffff, 0, \_SB.PCI0.LPCB.LNKA, 0 }, // VGA";}i:48;a:3:{i:0;s:0:"";i:1;i:49;i:2;s:64:" Package() { 0x001bffff, 1, \_SB.PCI0.LPCB.LNKB, 0 }, // Audio";}i:49;a:3:{i:0;s:0:"";i:1;i:50;i:2;s:62:" Package() { 0x001cffff, 0, \_SB.PCI0.LPCB.LNKE, 0 }, // PCI";}i:50;a:3:{i:0;s:0:"";i:1;i:51;i:2;s:62:" Package() { 0x001cffff, 1, \_SB.PCI0.LPCB.LNKF, 0 }, // PCI";}i:51;a:3:{i:0;s:0:"";i:1;i:52;i:2;s:62:" Package() { 0x001cffff, 2, \_SB.PCI0.LPCB.LNKG, 0 }, // PCI";}i:52;a:3:{i:0;s:0:"";i:1;i:53;i:2;s:62:" Package() { 0x001cffff, 3, \_SB.PCI0.LPCB.LNKH, 0 }, // PCI";}i:53;a:3:{i:0;s:0:"";i:1;i:54;i:2;s:62:" Package() { 0x001dffff, 0, \_SB.PCI0.LPCB.LNKA, 0 }, // USB";}i:54;a:3:{i:0;s:0:"";i:1;i:55;i:2;s:62:" Package() { 0x001dffff, 1, \_SB.PCI0.LPCB.LNKB, 0 }, // USB";}i:55;a:3:{i:0;s:0:"";i:1;i:56;i:2;s:62:" Package() { 0x001dffff, 2, \_SB.PCI0.LPCB.LNKC, 0 }, // USB";}i:56;a:3:{i:0;s:0:"";i:1;i:57;i:2;s:62:" Package() { 0x001dffff, 3, \_SB.PCI0.LPCB.LNKD, 0 }, // USB";}i:57;a:3:{i:0;s:0:"";i:1;i:58;i:2;s:62:" Package() { 0x001fffff, 0, \_SB.PCI0.LPCB.LNKH, 0 }, // LPC";}i:58;a:3:{i:0;s:0:"";i:1;i:59;i:2;s:62:" Package() { 0x001fffff, 1, \_SB.PCI0.LPCB.LNKA, 0 }, // IDE";}i:59;a:3:{i:0;s:0:"";i:1;i:60;i:2;s:63:" Package() { 0x001fffff, 2, \_SB.PCI0.LPCB.LNKA, 0 } // SATA";}i:60;a:3:{i:0;s:0:"";i:1;i:61;i:2;s:4:" })";}i:61;a:3:{i:0;s:0:"";i:1;i:62;i:2;s:2:" }";}i:62;a:3:{i:0;s:0:"";i:1;i:63;i:2;s:1:"}";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"63";}}}}s:47:"src/mainboard/lenovo/x60/acpi/ich7_pci_irqs.asl";a:2:{s:6:"chunks";a:1:{i:0;a:46:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"/*";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:45:" * This file is part of the coreboot project.";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:2:" *";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:43:" * Copyright (C) 2007-2009 coresystems GmbH";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:2:" *";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:64:" * This program is free software; you can redistribute it and/or";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:65:" * modify it under the terms of the GNU General Public License as";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:58:" * published by the Free Software Foundation; version 2 of";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:15:" * the License.";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:2:" *";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:66:" * This program is distributed in the hope that it will be useful,";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:65:" * but WITHOUT ANY WARRANTY; without even the implied warranty of";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:64:" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:47:" * GNU General Public License for more details.";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:2:" *";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:68:" * You should have received a copy of the GNU General Public License";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:62:" * along with this program; if not, write to the Free Software";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:57:" * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:20:" * MA 02110-1301 USA";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:3:" */";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;b:0;}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:58:"/* This is board specific information: IRQ routing for the";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:32:" * 0:1e.0 PCI bridge of the ICH7";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:3:" */";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;b:0;}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;s:11:"If (PICM) {";}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;s:20:" Return (Package() {";}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;s:50:" Package (0x04) { 0x0000FFFF, 0x00, 0x00, 0x10 },";}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;s:50:" Package (0x04) { 0x0000FFFF, 0x01, 0x00, 0x11 },";}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:50:" Package (0x04) { 0x0000FFFF, 0x02, 0x00, 0x12 },";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:50:" Package (0x04) { 0x0001FFFF, 0x00, 0x00, 0x10 },";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:50:" Package (0x04) { 0x0002FFFF, 0x00, 0x00, 0x15 },";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:50:" Package (0x04) { 0x0002FFFF, 0x01, 0x00, 0x16 },";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;s:49:" Package (0x04) { 0x0008FFFF, 0x00, 0x00, 0x14 }";}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:3:" })";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;s:9:" } Else {";}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:20:" Return (Package() {";}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;s:65:" Package (0x04) { 0x0000FFFF, 0x00, \_SB.PCI0.LPCB.LNKA, 0x00 },";}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;s:65:" Package (0x04) { 0x0000FFFF, 0x01, \_SB.PCI0.LPCB.LNKB, 0x00 },";}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;s:65:" Package (0x04) { 0x0000FFFF, 0x02, \_SB.PCI0.LPCB.LNKC, 0x00 },";}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;s:65:" Package (0x04) { 0x0001FFFF, 0x00, \_SB.PCI0.LPCB.LNKA, 0x00 },";}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;s:65:" Package (0x04) { 0x0002FFFF, 0x00, \_SB.PCI0.LPCB.LNKF, 0x00 },";}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;s:65:" Package (0x04) { 0x0002FFFF, 0x01, \_SB.PCI0.LPCB.LNKG, 0x00 },";}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:64:" Package (0x04) { 0x0008FFFF, 0x00, \_SB.PCI0.LPCB.LNKE, 0x00 }";}i:44;a:3:{i:0;s:0:"";i:1;i:45;i:2;s:3:" })";}i:45;a:3:{i:0;s:0:"";i:1;i:46;i:2;s:1:"}";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"46";}}}}s:42:"src/mainboard/lenovo/x60/acpi/platform.asl";a:2:{s:6:"chunks";a:1:{i:0;a:206:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"/*";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:45:" * This file is part of the coreboot project.";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:2:" *";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:43:" * Copyright (C) 2007-2009 coresystems GmbH";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:2:" *";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:64:" * This program is free software; you can redistribute it and/or";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:65:" * modify it under the terms of the GNU General Public License as";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:58:" * published by the Free Software Foundation; version 2 of";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:15:" * the License.";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:2:" *";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:66:" * This program is distributed in the hope that it will be useful,";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:65:" * but WITHOUT ANY WARRANTY; without even the implied warranty of";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:64:" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:47:" * GNU General Public License for more details.";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:2:" *";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:68:" * You should have received a copy of the GNU General Public License";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:62:" * along with this program; if not, write to the Free Software";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:57:" * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:20:" * MA 02110-1301 USA";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:3:" */";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;b:0;}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:54:"/* These come from the dynamically created CPU SSDT */";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:14:"External(PDC0)";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:14:"External(PDC1)";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;b:0;}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;s:59:"/* The APM port can be used for generating software SMIs */";}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;b:0;}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;s:41:"OperationRegion (APMP, SystemIO, 0xb2, 2)";}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;s:39:"Field (APMP, ByteAcc, NoLock, Preserve)";}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:1:"{";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:24:" APMC, 8, // APM command";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:23:" APMS, 8 // APM status";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:1:"}";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;b:0;}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:18:"/* Port 80 POST */";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;b:0;}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:41:"OperationRegion (POST, SystemIO, 0x80, 1)";}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;s:37:"Field (POST, ByteAcc, Lock, Preserve)";}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;s:1:"{";}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;s:8:" DBG0, 8";}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;s:1:"}";}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;b:0;}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;s:18:"/* SMI I/O Trap */";}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:27:"Method(TRAP, 1, Serialized)";}i:44;a:3:{i:0;s:0:"";i:1;i:45;i:2;s:1:"{";}i:45;a:3:{i:0;s:0:"";i:1;i:46;i:2;s:35:" Store (Arg0, SMIF) // SMI Function";}i:46;a:3:{i:0;s:0:"";i:1;i:47;i:2;s:34:" Store (0, TRP0) // Generate trap";}i:47;a:3:{i:0;s:0:"";i:1;i:48;i:2;s:46:" Return (SMIF) // Return value of SMI handler";}i:48;a:3:{i:0;s:0:"";i:1;i:49;i:2;s:1:"}";}i:49;a:3:{i:0;s:0:"";i:1;i:50;i:2;b:0;}i:50;a:3:{i:0;s:0:"";i:1;i:51;i:2;s:66:"/* The _PIC method is called by the OS to choose between interrupt";}i:51;a:3:{i:0;s:0:"";i:1;i:52;i:2;s:58:" * routing via the i8259 interrupt controller or the APIC.";}i:52;a:3:{i:0;s:0:"";i:1;i:53;i:2;s:2:" *";}i:53;a:3:{i:0;s:0:"";i:1;i:54;i:2;s:67:" * _PIC is called with a parameter of 0 for i8259 configuration and";}i:54;a:3:{i:0;s:0:"";i:1;i:55;i:2;s:61:" * with a parameter of 1 for Local Apic/IOAPIC configuration.";}i:55;a:3:{i:0;s:0:"";i:1;i:56;i:2;s:3:" */";}i:56;a:3:{i:0;s:0:"";i:1;i:57;i:2;b:0;}i:57;a:3:{i:0;s:0:"";i:1;i:58;i:2;s:15:"Method(_PIC, 1)";}i:58;a:3:{i:0;s:0:"";i:1;i:59;i:2;s:1:"{";}i:59;a:3:{i:0;s:0:"";i:1;i:60;i:2;s:40:" // Remember the OS' IRQ routing choice.";}i:60;a:3:{i:0;s:0:"";i:1;i:61;i:2;s:18:" Store(Arg0, PICM)";}i:61;a:3:{i:0;s:0:"";i:1;i:62;i:2;s:1:"}";}i:62;a:3:{i:0;s:0:"";i:1;i:63;i:2;b:0;}i:63;a:3:{i:0;s:0:"";i:1;i:64;i:2;s:64:"/* The _PTS method (Prepare To Sleep) is called before the OS is";}i:64;a:3:{i:0;s:0:"";i:1;i:65;i:2;s:67:" * entering a sleep state. The sleep state number is passed in Arg0";}i:65;a:3:{i:0;s:0:"";i:1;i:66;i:2;s:3:" */";}i:66;a:3:{i:0;s:0:"";i:1;i:67;i:2;b:0;}i:67;a:3:{i:0;s:0:"";i:1;i:68;i:2;s:14:"Method(_PTS,1)";}i:68;a:3:{i:0;s:0:"";i:1;i:69;i:2;s:1:"{";}i:69;a:3:{i:0;s:0:"";i:1;i:70;i:2;s:53:" // Call a trap so SMI can prepare for Sleep as well.";}i:70;a:3:{i:0;s:0:"";i:1;i:71;i:2;s:14:" // TRAP(0x55)";}i:71;a:3:{i:0;s:0:"";i:1;i:72;i:2;s:1:"}";}i:72;a:3:{i:0;s:0:"";i:1;i:73;i:2;b:0;}i:73;a:3:{i:0;s:0:"";i:1;i:74;i:2;s:48:"/* The _WAK method is called on system wakeup */";}i:74;a:3:{i:0;s:0:"";i:1;i:75;i:2;b:0;}i:75;a:3:{i:0;s:0:"";i:1;i:76;i:2;s:14:"Method(_WAK,1)";}i:76;a:3:{i:0;s:0:"";i:1;i:77;i:2;s:1:"{";}i:77;a:3:{i:0;s:0:"";i:1;i:78;i:2;s:21:" // CPU specific part";}i:78;a:3:{i:0;s:0:"";i:1;i:79;i:2;b:0;}i:79;a:3:{i:0;s:0:"";i:1;i:80;i:2;s:43:" // Notify PCI Express slots in case a card";}i:80;a:3:{i:0;s:0:"";i:1;i:81;i:2;s:48:" // was inserted while a sleep state was active.";}i:81;a:3:{i:0;s:0:"";i:1;i:82;i:2;b:0;}i:82;a:3:{i:0;s:0:"";i:1;i:83;i:2;s:23:" // Are we going to S3?";}i:83;a:3:{i:0;s:0:"";i:1;i:84;i:2;s:23:" If (LEqual(Arg0, 3)) {";}i:84;a:3:{i:0;s:0:"";i:1;i:85;i:2;s:7:" // ..";}i:85;a:3:{i:0;s:0:"";i:1;i:86;i:2;s:2:" }";}i:86;a:3:{i:0;s:0:"";i:1;i:87;i:2;b:0;}i:87;a:3:{i:0;s:0:"";i:1;i:88;i:2;s:23:" // Are we going to S4?";}i:88;a:3:{i:0;s:0:"";i:1;i:89;i:2;s:23:" If (LEqual(Arg0, 4)) {";}i:89;a:3:{i:0;s:0:"";i:1;i:90;i:2;s:7:" // ..";}i:90;a:3:{i:0;s:0:"";i:1;i:91;i:2;s:2:" }";}i:91;a:3:{i:0;s:0:"";i:1;i:92;i:2;b:0;}i:92;a:3:{i:0;s:0:"";i:1;i:93;i:2;s:40:" // TODO: Windows XP SP2 P-State restore";}i:93;a:3:{i:0;s:0:"";i:1;i:94;i:2;b:0;}i:94;a:3:{i:0;s:0:"";i:1;i:95;i:2;s:23:" Return(Package(){0,0})";}i:95;a:3:{i:0;s:0:"";i:1;i:96;i:2;s:1:"}";}i:96;a:3:{i:0;s:0:"";i:1;i:97;i:2;b:0;}i:97;a:3:{i:0;s:0:"";i:1;i:98;i:2;s:21:"// Power notification";}i:98;a:3:{i:0;s:0:"";i:1;i:99;i:2;b:0;}i:99;a:3:{i:0;s:0:"";i:1;i:100;i:2;s:32:"External (\_PR_.CPU0, DeviceObj)";}i:100;a:3:{i:0;s:0:"";i:1;i:101;i:2;s:32:"External (\_PR_.CPU1, DeviceObj)";}i:101;a:3:{i:0;s:0:"";i:1;i:102;i:2;b:0;}i:102;a:3:{i:0;s:0:"";i:1;i:103;i:2;s:13:"Method (PNOT)";}i:103;a:3:{i:0;s:0:"";i:1;i:104;i:2;s:1:"{";}i:104;a:3:{i:0;s:0:"";i:1;i:105;i:2;s:12:" If (MPEN) {";}i:105;a:3:{i:0;s:0:"";i:1;i:106;i:2;s:23:" If(And(PDC0, 0x08)) {";}i:106;a:3:{i:0;s:0:"";i:1;i:107;i:2;s:37:" Notify (\_PR_.CPU0, 0x80) // _PPC";}i:107;a:3:{i:0;s:0:"";i:1;i:108;i:2;b:0;}i:108;a:3:{i:0;s:0:"";i:1;i:109;i:2;s:25:" If (And(PDC0, 0x10)) {";}i:109;a:3:{i:0;s:0:"";i:1;i:110;i:2;s:14:" Sleep(100)";}i:110;a:3:{i:0;s:0:"";i:1;i:111;i:2;s:36:" Notify(\_PR_.CPU0, 0x81) // _CST";}i:111;a:3:{i:0;s:0:"";i:1;i:112;i:2;s:4:" }";}i:112;a:3:{i:0;s:0:"";i:1;i:113;i:2;s:3:" }";}i:113;a:3:{i:0;s:0:"";i:1;i:114;i:2;b:0;}i:114;a:3:{i:0;s:0:"";i:1;i:115;i:2;s:23:" If(And(PDC1, 0x08)) {";}i:115;a:3:{i:0;s:0:"";i:1;i:116;i:2;s:37:" Notify (\_PR_.CPU1, 0x80) // _PPC";}i:116;a:3:{i:0;s:0:"";i:1;i:117;i:2;s:25:" If (And(PDC1, 0x10)) {";}i:117;a:3:{i:0;s:0:"";i:1;i:118;i:2;s:14:" Sleep(100)";}i:118;a:3:{i:0;s:0:"";i:1;i:119;i:2;s:36:" Notify(\_PR_.CPU1, 0x81) // _CST";}i:119;a:3:{i:0;s:0:"";i:1;i:120;i:2;s:4:" }";}i:120;a:3:{i:0;s:0:"";i:1;i:121;i:2;s:3:" }";}i:121;a:3:{i:0;s:0:"";i:1;i:122;i:2;b:0;}i:122;a:3:{i:0;s:0:"";i:1;i:123;i:2;s:15:" } Else { // UP";}i:123;a:3:{i:0;s:0:"";i:1;i:124;i:2;s:27:" Notify (\_PR_.CPU0, 0x80)";}i:124;a:3:{i:0;s:0:"";i:1;i:125;i:2;s:13:" Sleep(0x64)";}i:125;a:3:{i:0;s:0:"";i:1;i:126;i:2;s:26:" Notify(\_PR_.CPU0, 0x81)";}i:126;a:3:{i:0;s:0:"";i:1;i:127;i:2;s:2:" }";}i:127;a:3:{i:0;s:0:"";i:1;i:128;i:2;b:0;}i:128;a:3:{i:0;s:0:"";i:1;i:129;i:2;s:24:" // Notify the Batteries";}i:129;a:3:{i:0;s:0:"";i:1;i:130;i:2;s:58:" Notify(\_SB.PCI0.LPCB.EC.BAT0, 0x80) // Execute BAT1 _BST";}i:130;a:3:{i:0;s:0:"";i:1;i:131;i:2;s:58:" Notify(\_SB.PCI0.LPCB.EC.BAT1, 0x80) // Execute BAT2 _BST";}i:131;a:3:{i:0;s:0:"";i:1;i:132;i:2;s:1:"}";}i:132;a:3:{i:0;s:0:"";i:1;i:133;i:2;b:0;}i:133;a:3:{i:0;s:0:"";i:1;i:134;i:2;s:16:"/* System Bus */";}i:134;a:3:{i:0;s:0:"";i:1;i:135;i:2;b:0;}i:135;a:3:{i:0;s:0:"";i:1;i:136;i:2;s:11:"Scope(\_SB)";}i:136;a:3:{i:0;s:0:"";i:1;i:137;i:2;s:1:"{";}i:137;a:3:{i:0;s:0:"";i:1;i:138;i:2;s:72:" /* This method is placed on the top level, so we can make sure it's the";}i:138;a:3:{i:0;s:0:"";i:1;i:139;i:2;s:31:" * first executed _INI method.";}i:139;a:3:{i:0;s:0:"";i:1;i:140;i:2;s:4:" */";}i:140;a:3:{i:0;s:0:"";i:1;i:141;i:2;s:16:" Method(_INI, 0)";}i:141;a:3:{i:0;s:0:"";i:1;i:142;i:2;s:2:" {";}i:142;a:3:{i:0;s:0:"";i:1;i:143;i:2;s:52:" /* The DTS data in NVS is probably not up to date.";}i:143;a:3:{i:0;s:0:"";i:1;i:144;i:2;s:55:" * Update temperature values and make sure AP thermal";}i:144;a:3:{i:0;s:0:"";i:1;i:145;i:2;s:26:" * interrupts can happen";}i:145;a:3:{i:0;s:0:"";i:1;i:146;i:2;s:5:" */";}i:146;a:3:{i:0;s:0:"";i:1;i:147;i:2;b:0;}i:147;a:3:{i:0;s:0:"";i:1;i:148;i:2;s:21:" // TRAP(71) // TODO";}i:148;a:3:{i:0;s:0:"";i:1;i:149;i:2;b:0;}i:149;a:3:{i:0;s:0:"";i:1;i:150;i:2;s:63:" /* Determine the Operating System and save the value in OSYS.";}i:150;a:3:{i:0;s:0:"";i:1;i:151;i:2;s:58:" * We have to do this in order to be able to work around";}i:151;a:3:{i:0;s:0:"";i:1;i:152;i:2;s:26:" * certain windows bugs.";}i:152;a:3:{i:0;s:0:"";i:1;i:153;i:2;s:4:" *";}i:153;a:3:{i:0;s:0:"";i:1;i:154;i:2;s:37:" * OSYS value | Operating System";}i:154;a:3:{i:0;s:0:"";i:1;i:155;i:2;s:38:" * -----------+------------------";}i:155;a:3:{i:0;s:0:"";i:1;i:156;i:2;s:33:" * 2000 | Windows 2000";}i:156;a:3:{i:0;s:0:"";i:1;i:157;i:2;s:37:" * 2001 | Windows XP(+SP1)";}i:157;a:3:{i:0;s:0:"";i:1;i:158;i:2;s:35:" * 2002 | Windows XP SP2";}i:158;a:3:{i:0;s:0:"";i:1;i:159;i:2;s:34:" * 2006 | Windows Vista";}i:159;a:3:{i:0;s:0:"";i:1;i:160;i:2;s:30:" * ???? | Windows 7";}i:160;a:3:{i:0;s:0:"";i:1;i:161;i:2;s:5:" */";}i:161;a:3:{i:0;s:0:"";i:1;i:162;i:2;b:0;}i:162;a:3:{i:0;s:0:"";i:1;i:163;i:2;s:56:" /* Let's assume we're running at least Windows 2000 */";}i:163;a:3:{i:0;s:0:"";i:1;i:164;i:2;s:20:" Store (2000, OSYS)";}i:164;a:3:{i:0;s:0:"";i:1;i:165;i:2;b:0;}i:165;a:3:{i:0;s:0:"";i:1;i:166;i:2;s:32:" If (CondRefOf(_OSI, Local0)) {";}i:166;a:3:{i:0;s:0:"";i:1;i:167;i:2;s:52:" /* Linux answers _OSI with "True" for a couple of";}i:167;a:3:{i:0;s:0:"";i:1;i:168;i:2;s:52:" * Windows version queries. But unlike Windows it";}i:168;a:3:{i:0;s:0:"";i:1;i:169;i:2;s:54:" * needs a Video repost, so let's determine whether";}i:169;a:3:{i:0;s:0:"";i:1;i:170;i:2;s:26:" * we're running Linux.";}i:170;a:3:{i:0;s:0:"";i:1;i:171;i:2;s:6:" */";}i:171;a:3:{i:0;s:0:"";i:1;i:172;i:2;b:0;}i:172;a:3:{i:0;s:0:"";i:1;i:173;i:2;s:23:" If (_OSI("Linux")) {";}i:173;a:3:{i:0;s:0:"";i:1;i:174;i:2;s:19:" Store (1, LINX)";}i:174;a:3:{i:0;s:0:"";i:1;i:175;i:2;s:4:" }";}i:175;a:3:{i:0;s:0:"";i:1;i:176;i:2;b:0;}i:176;a:3:{i:0;s:0:"";i:1;i:177;i:2;s:30:" If (_OSI("Windows 2001")) {";}i:177;a:3:{i:0;s:0:"";i:1;i:178;i:2;s:22:" Store (2001, OSYS)";}i:178;a:3:{i:0;s:0:"";i:1;i:179;i:2;s:4:" }";}i:179;a:3:{i:0;s:0:"";i:1;i:180;i:2;b:0;}i:180;a:3:{i:0;s:0:"";i:1;i:181;i:2;s:34:" If (_OSI("Windows 2001 SP1")) {";}i:181;a:3:{i:0;s:0:"";i:1;i:182;i:2;s:22:" Store (2001, OSYS)";}i:182;a:3:{i:0;s:0:"";i:1;i:183;i:2;s:4:" }";}i:183;a:3:{i:0;s:0:"";i:1;i:184;i:2;b:0;}i:184;a:3:{i:0;s:0:"";i:1;i:185;i:2;s:34:" If (_OSI("Windows 2001 SP2")) {";}i:185;a:3:{i:0;s:0:"";i:1;i:186;i:2;s:22:" Store (2002, OSYS)";}i:186;a:3:{i:0;s:0:"";i:1;i:187;i:2;s:4:" }";}i:187;a:3:{i:0;s:0:"";i:1;i:188;i:2;b:0;}i:188;a:3:{i:0;s:0:"";i:1;i:189;i:2;s:30:" If (_OSI("Windows 2006")) {";}i:189;a:3:{i:0;s:0:"";i:1;i:190;i:2;s:22:" Store (2006, OSYS)";}i:190;a:3:{i:0;s:0:"";i:1;i:191;i:2;s:4:" }";}i:191;a:3:{i:0;s:0:"";i:1;i:192;i:2;s:3:" }";}i:192;a:3:{i:0;s:0:"";i:1;i:193;i:2;b:0;}i:193;a:3:{i:0;s:0:"";i:1;i:194;i:2;s:64:" /* And the OS workarounds start right after we know what we're";}i:194;a:3:{i:0;s:0:"";i:1;i:195;i:2;s:63:" * running: Windows XP SP1 needs to have C-State coordination";}i:195;a:3:{i:0;s:0:"";i:1;i:196;i:2;s:20:" * enabled in SMM.";}i:196;a:3:{i:0;s:0:"";i:1;i:197;i:2;s:5:" */";}i:197;a:3:{i:0;s:0:"";i:1;i:198;i:2;s:39:" If (LAnd(LEqual(OSYS, 2001), MPEN)) {";}i:198;a:3:{i:0;s:0:"";i:1;i:199;i:2;s:22:" // TRAP(61) // TODO";}i:199;a:3:{i:0;s:0:"";i:1;i:200;i:2;s:3:" }";}i:200;a:3:{i:0;s:0:"";i:1;i:201;i:2;b:0;}i:201;a:3:{i:0;s:0:"";i:1;i:202;i:2;s:64:" /* SMM power state and C4-on-C3 settings need to be updated */";}i:202;a:3:{i:0;s:0:"";i:1;i:203;i:2;s:21:" // TRAP(43) // TODO";}i:203;a:3:{i:0;s:0:"";i:1;i:204;i:2;s:2:" }";}i:204;a:3:{i:0;s:0:"";i:1;i:205;i:2;s:1:"}";}i:205;a:3:{i:0;s:0:"";i:1;i:206;i:2;b:0;}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:3:"206";}}}}s:45:"src/mainboard/lenovo/x60/acpi/sleepbutton.asl";a:2:{s:6:"chunks";a:1:{i:0;a:25:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"/*";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:45:" * This file is part of the coreboot project.";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:2:" *";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:58:" * Copyright (c) 2011 Sven Schnelle ";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:2:" *";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:64:" * This program is free software; you can redistribute it and/or";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:65:" * modify it under the terms of the GNU General Public License as";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:58:" * published by the Free Software Foundation; version 2 of";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:15:" * the License.";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:2:" *";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:66:" * This program is distributed in the hope that it will be useful,";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:65:" * but WITHOUT ANY WARRANTY; without even the implied warranty of";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:64:" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:47:" * GNU General Public License for more details.";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:2:" *";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:68:" * You should have received a copy of the GNU General Public License";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:62:" * along with this program; if not, write to the Free Software";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:57:" * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:20:" * MA 02110-1301 USA";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:3:" */";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;b:0;}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:12:"Device(SLPB)";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:1:"{";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:39:" Name (_HID, EisaId ("PNP0C0E"))";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:1:"}";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"25";}}}}s:39:"src/mainboard/lenovo/x60/acpi/video.asl";a:2:{s:6:"chunks";a:1:{i:0;a:51:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"/*";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:45:" * This file is part of the coreboot project.";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:2:" *";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:58:" * Copyright (c) 2011 Sven Schnelle ";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:2:" *";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:64:" * This program is free software; you can redistribute it and/or";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:65:" * modify it under the terms of the GNU General Public License as";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:58:" * published by the Free Software Foundation; version 2 of";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:15:" * the License.";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:2:" *";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:66:" * This program is distributed in the hope that it will be useful,";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:65:" * but WITHOUT ANY WARRANTY; without even the implied warranty of";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:64:" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:47:" * GNU General Public License for more details.";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:2:" *";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:68:" * You should have received a copy of the GNU General Public License";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:62:" * along with this program; if not, write to the Free Software";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:57:" * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:20:" * MA 02110-1301 USA";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:3:" */";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;b:0;}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:13:"Device (DSPC)";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:1:"{";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:24:" Name (_ADR, 0x00020001)";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:48:" OperationRegion (DSPC, PCI_Config, 0x00, 0x100)";}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;s:40:" Field (DSPC, ByteAcc, NoLock, Preserve)";}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;s:2:" {";}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;s:16:" Offset (0xf4),";}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;s:16:" BRTC, 8";}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:2:" }";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;b:0;}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:31:" Method(BRTD, 0, NotSerialized)";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:2:" {";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;s:21:" Store(BRTC, Local0)";}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:28:" if (LGreater (Local0, 15))";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;s:3:" {";}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:31:" Subtract(Local0, 16, Local0)";}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;s:22:" Store(Local0, BRTC)";}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;s:3:" }";}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;s:2:" }";}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;b:0;}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;s:31:" Method(BRTU, 0, NotSerialized)";}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;s:2:" {";}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:22:" Store (BRTC, Local0)";}i:44;a:3:{i:0;s:0:"";i:1;i:45;i:2;s:26:" if (LLess(Local0, 0xff))";}i:45;a:3:{i:0;s:0:"";i:1;i:46;i:2;s:3:" {";}i:46;a:3:{i:0;s:0:"";i:1;i:47;i:2;s:27:" Add (Local0, 16, Local0)";}i:47;a:3:{i:0;s:0:"";i:1;i:48;i:2;s:22:" Store(Local0, BRTC)";}i:48;a:3:{i:0;s:0:"";i:1;i:49;i:2;s:3:" }";}i:49;a:3:{i:0;s:0:"";i:1;i:50;i:2;s:2:" }";}i:50;a:3:{i:0;s:0:"";i:1;i:51;i:2;s:1:"}";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"51";}}}}s:36:"src/mainboard/lenovo/x60/acpi/ec.asl";a:2:{s:6:"chunks";a:1:{i:0;a:101:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"/*";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:45:" * This file is part of the coreboot project.";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:2:" *";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:58:" * Copyright (c) 2011 Sven Schnelle ";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:2:" *";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:64:" * This program is free software; you can redistribute it and/or";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:65:" * modify it under the terms of the GNU General Public License as";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:58:" * published by the Free Software Foundation; version 2 of";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:15:" * the License.";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:2:" *";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:66:" * This program is distributed in the hope that it will be useful,";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:65:" * but WITHOUT ANY WARRANTY; without even the implied warranty of";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:64:" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:47:" * GNU General Public License for more details.";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:2:" *";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:68:" * You should have received a copy of the GNU General Public License";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:62:" * along with this program; if not, write to the Free Software";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:57:" * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:20:" * MA 02110-1301 USA";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:3:" */";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;b:0;}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:10:"Device(EC)";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:1:"{";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:31:" Name (_HID, EISAID("PNP0C09"))";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:15:" Name (_UID, 0)";}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;b:0;}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;s:16:" Name (_GPE, 28)";}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;s:16:" Mutex (ECLK, 0)";}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;b:0;}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:52:" OperationRegion(ERAM, EmbeddedControl, 0x00, 0x100)";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:40:" Field (ERAM, ByteAcc, NoLock, Preserve)";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:2:" {";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:16:" Offset (0x05),";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;s:12:" HSPA, 1,";}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:16:" Offset (0x0C),";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;s:28:" LEDS, 8, /* LED state */";}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:16:" Offset (0x3B),";}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;s:12:" , 1,";}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;s:41:" KBLT, 1, /* Keyboard Light */";}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;s:16:" Offset (0x81),";}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;s:44:" PAGE, 8 /* Information Page Selector */";}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;s:9:" }";}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;b:0;}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:17:" Method (_CRS, 0)";}i:44;a:3:{i:0;s:0:"";i:1;i:45;i:2;s:2:" {";}i:45;a:3:{i:0;s:0:"";i:1;i:46;i:2;s:32:" Name (ECMD, ResourceTemplate()";}i:46;a:3:{i:0;s:0:"";i:1;i:47;i:2;s:3:" {";}i:47;a:3:{i:0;s:0:"";i:1;i:48;i:2;s:34:" IO (Decode16, 0x62, 0x62, 1, 1)";}i:48;a:3:{i:0;s:0:"";i:1;i:49;i:2;s:37:" IO (Decode16, 0x66, 0x66, 1, 1)";}i:49;a:3:{i:0;s:0:"";i:1;i:50;i:2;s:4:" })";}i:50;a:3:{i:0;s:0:"";i:1;i:51;i:2;s:15:" Return (ECMD)";}i:51;a:3:{i:0;s:0:"";i:1;i:52;i:2;s:2:" }";}i:52;a:3:{i:0;s:0:"";i:1;i:53;i:2;b:0;}i:53;a:3:{i:0;s:0:"";i:1;i:54;i:2;s:31:" Method (LED, 1, NotSerialized)";}i:54;a:3:{i:0;s:0:"";i:1;i:55;i:2;s:2:" {";}i:55;a:3:{i:0;s:0:"";i:1;i:56;i:2;s:19:" Store(Arg0, LEDS)";}i:56;a:3:{i:0;s:0:"";i:1;i:57;i:2;s:2:" }";}i:57;a:3:{i:0;s:0:"";i:1;i:58;i:2;b:0;}i:58;a:3:{i:0;s:0:"";i:1;i:59;i:2;s:32:" Method (_INI, 0, NotSerialized)";}i:59;a:3:{i:0;s:0:"";i:1;i:60;i:2;s:2:" {";}i:60;a:3:{i:0;s:0:"";i:1;i:61;i:2;s:2:" }";}i:61;a:3:{i:0;s:0:"";i:1;i:62;i:2;b:0;}i:62;a:3:{i:0;s:0:"";i:1;i:63;i:2;s:27:" /* Sleep Button pressed */";}i:63;a:3:{i:0;s:0:"";i:1;i:64;i:2;s:31:" Method(_Q13, 0, NotSerialized)";}i:64;a:3:{i:0;s:0:"";i:1;i:65;i:2;s:2:" {";}i:65;a:3:{i:0;s:0:"";i:1;i:66;i:2;s:38:" Notify(\_SB.PCI0.LPCB.EC.SLPB, 0x80)";}i:66;a:3:{i:0;s:0:"";i:1;i:67;i:2;s:2:" }";}i:67;a:3:{i:0;s:0:"";i:1;i:68;i:2;b:0;}i:68;a:3:{i:0;s:0:"";i:1;i:69;i:2;s:24:" /* Brightness up GPE */";}i:69;a:3:{i:0;s:0:"";i:1;i:70;i:2;s:31:" Method(_Q14, 0, NotSerialized)";}i:70;a:3:{i:0;s:0:"";i:1;i:71;i:2;s:2:" {";}i:71;a:3:{i:0;s:0:"";i:1;i:72;i:2;s:15:" \DSPC.BRTU ()";}i:72;a:3:{i:0;s:0:"";i:1;i:73;i:2;s:2:" }";}i:73;a:3:{i:0;s:0:"";i:1;i:74;i:2;b:0;}i:74;a:3:{i:0;s:0:"";i:1;i:75;i:2;s:26:" /* Brightness down GPE */";}i:75;a:3:{i:0;s:0:"";i:1;i:76;i:2;s:31:" Method(_Q15, 0, NotSerialized)";}i:76;a:3:{i:0;s:0:"";i:1;i:77;i:2;s:2:" {";}i:77;a:3:{i:0;s:0:"";i:1;i:78;i:2;s:14:" \DSPC.BRTD()";}i:78;a:3:{i:0;s:0:"";i:1;i:79;i:2;s:2:" }";}i:79;a:3:{i:0;s:0:"";i:1;i:80;i:2;b:0;}i:80;a:3:{i:0;s:0:"";i:1;i:81;i:2;s:32:" /* AC status change: present */";}i:81;a:3:{i:0;s:0:"";i:1;i:82;i:2;s:31:" Method(_Q26, 0, NotSerialized)";}i:82;a:3:{i:0;s:0:"";i:1;i:83;i:2;s:2:" {";}i:83;a:3:{i:0;s:0:"";i:1;i:84;i:2;s:19:" Notify (AC, 0x80)";}i:84;a:3:{i:0;s:0:"";i:1;i:85;i:2;s:9:" Beep(6)";}i:85;a:3:{i:0;s:0:"";i:1;i:86;i:2;s:2:" }";}i:86;a:3:{i:0;s:0:"";i:1;i:87;i:2;b:0;}i:87;a:3:{i:0;s:0:"";i:1;i:88;i:2;s:36:" /* AC status change: not present */";}i:88;a:3:{i:0;s:0:"";i:1;i:89;i:2;s:31:" Method(_Q27, 0, NotSerialized)";}i:89;a:3:{i:0;s:0:"";i:1;i:90;i:2;s:2:" {";}i:90;a:3:{i:0;s:0:"";i:1;i:91;i:2;s:19:" Notify (AC, 0x80)";}i:91;a:3:{i:0;s:0:"";i:1;i:92;i:2;s:9:" Beep(6)";}i:92;a:3:{i:0;s:0:"";i:1;i:93;i:2;s:2:" }";}i:93;a:3:{i:0;s:0:"";i:1;i:94;i:2;b:0;}i:94;a:3:{i:0;s:0:"";i:1;i:95;i:2;b:0;}i:95;a:3:{i:0;s:0:"";i:1;i:96;i:2;s:17:"#include "ac.asl"";}i:96;a:3:{i:0;s:0:"";i:1;i:97;i:2;s:22:"#include "battery.asl"";}i:97;a:3:{i:0;s:0:"";i:1;i:98;i:2;s:26:"#include "sleepbutton.asl"";}i:98;a:3:{i:0;s:0:"";i:1;i:99;i:2;s:18:"#include "lid.asl"";}i:99;a:3:{i:0;s:0:"";i:1;i:100;i:2;s:19:"#include "beep.asl"";}i:100;a:3:{i:0;s:0:"";i:1;i:101;i:2;s:1:"}";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:3:"101";}}}}s:37:"src/mainboard/lenovo/x60/acpi/lid.asl";a:2:{s:6:"chunks";a:1:{i:0;a:37:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"/*";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:45:" * This file is part of the coreboot project.";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:2:" *";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:58:" * Copyright (c) 2011 Sven Schnelle ";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:2:" *";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:64:" * This program is free software; you can redistribute it and/or";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:65:" * modify it under the terms of the GNU General Public License as";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:58:" * published by the Free Software Foundation; version 2 of";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:15:" * the License.";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:2:" *";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:66:" * This program is distributed in the hope that it will be useful,";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:65:" * but WITHOUT ANY WARRANTY; without even the implied warranty of";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:64:" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:47:" * GNU General Public License for more details.";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:2:" *";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:68:" * You should have received a copy of the GNU General Public License";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:62:" * along with this program; if not, write to the Free Software";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:57:" * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:20:" * MA 02110-1301 USA";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:3:" */";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;b:0;}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:38:"Field(ERAM, ByteAcc, NoLock, Preserve)";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:1:"{";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:16:" Offset (0x46),";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:8:" , 2,";}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;s:11:" LIDS , 1";}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;s:1:"}";}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;b:0;}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;s:11:"Device(LID)";}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:1:"{";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:22:" Name(_HID, "PNP0C0D")";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;b:0;}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:31:" Method(_LId, 0, NotSerialized)";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;s:2:" {";}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:15:" return (LIDS)";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;s:2:" }";}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:1:"}";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"37";}}}}s:41:"src/mainboard/lenovo/x60/acpi/battery.asl";a:2:{s:6:"chunks";a:1:{i:0;a:296:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"/*";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:45:" * This file is part of the coreboot project.";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:2:" *";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:58:" * Copyright (c) 2011 Sven Schnelle ";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:2:" *";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:64:" * This program is free software; you can redistribute it and/or";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:65:" * modify it under the terms of the GNU General Public License as";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:58:" * published by the Free Software Foundation; version 2 of";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:15:" * the License.";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:2:" *";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:66:" * This program is distributed in the hope that it will be useful,";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:65:" * but WITHOUT ANY WARRANTY; without even the implied warranty of";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:64:" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:47:" * GNU General Public License for more details.";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:2:" *";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:68:" * You should have received a copy of the GNU General Public License";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:62:" * along with this program; if not, write to the Free Software";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:57:" * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:20:" * MA 02110-1301 USA";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:3:" */";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;b:0;}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:38:"Field(ERAM, ByteAcc, NoLock, Preserve)";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:1:"{";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:15:" Offset (0x38),";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:33:" B0ST, 4, /* Battery 0 state */";}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;s:11:" , 1,";}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;s:36:" B0CH, 1, /* Battery 0 charging */";}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;s:39:" B0DI, 1, /* Battery 0 discharging */";}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;s:35:" B0PR, 1, /* Battery 0 present */";}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:15:" Offset (0x39),";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:33:" B1ST, 4, /* Battery 1 state */";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:11:" , 1,";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:37:" B1CH, 1, /* Battery 1 charging, */";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;s:46:" B1DI, 1, /* Battery 1 discharging,*/";}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:35:" B1PR, 1 /* Battery 1 present */";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;s:1:"}";}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;b:0;}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;s:18:"/* EC Registers */";}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;s:18:"/* PAGE == 0x00 */";}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;s:39:"Field (ERAM, ByteAcc, NoLock, Preserve)";}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;s:1:"{";}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;s:14:" Offset(0xa0),";}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;s:46:" BARC, 16, /* Battery remaining capacity */";}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:48:" BAFC, 16, /* Battery full charge capacity */";}i:44;a:3:{i:0;s:0:"";i:1;i:45;i:2;s:14:" Offset(0xa8),";}i:45;a:3:{i:0;s:0:"";i:1;i:46;i:2;s:40:" BAPR, 16, /* Battery present rate */";}i:46;a:3:{i:0;s:0:"";i:1;i:47;i:2;s:35:" BAVO, 16, /* Battery Voltage */";}i:47;a:3:{i:0;s:0:"";i:1;i:48;i:2;s:1:"}";}i:48;a:3:{i:0;s:0:"";i:1;i:49;i:2;b:0;}i:49;a:3:{i:0;s:0:"";i:1;i:50;i:2;s:18:"/* PAGE == 0x01 */";}i:50;a:3:{i:0;s:0:"";i:1;i:51;i:2;s:39:"Field (ERAM, ByteAcc, NoLock, Preserve)";}i:51;a:3:{i:0;s:0:"";i:1;i:52;i:2;s:1:"{";}i:52;a:3:{i:0;s:0:"";i:1;i:53;i:2;s:14:" Offset(0xa0),";}i:53;a:3:{i:0;s:0:"";i:1;i:54;i:2;s:12:" , 15,";}i:54;a:3:{i:0;s:0:"";i:1;i:55;i:2;s:12:" BAMA, 1,";}i:55;a:3:{i:0;s:0:"";i:1;i:56;i:2;s:1:"}";}i:56;a:3:{i:0;s:0:"";i:1;i:57;i:2;b:0;}i:57;a:3:{i:0;s:0:"";i:1;i:58;i:2;s:18:"/* PAGE == 0x02 */";}i:58;a:3:{i:0;s:0:"";i:1;i:59;i:2;s:39:"Field (ERAM, ByteAcc, NoLock, Preserve)";}i:59;a:3:{i:0;s:0:"";i:1;i:60;i:2;s:1:"{";}i:60;a:3:{i:0;s:0:"";i:1;i:61;i:2;s:14:" Offset(0xa0),";}i:61;a:3:{i:0;s:0:"";i:1;i:62;i:2;s:35:" BADC, 16, /* Design Capacity */";}i:62;a:3:{i:0;s:0:"";i:1;i:63;i:2;s:34:" BADV, 16, /* Design voltage */";}i:63;a:3:{i:0;s:0:"";i:1;i:64;i:2;s:12:" , 16,";}i:64;a:3:{i:0;s:0:"";i:1;i:65;i:2;s:12:" , 16,";}i:65;a:3:{i:0;s:0:"";i:1;i:66;i:2;s:12:" , 16,";}i:66;a:3:{i:0;s:0:"";i:1;i:67;i:2;s:12:" BASN, 16,";}i:67;a:3:{i:0;s:0:"";i:1;i:68;i:2;s:1:"}";}i:68;a:3:{i:0;s:0:"";i:1;i:69;i:2;b:0;}i:69;a:3:{i:0;s:0:"";i:1;i:70;i:2;s:32:"/* PAGE == 0x04: Battery type */";}i:70;a:3:{i:0;s:0:"";i:1;i:71;i:2;s:39:"Field (ERAM, ByteAcc, NoLock, Preserve)";}i:71;a:3:{i:0;s:0:"";i:1;i:72;i:2;s:1:"{";}i:72;a:3:{i:0;s:0:"";i:1;i:73;i:2;s:14:" Offset(0xa0),";}i:73;a:3:{i:0;s:0:"";i:1;i:74;i:2;s:11:" BATY, 32";}i:74;a:3:{i:0;s:0:"";i:1;i:75;i:2;s:1:"}";}i:75;a:3:{i:0;s:0:"";i:1;i:76;i:2;b:0;}i:76;a:3:{i:0;s:0:"";i:1;i:77;i:2;b:0;}i:77;a:3:{i:0;s:0:"";i:1;i:78;i:2;s:43:"/* PAGE == 0x05: Battery OEM information */";}i:78;a:3:{i:0;s:0:"";i:1;i:79;i:2;s:39:"Field (ERAM, ByteAcc, NoLock, Preserve)";}i:79;a:3:{i:0;s:0:"";i:1;i:80;i:2;s:1:"{";}i:80;a:3:{i:0;s:0:"";i:1;i:81;i:2;s:14:" Offset(0xa0),";}i:81;a:3:{i:0;s:0:"";i:1;i:82;i:2;s:12:" BAOE, 128";}i:82;a:3:{i:0;s:0:"";i:1;i:83;i:2;s:1:"}";}i:83;a:3:{i:0;s:0:"";i:1;i:84;i:2;b:0;}i:84;a:3:{i:0;s:0:"";i:1;i:85;i:2;s:32:"/* PAGE == 0x06: Battery name */";}i:85;a:3:{i:0;s:0:"";i:1;i:86;i:2;s:39:"Field (ERAM, ByteAcc, NoLock, Preserve)";}i:86;a:3:{i:0;s:0:"";i:1;i:87;i:2;s:1:"{";}i:87;a:3:{i:0;s:0:"";i:1;i:88;i:2;s:14:" Offset(0xa0),";}i:88;a:3:{i:0;s:0:"";i:1;i:89;i:2;s:12:" BANA, 128";}i:89;a:3:{i:0;s:0:"";i:1;i:90;i:2;s:1:"}";}i:90;a:3:{i:0;s:0:"";i:1;i:91;i:2;b:0;}i:91;a:3:{i:0;s:0:"";i:1;i:92;i:2;s:16:"/* Arg0: Battery";}i:92;a:3:{i:0;s:0:"";i:1;i:93;i:2;s:31:" * Arg1: Battery Status Package";}i:93;a:3:{i:0;s:0:"";i:1;i:94;i:2;s:17:" * Arg2: charging";}i:94;a:3:{i:0;s:0:"";i:1;i:95;i:2;s:20:" * Arg3: discharging";}i:95;a:3:{i:0;s:0:"";i:1;i:96;i:2;s:3:" */";}i:96;a:3:{i:0;s:0:"";i:1;i:97;i:2;s:30:"Method(BSTA, 4, NotSerialized)";}i:97;a:3:{i:0;s:0:"";i:1;i:98;i:2;s:1:"{";}i:98;a:3:{i:0;s:0:"";i:1;i:99;i:2;s:22:" Acquire(ECLK, 0xffff)";}i:99;a:3:{i:0;s:0:"";i:1;i:100;i:2;s:17:" Store(0, Local0)";}i:100;a:3:{i:0;s:0:"";i:1;i:101;i:2;s:18:" Or(1, Arg0, PAGE)";}i:101;a:3:{i:0;s:0:"";i:1;i:102;i:2;s:20:" Store(BAMA, Local1)";}i:102;a:3:{i:0;s:0:"";i:1;i:103;i:2;s:52:" Store(Arg0, PAGE) /* Battery dynamic information */";}i:103;a:3:{i:0;s:0:"";i:1;i:104;i:2;b:0;}i:104;a:3:{i:0;s:0:"";i:1;i:105;i:2;s:20:" Store(BAPR, Local2)";}i:105;a:3:{i:0;s:0:"";i:1;i:106;i:2;b:0;}i:106;a:3:{i:0;s:0:"";i:1;i:107;i:2;s:22:" if (Arg2) // charging";}i:107;a:3:{i:0;s:0:"";i:1;i:108;i:2;s:2:" {";}i:108;a:3:{i:0;s:0:"";i:1;i:109;i:2;s:23:" Or(2, Local0, Local0)";}i:109;a:3:{i:0;s:0:"";i:1;i:110;i:2;b:0;}i:110;a:3:{i:0;s:0:"";i:1;i:111;i:2;s:39:" If (LGreaterEqual (Local2, 0x8000)) {";}i:111;a:3:{i:0;s:0:"";i:1;i:112;i:2;s:19:" Store(0, Local2)";}i:112;a:3:{i:0;s:0:"";i:1;i:113;i:2;s:3:" }";}i:113;a:3:{i:0;s:0:"";i:1;i:114;i:2;s:2:" }";}i:114;a:3:{i:0;s:0:"";i:1;i:115;i:2;b:0;}i:115;a:3:{i:0;s:0:"";i:1;i:116;i:2;s:25:" if (Arg3) // discharging";}i:116;a:3:{i:0;s:0:"";i:1;i:117;i:2;s:2:" {";}i:117;a:3:{i:0;s:0:"";i:1;i:118;i:2;s:23:" Or(1, Local0, Local0)";}i:118;a:3:{i:0;s:0:"";i:1;i:119;i:2;s:35:" Subtract(0x10000, Local2, Local2)";}i:119;a:3:{i:0;s:0:"";i:1;i:120;i:2;s:2:" }";}i:120;a:3:{i:0;s:0:"";i:1;i:121;i:2;b:0;}i:121;a:3:{i:0;s:0:"";i:1;i:122;i:2;s:33:" Store(Local0, Index(Arg1, 0x00))";}i:122;a:3:{i:0;s:0:"";i:1;i:123;i:2;b:0;}i:123;a:3:{i:0;s:0:"";i:1;i:124;i:2;s:14:" if (Local1) {";}i:124;a:3:{i:0;s:0:"";i:1;i:125;i:2;s:37:" Multiply (BARC, 10, Index(Arg1, 2))";}i:125;a:3:{i:0;s:0:"";i:1;i:126;i:2;s:33:" Multiply (Local2, BAVO, Local2)";}i:126;a:3:{i:0;s:0:"";i:1;i:127;i:2;s:47:" Divide (Local2, 1000, Local3, Index(Arg1, 1))";}i:127;a:3:{i:0;s:0:"";i:1;i:128;i:2;s:9:" } else {";}i:128;a:3:{i:0;s:0:"";i:1;i:129;i:2;s:29:" Store(BARC, Index(Arg1, 2))";}i:129;a:3:{i:0;s:0:"";i:1;i:130;i:2;s:31:" Store(Local2, Index(Arg1, 1))";}i:130;a:3:{i:0;s:0:"";i:1;i:131;i:2;s:2:" }";}i:131;a:3:{i:0;s:0:"";i:1;i:132;i:2;s:28:" Store(BAVO, Index(Arg1, 3))";}i:132;a:3:{i:0;s:0:"";i:1;i:133;i:2;s:14:" Release(ECLK)";}i:133;a:3:{i:0;s:0:"";i:1;i:134;i:2;s:14:" Return (Arg1)";}i:134;a:3:{i:0;s:0:"";i:1;i:135;i:2;s:1:"}";}i:135;a:3:{i:0;s:0:"";i:1;i:136;i:2;b:0;}i:136;a:3:{i:0;s:0:"";i:1;i:137;i:2;s:30:"Method(BINF, 2, NotSerialized)";}i:137;a:3:{i:0;s:0:"";i:1;i:138;i:2;s:1:"{";}i:138;a:3:{i:0;s:0:"";i:1;i:139;i:2;s:22:" Acquire(ECLK, 0xffff)";}i:139;a:3:{i:0;s:0:"";i:1;i:140;i:2;s:53:" Or(1, Arg1, PAGE) /* Battery 0 static information */";}i:140;a:3:{i:0;s:0:"";i:1;i:141;i:2;s:29:" Xor(BAMA, 1, Index(Arg0, 0))";}i:141;a:3:{i:0;s:0:"";i:1;i:142;i:2;s:20:" Store(BAMA, Local0)";}i:142;a:3:{i:0;s:0:"";i:1;i:143;i:2;s:18:" Store(Arg1, PAGE)";}i:143;a:3:{i:0;s:0:"";i:1;i:144;i:2;s:20:" Store(BAFC, Local2)";}i:144;a:3:{i:0;s:0:"";i:1;i:145;i:2;s:18:" Or(2, Arg1, PAGE)";}i:145;a:3:{i:0;s:0:"";i:1;i:146;i:2;s:20:" Store(BADC, Local1)";}i:146;a:3:{i:0;s:0:"";i:1;i:147;i:2;b:0;}i:147;a:3:{i:0;s:0:"";i:1;i:148;i:2;s:12:" if (Local0)";}i:148;a:3:{i:0;s:0:"";i:1;i:149;i:2;s:2:" {";}i:149;a:3:{i:0;s:0:"";i:1;i:150;i:2;s:31:" Multiply (Local1, 10, Local1)";}i:150;a:3:{i:0;s:0:"";i:1;i:151;i:2;s:31:" Multiply (Local2, 10, Local2)";}i:151;a:3:{i:0;s:0:"";i:1;i:152;i:2;s:2:" }";}i:152;a:3:{i:0;s:0:"";i:1;i:153;i:2;b:0;}i:153;a:3:{i:0;s:0:"";i:1;i:154;i:2;s:49:" Store(Local1, Index(Arg0, 1)) // Design Capacity";}i:154;a:3:{i:0;s:0:"";i:1;i:155;i:2;s:59:" Store(Local2, Index(Arg0, 2)) // Last full charge capacity";}i:155;a:3:{i:0;s:0:"";i:1;i:156;i:2;s:46:" Store(BADV, Index(Arg0, 4)) // Design Voltage";}i:156;a:3:{i:0;s:0:"";i:1;i:157;i:2;s:64:" Divide (Local2, 20, Local0, Index(Arg0, 5)) // Warning capacity";}i:157;a:3:{i:0;s:0:"";i:1;i:158;i:2;b:0;}i:158;a:3:{i:0;s:0:"";i:1;i:159;i:2;s:21:" Store (BASN, Local0)";}i:159;a:3:{i:0;s:0:"";i:1;i:160;i:2;s:39:" Name (SERN, Buffer (0x06) { " " })";}i:160;a:3:{i:0;s:0:"";i:1;i:161;i:2;s:18:" Store (4, Local1)";}i:161;a:3:{i:0;s:0:"";i:1;i:162;i:2;s:15:" While (Local0)";}i:162;a:3:{i:0;s:0:"";i:1;i:163;i:2;s:2:" {";}i:163;a:3:{i:0;s:0:"";i:1;i:164;i:2;s:39:" Divide (Local0, 0x0A, Local2, Local0)";}i:164;a:3:{i:0;s:0:"";i:1;i:165;i:2;s:40:" Add (Local2, 48, Index (SERN, Local1))";}i:165;a:3:{i:0;s:0:"";i:1;i:166;i:2;s:20:" Decrement (Local1)";}i:166;a:3:{i:0;s:0:"";i:1;i:167;i:2;s:2:" }";}i:167;a:3:{i:0;s:0:"";i:1;i:168;i:2;s:48:" Store (SERN, Index (Arg0, 10)) // Serial Number";}i:168;a:3:{i:0;s:0:"";i:1;i:169;i:2;b:0;}i:169;a:3:{i:0;s:0:"";i:1;i:170;i:2;s:18:" Or(4, Arg1, PAGE)";}i:170;a:3:{i:0;s:0:"";i:1;i:171;i:2;s:40:" Name (TYPE, Buffer() { 0, 0, 0, 0, 0 })";}i:171;a:3:{i:0;s:0:"";i:1;i:172;i:2;s:18:" Store(BATY, TYPE)";}i:172;a:3:{i:0;s:0:"";i:1;i:173;i:2;s:46:" Store(TYPE, Index (Arg0, 11)) // Battery type";}i:173;a:3:{i:0;s:0:"";i:1;i:174;i:2;s:18:" Or(5, Arg1, PAGE)";}i:174;a:3:{i:0;s:0:"";i:1;i:175;i:2;s:49:" Store(BAOE, Index (Arg0, 12)) // OEM information";}i:175;a:3:{i:0;s:0:"";i:1;i:176;i:2;s:18:" Or(6, Arg1, PAGE)";}i:176;a:3:{i:0;s:0:"";i:1;i:177;i:2;s:46:" Store(BANA, Index (Arg0, 9)) // Model number";}i:177;a:3:{i:0;s:0:"";i:1;i:178;i:2;s:14:" Release(ECLK)";}i:178;a:3:{i:0;s:0:"";i:1;i:179;i:2;s:14:" Return (Arg0)";}i:179;a:3:{i:0;s:0:"";i:1;i:180;i:2;s:1:"}";}i:180;a:3:{i:0;s:0:"";i:1;i:181;i:2;b:0;}i:181;a:3:{i:0;s:0:"";i:1;i:182;i:2;s:13:"Device (BAT0)";}i:182;a:3:{i:0;s:0:"";i:1;i:183;i:2;s:1:"{";}i:183;a:3:{i:0;s:0:"";i:1;i:184;i:2;s:32:" Name (_HID, EisaId ("PNP0C0A"))";}i:184;a:3:{i:0;s:0:"";i:1;i:185;i:2;s:18:" Name (_UID, 0x00)";}i:185;a:3:{i:0;s:0:"";i:1;i:186;i:2;s:33:" Name (_PCL, Package () { \_SB })";}i:186;a:3:{i:0;s:0:"";i:1;i:187;i:2;b:0;}i:187;a:3:{i:0;s:0:"";i:1;i:188;i:2;s:23:" Name (BATS, Package ()";}i:188;a:3:{i:0;s:0:"";i:1;i:189;i:2;s:2:" {";}i:189;a:3:{i:0;s:0:"";i:1;i:190;i:2;s:40:" 0x00, // 0: PowerUnit: Report in mWh";}i:190;a:3:{i:0;s:0:"";i:1;i:191;i:2;s:31:" 0xFFFFFFFF, // 1: Design cap";}i:191;a:3:{i:0;s:0:"";i:1;i:192;i:2;s:41:" 0xFFFFFFFF, // 2: Last full charge cap";}i:192;a:3:{i:0;s:0:"";i:1;i:193;i:2;s:34:" 0x01, // 3: Battery Technology";}i:193;a:3:{i:0;s:0:"";i:1;i:194;i:2;s:36:" 10800, // 4: Design Voltage (mV)";}i:194;a:3:{i:0;s:0:"";i:1;i:195;i:2;s:39:" 0x00, // 5: Warning design capacity";}i:195;a:3:{i:0;s:0:"";i:1;i:196;i:2;s:34:" 200, // 6: Low design capacity";}i:196;a:3:{i:0;s:0:"";i:1;i:197;i:2;s:25:" 1, // 7: granularity1";}i:197;a:3:{i:0;s:0:"";i:1;i:198;i:2;s:25:" 1, // 8: granularity2";}i:198;a:3:{i:0;s:0:"";i:1;i:199;i:2;s:26:" "", // 9: Model number";}i:199;a:3:{i:0;s:0:"";i:1;i:200;i:2;s:27:" "", // A: Serial number";}i:200;a:3:{i:0;s:0:"";i:1;i:201;i:2;s:26:" "", // B: Battery Type";}i:201;a:3:{i:0;s:0:"";i:1;i:202;i:2;s:28:" "" // C: OEM information";}i:202;a:3:{i:0;s:0:"";i:1;i:203;i:2;s:3:" })";}i:203;a:3:{i:0;s:0:"";i:1;i:204;i:2;b:0;}i:204;a:3:{i:0;s:0:"";i:1;i:205;i:2;s:32:" Method (_BIF, 0, NotSerialized)";}i:205;a:3:{i:0;s:0:"";i:1;i:206;i:2;s:2:" {";}i:206;a:3:{i:0;s:0:"";i:1;i:207;i:2;s:24:" Return (BINF(BATS, 0))";}i:207;a:3:{i:0;s:0:"";i:1;i:208;i:2;s:2:" }";}i:208;a:3:{i:0;s:0:"";i:1;i:209;i:2;b:0;}i:209;a:3:{i:0;s:0:"";i:1;i:210;i:2;s:23:" Name (BATI, Package ()";}i:210;a:3:{i:0;s:0:"";i:1;i:211;i:2;s:2:" {";}i:211;a:3:{i:0;s:0:"";i:1;i:212;i:2;s:23:" 0, // Battery State";}i:212;a:3:{i:0;s:0:"";i:1;i:213;i:2;s:25:" // Bit 0 - discharge";}i:213;a:3:{i:0;s:0:"";i:1;i:214;i:2;s:22:" // Bit 1 - charge";}i:214;a:3:{i:0;s:0:"";i:1;i:215;i:2;s:30:" // Bit 2 - critical state";}i:215;a:3:{i:0;s:0:"";i:1;i:216;i:2;s:30:" 0, // Battery present Rate";}i:216;a:3:{i:0;s:0:"";i:1;i:217;i:2;s:36:" 0, // Battery remaining capacity";}i:217;a:3:{i:0;s:0:"";i:1;i:218;i:2;s:32:" 0 // Battery present voltage";}i:218;a:3:{i:0;s:0:"";i:1;i:219;i:2;s:3:" })";}i:219;a:3:{i:0;s:0:"";i:1;i:220;i:2;b:0;}i:220;a:3:{i:0;s:0:"";i:1;i:221;i:2;s:32:" Method (_BST, 0, NotSerialized)";}i:221;a:3:{i:0;s:0:"";i:1;i:222;i:2;s:2:" {";}i:222;a:3:{i:0;s:0:"";i:1;i:223;i:2;s:13:" if (B0PR) {";}i:223;a:3:{i:0;s:0:"";i:1;i:224;i:2;s:37:" Return (BSTA(0, BATI, B0CH, B0DI))";}i:224;a:3:{i:0;s:0:"";i:1;i:225;i:2;s:10:" } else {";}i:225;a:3:{i:0;s:0:"";i:1;i:226;i:2;s:16:" Return (BATS)";}i:226;a:3:{i:0;s:0:"";i:1;i:227;i:2;s:3:" }";}i:227;a:3:{i:0;s:0:"";i:1;i:228;i:2;s:2:" }";}i:228;a:3:{i:0;s:0:"";i:1;i:229;i:2;b:0;}i:229;a:3:{i:0;s:0:"";i:1;i:230;i:2;s:32:" Method (_STA, 0, NotSerialized)";}i:230;a:3:{i:0;s:0:"";i:1;i:231;i:2;s:2:" {";}i:231;a:3:{i:0;s:0:"";i:1;i:232;i:2;s:13:" if (B0PR) {";}i:232;a:3:{i:0;s:0:"";i:1;i:233;i:2;s:16:" Return (0x1f)";}i:233;a:3:{i:0;s:0:"";i:1;i:234;i:2;s:10:" } else {";}i:234;a:3:{i:0;s:0:"";i:1;i:235;i:2;s:16:" Return (0x0f)";}i:235;a:3:{i:0;s:0:"";i:1;i:236;i:2;s:3:" }";}i:236;a:3:{i:0;s:0:"";i:1;i:237;i:2;s:2:" }";}i:237;a:3:{i:0;s:0:"";i:1;i:238;i:2;s:1:"}";}i:238;a:3:{i:0;s:0:"";i:1;i:239;i:2;b:0;}i:239;a:3:{i:0;s:0:"";i:1;i:240;i:2;s:13:"Device (BAT1)";}i:240;a:3:{i:0;s:0:"";i:1;i:241;i:2;s:1:"{";}i:241;a:3:{i:0;s:0:"";i:1;i:242;i:2;s:32:" Name (_HID, EisaId ("PNP0C0A"))";}i:242;a:3:{i:0;s:0:"";i:1;i:243;i:2;s:18:" Name (_UID, 0x00)";}i:243;a:3:{i:0;s:0:"";i:1;i:244;i:2;s:33:" Name (_PCL, Package () { \_SB })";}i:244;a:3:{i:0;s:0:"";i:1;i:245;i:2;b:0;}i:245;a:3:{i:0;s:0:"";i:1;i:246;i:2;s:23:" Name (BATS, Package ()";}i:246;a:3:{i:0;s:0:"";i:1;i:247;i:2;s:2:" {";}i:247;a:3:{i:0;s:0:"";i:1;i:248;i:2;s:40:" 0x00, // 0: PowerUnit: Report in mWh";}i:248;a:3:{i:0;s:0:"";i:1;i:249;i:2;s:31:" 0xFFFFFFFF, // 1: Design cap";}i:249;a:3:{i:0;s:0:"";i:1;i:250;i:2;s:41:" 0xFFFFFFFF, // 2: Last full charge cap";}i:250;a:3:{i:0;s:0:"";i:1;i:251;i:2;s:34:" 0x01, // 3: Battery Technology";}i:251;a:3:{i:0;s:0:"";i:1;i:252;i:2;s:36:" 10800, // 4: Design Voltage (mV)";}i:252;a:3:{i:0;s:0:"";i:1;i:253;i:2;s:39:" 0x00, // 5: Warning design capacity";}i:253;a:3:{i:0;s:0:"";i:1;i:254;i:2;s:34:" 200, // 6: Low design capacity";}i:254;a:3:{i:0;s:0:"";i:1;i:255;i:2;s:25:" 1, // 7: granularity1";}i:255;a:3:{i:0;s:0:"";i:1;i:256;i:2;s:25:" 1, // 8: granularity2";}i:256;a:3:{i:0;s:0:"";i:1;i:257;i:2;s:26:" "", // 9: Model number";}i:257;a:3:{i:0;s:0:"";i:1;i:258;i:2;s:27:" "", // A: Serial number";}i:258;a:3:{i:0;s:0:"";i:1;i:259;i:2;s:26:" "", // B: Battery Type";}i:259;a:3:{i:0;s:0:"";i:1;i:260;i:2;s:28:" "" // C: OEM information";}i:260;a:3:{i:0;s:0:"";i:1;i:261;i:2;s:3:" })";}i:261;a:3:{i:0;s:0:"";i:1;i:262;i:2;b:0;}i:262;a:3:{i:0;s:0:"";i:1;i:263;i:2;s:32:" Method (_BIF, 0, NotSerialized)";}i:263;a:3:{i:0;s:0:"";i:1;i:264;i:2;s:2:" {";}i:264;a:3:{i:0;s:0:"";i:1;i:265;i:2;s:27:" Return (BINF(BATS, 0x10))";}i:265;a:3:{i:0;s:0:"";i:1;i:266;i:2;s:2:" }";}i:266;a:3:{i:0;s:0:"";i:1;i:267;i:2;b:0;}i:267;a:3:{i:0;s:0:"";i:1;i:268;i:2;s:23:" Name (BATI, Package ()";}i:268;a:3:{i:0;s:0:"";i:1;i:269;i:2;s:2:" {";}i:269;a:3:{i:0;s:0:"";i:1;i:270;i:2;s:23:" 0, // Battery State";}i:270;a:3:{i:0;s:0:"";i:1;i:271;i:2;s:25:" // Bit 0 - discharge";}i:271;a:3:{i:0;s:0:"";i:1;i:272;i:2;s:22:" // Bit 1 - charge";}i:272;a:3:{i:0;s:0:"";i:1;i:273;i:2;s:30:" // Bit 2 - critical state";}i:273;a:3:{i:0;s:0:"";i:1;i:274;i:2;s:30:" 0, // Battery present Rate";}i:274;a:3:{i:0;s:0:"";i:1;i:275;i:2;s:36:" 0, // Battery remaining capacity";}i:275;a:3:{i:0;s:0:"";i:1;i:276;i:2;s:32:" 0 // Battery present voltage";}i:276;a:3:{i:0;s:0:"";i:1;i:277;i:2;s:3:" })";}i:277;a:3:{i:0;s:0:"";i:1;i:278;i:2;b:0;}i:278;a:3:{i:0;s:0:"";i:1;i:279;i:2;s:32:" Method (_BST, 0, NotSerialized)";}i:279;a:3:{i:0;s:0:"";i:1;i:280;i:2;s:2:" {";}i:280;a:3:{i:0;s:0:"";i:1;i:281;i:2;s:13:" if (B1PR) {";}i:281;a:3:{i:0;s:0:"";i:1;i:282;i:2;s:40:" Return (BSTA(0x10, BATI, B1CH, B1DI))";}i:282;a:3:{i:0;s:0:"";i:1;i:283;i:2;s:10:" } else {";}i:283;a:3:{i:0;s:0:"";i:1;i:284;i:2;s:16:" Return (BATS)";}i:284;a:3:{i:0;s:0:"";i:1;i:285;i:2;s:3:" }";}i:285;a:3:{i:0;s:0:"";i:1;i:286;i:2;s:2:" }";}i:286;a:3:{i:0;s:0:"";i:1;i:287;i:2;b:0;}i:287;a:3:{i:0;s:0:"";i:1;i:288;i:2;s:32:" Method (_STA, 0, NotSerialized)";}i:288;a:3:{i:0;s:0:"";i:1;i:289;i:2;s:2:" {";}i:289;a:3:{i:0;s:0:"";i:1;i:290;i:2;s:13:" if (B1PR) {";}i:290;a:3:{i:0;s:0:"";i:1;i:291;i:2;s:16:" Return (0x1f)";}i:291;a:3:{i:0;s:0:"";i:1;i:292;i:2;s:10:" } else {";}i:292;a:3:{i:0;s:0:"";i:1;i:293;i:2;s:16:" Return (0x0f)";}i:293;a:3:{i:0;s:0:"";i:1;i:294;i:2;s:3:" }";}i:294;a:3:{i:0;s:0:"";i:1;i:295;i:2;s:2:" }";}i:295;a:3:{i:0;s:0:"";i:1;i:296;i:2;s:1:"}";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:3:"296";}}}}s:38:"src/mainboard/lenovo/x60/acpi/beep.asl";a:2:{s:6:"chunks";a:1:{i:0;a:32:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"/*";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:45:" * This file is part of the coreboot project.";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:2:" *";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:58:" * Copyright (c) 2011 Sven Schnelle ";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:2:" *";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:64:" * This program is free software; you can redistribute it and/or";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:65:" * modify it under the terms of the GNU General Public License as";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:58:" * published by the Free Software Foundation; version 2 of";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:15:" * the License.";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:2:" *";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:66:" * This program is distributed in the hope that it will be useful,";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:65:" * but WITHOUT ANY WARRANTY; without even the implied warranty of";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:64:" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:47:" * GNU General Public License for more details.";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:2:" *";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:68:" * You should have received a copy of the GNU General Public License";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:62:" * along with this program; if not, write to the Free Software";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:57:" * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:20:" * MA 02110-1301 USA";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:3:" */";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;b:0;}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:38:"Field(ERAM, ByteAcc, NoLock, Preserve)";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:1:"{";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:16:" Offset (0x06),";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:58:" SNDS, 8 /* Write to this register to generate sound */";}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;b:0;}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;s:1:"}";}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;b:0;}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;s:30:"Method(BEEP, 1, NotSerialized)";}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:1:"{";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:19:" Store (Arg0, SNDS)";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:1:"}";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"32";}}}}s:33:"src/mainboard/lenovo/x60/dsdt.asl";a:2:{s:6:"chunks";a:1:{i:0;a:56:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"/*";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:45:" * This file is part of the coreboot project.";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:2:" *";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:43:" * Copyright (C) 2007-2009 coresystems GmbH";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:2:" *";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:64:" * This program is free software; you can redistribute it and/or";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:65:" * modify it under the terms of the GNU General Public License as";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:58:" * published by the Free Software Foundation; version 2 of";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:15:" * the License.";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:2:" *";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:66:" * This program is distributed in the hope that it will be useful,";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:65:" * but WITHOUT ANY WARRANTY; without even the implied warranty of";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:64:" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:47:" * GNU General Public License for more details.";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:2:" *";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:68:" * You should have received a copy of the GNU General Public License";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:62:" * along with this program; if not, write to the Free Software";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:57:" * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:20:" * MA 02110-1301 USA";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:3:" */";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;b:0;}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:16:"DefinitionBlock(";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:12:" "dsdt.aml",";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:8:" "DSDT",";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:35:" 0x03, // DSDT revision: ACPI v3.0";}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;s:20:" "COREv4", // OEM id";}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;s:32:" "COREBOOT", // OEM table id";}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;s:27:" 0x20090419 // OEM revision";}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;s:1:")";}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:1:"{";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:23:" // Some generic macros";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:29:" #include "acpi/platform.asl"";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;b:0;}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;s:28:" // global NVS and variables";}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:66:" #include "../../../southbridge/intel/i82801gx/acpi/globalnvs.asl"";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;b:0;}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:26:" // General Purpose Events";}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;s:24:" #include "acpi/gpe.asl"";}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;b:0;}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;s:30:" // mainboard specific devices";}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;s:30:" #include "acpi/mainboard.asl"";}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;b:0;}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;s:16:" // Thermal Zone";}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:28:" #include "acpi/thermal.asl"";}i:44;a:3:{i:0;s:0:"";i:1;i:45;i:2;b:0;}i:45;a:3:{i:0;s:0:"";i:1;i:46;i:2;s:15:" Scope (\_SB) {";}i:46;a:3:{i:0;s:0:"";i:1;i:47;i:2;s:15:" Device (PCI0)";}i:47;a:3:{i:0;s:0:"";i:1;i:48;i:2;s:3:" {";}i:48;a:3:{i:0;s:0:"";i:1;i:49;i:2;s:59:" #include "../../../northbridge/intel/i945/acpi/i945.asl"";}i:49;a:3:{i:0;s:0:"";i:1;i:50;i:2;s:63:" #include "../../../southbridge/intel/i82801gx/acpi/ich7.asl"";}i:50;a:3:{i:0;s:0:"";i:1;i:51;i:2;s:3:" }";}i:51;a:3:{i:0;s:0:"";i:1;i:52;i:2;s:2:" }";}i:52;a:3:{i:0;s:0:"";i:1;i:53;i:2;b:0;}i:53;a:3:{i:0;s:0:"";i:1;i:54;i:2;s:36:" /* Chipset specific sleep states */";}i:54;a:3:{i:0;s:0:"";i:1;i:55;i:2;s:68:" #include "../../../southbridge/intel/i82801gx/acpi/sleepstates.asl"";}i:55;a:3:{i:0;s:0:"";i:1;i:56;i:2;s:1:"}";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"56";}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '21', + 1 => '21', + 2 => ' select BOARD_ROMSIZE_KB_2048 +', + ), + 1 => + array ( + 0 => 22, + 1 => 22, + 2 => ' select CHANNEL_XOR_RANDOMIZATION +', + ), + 2 => + array ( + 0 => 23, + 1 => 23, + 2 => ' select HAVE_SMI_HANDLER +', + ), + 3 => + array ( + 0 => '', + 1 => 24, + 2 => ' select HAVE_ACPI_TABLES +', + ), + 4 => + array ( + 0 => 24, + 1 => 25, + 2 => ' +', + ), + 5 => + array ( + 0 => 25, + 1 => 26, + 2 => 'config MAINBOARD_DIR +', + ), + 6 => + array ( + 0 => 26, + 1 => 27, + 2 => ' string +', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '21', + 1 => '6', + ), + 1 => + array ( + 0 => '21', + 1 => '7', + ), + ), + ), + ), + 'src/mainboard/lenovo/x60/acpi/ac.asl' => + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => '/* +', + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => ' * This file is part of the coreboot project. +', + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => ' * +', + ), + 3 => + array ( + 0 => '', + 1 => 4, + 2 => ' * Copyright (c) 2011 Sven Schnelle +', + ), + 4 => + array ( + 0 => '', + 1 => 5, + 2 => ' * +', + ), + 5 => + array ( + 0 => '', + 1 => 6, + 2 => ' * This program is free software; you can redistribute it and/or +', + ), + 6 => + array ( + 0 => '', + 1 => 7, + 2 => ' * modify it under the terms of the GNU General Public License as +', + ), + 7 => + array ( + 0 => '', + 1 => 8, + 2 => ' * published by the Free Software Foundation; version 2 of +', + ), + 8 => + array ( + 0 => '', + 1 => 9, + 2 => ' * the License. +', + ), + 9 => + array ( + 0 => '', + 1 => 10, + 2 => ' * +', + ), + 10 => + array ( + 0 => '', + 1 => 11, + 2 => ' * This program is distributed in the hope that it will be useful, +', + ), + 11 => + array ( + 0 => '', + 1 => 12, + 2 => ' * but WITHOUT ANY WARRANTY; without even the implied warranty of +', + ), + 12 => + array ( + 0 => '', + 1 => 13, + 2 => ' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +', + ), + 13 => + array ( + 0 => '', + 1 => 14, + 2 => ' * GNU General Public License for more details. +', + ), + 14 => + array ( + 0 => '', + 1 => 15, + 2 => ' * +', + ), + 15 => + array ( + 0 => '', + 1 => 16, + 2 => ' * You should have received a copy of the GNU General Public License +', + ), + 16 => + array ( + 0 => '', + 1 => 17, + 2 => ' * along with this program; if not, write to the Free Software +', + ), + 17 => + array ( + 0 => '', + 1 => 18, + 2 => ' * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +', + ), + 18 => + array ( + 0 => '', + 1 => 19, + 2 => ' * MA 02110-1301 USA +', + ), + 19 => + array ( + 0 => '', + 1 => 20, + 2 => ' */ +', + ), + 20 => + array ( + 0 => '', + 1 => 21, + 2 => ' +', + ), + 21 => + array ( + 0 => '', + 1 => 22, + 2 => 'Field(ERAM, ByteAcc, NoLock, Preserve) +', + ), + 22 => + array ( + 0 => '', + 1 => 23, + 2 => '{ +', + ), + 23 => + array ( + 0 => '', + 1 => 24, + 2 => ' Offset (0x46), +', + ), + 24 => + array ( + 0 => '', + 1 => 25, + 2 => ' , 4, +', + ), + 25 => + array ( + 0 => '', + 1 => 26, + 2 => ' HPAC, 1 +', + ), + 26 => + array ( + 0 => '', + 1 => 27, + 2 => '} +', + ), + 27 => + array ( + 0 => '', + 1 => 28, + 2 => ' +', + ), + 28 => + array ( + 0 => '', + 1 => 29, + 2 => 'Device(AC) +', + ), + 29 => + array ( + 0 => '', + 1 => 30, + 2 => '{ +', + ), + 30 => + array ( + 0 => '', + 1 => 31, + 2 => ' Name(_HID, "ACPI0003") +', + ), + 31 => + array ( + 0 => '', + 1 => 32, + 2 => ' Name(_UID, 0x00) +', + ), + 32 => + array ( + 0 => '', + 1 => 33, + 2 => ' Name(_PCL, Package() { \\_SB } ) +', + ), + 33 => + array ( + 0 => '', + 1 => 34, + 2 => ' +', + ), + 34 => + array ( + 0 => '', + 1 => 35, + 2 => ' Method(_PSR, 0, NotSerialized) +', + ), + 35 => + array ( + 0 => '', + 1 => 36, + 2 => ' { +', + ), + 36 => + array ( + 0 => '', + 1 => 37, + 2 => ' return (HPAC) +', + ), + 37 => + array ( + 0 => '', + 1 => 38, + 2 => ' } +', + ), + 38 => + array ( + 0 => '', + 1 => 39, + 2 => ' +', + ), + 39 => + array ( + 0 => '', + 1 => 40, + 2 => ' Method(_STA, 0, NotSerialized) +', + ), + 40 => + array ( + 0 => '', + 1 => 41, + 2 => ' { +', + ), + 41 => + array ( + 0 => '', + 1 => 42, + 2 => ' Return (0x0f) +', + ), + 42 => + array ( + 0 => '', + 1 => 43, + 2 => ' } +', + ), + 43 => + array ( + 0 => '', + 1 => 44, + 2 => '} +', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '44', + ), + ), + ), + ), + 'src/mainboard/lenovo/x60/acpi/i945_pci_irqs.asl' => + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => '/* +', + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => ' * This file is part of the coreboot project. +', + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => ' * +', + ), + 3 => + array ( + 0 => '', + 1 => 4, + 2 => ' * Copyright (C) 2011 Sven Schnelle +', + ), + 4 => + array ( + 0 => '', + 1 => 5, + 2 => ' * +', + ), + 5 => + array ( + 0 => '', + 1 => 6, + 2 => ' * This program is free software; you can redistribute it and/or +', + ), + 6 => + array ( + 0 => '', + 1 => 7, + 2 => ' * modify it under the terms of the GNU General Public License as +', + ), + 7 => + array ( + 0 => '', + 1 => 8, + 2 => ' * published by the Free Software Foundation; version 2 of +', + ), + 8 => + array ( + 0 => '', + 1 => 9, + 2 => ' * the License. +', + ), + 9 => + array ( + 0 => '', + 1 => 10, + 2 => ' * +', + ), + 10 => + array ( + 0 => '', + 1 => 11, + 2 => ' * This program is distributed in the hope that it will be useful, +', + ), + 11 => + array ( + 0 => '', + 1 => 12, + 2 => ' * but WITHOUT ANY WARRANTY; without even the implied warranty of +', + ), + 12 => + array ( + 0 => '', + 1 => 13, + 2 => ' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +', + ), + 13 => + array ( + 0 => '', + 1 => 14, + 2 => ' * GNU General Public License for more details. +', + ), + 14 => + array ( + 0 => '', + 1 => 15, + 2 => ' * +', + ), + 15 => + array ( + 0 => '', + 1 => 16, + 2 => ' * You should have received a copy of the GNU General Public License +', + ), + 16 => + array ( + 0 => '', + 1 => 17, + 2 => ' * along with this program; if not, write to the Free Software +', + ), + 17 => + array ( + 0 => '', + 1 => 18, + 2 => ' * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +', + ), + 18 => + array ( + 0 => '', + 1 => 19, + 2 => ' * MA 02110-1301 USA +', + ), + 19 => + array ( + 0 => '', + 1 => 20, + 2 => ' */ +', + ), + 20 => + array ( + 0 => '', + 1 => 21, + 2 => ' +', + ), + 21 => + array ( + 0 => '', + 1 => 22, + 2 => '/* This is board specific information: IRQ routing for the +', + ), + 22 => + array ( + 0 => '', + 1 => 23, + 2 => ' * i945 +', + ), + 23 => + array ( + 0 => '', + 1 => 24, + 2 => ' */ +', + ), + 24 => + array ( + 0 => '', + 1 => 25, + 2 => ' +', + ), + 25 => + array ( + 0 => '', + 1 => 26, + 2 => ' +', + ), + 26 => + array ( + 0 => '', + 1 => 27, + 2 => '// PCI Interrupt Routing +', + ), + 27 => + array ( + 0 => '', + 1 => 28, + 2 => 'Method(_PRT) +', + ), + 28 => + array ( + 0 => '', + 1 => 29, + 2 => '{ +', + ), + 29 => + array ( + 0 => '', + 1 => 30, + 2 => ' If (PICM) { +', + ), + 30 => + array ( + 0 => '', + 1 => 31, + 2 => ' Return (Package() { +', + ), + 31 => + array ( + 0 => '', + 1 => 32, + 2 => ' Package() { 0x0002ffff, 0, 0, 0x10 }, // VGA +', + ), + 32 => + array ( + 0 => '', + 1 => 33, + 2 => ' Package() { 0x001bffff, 1, 0, 0x11 }, // Audio +', + ), + 33 => + array ( + 0 => '', + 1 => 34, + 2 => ' Package() { 0x001cffff, 0, 0, 0x14 }, // PCI bridge +', + ), + 34 => + array ( + 0 => '', + 1 => 35, + 2 => ' Package() { 0x001cffff, 1, 0, 0x15 }, // PCI bridge +', + ), + 35 => + array ( + 0 => '', + 1 => 36, + 2 => ' Package() { 0x001cffff, 2, 0, 0x16 }, // PCI bridge +', + ), + 36 => + array ( + 0 => '', + 1 => 37, + 2 => ' Package() { 0x001cffff, 3, 0, 0x17 }, // PCI bridge +', + ), + 37 => + array ( + 0 => '', + 1 => 38, + 2 => ' Package() { 0x001dffff, 0, 0, 0x10 }, // USB +', + ), + 38 => + array ( + 0 => '', + 1 => 39, + 2 => ' Package() { 0x001dffff, 1, 0, 0x11 }, // USB +', + ), + 39 => + array ( + 0 => '', + 1 => 40, + 2 => ' Package() { 0x001dffff, 2, 0, 0x12 }, // USB +', + ), + 40 => + array ( + 0 => '', + 1 => 41, + 2 => ' Package() { 0x001dffff, 3, 0, 0x13 }, // USB +', + ), + 41 => + array ( + 0 => '', + 1 => 42, + 2 => ' Package() { 0x001fffff, 0, 0, 0x17 }, // LPC +', + ), + 42 => + array ( + 0 => '', + 1 => 43, + 2 => ' Package() { 0x001fffff, 1, 0, 0x10 }, // IDE +', + ), + 43 => + array ( + 0 => '', + 1 => 44, + 2 => ' Package() { 0x001fffff, 2, 0, 0x10 } // SATA +', + ), + 44 => + array ( + 0 => '', + 1 => 45, + 2 => ' }) +', + ), + 45 => + array ( + 0 => '', + 1 => 46, + 2 => ' } Else { +', + ), + 46 => + array ( + 0 => '', + 1 => 47, + 2 => ' Return (Package() { +', + ), + 47 => + array ( + 0 => '', + 1 => 48, + 2 => ' Package() { 0x0002ffff, 0, \\_SB.PCI0.LPCB.LNKA, 0 }, // VGA +', + ), + 48 => + array ( + 0 => '', + 1 => 49, + 2 => ' Package() { 0x001bffff, 1, \\_SB.PCI0.LPCB.LNKB, 0 }, // Audio +', + ), + 49 => + array ( + 0 => '', + 1 => 50, + 2 => ' Package() { 0x001cffff, 0, \\_SB.PCI0.LPCB.LNKE, 0 }, // PCI +', + ), + 50 => + array ( + 0 => '', + 1 => 51, + 2 => ' Package() { 0x001cffff, 1, \\_SB.PCI0.LPCB.LNKF, 0 }, // PCI +', + ), + 51 => + array ( + 0 => '', + 1 => 52, + 2 => ' Package() { 0x001cffff, 2, \\_SB.PCI0.LPCB.LNKG, 0 }, // PCI +', + ), + 52 => + array ( + 0 => '', + 1 => 53, + 2 => ' Package() { 0x001cffff, 3, \\_SB.PCI0.LPCB.LNKH, 0 }, // PCI +', + ), + 53 => + array ( + 0 => '', + 1 => 54, + 2 => ' Package() { 0x001dffff, 0, \\_SB.PCI0.LPCB.LNKA, 0 }, // USB +', + ), + 54 => + array ( + 0 => '', + 1 => 55, + 2 => ' Package() { 0x001dffff, 1, \\_SB.PCI0.LPCB.LNKB, 0 }, // USB +', + ), + 55 => + array ( + 0 => '', + 1 => 56, + 2 => ' Package() { 0x001dffff, 2, \\_SB.PCI0.LPCB.LNKC, 0 }, // USB +', + ), + 56 => + array ( + 0 => '', + 1 => 57, + 2 => ' Package() { 0x001dffff, 3, \\_SB.PCI0.LPCB.LNKD, 0 }, // USB +', + ), + 57 => + array ( + 0 => '', + 1 => 58, + 2 => ' Package() { 0x001fffff, 0, \\_SB.PCI0.LPCB.LNKH, 0 }, // LPC +', + ), + 58 => + array ( + 0 => '', + 1 => 59, + 2 => ' Package() { 0x001fffff, 1, \\_SB.PCI0.LPCB.LNKA, 0 }, // IDE +', + ), + 59 => + array ( + 0 => '', + 1 => 60, + 2 => ' Package() { 0x001fffff, 2, \\_SB.PCI0.LPCB.LNKA, 0 } // SATA +', + ), + 60 => + array ( + 0 => '', + 1 => 61, + 2 => ' }) +', + ), + 61 => + array ( + 0 => '', + 1 => 62, + 2 => ' } +', + ), + 62 => + array ( + 0 => '', + 1 => 63, + 2 => '} +', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '63', + ), + ), + ), + ), + 'src/mainboard/lenovo/x60/acpi/ich7_pci_irqs.asl' => + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => '/* +', + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => ' * This file is part of the coreboot project. +', + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => ' * +', + ), + 3 => + array ( + 0 => '', + 1 => 4, + 2 => ' * Copyright (C) 2007-2009 coresystems GmbH +', + ), + 4 => + array ( + 0 => '', + 1 => 5, + 2 => ' * +', + ), + 5 => + array ( + 0 => '', + 1 => 6, + 2 => ' * This program is free software; you can redistribute it and/or +', + ), + 6 => + array ( + 0 => '', + 1 => 7, + 2 => ' * modify it under the terms of the GNU General Public License as +', + ), + 7 => + array ( + 0 => '', + 1 => 8, + 2 => ' * published by the Free Software Foundation; version 2 of +', + ), + 8 => + array ( + 0 => '', + 1 => 9, + 2 => ' * the License. +', + ), + 9 => + array ( + 0 => '', + 1 => 10, + 2 => ' * +', + ), + 10 => + array ( + 0 => '', + 1 => 11, + 2 => ' * This program is distributed in the hope that it will be useful, +', + ), + 11 => + array ( + 0 => '', + 1 => 12, + 2 => ' * but WITHOUT ANY WARRANTY; without even the implied warranty of +', + ), + 12 => + array ( + 0 => '', + 1 => 13, + 2 => ' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +', + ), + 13 => + array ( + 0 => '', + 1 => 14, + 2 => ' * GNU General Public License for more details. +', + ), + 14 => + array ( + 0 => '', + 1 => 15, + 2 => ' * +', + ), + 15 => + array ( + 0 => '', + 1 => 16, + 2 => ' * You should have received a copy of the GNU General Public License +', + ), + 16 => + array ( + 0 => '', + 1 => 17, + 2 => ' * along with this program; if not, write to the Free Software +', + ), + 17 => + array ( + 0 => '', + 1 => 18, + 2 => ' * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +', + ), + 18 => + array ( + 0 => '', + 1 => 19, + 2 => ' * MA 02110-1301 USA +', + ), + 19 => + array ( + 0 => '', + 1 => 20, + 2 => ' */ +', + ), + 20 => + array ( + 0 => '', + 1 => 21, + 2 => ' +', + ), + 21 => + array ( + 0 => '', + 1 => 22, + 2 => '/* This is board specific information: IRQ routing for the +', + ), + 22 => + array ( + 0 => '', + 1 => 23, + 2 => ' * 0:1e.0 PCI bridge of the ICH7 +', + ), + 23 => + array ( + 0 => '', + 1 => 24, + 2 => ' */ +', + ), + 24 => + array ( + 0 => '', + 1 => 25, + 2 => ' +', + ), + 25 => + array ( + 0 => '', + 1 => 26, + 2 => 'If (PICM) { +', + ), + 26 => + array ( + 0 => '', + 1 => 27, + 2 => ' Return (Package() { +', + ), + 27 => + array ( + 0 => '', + 1 => 28, + 2 => ' Package (0x04) { 0x0000FFFF, 0x00, 0x00, 0x10 }, +', + ), + 28 => + array ( + 0 => '', + 1 => 29, + 2 => ' Package (0x04) { 0x0000FFFF, 0x01, 0x00, 0x11 }, +', + ), + 29 => + array ( + 0 => '', + 1 => 30, + 2 => ' Package (0x04) { 0x0000FFFF, 0x02, 0x00, 0x12 }, +', + ), + 30 => + array ( + 0 => '', + 1 => 31, + 2 => ' Package (0x04) { 0x0001FFFF, 0x00, 0x00, 0x10 }, +', + ), + 31 => + array ( + 0 => '', + 1 => 32, + 2 => ' Package (0x04) { 0x0002FFFF, 0x00, 0x00, 0x15 }, +', + ), + 32 => + array ( + 0 => '', + 1 => 33, + 2 => ' Package (0x04) { 0x0002FFFF, 0x01, 0x00, 0x16 }, +', + ), + 33 => + array ( + 0 => '', + 1 => 34, + 2 => ' Package (0x04) { 0x0008FFFF, 0x00, 0x00, 0x14 } +', + ), + 34 => + array ( + 0 => '', + 1 => 35, + 2 => ' }) +', + ), + 35 => + array ( + 0 => '', + 1 => 36, + 2 => ' } Else { +', + ), + 36 => + array ( + 0 => '', + 1 => 37, + 2 => ' Return (Package() { +', + ), + 37 => + array ( + 0 => '', + 1 => 38, + 2 => ' Package (0x04) { 0x0000FFFF, 0x00, \\_SB.PCI0.LPCB.LNKA, 0x00 }, +', + ), + 38 => + array ( + 0 => '', + 1 => 39, + 2 => ' Package (0x04) { 0x0000FFFF, 0x01, \\_SB.PCI0.LPCB.LNKB, 0x00 }, +', + ), + 39 => + array ( + 0 => '', + 1 => 40, + 2 => ' Package (0x04) { 0x0000FFFF, 0x02, \\_SB.PCI0.LPCB.LNKC, 0x00 }, +', + ), + 40 => + array ( + 0 => '', + 1 => 41, + 2 => ' Package (0x04) { 0x0001FFFF, 0x00, \\_SB.PCI0.LPCB.LNKA, 0x00 }, +', + ), + 41 => + array ( + 0 => '', + 1 => 42, + 2 => ' Package (0x04) { 0x0002FFFF, 0x00, \\_SB.PCI0.LPCB.LNKF, 0x00 }, +', + ), + 42 => + array ( + 0 => '', + 1 => 43, + 2 => ' Package (0x04) { 0x0002FFFF, 0x01, \\_SB.PCI0.LPCB.LNKG, 0x00 }, +', + ), + 43 => + array ( + 0 => '', + 1 => 44, + 2 => ' Package (0x04) { 0x0008FFFF, 0x00, \\_SB.PCI0.LPCB.LNKE, 0x00 } +', + ), + 44 => + array ( + 0 => '', + 1 => 45, + 2 => ' }) +', + ), + 45 => + array ( + 0 => '', + 1 => 46, + 2 => '} +', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '46', + ), + ), + ), + ), + 'src/mainboard/lenovo/x60/acpi/platform.asl' => + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => '/* +', + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => ' * This file is part of the coreboot project. +', + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => ' * +', + ), + 3 => + array ( + 0 => '', + 1 => 4, + 2 => ' * Copyright (C) 2007-2009 coresystems GmbH +', + ), + 4 => + array ( + 0 => '', + 1 => 5, + 2 => ' * +', + ), + 5 => + array ( + 0 => '', + 1 => 6, + 2 => ' * This program is free software; you can redistribute it and/or +', + ), + 6 => + array ( + 0 => '', + 1 => 7, + 2 => ' * modify it under the terms of the GNU General Public License as +', + ), + 7 => + array ( + 0 => '', + 1 => 8, + 2 => ' * published by the Free Software Foundation; version 2 of +', + ), + 8 => + array ( + 0 => '', + 1 => 9, + 2 => ' * the License. +', + ), + 9 => + array ( + 0 => '', + 1 => 10, + 2 => ' * +', + ), + 10 => + array ( + 0 => '', + 1 => 11, + 2 => ' * This program is distributed in the hope that it will be useful, +', + ), + 11 => + array ( + 0 => '', + 1 => 12, + 2 => ' * but WITHOUT ANY WARRANTY; without even the implied warranty of +', + ), + 12 => + array ( + 0 => '', + 1 => 13, + 2 => ' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +', + ), + 13 => + array ( + 0 => '', + 1 => 14, + 2 => ' * GNU General Public License for more details. +', + ), + 14 => + array ( + 0 => '', + 1 => 15, + 2 => ' * +', + ), + 15 => + array ( + 0 => '', + 1 => 16, + 2 => ' * You should have received a copy of the GNU General Public License +', + ), + 16 => + array ( + 0 => '', + 1 => 17, + 2 => ' * along with this program; if not, write to the Free Software +', + ), + 17 => + array ( + 0 => '', + 1 => 18, + 2 => ' * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +', + ), + 18 => + array ( + 0 => '', + 1 => 19, + 2 => ' * MA 02110-1301 USA +', + ), + 19 => + array ( + 0 => '', + 1 => 20, + 2 => ' */ +', + ), + 20 => + array ( + 0 => '', + 1 => 21, + 2 => ' +', + ), + 21 => + array ( + 0 => '', + 1 => 22, + 2 => '/* These come from the dynamically created CPU SSDT */ +', + ), + 22 => + array ( + 0 => '', + 1 => 23, + 2 => 'External(PDC0) +', + ), + 23 => + array ( + 0 => '', + 1 => 24, + 2 => 'External(PDC1) +', + ), + 24 => + array ( + 0 => '', + 1 => 25, + 2 => ' +', + ), + 25 => + array ( + 0 => '', + 1 => 26, + 2 => '/* The APM port can be used for generating software SMIs */ +', + ), + 26 => + array ( + 0 => '', + 1 => 27, + 2 => ' +', + ), + 27 => + array ( + 0 => '', + 1 => 28, + 2 => 'OperationRegion (APMP, SystemIO, 0xb2, 2) +', + ), + 28 => + array ( + 0 => '', + 1 => 29, + 2 => 'Field (APMP, ByteAcc, NoLock, Preserve) +', + ), + 29 => + array ( + 0 => '', + 1 => 30, + 2 => '{ +', + ), + 30 => + array ( + 0 => '', + 1 => 31, + 2 => ' APMC, 8, // APM command +', + ), + 31 => + array ( + 0 => '', + 1 => 32, + 2 => ' APMS, 8 // APM status +', + ), + 32 => + array ( + 0 => '', + 1 => 33, + 2 => '} +', + ), + 33 => + array ( + 0 => '', + 1 => 34, + 2 => ' +', + ), + 34 => + array ( + 0 => '', + 1 => 35, + 2 => '/* Port 80 POST */ +', + ), + 35 => + array ( + 0 => '', + 1 => 36, + 2 => ' +', + ), + 36 => + array ( + 0 => '', + 1 => 37, + 2 => 'OperationRegion (POST, SystemIO, 0x80, 1) +', + ), + 37 => + array ( + 0 => '', + 1 => 38, + 2 => 'Field (POST, ByteAcc, Lock, Preserve) +', + ), + 38 => + array ( + 0 => '', + 1 => 39, + 2 => '{ +', + ), + 39 => + array ( + 0 => '', + 1 => 40, + 2 => ' DBG0, 8 +', + ), + 40 => + array ( + 0 => '', + 1 => 41, + 2 => '} +', + ), + 41 => + array ( + 0 => '', + 1 => 42, + 2 => ' +', + ), + 42 => + array ( + 0 => '', + 1 => 43, + 2 => '/* SMI I/O Trap */ +', + ), + 43 => + array ( + 0 => '', + 1 => 44, + 2 => 'Method(TRAP, 1, Serialized) +', + ), + 44 => + array ( + 0 => '', + 1 => 45, + 2 => '{ +', + ), + 45 => + array ( + 0 => '', + 1 => 46, + 2 => ' Store (Arg0, SMIF) // SMI Function +', + ), + 46 => + array ( + 0 => '', + 1 => 47, + 2 => ' Store (0, TRP0) // Generate trap +', + ), + 47 => + array ( + 0 => '', + 1 => 48, + 2 => ' Return (SMIF) // Return value of SMI handler +', + ), + 48 => + array ( + 0 => '', + 1 => 49, + 2 => '} +', + ), + 49 => + array ( + 0 => '', + 1 => 50, + 2 => ' +', + ), + 50 => + array ( + 0 => '', + 1 => 51, + 2 => '/* The _PIC method is called by the OS to choose between interrupt +', + ), + 51 => + array ( + 0 => '', + 1 => 52, + 2 => ' * routing via the i8259 interrupt controller or the APIC. +', + ), + 52 => + array ( + 0 => '', + 1 => 53, + 2 => ' * +', + ), + 53 => + array ( + 0 => '', + 1 => 54, + 2 => ' * _PIC is called with a parameter of 0 for i8259 configuration and +', + ), + 54 => + array ( + 0 => '', + 1 => 55, + 2 => ' * with a parameter of 1 for Local Apic/IOAPIC configuration. +', + ), + 55 => + array ( + 0 => '', + 1 => 56, + 2 => ' */ +', + ), + 56 => + array ( + 0 => '', + 1 => 57, + 2 => ' +', + ), + 57 => + array ( + 0 => '', + 1 => 58, + 2 => 'Method(_PIC, 1) +', + ), + 58 => + array ( + 0 => '', + 1 => 59, + 2 => '{ +', + ), + 59 => + array ( + 0 => '', + 1 => 60, + 2 => ' // Remember the OS\' IRQ routing choice. +', + ), + 60 => + array ( + 0 => '', + 1 => 61, + 2 => ' Store(Arg0, PICM) +', + ), + 61 => + array ( + 0 => '', + 1 => 62, + 2 => '} +', + ), + 62 => + array ( + 0 => '', + 1 => 63, + 2 => ' +', + ), + 63 => + array ( + 0 => '', + 1 => 64, + 2 => '/* The _PTS method (Prepare To Sleep) is called before the OS is +', + ), + 64 => + array ( + 0 => '', + 1 => 65, + 2 => ' * entering a sleep state. The sleep state number is passed in Arg0 +', + ), + 65 => + array ( + 0 => '', + 1 => 66, + 2 => ' */ +', + ), + 66 => + array ( + 0 => '', + 1 => 67, + 2 => ' +', + ), + 67 => + array ( + 0 => '', + 1 => 68, + 2 => 'Method(_PTS,1) +', + ), + 68 => + array ( + 0 => '', + 1 => 69, + 2 => '{ +', + ), + 69 => + array ( + 0 => '', + 1 => 70, + 2 => ' // Call a trap so SMI can prepare for Sleep as well. +', + ), + 70 => + array ( + 0 => '', + 1 => 71, + 2 => ' // TRAP(0x55) +', + ), + 71 => + array ( + 0 => '', + 1 => 72, + 2 => '} +', + ), + 72 => + array ( + 0 => '', + 1 => 73, + 2 => ' +', + ), + 73 => + array ( + 0 => '', + 1 => 74, + 2 => '/* The _WAK method is called on system wakeup */ +', + ), + 74 => + array ( + 0 => '', + 1 => 75, + 2 => ' +', + ), + 75 => + array ( + 0 => '', + 1 => 76, + 2 => 'Method(_WAK,1) +', + ), + 76 => + array ( + 0 => '', + 1 => 77, + 2 => '{ +', + ), + 77 => + array ( + 0 => '', + 1 => 78, + 2 => ' // CPU specific part +', + ), + 78 => + array ( + 0 => '', + 1 => 79, + 2 => ' +', + ), + 79 => + array ( + 0 => '', + 1 => 80, + 2 => ' // Notify PCI Express slots in case a card +', + ), + 80 => + array ( + 0 => '', + 1 => 81, + 2 => ' // was inserted while a sleep state was active. +', + ), + 81 => + array ( + 0 => '', + 1 => 82, + 2 => ' +', + ), + 82 => + array ( + 0 => '', + 1 => 83, + 2 => ' // Are we going to S3? +', + ), + 83 => + array ( + 0 => '', + 1 => 84, + 2 => ' If (LEqual(Arg0, 3)) { +', + ), + 84 => + array ( + 0 => '', + 1 => 85, + 2 => ' // .. +', + ), + 85 => + array ( + 0 => '', + 1 => 86, + 2 => ' } +', + ), + 86 => + array ( + 0 => '', + 1 => 87, + 2 => ' +', + ), + 87 => + array ( + 0 => '', + 1 => 88, + 2 => ' // Are we going to S4? +', + ), + 88 => + array ( + 0 => '', + 1 => 89, + 2 => ' If (LEqual(Arg0, 4)) { +', + ), + 89 => + array ( + 0 => '', + 1 => 90, + 2 => ' // .. +', + ), + 90 => + array ( + 0 => '', + 1 => 91, + 2 => ' } +', + ), + 91 => + array ( + 0 => '', + 1 => 92, + 2 => ' +', + ), + 92 => + array ( + 0 => '', + 1 => 93, + 2 => ' // TODO: Windows XP SP2 P-State restore +', + ), + 93 => + array ( + 0 => '', + 1 => 94, + 2 => ' +', + ), + 94 => + array ( + 0 => '', + 1 => 95, + 2 => ' Return(Package(){0,0}) +', + ), + 95 => + array ( + 0 => '', + 1 => 96, + 2 => '} +', + ), + 96 => + array ( + 0 => '', + 1 => 97, + 2 => ' +', + ), + 97 => + array ( + 0 => '', + 1 => 98, + 2 => '// Power notification +', + ), + 98 => + array ( + 0 => '', + 1 => 99, + 2 => ' +', + ), + 99 => + array ( + 0 => '', + 1 => 100, + 2 => 'External (\\_PR_.CPU0, DeviceObj) +', + ), + 100 => + array ( + 0 => '', + 1 => 101, + 2 => 'External (\\_PR_.CPU1, DeviceObj) +', + ), + 101 => + array ( + 0 => '', + 1 => 102, + 2 => ' +', + ), + 102 => + array ( + 0 => '', + 1 => 103, + 2 => 'Method (PNOT) +', + ), + 103 => + array ( + 0 => '', + 1 => 104, + 2 => '{ +', + ), + 104 => + array ( + 0 => '', + 1 => 105, + 2 => ' If (MPEN) { +', + ), + 105 => + array ( + 0 => '', + 1 => 106, + 2 => ' If(And(PDC0, 0x08)) { +', + ), + 106 => + array ( + 0 => '', + 1 => 107, + 2 => ' Notify (\\_PR_.CPU0, 0x80) // _PPC +', + ), + 107 => + array ( + 0 => '', + 1 => 108, + 2 => ' +', + ), + 108 => + array ( + 0 => '', + 1 => 109, + 2 => ' If (And(PDC0, 0x10)) { +', + ), + 109 => + array ( + 0 => '', + 1 => 110, + 2 => ' Sleep(100) +', + ), + 110 => + array ( + 0 => '', + 1 => 111, + 2 => ' Notify(\\_PR_.CPU0, 0x81) // _CST +', + ), + 111 => + array ( + 0 => '', + 1 => 112, + 2 => ' } +', + ), + 112 => + array ( + 0 => '', + 1 => 113, + 2 => ' } +', + ), + 113 => + array ( + 0 => '', + 1 => 114, + 2 => ' +', + ), + 114 => + array ( + 0 => '', + 1 => 115, + 2 => ' If(And(PDC1, 0x08)) { +', + ), + 115 => + array ( + 0 => '', + 1 => 116, + 2 => ' Notify (\\_PR_.CPU1, 0x80) // _PPC +', + ), + 116 => + array ( + 0 => '', + 1 => 117, + 2 => ' If (And(PDC1, 0x10)) { +', + ), + 117 => + array ( + 0 => '', + 1 => 118, + 2 => ' Sleep(100) +', + ), + 118 => + array ( + 0 => '', + 1 => 119, + 2 => ' Notify(\\_PR_.CPU1, 0x81) // _CST +', + ), + 119 => + array ( + 0 => '', + 1 => 120, + 2 => ' } +', + ), + 120 => + array ( + 0 => '', + 1 => 121, + 2 => ' } +', + ), + 121 => + array ( + 0 => '', + 1 => 122, + 2 => ' +', + ), + 122 => + array ( + 0 => '', + 1 => 123, + 2 => ' } Else { // UP +', + ), + 123 => + array ( + 0 => '', + 1 => 124, + 2 => ' Notify (\\_PR_.CPU0, 0x80) +', + ), + 124 => + array ( + 0 => '', + 1 => 125, + 2 => ' Sleep(0x64) +', + ), + 125 => + array ( + 0 => '', + 1 => 126, + 2 => ' Notify(\\_PR_.CPU0, 0x81) +', + ), + 126 => + array ( + 0 => '', + 1 => 127, + 2 => ' } +', + ), + 127 => + array ( + 0 => '', + 1 => 128, + 2 => ' +', + ), + 128 => + array ( + 0 => '', + 1 => 129, + 2 => ' // Notify the Batteries +', + ), + 129 => + array ( + 0 => '', + 1 => 130, + 2 => ' Notify(\\_SB.PCI0.LPCB.EC.BAT0, 0x80) // Execute BAT1 _BST +', + ), + 130 => + array ( + 0 => '', + 1 => 131, + 2 => ' Notify(\\_SB.PCI0.LPCB.EC.BAT1, 0x80) // Execute BAT2 _BST +', + ), + 131 => + array ( + 0 => '', + 1 => 132, + 2 => '} +', + ), + 132 => + array ( + 0 => '', + 1 => 133, + 2 => ' +', + ), + 133 => + array ( + 0 => '', + 1 => 134, + 2 => '/* System Bus */ +', + ), + 134 => + array ( + 0 => '', + 1 => 135, + 2 => ' +', + ), + 135 => + array ( + 0 => '', + 1 => 136, + 2 => 'Scope(\\_SB) +', + ), + 136 => + array ( + 0 => '', + 1 => 137, + 2 => '{ +', + ), + 137 => + array ( + 0 => '', + 1 => 138, + 2 => ' /* This method is placed on the top level, so we can make sure it\'s the +', + ), + 138 => + array ( + 0 => '', + 1 => 139, + 2 => ' * first executed _INI method. +', + ), + 139 => + array ( + 0 => '', + 1 => 140, + 2 => ' */ +', + ), + 140 => + array ( + 0 => '', + 1 => 141, + 2 => ' Method(_INI, 0) +', + ), + 141 => + array ( + 0 => '', + 1 => 142, + 2 => ' { +', + ), + 142 => + array ( + 0 => '', + 1 => 143, + 2 => ' /* The DTS data in NVS is probably not up to date. +', + ), + 143 => + array ( + 0 => '', + 1 => 144, + 2 => ' * Update temperature values and make sure AP thermal +', + ), + 144 => + array ( + 0 => '', + 1 => 145, + 2 => ' * interrupts can happen +', + ), + 145 => + array ( + 0 => '', + 1 => 146, + 2 => ' */ +', + ), + 146 => + array ( + 0 => '', + 1 => 147, + 2 => ' +', + ), + 147 => + array ( + 0 => '', + 1 => 148, + 2 => ' // TRAP(71) // TODO +', + ), + 148 => + array ( + 0 => '', + 1 => 149, + 2 => ' +', + ), + 149 => + array ( + 0 => '', + 1 => 150, + 2 => ' /* Determine the Operating System and save the value in OSYS. +', + ), + 150 => + array ( + 0 => '', + 1 => 151, + 2 => ' * We have to do this in order to be able to work around +', + ), + 151 => + array ( + 0 => '', + 1 => 152, + 2 => ' * certain windows bugs. +', + ), + 152 => + array ( + 0 => '', + 1 => 153, + 2 => ' * +', + ), + 153 => + array ( + 0 => '', + 1 => 154, + 2 => ' * OSYS value | Operating System +', + ), + 154 => + array ( + 0 => '', + 1 => 155, + 2 => ' * -----------+------------------ +', + ), + 155 => + array ( + 0 => '', + 1 => 156, + 2 => ' * 2000 | Windows 2000 +', + ), + 156 => + array ( + 0 => '', + 1 => 157, + 2 => ' * 2001 | Windows XP(+SP1) +', + ), + 157 => + array ( + 0 => '', + 1 => 158, + 2 => ' * 2002 | Windows XP SP2 +', + ), + 158 => + array ( + 0 => '', + 1 => 159, + 2 => ' * 2006 | Windows Vista +', + ), + 159 => + array ( + 0 => '', + 1 => 160, + 2 => ' * ???? | Windows 7 +', + ), + 160 => + array ( + 0 => '', + 1 => 161, + 2 => ' */ +', + ), + 161 => + array ( + 0 => '', + 1 => 162, + 2 => ' +', + ), + 162 => + array ( + 0 => '', + 1 => 163, + 2 => ' /* Let\'s assume we\'re running at least Windows 2000 */ +', + ), + 163 => + array ( + 0 => '', + 1 => 164, + 2 => ' Store (2000, OSYS) +', + ), + 164 => + array ( + 0 => '', + 1 => 165, + 2 => ' +', + ), + 165 => + array ( + 0 => '', + 1 => 166, + 2 => ' If (CondRefOf(_OSI, Local0)) { +', + ), + 166 => + array ( + 0 => '', + 1 => 167, + 2 => ' /* Linux answers _OSI with "True" for a couple of +', + ), + 167 => + array ( + 0 => '', + 1 => 168, + 2 => ' * Windows version queries. But unlike Windows it +', + ), + 168 => + array ( + 0 => '', + 1 => 169, + 2 => ' * needs a Video repost, so let\'s determine whether +', + ), + 169 => + array ( + 0 => '', + 1 => 170, + 2 => ' * we\'re running Linux. +', + ), + 170 => + array ( + 0 => '', + 1 => 171, + 2 => ' */ +', + ), + 171 => + array ( + 0 => '', + 1 => 172, + 2 => ' +', + ), + 172 => + array ( + 0 => '', + 1 => 173, + 2 => ' If (_OSI("Linux")) { +', + ), + 173 => + array ( + 0 => '', + 1 => 174, + 2 => ' Store (1, LINX) +', + ), + 174 => + array ( + 0 => '', + 1 => 175, + 2 => ' } +', + ), + 175 => + array ( + 0 => '', + 1 => 176, + 2 => ' +', + ), + 176 => + array ( + 0 => '', + 1 => 177, + 2 => ' If (_OSI("Windows 2001")) { +', + ), + 177 => + array ( + 0 => '', + 1 => 178, + 2 => ' Store (2001, OSYS) +', + ), + 178 => + array ( + 0 => '', + 1 => 179, + 2 => ' } +', + ), + 179 => + array ( + 0 => '', + 1 => 180, + 2 => ' +', + ), + 180 => + array ( + 0 => '', + 1 => 181, + 2 => ' If (_OSI("Windows 2001 SP1")) { +', + ), + 181 => + array ( + 0 => '', + 1 => 182, + 2 => ' Store (2001, OSYS) +', + ), + 182 => + array ( + 0 => '', + 1 => 183, + 2 => ' } +', + ), + 183 => + array ( + 0 => '', + 1 => 184, + 2 => ' +', + ), + 184 => + array ( + 0 => '', + 1 => 185, + 2 => ' If (_OSI("Windows 2001 SP2")) { +', + ), + 185 => + array ( + 0 => '', + 1 => 186, + 2 => ' Store (2002, OSYS) +', + ), + 186 => + array ( + 0 => '', + 1 => 187, + 2 => ' } +', + ), + 187 => + array ( + 0 => '', + 1 => 188, + 2 => ' +', + ), + 188 => + array ( + 0 => '', + 1 => 189, + 2 => ' If (_OSI("Windows 2006")) { +', + ), + 189 => + array ( + 0 => '', + 1 => 190, + 2 => ' Store (2006, OSYS) +', + ), + 190 => + array ( + 0 => '', + 1 => 191, + 2 => ' } +', + ), + 191 => + array ( + 0 => '', + 1 => 192, + 2 => ' } +', + ), + 192 => + array ( + 0 => '', + 1 => 193, + 2 => ' +', + ), + 193 => + array ( + 0 => '', + 1 => 194, + 2 => ' /* And the OS workarounds start right after we know what we\'re +', + ), + 194 => + array ( + 0 => '', + 1 => 195, + 2 => ' * running: Windows XP SP1 needs to have C-State coordination +', + ), + 195 => + array ( + 0 => '', + 1 => 196, + 2 => ' * enabled in SMM. +', + ), + 196 => + array ( + 0 => '', + 1 => 197, + 2 => ' */ +', + ), + 197 => + array ( + 0 => '', + 1 => 198, + 2 => ' If (LAnd(LEqual(OSYS, 2001), MPEN)) { +', + ), + 198 => + array ( + 0 => '', + 1 => 199, + 2 => ' // TRAP(61) // TODO +', + ), + 199 => + array ( + 0 => '', + 1 => 200, + 2 => ' } +', + ), + 200 => + array ( + 0 => '', + 1 => 201, + 2 => ' +', + ), + 201 => + array ( + 0 => '', + 1 => 202, + 2 => ' /* SMM power state and C4-on-C3 settings need to be updated */ +', + ), + 202 => + array ( + 0 => '', + 1 => 203, + 2 => ' // TRAP(43) // TODO +', + ), + 203 => + array ( + 0 => '', + 1 => 204, + 2 => ' } +', + ), + 204 => + array ( + 0 => '', + 1 => 205, + 2 => '} +', + ), + 205 => + array ( + 0 => '', + 1 => 206, + 2 => ' +', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '206', + ), + ), + ), + ), + 'src/mainboard/lenovo/x60/acpi/sleepbutton.asl' => + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => '/* +', + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => ' * This file is part of the coreboot project. +', + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => ' * +', + ), + 3 => + array ( + 0 => '', + 1 => 4, + 2 => ' * Copyright (c) 2011 Sven Schnelle +', + ), + 4 => + array ( + 0 => '', + 1 => 5, + 2 => ' * +', + ), + 5 => + array ( + 0 => '', + 1 => 6, + 2 => ' * This program is free software; you can redistribute it and/or +', + ), + 6 => + array ( + 0 => '', + 1 => 7, + 2 => ' * modify it under the terms of the GNU General Public License as +', + ), + 7 => + array ( + 0 => '', + 1 => 8, + 2 => ' * published by the Free Software Foundation; version 2 of +', + ), + 8 => + array ( + 0 => '', + 1 => 9, + 2 => ' * the License. +', + ), + 9 => + array ( + 0 => '', + 1 => 10, + 2 => ' * +', + ), + 10 => + array ( + 0 => '', + 1 => 11, + 2 => ' * This program is distributed in the hope that it will be useful, +', + ), + 11 => + array ( + 0 => '', + 1 => 12, + 2 => ' * but WITHOUT ANY WARRANTY; without even the implied warranty of +', + ), + 12 => + array ( + 0 => '', + 1 => 13, + 2 => ' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +', + ), + 13 => + array ( + 0 => '', + 1 => 14, + 2 => ' * GNU General Public License for more details. +', + ), + 14 => + array ( + 0 => '', + 1 => 15, + 2 => ' * +', + ), + 15 => + array ( + 0 => '', + 1 => 16, + 2 => ' * You should have received a copy of the GNU General Public License +', + ), + 16 => + array ( + 0 => '', + 1 => 17, + 2 => ' * along with this program; if not, write to the Free Software +', + ), + 17 => + array ( + 0 => '', + 1 => 18, + 2 => ' * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +', + ), + 18 => + array ( + 0 => '', + 1 => 19, + 2 => ' * MA 02110-1301 USA +', + ), + 19 => + array ( + 0 => '', + 1 => 20, + 2 => ' */ +', + ), + 20 => + array ( + 0 => '', + 1 => 21, + 2 => ' +', + ), + 21 => + array ( + 0 => '', + 1 => 22, + 2 => 'Device(SLPB) +', + ), + 22 => + array ( + 0 => '', + 1 => 23, + 2 => '{ +', + ), + 23 => + array ( + 0 => '', + 1 => 24, + 2 => ' Name (_HID, EisaId ("PNP0C0E")) +', + ), + 24 => + array ( + 0 => '', + 1 => 25, + 2 => '} +', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '25', + ), + ), + ), + ), + 'src/mainboard/lenovo/x60/acpi/video.asl' => + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => '/* +', + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => ' * This file is part of the coreboot project. +', + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => ' * +', + ), + 3 => + array ( + 0 => '', + 1 => 4, + 2 => ' * Copyright (c) 2011 Sven Schnelle +', + ), + 4 => + array ( + 0 => '', + 1 => 5, + 2 => ' * +', + ), + 5 => + array ( + 0 => '', + 1 => 6, + 2 => ' * This program is free software; you can redistribute it and/or +', + ), + 6 => + array ( + 0 => '', + 1 => 7, + 2 => ' * modify it under the terms of the GNU General Public License as +', + ), + 7 => + array ( + 0 => '', + 1 => 8, + 2 => ' * published by the Free Software Foundation; version 2 of +', + ), + 8 => + array ( + 0 => '', + 1 => 9, + 2 => ' * the License. +', + ), + 9 => + array ( + 0 => '', + 1 => 10, + 2 => ' * +', + ), + 10 => + array ( + 0 => '', + 1 => 11, + 2 => ' * This program is distributed in the hope that it will be useful, +', + ), + 11 => + array ( + 0 => '', + 1 => 12, + 2 => ' * but WITHOUT ANY WARRANTY; without even the implied warranty of +', + ), + 12 => + array ( + 0 => '', + 1 => 13, + 2 => ' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +', + ), + 13 => + array ( + 0 => '', + 1 => 14, + 2 => ' * GNU General Public License for more details. +', + ), + 14 => + array ( + 0 => '', + 1 => 15, + 2 => ' * +', + ), + 15 => + array ( + 0 => '', + 1 => 16, + 2 => ' * You should have received a copy of the GNU General Public License +', + ), + 16 => + array ( + 0 => '', + 1 => 17, + 2 => ' * along with this program; if not, write to the Free Software +', + ), + 17 => + array ( + 0 => '', + 1 => 18, + 2 => ' * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +', + ), + 18 => + array ( + 0 => '', + 1 => 19, + 2 => ' * MA 02110-1301 USA +', + ), + 19 => + array ( + 0 => '', + 1 => 20, + 2 => ' */ +', + ), + 20 => + array ( + 0 => '', + 1 => 21, + 2 => ' +', + ), + 21 => + array ( + 0 => '', + 1 => 22, + 2 => 'Device (DSPC) +', + ), + 22 => + array ( + 0 => '', + 1 => 23, + 2 => '{ +', + ), + 23 => + array ( + 0 => '', + 1 => 24, + 2 => ' Name (_ADR, 0x00020001) +', + ), + 24 => + array ( + 0 => '', + 1 => 25, + 2 => ' OperationRegion (DSPC, PCI_Config, 0x00, 0x100) +', + ), + 25 => + array ( + 0 => '', + 1 => 26, + 2 => ' Field (DSPC, ByteAcc, NoLock, Preserve) +', + ), + 26 => + array ( + 0 => '', + 1 => 27, + 2 => ' { +', + ), + 27 => + array ( + 0 => '', + 1 => 28, + 2 => ' Offset (0xf4), +', + ), + 28 => + array ( + 0 => '', + 1 => 29, + 2 => ' BRTC, 8 +', + ), + 29 => + array ( + 0 => '', + 1 => 30, + 2 => ' } +', + ), + 30 => + array ( + 0 => '', + 1 => 31, + 2 => ' +', + ), + 31 => + array ( + 0 => '', + 1 => 32, + 2 => ' Method(BRTD, 0, NotSerialized) +', + ), + 32 => + array ( + 0 => '', + 1 => 33, + 2 => ' { +', + ), + 33 => + array ( + 0 => '', + 1 => 34, + 2 => ' Store(BRTC, Local0) +', + ), + 34 => + array ( + 0 => '', + 1 => 35, + 2 => ' if (LGreater (Local0, 15)) +', + ), + 35 => + array ( + 0 => '', + 1 => 36, + 2 => ' { +', + ), + 36 => + array ( + 0 => '', + 1 => 37, + 2 => ' Subtract(Local0, 16, Local0) +', + ), + 37 => + array ( + 0 => '', + 1 => 38, + 2 => ' Store(Local0, BRTC) +', + ), + 38 => + array ( + 0 => '', + 1 => 39, + 2 => ' } +', + ), + 39 => + array ( + 0 => '', + 1 => 40, + 2 => ' } +', + ), + 40 => + array ( + 0 => '', + 1 => 41, + 2 => ' +', + ), + 41 => + array ( + 0 => '', + 1 => 42, + 2 => ' Method(BRTU, 0, NotSerialized) +', + ), + 42 => + array ( + 0 => '', + 1 => 43, + 2 => ' { +', + ), + 43 => + array ( + 0 => '', + 1 => 44, + 2 => ' Store (BRTC, Local0) +', + ), + 44 => + array ( + 0 => '', + 1 => 45, + 2 => ' if (LLess(Local0, 0xff)) +', + ), + 45 => + array ( + 0 => '', + 1 => 46, + 2 => ' { +', + ), + 46 => + array ( + 0 => '', + 1 => 47, + 2 => ' Add (Local0, 16, Local0) +', + ), + 47 => + array ( + 0 => '', + 1 => 48, + 2 => ' Store(Local0, BRTC) +', + ), + 48 => + array ( + 0 => '', + 1 => 49, + 2 => ' } +', + ), + 49 => + array ( + 0 => '', + 1 => 50, + 2 => ' } +', + ), + 50 => + array ( + 0 => '', + 1 => 51, + 2 => '} +', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '51', + ), + ), + ), + ), + 'src/mainboard/lenovo/x60/acpi/ec.asl' => + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => '/* +', + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => ' * This file is part of the coreboot project. +', + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => ' * +', + ), + 3 => + array ( + 0 => '', + 1 => 4, + 2 => ' * Copyright (c) 2011 Sven Schnelle +', + ), + 4 => + array ( + 0 => '', + 1 => 5, + 2 => ' * +', + ), + 5 => + array ( + 0 => '', + 1 => 6, + 2 => ' * This program is free software; you can redistribute it and/or +', + ), + 6 => + array ( + 0 => '', + 1 => 7, + 2 => ' * modify it under the terms of the GNU General Public License as +', + ), + 7 => + array ( + 0 => '', + 1 => 8, + 2 => ' * published by the Free Software Foundation; version 2 of +', + ), + 8 => + array ( + 0 => '', + 1 => 9, + 2 => ' * the License. +', + ), + 9 => + array ( + 0 => '', + 1 => 10, + 2 => ' * +', + ), + 10 => + array ( + 0 => '', + 1 => 11, + 2 => ' * This program is distributed in the hope that it will be useful, +', + ), + 11 => + array ( + 0 => '', + 1 => 12, + 2 => ' * but WITHOUT ANY WARRANTY; without even the implied warranty of +', + ), + 12 => + array ( + 0 => '', + 1 => 13, + 2 => ' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +', + ), + 13 => + array ( + 0 => '', + 1 => 14, + 2 => ' * GNU General Public License for more details. +', + ), + 14 => + array ( + 0 => '', + 1 => 15, + 2 => ' * +', + ), + 15 => + array ( + 0 => '', + 1 => 16, + 2 => ' * You should have received a copy of the GNU General Public License +', + ), + 16 => + array ( + 0 => '', + 1 => 17, + 2 => ' * along with this program; if not, write to the Free Software +', + ), + 17 => + array ( + 0 => '', + 1 => 18, + 2 => ' * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +', + ), + 18 => + array ( + 0 => '', + 1 => 19, + 2 => ' * MA 02110-1301 USA +', + ), + 19 => + array ( + 0 => '', + 1 => 20, + 2 => ' */ +', + ), + 20 => + array ( + 0 => '', + 1 => 21, + 2 => ' +', + ), + 21 => + array ( + 0 => '', + 1 => 22, + 2 => 'Device(EC) +', + ), + 22 => + array ( + 0 => '', + 1 => 23, + 2 => '{ +', + ), + 23 => + array ( + 0 => '', + 1 => 24, + 2 => ' Name (_HID, EISAID("PNP0C09")) +', + ), + 24 => + array ( + 0 => '', + 1 => 25, + 2 => ' Name (_UID, 0) +', + ), + 25 => + array ( + 0 => '', + 1 => 26, + 2 => ' +', + ), + 26 => + array ( + 0 => '', + 1 => 27, + 2 => ' Name (_GPE, 28) +', + ), + 27 => + array ( + 0 => '', + 1 => 28, + 2 => ' Mutex (ECLK, 0) +', + ), + 28 => + array ( + 0 => '', + 1 => 29, + 2 => ' +', + ), + 29 => + array ( + 0 => '', + 1 => 30, + 2 => ' OperationRegion(ERAM, EmbeddedControl, 0x00, 0x100) +', + ), + 30 => + array ( + 0 => '', + 1 => 31, + 2 => ' Field (ERAM, ByteAcc, NoLock, Preserve) +', + ), + 31 => + array ( + 0 => '', + 1 => 32, + 2 => ' { +', + ), + 32 => + array ( + 0 => '', + 1 => 33, + 2 => ' Offset (0x05), +', + ), + 33 => + array ( + 0 => '', + 1 => 34, + 2 => ' HSPA, 1, +', + ), + 34 => + array ( + 0 => '', + 1 => 35, + 2 => ' Offset (0x0C), +', + ), + 35 => + array ( + 0 => '', + 1 => 36, + 2 => ' LEDS, 8, /* LED state */ +', + ), + 36 => + array ( + 0 => '', + 1 => 37, + 2 => ' Offset (0x3B), +', + ), + 37 => + array ( + 0 => '', + 1 => 38, + 2 => ' , 1, +', + ), + 38 => + array ( + 0 => '', + 1 => 39, + 2 => ' KBLT, 1, /* Keyboard Light */ +', + ), + 39 => + array ( + 0 => '', + 1 => 40, + 2 => ' Offset (0x81), +', + ), + 40 => + array ( + 0 => '', + 1 => 41, + 2 => ' PAGE, 8 /* Information Page Selector */ +', + ), + 41 => + array ( + 0 => '', + 1 => 42, + 2 => ' } +', + ), + 42 => + array ( + 0 => '', + 1 => 43, + 2 => ' +', + ), + 43 => + array ( + 0 => '', + 1 => 44, + 2 => ' Method (_CRS, 0) +', + ), + 44 => + array ( + 0 => '', + 1 => 45, + 2 => ' { +', + ), + 45 => + array ( + 0 => '', + 1 => 46, + 2 => ' Name (ECMD, ResourceTemplate() +', + ), + 46 => + array ( + 0 => '', + 1 => 47, + 2 => ' { +', + ), + 47 => + array ( + 0 => '', + 1 => 48, + 2 => ' IO (Decode16, 0x62, 0x62, 1, 1) +', + ), + 48 => + array ( + 0 => '', + 1 => 49, + 2 => ' IO (Decode16, 0x66, 0x66, 1, 1) +', + ), + 49 => + array ( + 0 => '', + 1 => 50, + 2 => ' }) +', + ), + 50 => + array ( + 0 => '', + 1 => 51, + 2 => ' Return (ECMD) +', + ), + 51 => + array ( + 0 => '', + 1 => 52, + 2 => ' } +', + ), + 52 => + array ( + 0 => '', + 1 => 53, + 2 => ' +', + ), + 53 => + array ( + 0 => '', + 1 => 54, + 2 => ' Method (LED, 1, NotSerialized) +', + ), + 54 => + array ( + 0 => '', + 1 => 55, + 2 => ' { +', + ), + 55 => + array ( + 0 => '', + 1 => 56, + 2 => ' Store(Arg0, LEDS) +', + ), + 56 => + array ( + 0 => '', + 1 => 57, + 2 => ' } +', + ), + 57 => + array ( + 0 => '', + 1 => 58, + 2 => ' +', + ), + 58 => + array ( + 0 => '', + 1 => 59, + 2 => ' Method (_INI, 0, NotSerialized) +', + ), + 59 => + array ( + 0 => '', + 1 => 60, + 2 => ' { +', + ), + 60 => + array ( + 0 => '', + 1 => 61, + 2 => ' } +', + ), + 61 => + array ( + 0 => '', + 1 => 62, + 2 => ' +', + ), + 62 => + array ( + 0 => '', + 1 => 63, + 2 => ' /* Sleep Button pressed */ +', + ), + 63 => + array ( + 0 => '', + 1 => 64, + 2 => ' Method(_Q13, 0, NotSerialized) +', + ), + 64 => + array ( + 0 => '', + 1 => 65, + 2 => ' { +', + ), + 65 => + array ( + 0 => '', + 1 => 66, + 2 => ' Notify(\\_SB.PCI0.LPCB.EC.SLPB, 0x80) +', + ), + 66 => + array ( + 0 => '', + 1 => 67, + 2 => ' } +', + ), + 67 => + array ( + 0 => '', + 1 => 68, + 2 => ' +', + ), + 68 => + array ( + 0 => '', + 1 => 69, + 2 => ' /* Brightness up GPE */ +', + ), + 69 => + array ( + 0 => '', + 1 => 70, + 2 => ' Method(_Q14, 0, NotSerialized) +', + ), + 70 => + array ( + 0 => '', + 1 => 71, + 2 => ' { +', + ), + 71 => + array ( + 0 => '', + 1 => 72, + 2 => ' \\DSPC.BRTU () +', + ), + 72 => + array ( + 0 => '', + 1 => 73, + 2 => ' } +', + ), + 73 => + array ( + 0 => '', + 1 => 74, + 2 => ' +', + ), + 74 => + array ( + 0 => '', + 1 => 75, + 2 => ' /* Brightness down GPE */ +', + ), + 75 => + array ( + 0 => '', + 1 => 76, + 2 => ' Method(_Q15, 0, NotSerialized) +', + ), + 76 => + array ( + 0 => '', + 1 => 77, + 2 => ' { +', + ), + 77 => + array ( + 0 => '', + 1 => 78, + 2 => ' \\DSPC.BRTD() +', + ), + 78 => + array ( + 0 => '', + 1 => 79, + 2 => ' } +', + ), + 79 => + array ( + 0 => '', + 1 => 80, + 2 => ' +', + ), + 80 => + array ( + 0 => '', + 1 => 81, + 2 => ' /* AC status change: present */ +', + ), + 81 => + array ( + 0 => '', + 1 => 82, + 2 => ' Method(_Q26, 0, NotSerialized) +', + ), + 82 => + array ( + 0 => '', + 1 => 83, + 2 => ' { +', + ), + 83 => + array ( + 0 => '', + 1 => 84, + 2 => ' Notify (AC, 0x80) +', + ), + 84 => + array ( + 0 => '', + 1 => 85, + 2 => ' Beep(6) +', + ), + 85 => + array ( + 0 => '', + 1 => 86, + 2 => ' } +', + ), + 86 => + array ( + 0 => '', + 1 => 87, + 2 => ' +', + ), + 87 => + array ( + 0 => '', + 1 => 88, + 2 => ' /* AC status change: not present */ +', + ), + 88 => + array ( + 0 => '', + 1 => 89, + 2 => ' Method(_Q27, 0, NotSerialized) +', + ), + 89 => + array ( + 0 => '', + 1 => 90, + 2 => ' { +', + ), + 90 => + array ( + 0 => '', + 1 => 91, + 2 => ' Notify (AC, 0x80) +', + ), + 91 => + array ( + 0 => '', + 1 => 92, + 2 => ' Beep(6) +', + ), + 92 => + array ( + 0 => '', + 1 => 93, + 2 => ' } +', + ), + 93 => + array ( + 0 => '', + 1 => 94, + 2 => ' +', + ), + 94 => + array ( + 0 => '', + 1 => 95, + 2 => ' +', + ), + 95 => + array ( + 0 => '', + 1 => 96, + 2 => '#include "ac.asl" +', + ), + 96 => + array ( + 0 => '', + 1 => 97, + 2 => '#include "battery.asl" +', + ), + 97 => + array ( + 0 => '', + 1 => 98, + 2 => '#include "sleepbutton.asl" +', + ), + 98 => + array ( + 0 => '', + 1 => 99, + 2 => '#include "lid.asl" +', + ), + 99 => + array ( + 0 => '', + 1 => 100, + 2 => '#include "beep.asl" +', + ), + 100 => + array ( + 0 => '', + 1 => 101, + 2 => '} +', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '101', + ), + ), + ), + ), + 'src/mainboard/lenovo/x60/acpi/lid.asl' => + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => '/* +', + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => ' * This file is part of the coreboot project. +', + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => ' * +', + ), + 3 => + array ( + 0 => '', + 1 => 4, + 2 => ' * Copyright (c) 2011 Sven Schnelle +', + ), + 4 => + array ( + 0 => '', + 1 => 5, + 2 => ' * +', + ), + 5 => + array ( + 0 => '', + 1 => 6, + 2 => ' * This program is free software; you can redistribute it and/or +', + ), + 6 => + array ( + 0 => '', + 1 => 7, + 2 => ' * modify it under the terms of the GNU General Public License as +', + ), + 7 => + array ( + 0 => '', + 1 => 8, + 2 => ' * published by the Free Software Foundation; version 2 of +', + ), + 8 => + array ( + 0 => '', + 1 => 9, + 2 => ' * the License. +', + ), + 9 => + array ( + 0 => '', + 1 => 10, + 2 => ' * +', + ), + 10 => + array ( + 0 => '', + 1 => 11, + 2 => ' * This program is distributed in the hope that it will be useful, +', + ), + 11 => + array ( + 0 => '', + 1 => 12, + 2 => ' * but WITHOUT ANY WARRANTY; without even the implied warranty of +', + ), + 12 => + array ( + 0 => '', + 1 => 13, + 2 => ' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +', + ), + 13 => + array ( + 0 => '', + 1 => 14, + 2 => ' * GNU General Public License for more details. +', + ), + 14 => + array ( + 0 => '', + 1 => 15, + 2 => ' * +', + ), + 15 => + array ( + 0 => '', + 1 => 16, + 2 => ' * You should have received a copy of the GNU General Public License +', + ), + 16 => + array ( + 0 => '', + 1 => 17, + 2 => ' * along with this program; if not, write to the Free Software +', + ), + 17 => + array ( + 0 => '', + 1 => 18, + 2 => ' * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +', + ), + 18 => + array ( + 0 => '', + 1 => 19, + 2 => ' * MA 02110-1301 USA +', + ), + 19 => + array ( + 0 => '', + 1 => 20, + 2 => ' */ +', + ), + 20 => + array ( + 0 => '', + 1 => 21, + 2 => ' +', + ), + 21 => + array ( + 0 => '', + 1 => 22, + 2 => 'Field(ERAM, ByteAcc, NoLock, Preserve) +', + ), + 22 => + array ( + 0 => '', + 1 => 23, + 2 => '{ +', + ), + 23 => + array ( + 0 => '', + 1 => 24, + 2 => ' Offset (0x46), +', + ), + 24 => + array ( + 0 => '', + 1 => 25, + 2 => ' , 2, +', + ), + 25 => + array ( + 0 => '', + 1 => 26, + 2 => ' LIDS , 1 +', + ), + 26 => + array ( + 0 => '', + 1 => 27, + 2 => '} +', + ), + 27 => + array ( + 0 => '', + 1 => 28, + 2 => ' +', + ), + 28 => + array ( + 0 => '', + 1 => 29, + 2 => 'Device(LID) +', + ), + 29 => + array ( + 0 => '', + 1 => 30, + 2 => '{ +', + ), + 30 => + array ( + 0 => '', + 1 => 31, + 2 => ' Name(_HID, "PNP0C0D") +', + ), + 31 => + array ( + 0 => '', + 1 => 32, + 2 => ' +', + ), + 32 => + array ( + 0 => '', + 1 => 33, + 2 => ' Method(_LId, 0, NotSerialized) +', + ), + 33 => + array ( + 0 => '', + 1 => 34, + 2 => ' { +', + ), + 34 => + array ( + 0 => '', + 1 => 35, + 2 => ' return (LIDS) +', + ), + 35 => + array ( + 0 => '', + 1 => 36, + 2 => ' } +', + ), + 36 => + array ( + 0 => '', + 1 => 37, + 2 => '} +', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '37', + ), + ), + ), + ), + 'src/mainboard/lenovo/x60/acpi/battery.asl' => + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => '/* +', + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => ' * This file is part of the coreboot project. +', + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => ' * +', + ), + 3 => + array ( + 0 => '', + 1 => 4, + 2 => ' * Copyright (c) 2011 Sven Schnelle +', + ), + 4 => + array ( + 0 => '', + 1 => 5, + 2 => ' * +', + ), + 5 => + array ( + 0 => '', + 1 => 6, + 2 => ' * This program is free software; you can redistribute it and/or +', + ), + 6 => + array ( + 0 => '', + 1 => 7, + 2 => ' * modify it under the terms of the GNU General Public License as +', + ), + 7 => + array ( + 0 => '', + 1 => 8, + 2 => ' * published by the Free Software Foundation; version 2 of +', + ), + 8 => + array ( + 0 => '', + 1 => 9, + 2 => ' * the License. +', + ), + 9 => + array ( + 0 => '', + 1 => 10, + 2 => ' * +', + ), + 10 => + array ( + 0 => '', + 1 => 11, + 2 => ' * This program is distributed in the hope that it will be useful, +', + ), + 11 => + array ( + 0 => '', + 1 => 12, + 2 => ' * but WITHOUT ANY WARRANTY; without even the implied warranty of +', + ), + 12 => + array ( + 0 => '', + 1 => 13, + 2 => ' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +', + ), + 13 => + array ( + 0 => '', + 1 => 14, + 2 => ' * GNU General Public License for more details. +', + ), + 14 => + array ( + 0 => '', + 1 => 15, + 2 => ' * +', + ), + 15 => + array ( + 0 => '', + 1 => 16, + 2 => ' * You should have received a copy of the GNU General Public License +', + ), + 16 => + array ( + 0 => '', + 1 => 17, + 2 => ' * along with this program; if not, write to the Free Software +', + ), + 17 => + array ( + 0 => '', + 1 => 18, + 2 => ' * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +', + ), + 18 => + array ( + 0 => '', + 1 => 19, + 2 => ' * MA 02110-1301 USA +', + ), + 19 => + array ( + 0 => '', + 1 => 20, + 2 => ' */ +', + ), + 20 => + array ( + 0 => '', + 1 => 21, + 2 => ' +', + ), + 21 => + array ( + 0 => '', + 1 => 22, + 2 => 'Field(ERAM, ByteAcc, NoLock, Preserve) +', + ), + 22 => + array ( + 0 => '', + 1 => 23, + 2 => '{ +', + ), + 23 => + array ( + 0 => '', + 1 => 24, + 2 => ' Offset (0x38), +', + ), + 24 => + array ( + 0 => '', + 1 => 25, + 2 => ' B0ST, 4, /* Battery 0 state */ +', + ), + 25 => + array ( + 0 => '', + 1 => 26, + 2 => ' , 1, +', + ), + 26 => + array ( + 0 => '', + 1 => 27, + 2 => ' B0CH, 1, /* Battery 0 charging */ +', + ), + 27 => + array ( + 0 => '', + 1 => 28, + 2 => ' B0DI, 1, /* Battery 0 discharging */ +', + ), + 28 => + array ( + 0 => '', + 1 => 29, + 2 => ' B0PR, 1, /* Battery 0 present */ +', + ), + 29 => + array ( + 0 => '', + 1 => 30, + 2 => ' Offset (0x39), +', + ), + 30 => + array ( + 0 => '', + 1 => 31, + 2 => ' B1ST, 4, /* Battery 1 state */ +', + ), + 31 => + array ( + 0 => '', + 1 => 32, + 2 => ' , 1, +', + ), + 32 => + array ( + 0 => '', + 1 => 33, + 2 => ' B1CH, 1, /* Battery 1 charging, */ +', + ), + 33 => + array ( + 0 => '', + 1 => 34, + 2 => ' B1DI, 1, /* Battery 1 discharging,*/ +', + ), + 34 => + array ( + 0 => '', + 1 => 35, + 2 => ' B1PR, 1 /* Battery 1 present */ +', + ), + 35 => + array ( + 0 => '', + 1 => 36, + 2 => '} +', + ), + 36 => + array ( + 0 => '', + 1 => 37, + 2 => ' +', + ), + 37 => + array ( + 0 => '', + 1 => 38, + 2 => '/* EC Registers */ +', + ), + 38 => + array ( + 0 => '', + 1 => 39, + 2 => '/* PAGE == 0x00 */ +', + ), + 39 => + array ( + 0 => '', + 1 => 40, + 2 => 'Field (ERAM, ByteAcc, NoLock, Preserve) +', + ), + 40 => + array ( + 0 => '', + 1 => 41, + 2 => '{ +', + ), + 41 => + array ( + 0 => '', + 1 => 42, + 2 => ' Offset(0xa0), +', + ), + 42 => + array ( + 0 => '', + 1 => 43, + 2 => ' BARC, 16, /* Battery remaining capacity */ +', + ), + 43 => + array ( + 0 => '', + 1 => 44, + 2 => ' BAFC, 16, /* Battery full charge capacity */ +', + ), + 44 => + array ( + 0 => '', + 1 => 45, + 2 => ' Offset(0xa8), +', + ), + 45 => + array ( + 0 => '', + 1 => 46, + 2 => ' BAPR, 16, /* Battery present rate */ +', + ), + 46 => + array ( + 0 => '', + 1 => 47, + 2 => ' BAVO, 16, /* Battery Voltage */ +', + ), + 47 => + array ( + 0 => '', + 1 => 48, + 2 => '} +', + ), + 48 => + array ( + 0 => '', + 1 => 49, + 2 => ' +', + ), + 49 => + array ( + 0 => '', + 1 => 50, + 2 => '/* PAGE == 0x01 */ +', + ), + 50 => + array ( + 0 => '', + 1 => 51, + 2 => 'Field (ERAM, ByteAcc, NoLock, Preserve) +', + ), + 51 => + array ( + 0 => '', + 1 => 52, + 2 => '{ +', + ), + 52 => + array ( + 0 => '', + 1 => 53, + 2 => ' Offset(0xa0), +', + ), + 53 => + array ( + 0 => '', + 1 => 54, + 2 => ' , 15, +', + ), + 54 => + array ( + 0 => '', + 1 => 55, + 2 => ' BAMA, 1, +', + ), + 55 => + array ( + 0 => '', + 1 => 56, + 2 => '} +', + ), + 56 => + array ( + 0 => '', + 1 => 57, + 2 => ' +', + ), + 57 => + array ( + 0 => '', + 1 => 58, + 2 => '/* PAGE == 0x02 */ +', + ), + 58 => + array ( + 0 => '', + 1 => 59, + 2 => 'Field (ERAM, ByteAcc, NoLock, Preserve) +', + ), + 59 => + array ( + 0 => '', + 1 => 60, + 2 => '{ +', + ), + 60 => + array ( + 0 => '', + 1 => 61, + 2 => ' Offset(0xa0), +', + ), + 61 => + array ( + 0 => '', + 1 => 62, + 2 => ' BADC, 16, /* Design Capacity */ +', + ), + 62 => + array ( + 0 => '', + 1 => 63, + 2 => ' BADV, 16, /* Design voltage */ +', + ), + 63 => + array ( + 0 => '', + 1 => 64, + 2 => ' , 16, +', + ), + 64 => + array ( + 0 => '', + 1 => 65, + 2 => ' , 16, +', + ), + 65 => + array ( + 0 => '', + 1 => 66, + 2 => ' , 16, +', + ), + 66 => + array ( + 0 => '', + 1 => 67, + 2 => ' BASN, 16, +', + ), + 67 => + array ( + 0 => '', + 1 => 68, + 2 => '} +', + ), + 68 => + array ( + 0 => '', + 1 => 69, + 2 => ' +', + ), + 69 => + array ( + 0 => '', + 1 => 70, + 2 => '/* PAGE == 0x04: Battery type */ +', + ), + 70 => + array ( + 0 => '', + 1 => 71, + 2 => 'Field (ERAM, ByteAcc, NoLock, Preserve) +', + ), + 71 => + array ( + 0 => '', + 1 => 72, + 2 => '{ +', + ), + 72 => + array ( + 0 => '', + 1 => 73, + 2 => ' Offset(0xa0), +', + ), + 73 => + array ( + 0 => '', + 1 => 74, + 2 => ' BATY, 32 +', + ), + 74 => + array ( + 0 => '', + 1 => 75, + 2 => '} +', + ), + 75 => + array ( + 0 => '', + 1 => 76, + 2 => ' +', + ), + 76 => + array ( + 0 => '', + 1 => 77, + 2 => ' +', + ), + 77 => + array ( + 0 => '', + 1 => 78, + 2 => '/* PAGE == 0x05: Battery OEM information */ +', + ), + 78 => + array ( + 0 => '', + 1 => 79, + 2 => 'Field (ERAM, ByteAcc, NoLock, Preserve) +', + ), + 79 => + array ( + 0 => '', + 1 => 80, + 2 => '{ +', + ), + 80 => + array ( + 0 => '', + 1 => 81, + 2 => ' Offset(0xa0), +', + ), + 81 => + array ( + 0 => '', + 1 => 82, + 2 => ' BAOE, 128 +', + ), + 82 => + array ( + 0 => '', + 1 => 83, + 2 => '} +', + ), + 83 => + array ( + 0 => '', + 1 => 84, + 2 => ' +', + ), + 84 => + array ( + 0 => '', + 1 => 85, + 2 => '/* PAGE == 0x06: Battery name */ +', + ), + 85 => + array ( + 0 => '', + 1 => 86, + 2 => 'Field (ERAM, ByteAcc, NoLock, Preserve) +', + ), + 86 => + array ( + 0 => '', + 1 => 87, + 2 => '{ +', + ), + 87 => + array ( + 0 => '', + 1 => 88, + 2 => ' Offset(0xa0), +', + ), + 88 => + array ( + 0 => '', + 1 => 89, + 2 => ' BANA, 128 +', + ), + 89 => + array ( + 0 => '', + 1 => 90, + 2 => '} +', + ), + 90 => + array ( + 0 => '', + 1 => 91, + 2 => ' +', + ), + 91 => + array ( + 0 => '', + 1 => 92, + 2 => '/* Arg0: Battery +', + ), + 92 => + array ( + 0 => '', + 1 => 93, + 2 => ' * Arg1: Battery Status Package +', + ), + 93 => + array ( + 0 => '', + 1 => 94, + 2 => ' * Arg2: charging +', + ), + 94 => + array ( + 0 => '', + 1 => 95, + 2 => ' * Arg3: discharging +', + ), + 95 => + array ( + 0 => '', + 1 => 96, + 2 => ' */ +', + ), + 96 => + array ( + 0 => '', + 1 => 97, + 2 => 'Method(BSTA, 4, NotSerialized) +', + ), + 97 => + array ( + 0 => '', + 1 => 98, + 2 => '{ +', + ), + 98 => + array ( + 0 => '', + 1 => 99, + 2 => ' Acquire(ECLK, 0xffff) +', + ), + 99 => + array ( + 0 => '', + 1 => 100, + 2 => ' Store(0, Local0) +', + ), + 100 => + array ( + 0 => '', + 1 => 101, + 2 => ' Or(1, Arg0, PAGE) +', + ), + 101 => + array ( + 0 => '', + 1 => 102, + 2 => ' Store(BAMA, Local1) +', + ), + 102 => + array ( + 0 => '', + 1 => 103, + 2 => ' Store(Arg0, PAGE) /* Battery dynamic information */ +', + ), + 103 => + array ( + 0 => '', + 1 => 104, + 2 => ' +', + ), + 104 => + array ( + 0 => '', + 1 => 105, + 2 => ' Store(BAPR, Local2) +', + ), + 105 => + array ( + 0 => '', + 1 => 106, + 2 => ' +', + ), + 106 => + array ( + 0 => '', + 1 => 107, + 2 => ' if (Arg2) // charging +', + ), + 107 => + array ( + 0 => '', + 1 => 108, + 2 => ' { +', + ), + 108 => + array ( + 0 => '', + 1 => 109, + 2 => ' Or(2, Local0, Local0) +', + ), + 109 => + array ( + 0 => '', + 1 => 110, + 2 => ' +', + ), + 110 => + array ( + 0 => '', + 1 => 111, + 2 => ' If (LGreaterEqual (Local2, 0x8000)) { +', + ), + 111 => + array ( + 0 => '', + 1 => 112, + 2 => ' Store(0, Local2) +', + ), + 112 => + array ( + 0 => '', + 1 => 113, + 2 => ' } +', + ), + 113 => + array ( + 0 => '', + 1 => 114, + 2 => ' } +', + ), + 114 => + array ( + 0 => '', + 1 => 115, + 2 => ' +', + ), + 115 => + array ( + 0 => '', + 1 => 116, + 2 => ' if (Arg3) // discharging +', + ), + 116 => + array ( + 0 => '', + 1 => 117, + 2 => ' { +', + ), + 117 => + array ( + 0 => '', + 1 => 118, + 2 => ' Or(1, Local0, Local0) +', + ), + 118 => + array ( + 0 => '', + 1 => 119, + 2 => ' Subtract(0x10000, Local2, Local2) +', + ), + 119 => + array ( + 0 => '', + 1 => 120, + 2 => ' } +', + ), + 120 => + array ( + 0 => '', + 1 => 121, + 2 => ' +', + ), + 121 => + array ( + 0 => '', + 1 => 122, + 2 => ' Store(Local0, Index(Arg1, 0x00)) +', + ), + 122 => + array ( + 0 => '', + 1 => 123, + 2 => ' +', + ), + 123 => + array ( + 0 => '', + 1 => 124, + 2 => ' if (Local1) { +', + ), + 124 => + array ( + 0 => '', + 1 => 125, + 2 => ' Multiply (BARC, 10, Index(Arg1, 2)) +', + ), + 125 => + array ( + 0 => '', + 1 => 126, + 2 => ' Multiply (Local2, BAVO, Local2) +', + ), + 126 => + array ( + 0 => '', + 1 => 127, + 2 => ' Divide (Local2, 1000, Local3, Index(Arg1, 1)) +', + ), + 127 => + array ( + 0 => '', + 1 => 128, + 2 => ' } else { +', + ), + 128 => + array ( + 0 => '', + 1 => 129, + 2 => ' Store(BARC, Index(Arg1, 2)) +', + ), + 129 => + array ( + 0 => '', + 1 => 130, + 2 => ' Store(Local2, Index(Arg1, 1)) +', + ), + 130 => + array ( + 0 => '', + 1 => 131, + 2 => ' } +', + ), + 131 => + array ( + 0 => '', + 1 => 132, + 2 => ' Store(BAVO, Index(Arg1, 3)) +', + ), + 132 => + array ( + 0 => '', + 1 => 133, + 2 => ' Release(ECLK) +', + ), + 133 => + array ( + 0 => '', + 1 => 134, + 2 => ' Return (Arg1) +', + ), + 134 => + array ( + 0 => '', + 1 => 135, + 2 => '} +', + ), + 135 => + array ( + 0 => '', + 1 => 136, + 2 => ' +', + ), + 136 => + array ( + 0 => '', + 1 => 137, + 2 => 'Method(BINF, 2, NotSerialized) +', + ), + 137 => + array ( + 0 => '', + 1 => 138, + 2 => '{ +', + ), + 138 => + array ( + 0 => '', + 1 => 139, + 2 => ' Acquire(ECLK, 0xffff) +', + ), + 139 => + array ( + 0 => '', + 1 => 140, + 2 => ' Or(1, Arg1, PAGE) /* Battery 0 static information */ +', + ), + 140 => + array ( + 0 => '', + 1 => 141, + 2 => ' Xor(BAMA, 1, Index(Arg0, 0)) +', + ), + 141 => + array ( + 0 => '', + 1 => 142, + 2 => ' Store(BAMA, Local0) +', + ), + 142 => + array ( + 0 => '', + 1 => 143, + 2 => ' Store(Arg1, PAGE) +', + ), + 143 => + array ( + 0 => '', + 1 => 144, + 2 => ' Store(BAFC, Local2) +', + ), + 144 => + array ( + 0 => '', + 1 => 145, + 2 => ' Or(2, Arg1, PAGE) +', + ), + 145 => + array ( + 0 => '', + 1 => 146, + 2 => ' Store(BADC, Local1) +', + ), + 146 => + array ( + 0 => '', + 1 => 147, + 2 => ' +', + ), + 147 => + array ( + 0 => '', + 1 => 148, + 2 => ' if (Local0) +', + ), + 148 => + array ( + 0 => '', + 1 => 149, + 2 => ' { +', + ), + 149 => + array ( + 0 => '', + 1 => 150, + 2 => ' Multiply (Local1, 10, Local1) +', + ), + 150 => + array ( + 0 => '', + 1 => 151, + 2 => ' Multiply (Local2, 10, Local2) +', + ), + 151 => + array ( + 0 => '', + 1 => 152, + 2 => ' } +', + ), + 152 => + array ( + 0 => '', + 1 => 153, + 2 => ' +', + ), + 153 => + array ( + 0 => '', + 1 => 154, + 2 => ' Store(Local1, Index(Arg0, 1)) // Design Capacity +', + ), + 154 => + array ( + 0 => '', + 1 => 155, + 2 => ' Store(Local2, Index(Arg0, 2)) // Last full charge capacity +', + ), + 155 => + array ( + 0 => '', + 1 => 156, + 2 => ' Store(BADV, Index(Arg0, 4)) // Design Voltage +', + ), + 156 => + array ( + 0 => '', + 1 => 157, + 2 => ' Divide (Local2, 20, Local0, Index(Arg0, 5)) // Warning capacity +', + ), + 157 => + array ( + 0 => '', + 1 => 158, + 2 => ' +', + ), + 158 => + array ( + 0 => '', + 1 => 159, + 2 => ' Store (BASN, Local0) +', + ), + 159 => + array ( + 0 => '', + 1 => 160, + 2 => ' Name (SERN, Buffer (0x06) { " " }) +', + ), + 160 => + array ( + 0 => '', + 1 => 161, + 2 => ' Store (4, Local1) +', + ), + 161 => + array ( + 0 => '', + 1 => 162, + 2 => ' While (Local0) +', + ), + 162 => + array ( + 0 => '', + 1 => 163, + 2 => ' { +', + ), + 163 => + array ( + 0 => '', + 1 => 164, + 2 => ' Divide (Local0, 0x0A, Local2, Local0) +', + ), + 164 => + array ( + 0 => '', + 1 => 165, + 2 => ' Add (Local2, 48, Index (SERN, Local1)) +', + ), + 165 => + array ( + 0 => '', + 1 => 166, + 2 => ' Decrement (Local1) +', + ), + 166 => + array ( + 0 => '', + 1 => 167, + 2 => ' } +', + ), + 167 => + array ( + 0 => '', + 1 => 168, + 2 => ' Store (SERN, Index (Arg0, 10)) // Serial Number +', + ), + 168 => + array ( + 0 => '', + 1 => 169, + 2 => ' +', + ), + 169 => + array ( + 0 => '', + 1 => 170, + 2 => ' Or(4, Arg1, PAGE) +', + ), + 170 => + array ( + 0 => '', + 1 => 171, + 2 => ' Name (TYPE, Buffer() { 0, 0, 0, 0, 0 }) +', + ), + 171 => + array ( + 0 => '', + 1 => 172, + 2 => ' Store(BATY, TYPE) +', + ), + 172 => + array ( + 0 => '', + 1 => 173, + 2 => ' Store(TYPE, Index (Arg0, 11)) // Battery type +', + ), + 173 => + array ( + 0 => '', + 1 => 174, + 2 => ' Or(5, Arg1, PAGE) +', + ), + 174 => + array ( + 0 => '', + 1 => 175, + 2 => ' Store(BAOE, Index (Arg0, 12)) // OEM information +', + ), + 175 => + array ( + 0 => '', + 1 => 176, + 2 => ' Or(6, Arg1, PAGE) +', + ), + 176 => + array ( + 0 => '', + 1 => 177, + 2 => ' Store(BANA, Index (Arg0, 9)) // Model number +', + ), + 177 => + array ( + 0 => '', + 1 => 178, + 2 => ' Release(ECLK) +', + ), + 178 => + array ( + 0 => '', + 1 => 179, + 2 => ' Return (Arg0) +', + ), + 179 => + array ( + 0 => '', + 1 => 180, + 2 => '} +', + ), + 180 => + array ( + 0 => '', + 1 => 181, + 2 => ' +', + ), + 181 => + array ( + 0 => '', + 1 => 182, + 2 => 'Device (BAT0) +', + ), + 182 => + array ( + 0 => '', + 1 => 183, + 2 => '{ +', + ), + 183 => + array ( + 0 => '', + 1 => 184, + 2 => ' Name (_HID, EisaId ("PNP0C0A")) +', + ), + 184 => + array ( + 0 => '', + 1 => 185, + 2 => ' Name (_UID, 0x00) +', + ), + 185 => + array ( + 0 => '', + 1 => 186, + 2 => ' Name (_PCL, Package () { \\_SB }) +', + ), + 186 => + array ( + 0 => '', + 1 => 187, + 2 => ' +', + ), + 187 => + array ( + 0 => '', + 1 => 188, + 2 => ' Name (BATS, Package () +', + ), + 188 => + array ( + 0 => '', + 1 => 189, + 2 => ' { +', + ), + 189 => + array ( + 0 => '', + 1 => 190, + 2 => ' 0x00, // 0: PowerUnit: Report in mWh +', + ), + 190 => + array ( + 0 => '', + 1 => 191, + 2 => ' 0xFFFFFFFF, // 1: Design cap +', + ), + 191 => + array ( + 0 => '', + 1 => 192, + 2 => ' 0xFFFFFFFF, // 2: Last full charge cap +', + ), + 192 => + array ( + 0 => '', + 1 => 193, + 2 => ' 0x01, // 3: Battery Technology +', + ), + 193 => + array ( + 0 => '', + 1 => 194, + 2 => ' 10800, // 4: Design Voltage (mV) +', + ), + 194 => + array ( + 0 => '', + 1 => 195, + 2 => ' 0x00, // 5: Warning design capacity +', + ), + 195 => + array ( + 0 => '', + 1 => 196, + 2 => ' 200, // 6: Low design capacity +', + ), + 196 => + array ( + 0 => '', + 1 => 197, + 2 => ' 1, // 7: granularity1 +', + ), + 197 => + array ( + 0 => '', + 1 => 198, + 2 => ' 1, // 8: granularity2 +', + ), + 198 => + array ( + 0 => '', + 1 => 199, + 2 => ' "", // 9: Model number +', + ), + 199 => + array ( + 0 => '', + 1 => 200, + 2 => ' "", // A: Serial number +', + ), + 200 => + array ( + 0 => '', + 1 => 201, + 2 => ' "", // B: Battery Type +', + ), + 201 => + array ( + 0 => '', + 1 => 202, + 2 => ' "" // C: OEM information +', + ), + 202 => + array ( + 0 => '', + 1 => 203, + 2 => ' }) +', + ), + 203 => + array ( + 0 => '', + 1 => 204, + 2 => ' +', + ), + 204 => + array ( + 0 => '', + 1 => 205, + 2 => ' Method (_BIF, 0, NotSerialized) +', + ), + 205 => + array ( + 0 => '', + 1 => 206, + 2 => ' { +', + ), + 206 => + array ( + 0 => '', + 1 => 207, + 2 => ' Return (BINF(BATS, 0)) +', + ), + 207 => + array ( + 0 => '', + 1 => 208, + 2 => ' } +', + ), + 208 => + array ( + 0 => '', + 1 => 209, + 2 => ' +', + ), + 209 => + array ( + 0 => '', + 1 => 210, + 2 => ' Name (BATI, Package () +', + ), + 210 => + array ( + 0 => '', + 1 => 211, + 2 => ' { +', + ), + 211 => + array ( + 0 => '', + 1 => 212, + 2 => ' 0, // Battery State +', + ), + 212 => + array ( + 0 => '', + 1 => 213, + 2 => ' // Bit 0 - discharge +', + ), + 213 => + array ( + 0 => '', + 1 => 214, + 2 => ' // Bit 1 - charge +', + ), + 214 => + array ( + 0 => '', + 1 => 215, + 2 => ' // Bit 2 - critical state +', + ), + 215 => + array ( + 0 => '', + 1 => 216, + 2 => ' 0, // Battery present Rate +', + ), + 216 => + array ( + 0 => '', + 1 => 217, + 2 => ' 0, // Battery remaining capacity +', + ), + 217 => + array ( + 0 => '', + 1 => 218, + 2 => ' 0 // Battery present voltage +', + ), + 218 => + array ( + 0 => '', + 1 => 219, + 2 => ' }) +', + ), + 219 => + array ( + 0 => '', + 1 => 220, + 2 => ' +', + ), + 220 => + array ( + 0 => '', + 1 => 221, + 2 => ' Method (_BST, 0, NotSerialized) +', + ), + 221 => + array ( + 0 => '', + 1 => 222, + 2 => ' { +', + ), + 222 => + array ( + 0 => '', + 1 => 223, + 2 => ' if (B0PR) { +', + ), + 223 => + array ( + 0 => '', + 1 => 224, + 2 => ' Return (BSTA(0, BATI, B0CH, B0DI)) +', + ), + 224 => + array ( + 0 => '', + 1 => 225, + 2 => ' } else { +', + ), + 225 => + array ( + 0 => '', + 1 => 226, + 2 => ' Return (BATS) +', + ), + 226 => + array ( + 0 => '', + 1 => 227, + 2 => ' } +', + ), + 227 => + array ( + 0 => '', + 1 => 228, + 2 => ' } +', + ), + 228 => + array ( + 0 => '', + 1 => 229, + 2 => ' +', + ), + 229 => + array ( + 0 => '', + 1 => 230, + 2 => ' Method (_STA, 0, NotSerialized) +', + ), + 230 => + array ( + 0 => '', + 1 => 231, + 2 => ' { +', + ), + 231 => + array ( + 0 => '', + 1 => 232, + 2 => ' if (B0PR) { +', + ), + 232 => + array ( + 0 => '', + 1 => 233, + 2 => ' Return (0x1f) +', + ), + 233 => + array ( + 0 => '', + 1 => 234, + 2 => ' } else { +', + ), + 234 => + array ( + 0 => '', + 1 => 235, + 2 => ' Return (0x0f) +', + ), + 235 => + array ( + 0 => '', + 1 => 236, + 2 => ' } +', + ), + 236 => + array ( + 0 => '', + 1 => 237, + 2 => ' } +', + ), + 237 => + array ( + 0 => '', + 1 => 238, + 2 => '} +', + ), + 238 => + array ( + 0 => '', + 1 => 239, + 2 => ' +', + ), + 239 => + array ( + 0 => '', + 1 => 240, + 2 => 'Device (BAT1) +', + ), + 240 => + array ( + 0 => '', + 1 => 241, + 2 => '{ +', + ), + 241 => + array ( + 0 => '', + 1 => 242, + 2 => ' Name (_HID, EisaId ("PNP0C0A")) +', + ), + 242 => + array ( + 0 => '', + 1 => 243, + 2 => ' Name (_UID, 0x00) +', + ), + 243 => + array ( + 0 => '', + 1 => 244, + 2 => ' Name (_PCL, Package () { \\_SB }) +', + ), + 244 => + array ( + 0 => '', + 1 => 245, + 2 => ' +', + ), + 245 => + array ( + 0 => '', + 1 => 246, + 2 => ' Name (BATS, Package () +', + ), + 246 => + array ( + 0 => '', + 1 => 247, + 2 => ' { +', + ), + 247 => + array ( + 0 => '', + 1 => 248, + 2 => ' 0x00, // 0: PowerUnit: Report in mWh +', + ), + 248 => + array ( + 0 => '', + 1 => 249, + 2 => ' 0xFFFFFFFF, // 1: Design cap +', + ), + 249 => + array ( + 0 => '', + 1 => 250, + 2 => ' 0xFFFFFFFF, // 2: Last full charge cap +', + ), + 250 => + array ( + 0 => '', + 1 => 251, + 2 => ' 0x01, // 3: Battery Technology +', + ), + 251 => + array ( + 0 => '', + 1 => 252, + 2 => ' 10800, // 4: Design Voltage (mV) +', + ), + 252 => + array ( + 0 => '', + 1 => 253, + 2 => ' 0x00, // 5: Warning design capacity +', + ), + 253 => + array ( + 0 => '', + 1 => 254, + 2 => ' 200, // 6: Low design capacity +', + ), + 254 => + array ( + 0 => '', + 1 => 255, + 2 => ' 1, // 7: granularity1 +', + ), + 255 => + array ( + 0 => '', + 1 => 256, + 2 => ' 1, // 8: granularity2 +', + ), + 256 => + array ( + 0 => '', + 1 => 257, + 2 => ' "", // 9: Model number +', + ), + 257 => + array ( + 0 => '', + 1 => 258, + 2 => ' "", // A: Serial number +', + ), + 258 => + array ( + 0 => '', + 1 => 259, + 2 => ' "", // B: Battery Type +', + ), + 259 => + array ( + 0 => '', + 1 => 260, + 2 => ' "" // C: OEM information +', + ), + 260 => + array ( + 0 => '', + 1 => 261, + 2 => ' }) +', + ), + 261 => + array ( + 0 => '', + 1 => 262, + 2 => ' +', + ), + 262 => + array ( + 0 => '', + 1 => 263, + 2 => ' Method (_BIF, 0, NotSerialized) +', + ), + 263 => + array ( + 0 => '', + 1 => 264, + 2 => ' { +', + ), + 264 => + array ( + 0 => '', + 1 => 265, + 2 => ' Return (BINF(BATS, 0x10)) +', + ), + 265 => + array ( + 0 => '', + 1 => 266, + 2 => ' } +', + ), + 266 => + array ( + 0 => '', + 1 => 267, + 2 => ' +', + ), + 267 => + array ( + 0 => '', + 1 => 268, + 2 => ' Name (BATI, Package () +', + ), + 268 => + array ( + 0 => '', + 1 => 269, + 2 => ' { +', + ), + 269 => + array ( + 0 => '', + 1 => 270, + 2 => ' 0, // Battery State +', + ), + 270 => + array ( + 0 => '', + 1 => 271, + 2 => ' // Bit 0 - discharge +', + ), + 271 => + array ( + 0 => '', + 1 => 272, + 2 => ' // Bit 1 - charge +', + ), + 272 => + array ( + 0 => '', + 1 => 273, + 2 => ' // Bit 2 - critical state +', + ), + 273 => + array ( + 0 => '', + 1 => 274, + 2 => ' 0, // Battery present Rate +', + ), + 274 => + array ( + 0 => '', + 1 => 275, + 2 => ' 0, // Battery remaining capacity +', + ), + 275 => + array ( + 0 => '', + 1 => 276, + 2 => ' 0 // Battery present voltage +', + ), + 276 => + array ( + 0 => '', + 1 => 277, + 2 => ' }) +', + ), + 277 => + array ( + 0 => '', + 1 => 278, + 2 => ' +', + ), + 278 => + array ( + 0 => '', + 1 => 279, + 2 => ' Method (_BST, 0, NotSerialized) +', + ), + 279 => + array ( + 0 => '', + 1 => 280, + 2 => ' { +', + ), + 280 => + array ( + 0 => '', + 1 => 281, + 2 => ' if (B1PR) { +', + ), + 281 => + array ( + 0 => '', + 1 => 282, + 2 => ' Return (BSTA(0x10, BATI, B1CH, B1DI)) +', + ), + 282 => + array ( + 0 => '', + 1 => 283, + 2 => ' } else { +', + ), + 283 => + array ( + 0 => '', + 1 => 284, + 2 => ' Return (BATS) +', + ), + 284 => + array ( + 0 => '', + 1 => 285, + 2 => ' } +', + ), + 285 => + array ( + 0 => '', + 1 => 286, + 2 => ' } +', + ), + 286 => + array ( + 0 => '', + 1 => 287, + 2 => ' +', + ), + 287 => + array ( + 0 => '', + 1 => 288, + 2 => ' Method (_STA, 0, NotSerialized) +', + ), + 288 => + array ( + 0 => '', + 1 => 289, + 2 => ' { +', + ), + 289 => + array ( + 0 => '', + 1 => 290, + 2 => ' if (B1PR) { +', + ), + 290 => + array ( + 0 => '', + 1 => 291, + 2 => ' Return (0x1f) +', + ), + 291 => + array ( + 0 => '', + 1 => 292, + 2 => ' } else { +', + ), + 292 => + array ( + 0 => '', + 1 => 293, + 2 => ' Return (0x0f) +', + ), + 293 => + array ( + 0 => '', + 1 => 294, + 2 => ' } +', + ), + 294 => + array ( + 0 => '', + 1 => 295, + 2 => ' } +', + ), + 295 => + array ( + 0 => '', + 1 => 296, + 2 => '} +', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '296', + ), + ), + ), + ), + 'src/mainboard/lenovo/x60/acpi/beep.asl' => + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => '/* +', + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => ' * This file is part of the coreboot project. +', + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => ' * +', + ), + 3 => + array ( + 0 => '', + 1 => 4, + 2 => ' * Copyright (c) 2011 Sven Schnelle +', + ), + 4 => + array ( + 0 => '', + 1 => 5, + 2 => ' * +', + ), + 5 => + array ( + 0 => '', + 1 => 6, + 2 => ' * This program is free software; you can redistribute it and/or +', + ), + 6 => + array ( + 0 => '', + 1 => 7, + 2 => ' * modify it under the terms of the GNU General Public License as +', + ), + 7 => + array ( + 0 => '', + 1 => 8, + 2 => ' * published by the Free Software Foundation; version 2 of +', + ), + 8 => + array ( + 0 => '', + 1 => 9, + 2 => ' * the License. +', + ), + 9 => + array ( + 0 => '', + 1 => 10, + 2 => ' * +', + ), + 10 => + array ( + 0 => '', + 1 => 11, + 2 => ' * This program is distributed in the hope that it will be useful, +', + ), + 11 => + array ( + 0 => '', + 1 => 12, + 2 => ' * but WITHOUT ANY WARRANTY; without even the implied warranty of +', + ), + 12 => + array ( + 0 => '', + 1 => 13, + 2 => ' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +', + ), + 13 => + array ( + 0 => '', + 1 => 14, + 2 => ' * GNU General Public License for more details. +', + ), + 14 => + array ( + 0 => '', + 1 => 15, + 2 => ' * +', + ), + 15 => + array ( + 0 => '', + 1 => 16, + 2 => ' * You should have received a copy of the GNU General Public License +', + ), + 16 => + array ( + 0 => '', + 1 => 17, + 2 => ' * along with this program; if not, write to the Free Software +', + ), + 17 => + array ( + 0 => '', + 1 => 18, + 2 => ' * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +', + ), + 18 => + array ( + 0 => '', + 1 => 19, + 2 => ' * MA 02110-1301 USA +', + ), + 19 => + array ( + 0 => '', + 1 => 20, + 2 => ' */ +', + ), + 20 => + array ( + 0 => '', + 1 => 21, + 2 => ' +', + ), + 21 => + array ( + 0 => '', + 1 => 22, + 2 => 'Field(ERAM, ByteAcc, NoLock, Preserve) +', + ), + 22 => + array ( + 0 => '', + 1 => 23, + 2 => '{ +', + ), + 23 => + array ( + 0 => '', + 1 => 24, + 2 => ' Offset (0x06), +', + ), + 24 => + array ( + 0 => '', + 1 => 25, + 2 => ' SNDS, 8 /* Write to this register to generate sound */ +', + ), + 25 => + array ( + 0 => '', + 1 => 26, + 2 => ' +', + ), + 26 => + array ( + 0 => '', + 1 => 27, + 2 => '} +', + ), + 27 => + array ( + 0 => '', + 1 => 28, + 2 => ' +', + ), + 28 => + array ( + 0 => '', + 1 => 29, + 2 => 'Method(BEEP, 1, NotSerialized) +', + ), + 29 => + array ( + 0 => '', + 1 => 30, + 2 => '{ +', + ), + 30 => + array ( + 0 => '', + 1 => 31, + 2 => ' Store (Arg0, SNDS) +', + ), + 31 => + array ( + 0 => '', + 1 => 32, + 2 => '} +', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '32', + ), + ), + ), + ), + 'src/mainboard/lenovo/x60/dsdt.asl' => + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => '/* +', + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => ' * This file is part of the coreboot project. +', + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => ' * +', + ), + 3 => + array ( + 0 => '', + 1 => 4, + 2 => ' * Copyright (C) 2007-2009 coresystems GmbH +', + ), + 4 => + array ( + 0 => '', + 1 => 5, + 2 => ' * +', + ), + 5 => + array ( + 0 => '', + 1 => 6, + 2 => ' * This program is free software; you can redistribute it and/or +', + ), + 6 => + array ( + 0 => '', + 1 => 7, + 2 => ' * modify it under the terms of the GNU General Public License as +', + ), + 7 => + array ( + 0 => '', + 1 => 8, + 2 => ' * published by the Free Software Foundation; version 2 of +', + ), + 8 => + array ( + 0 => '', + 1 => 9, + 2 => ' * the License. +', + ), + 9 => + array ( + 0 => '', + 1 => 10, + 2 => ' * +', + ), + 10 => + array ( + 0 => '', + 1 => 11, + 2 => ' * This program is distributed in the hope that it will be useful, +', + ), + 11 => + array ( + 0 => '', + 1 => 12, + 2 => ' * but WITHOUT ANY WARRANTY; without even the implied warranty of +', + ), + 12 => + array ( + 0 => '', + 1 => 13, + 2 => ' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +', + ), + 13 => + array ( + 0 => '', + 1 => 14, + 2 => ' * GNU General Public License for more details. +', + ), + 14 => + array ( + 0 => '', + 1 => 15, + 2 => ' * +', + ), + 15 => + array ( + 0 => '', + 1 => 16, + 2 => ' * You should have received a copy of the GNU General Public License +', + ), + 16 => + array ( + 0 => '', + 1 => 17, + 2 => ' * along with this program; if not, write to the Free Software +', + ), + 17 => + array ( + 0 => '', + 1 => 18, + 2 => ' * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +', + ), + 18 => + array ( + 0 => '', + 1 => 19, + 2 => ' * MA 02110-1301 USA +', + ), + 19 => + array ( + 0 => '', + 1 => 20, + 2 => ' */ +', + ), + 20 => + array ( + 0 => '', + 1 => 21, + 2 => ' +', + ), + 21 => + array ( + 0 => '', + 1 => 22, + 2 => 'DefinitionBlock( +', + ), + 22 => + array ( + 0 => '', + 1 => 23, + 2 => ' "dsdt.aml", +', + ), + 23 => + array ( + 0 => '', + 1 => 24, + 2 => ' "DSDT", +', + ), + 24 => + array ( + 0 => '', + 1 => 25, + 2 => ' 0x03, // DSDT revision: ACPI v3.0 +', + ), + 25 => + array ( + 0 => '', + 1 => 26, + 2 => ' "COREv4", // OEM id +', + ), + 26 => + array ( + 0 => '', + 1 => 27, + 2 => ' "COREBOOT", // OEM table id +', + ), + 27 => + array ( + 0 => '', + 1 => 28, + 2 => ' 0x20090419 // OEM revision +', + ), + 28 => + array ( + 0 => '', + 1 => 29, + 2 => ') +', + ), + 29 => + array ( + 0 => '', + 1 => 30, + 2 => '{ +', + ), + 30 => + array ( + 0 => '', + 1 => 31, + 2 => ' // Some generic macros +', + ), + 31 => + array ( + 0 => '', + 1 => 32, + 2 => ' #include "acpi/platform.asl" +', + ), + 32 => + array ( + 0 => '', + 1 => 33, + 2 => ' +', + ), + 33 => + array ( + 0 => '', + 1 => 34, + 2 => ' // global NVS and variables +', + ), + 34 => + array ( + 0 => '', + 1 => 35, + 2 => ' #include "../../../southbridge/intel/i82801gx/acpi/globalnvs.asl" +', + ), + 35 => + array ( + 0 => '', + 1 => 36, + 2 => ' +', + ), + 36 => + array ( + 0 => '', + 1 => 37, + 2 => ' // General Purpose Events +', + ), + 37 => + array ( + 0 => '', + 1 => 38, + 2 => ' #include "acpi/gpe.asl" +', + ), + 38 => + array ( + 0 => '', + 1 => 39, + 2 => ' +', + ), + 39 => + array ( + 0 => '', + 1 => 40, + 2 => ' // mainboard specific devices +', + ), + 40 => + array ( + 0 => '', + 1 => 41, + 2 => ' #include "acpi/mainboard.asl" +', + ), + 41 => + array ( + 0 => '', + 1 => 42, + 2 => ' +', + ), + 42 => + array ( + 0 => '', + 1 => 43, + 2 => ' // Thermal Zone +', + ), + 43 => + array ( + 0 => '', + 1 => 44, + 2 => ' #include "acpi/thermal.asl" +', + ), + 44 => + array ( + 0 => '', + 1 => 45, + 2 => ' +', + ), + 45 => + array ( + 0 => '', + 1 => 46, + 2 => ' Scope (\\_SB) { +', + ), + 46 => + array ( + 0 => '', + 1 => 47, + 2 => ' Device (PCI0) +', + ), + 47 => + array ( + 0 => '', + 1 => 48, + 2 => ' { +', + ), + 48 => + array ( + 0 => '', + 1 => 49, + 2 => ' #include "../../../northbridge/intel/i945/acpi/i945.asl" +', + ), + 49 => + array ( + 0 => '', + 1 => 50, + 2 => ' #include "../../../southbridge/intel/i82801gx/acpi/ich7.asl" +', + ), + 50 => + array ( + 0 => '', + 1 => 51, + 2 => ' } +', + ), + 51 => + array ( + 0 => '', + 1 => 52, + 2 => ' } +', + ), + 52 => + array ( + 0 => '', + 1 => 53, + 2 => ' +', + ), + 53 => + array ( + 0 => '', + 1 => 54, + 2 => ' /* Chipset specific sleep states */ +', + ), + 54 => + array ( + 0 => '', + 1 => 55, + 2 => ' #include "../../../southbridge/intel/i82801gx/acpi/sleepstates.asl" +', + ), + 55 => + array ( + 0 => '', + 1 => 56, + 2 => '} +', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '56', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-02-svn-new-files-with-properties.diff b/test/data/IDF_DiffTest/test-02-svn-new-files-with-properties.diff index 8e6bf24..6cb2152 100644 --- a/test/data/IDF_DiffTest/test-02-svn-new-files-with-properties.diff +++ b/test/data/IDF_DiffTest/test-02-svn-new-files-with-properties.diff @@ -15,375 +15,10 @@ Index: LinuxBIOSv1/src/include/cpu/i786/cpufixup.h + + -Eigenschaftsänderungen: LinuxBIOSv1\src\include\cpu\i786\cpufixup.h +Eigenschafts�nderungen: LinuxBIOSv1\src\include\cpu\i786\cpufixup.h ___________________________________________________________________ -Hinzugefügt: svn:keywords +Hinzugef�gt: svn:keywords + Author Date Id Revision -Hinzugefügt: svn:eol-style - + native - -Index: LinuxBIOSv1/src/mainboard/tyan/guiness/cmos.layout -=================================================================== ---- LinuxBIOSv1/src/mainboard/tyan/guiness/cmos.layout (Revision 0) -+++ LinuxBIOSv1/src/mainboard/tyan/guiness/cmos.layout (Revision 665) -@@ -0,0 +1,63 @@ -+entries -+ -+#start-bit length config config-ID name -+#0 8 r 0 seconds -+#8 8 r 0 alarm_seconds -+#16 8 r 0 minutes -+#24 8 r 0 alarm_minutes -+#32 8 r 0 hours -+#40 8 r 0 alarm_hours -+#48 8 r 0 day_of_week -+#56 8 r 0 day_of_month -+#64 8 r 0 month -+#72 8 r 0 year -+#80 4 r 0 rate_select -+#84 3 r 0 REF_Clock -+#87 1 r 0 UIP -+#88 1 r 0 auto_switch_DST -+#89 1 r 0 24_hour_mode -+#90 1 r 0 binary_values_enable -+#91 1 r 0 square-wave_out_enable -+#92 1 r 0 update_finished_enable -+#93 1 r 0 alarm_interrupt_enable -+#94 1 r 0 periodic_interrupt_enable -+#95 1 r 0 disable_clock_updates -+#96 288 r 0 temporary_filler -+0 384 r 0 reserved_memory -+384 1 e 4 boot_option -+385 1 e 4 last_boot -+386 3 e 5 baud_rate -+392 4 e 6 debug_level -+396 1 e 1 power_on_after_fail -+#401 1 e 1 ECC_memory -+#402 1 e 2 hda_disk -+#403 1 e 2 hdb_disk -+#404 1 e 2 hdc_disk -+#405 1 e 2 hdd_disk -+#406 2 e 7 boot_device -+ -+enumerations -+ -+#ID value text -+1 0 Disable -+1 1 Enable -+#2 0 No -+#2 1 Yes -+4 0 Fallback -+4 1 Normal -+5 0 115200 -+5 1 57600 -+5 2 38400 -+5 3 19200 -+5 4 9600 -+5 5 4800 -+5 6 2400 -+5 7 1200 -+6 6 Notice -+6 7 Info -+6 8 Debug -+6 9 Spew -+#7 0 Network -+#7 1 HDD -+#7 2 Floppy -+#7 3 ROM - -Eigenschaftsänderungen: LinuxBIOSv1\src\mainboard\tyan\guiness\cmos.layout -___________________________________________________________________ -Hinzugefügt: svn:keywords - + Author Date Id Revision -Hinzugefügt: svn:eol-style - + native - -Index: LinuxBIOSv1/src/config/linuxbios_c.ld -=================================================================== ---- LinuxBIOSv1/src/config/linuxbios_c.ld (Revision 0) -+++ LinuxBIOSv1/src/config/linuxbios_c.ld (Revision 665) -@@ -0,0 +1,105 @@ -+/* -+ * Memory map: -+ * -+ * _RAMBASE -+ * : data segment -+ * : bss segment -+ * : heap -+ * : stack -+ */ -+/* -+ * Bootstrap code for the STPC Consumer -+ * Copyright (c) 1999 by Net Insight AB. All Rights Reserved. -+ * -+ * $Id$ -+ * -+ */ -+ -+/* -+ * Written by Johan Rydberg, based on work by Daniel Kahlin. -+ * Rewritten by Eric Biederman -+ */ -+/* -+ * We use ELF as output format. So that we can -+ * debug the code in some form. -+ */ -+INCLUDE ldoptions -+ -+ENTRY(_start) -+ -+SECTIONS -+{ -+ . = _RAMBASE; -+ /* -+ * First we place the code and read only data (typically const declared). -+ * This get placed in rom. -+ */ -+ .text : { -+ _text = .; -+ *(.text); -+ *(.text.*); -+ . = ALIGN(16); -+ _etext = .; -+ } -+ .rodata : { -+ _rodata = .; -+ . = ALIGN(4); -+ streams = . ; -+ *(.rodata.streams) -+ estreams = .; -+ . = ALIGN(4); -+ pci_drivers = . ; -+ *(.rodata.pci_drivers) -+ epci_drivers = . ; -+ *(.rodata) -+ *(.rodata.*) -+ _erodata = .; -+ } -+ /* -+ * After the code we place initialized data (typically initialized -+ * global variables). This gets copied into ram by startup code. -+ * __data_start and __data_end shows where in ram this should be placed, -+ * whereas __data_loadstart and __data_loadend shows where in rom to -+ * copy from. -+ */ -+ .data : { -+ _data = .; -+ *(.data) -+ _edata = .; -+ } -+ /* -+ * bss does not contain data, it is just a space that should be zero -+ * initialized on startup. (typically uninitialized global variables) -+ * crt0.S fills between _bss and _ebss with zeroes. -+ */ -+ _bss = .; -+ .bss . : { -+ *(.bss) -+ *(.sbss) -+ *(COMMON) -+ } -+ _ebss = .; -+ _end = .; -+ _stack = .; -+ .stack . : { -+ /* Reserve a stack for each possible cpu, +1 extra */ -+ . = ((MAX_CPUS * STACK_SIZE) + STACK_SIZE) ; -+ } -+ _estack = .; -+ _heap = .; -+ .heap . : { -+ /* Reserve 256K for the heap */ -+ . = HEAP_SIZE ; -+ . = ALIGN(4); -+ } -+ _eheap = .; -+ /* The ram segment -+ * This is all address of the memory resident copy of linuxBIOS. -+ */ -+ _ram_seg = _text; -+ _eram_seg = _eheap; -+ /DISCARD/ : { -+ *(.comment) -+ *(.note) -+ } -+} - -Eigenschaftsänderungen: LinuxBIOSv1\src\config\linuxbios_c.ld -___________________________________________________________________ -Hinzugefügt: svn:keywords - + Author Date Id Revision -Hinzugefügt: svn:eol-style - + native - -Index: LinuxBIOSv1/src/arch/i386/include/arch/rom_segs.h -=================================================================== ---- LinuxBIOSv1/src/arch/i386/include/arch/rom_segs.h (Revision 0) -+++ LinuxBIOSv1/src/arch/i386/include/arch/rom_segs.h (Revision 665) -@@ -0,0 +1,10 @@ -+#ifndef ROM_SEGS_H -+#define ROM_SEGS_H -+ -+#define ROM_CODE_SEG 0x08 -+#define ROM_DATA_SEG 0x10 -+ -+#define CACHE_RAM_CODE_SEG 0x18 -+#define CACHE_RAM_DATA_SEG 0x20 -+ -+#endif /* ROM_SEGS_H */ - -Eigenschaftsänderungen: LinuxBIOSv1\src\arch\i386\include\arch\rom_segs.h -___________________________________________________________________ -Hinzugefügt: svn:keywords - + Author Date Id Revision -Hinzugefügt: svn:eol-style - + native - -Index: LinuxBIOSv1/src/arch/i386/lib/c_start.S -=================================================================== ---- LinuxBIOSv1/src/arch/i386/lib/c_start.S (Revision 0) -+++ LinuxBIOSv1/src/arch/i386/lib/c_start.S (Revision 665) -@@ -0,0 +1,135 @@ -+#include -+#include -+#ifdef SMP -+#include -+#endif -+ .section ".text" -+ .code32 -+ .globl _start -+_start: -+ cli -+ lgdt %cs:gdtaddr -+ ljmp $0x10, $1f -+1: movl $0x18, %ax -+ movl %eax, %ds -+ movl %eax, %es -+ movl %eax, %ss -+ movl %eax, %fs -+ movl %eax, %gs -+ -+ intel_chip_post_macro(0x13) /* post 12 */ -+ -+ /** clear stack */ -+ leal EXT(_stack), %edi -+ movl $EXT(_estack), %ecx -+ subl %edi, %ecx -+ xorl %eax, %eax -+ rep -+ stosb -+ -+ /** clear bss */ -+ leal EXT(_bss), %edi -+ movl $EXT(_ebss), %ecx -+ subl %edi, %ecx -+ jz .Lnobss -+ xorl %eax, %eax -+ rep -+ stosb -+.Lnobss: -+ -+ /* set new stack */ -+ movl $_estack, %esp -+#ifdef SMP -+ /* Get the cpu id */ -+ movl $APIC_DEFAULT_BASE, %edi -+ movl APIC_ID(%edi), %eax -+ shrl $24, %eax -+ -+ /* Get the cpu index (MAX_CPUS on error) */ -+ movl $-4, %ebx -+1: addl $4, %ebx -+ cmpl $(MAX_CPUS << 2), %ebx -+ je 2 -+ cmpl %eax, EXT(initial_apicid)(%ebx) -+ jne 1b -+2: shrl $2, %ebx -+ -+ /* Now compute the appropriate stack */ -+ movl %ebx, %eax -+ movl $STACK_SIZE, %ebx -+ mull %ebx -+ subl %eax, %esp -+ -+ /* push the boot_complete flag */ -+ pushl %ebp -+ -+ /* Save the stack location */ -+ movl %esp, %ebp -+ -+ /* -+ * Now we are finished. Memory is up, data is copied and -+ * bss is cleared. Now we call the main routine and -+ * let it do the rest. -+ */ -+ intel_chip_post_macro(0xfe) /* post fe */ -+ -+ /* Resort the stack location */ -+ movl %ebp, %esp -+ -+ /* The boot_complete flag has already been pushed */ -+ call EXT(hardwaremain) -+ /*NOTREACHED*/ -+.Lhlt: -+ intel_chip_post_macro(0xee) /* post fe */ -+ hlt -+ jmp .Lhlt -+#endif -+ -+ -+ .globl gdt, gdt_end, gdt_limit -+ -+gdt_limit = gdt_end - gdt - 1 /* compute the table limit */ -+gdtaddr: -+ .word gdt_limit -+ .long gdt /* we know the offset */ -+ -+gdt: -+// selgdt 0 -+ .word 0x0000, 0x0000 /* dummy */ -+ .byte 0x00, 0x00, 0x00, 0x00 -+ -+// selgdt 8 -+ .word 0x0000, 0x0000 /* dummy */ -+ .byte 0x00, 0x00, 0x00, 0x00 -+ -+// selgdt 0x10 -+/* flat code segment */ -+ .word 0xffff, 0x0000 -+ .byte 0x00, 0x9b, 0xcf, 0x00 -+ -+//selgdt 0x18 -+/* flat data segment */ -+ .word 0xffff, 0x0000 -+ .byte 0x00, 0x93, 0xcf, 0x00 -+ -+//selgdt 0x20 -+ .word 0x0000, 0x0000 /* dummy */ -+ .byte 0x00, 0x00, 0x00, 0x00 -+ -+#if defined(CONFIG_VGABIOS) && (CONFIG_VGABIOS == 1) -+ // from monty: -+ /* 0x00009a00,0000ffffULL, 20h: 16-bit 64k code at 0x00000000 */ -+ /* 0x00009200,0000ffffULL 28h: 16-bit 64k data at 0x00000000 */ -+// selgdt 0x28 -+/*16-bit 64k code at 0x00000000 */ -+ .word 0xffff, 0x0000 -+ .byte 0, 0x9a, 0, 0 -+ -+// selgdt 0x30 -+/*16-bit 64k data at 0x00000000 */ -+ .word 0xffff, 0x0000 -+ .byte 0, 0x92, 0, 0 -+#endif // defined(CONFIG_VGABIOS) && (CONFIG_VGABIOS == 1) -+gdt_end: -+ -+.code32 - -Eigenschaftsänderungen: LinuxBIOSv1\src\arch\i386\lib\c_start.S -___________________________________________________________________ -Hinzugefügt: svn:keywords - + Author Date Id Revision -Hinzugefügt: svn:eol-style +Hinzugef�gt: svn:eol-style + native diff --git a/test/data/IDF_DiffTest/test-02-svn-new-files-with-properties.expected b/test/data/IDF_DiffTest/test-02-svn-new-files-with-properties.expected index c61fdf6..964b6e5 100644 --- a/test/data/IDF_DiffTest/test-02-svn-new-files-with-properties.expected +++ b/test/data/IDF_DiffTest/test-02-svn-new-files-with-properties.expected @@ -1 +1,105 @@ -a:5:{s:43:"LinuxBIOSv1/src/include/cpu/i786/cpufixup.h";a:2:{s:6:"chunks";a:1:{i:0;a:11:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:27:"#ifndef CPU_I786_CPUFIXUP_H";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:27:"#define CPU_I786_CPUFIXUP_H";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;b:0;}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;b:0;}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:42:"void i786_cpufixup(struct mem_range *mem);";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;b:0;}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:29:"#define L3_CACHE_DISABLE 0x40";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;b:0;}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:32:"#endif /* CPU_I786_CPUFIXUP_H */";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;b:0;}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;b:0;}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"11";}}}}s:50:"LinuxBIOSv1/src/mainboard/tyan/guiness/cmos.layout";a:2:{s:6:"chunks";a:1:{i:0;a:63:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:7:"entries";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;b:0;}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:43:"#start-bit length config config-ID name";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:46:"#0 8 r 0 seconds";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:52:"#8 8 r 0 alarm_seconds";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:46:"#16 8 r 0 minutes";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:52:"#24 8 r 0 alarm_minutes";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:44:"#32 8 r 0 hours";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:50:"#40 8 r 0 alarm_hours";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:50:"#48 8 r 0 day_of_week";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:51:"#56 8 r 0 day_of_month";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:44:"#64 8 r 0 month";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:43:"#72 8 r 0 year";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:50:"#80 4 r 0 rate_select";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:48:"#84 3 r 0 REF_Clock";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:42:"#87 1 r 0 UIP";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:54:"#88 1 r 0 auto_switch_DST";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:51:"#89 1 r 0 24_hour_mode";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:59:"#90 1 r 0 binary_values_enable";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:61:"#91 1 r 0 square-wave_out_enable";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;s:61:"#92 1 r 0 update_finished_enable";}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:61:"#93 1 r 0 alarm_interrupt_enable";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:64:"#94 1 r 0 periodic_interrupt_enable";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:60:"#95 1 r 0 disable_clock_updates";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:55:"#96 288 r 0 temporary_filler";}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;s:53:"0 384 r 0 reserved_memory";}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;s:49:"384 1 e 4 boot_option";}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;s:47:"385 1 e 4 last_boot";}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;s:47:"386 3 e 5 baud_rate";}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:49:"392 4 e 6 debug_level";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:57:"396 1 e 1 power_on_after_fail";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:49:"#401 1 e 1 ECC_memory";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:47:"#402 1 e 2 hda_disk";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;s:47:"#403 1 e 2 hdb_disk";}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:47:"#404 1 e 2 hdc_disk";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;s:47:"#405 1 e 2 hdd_disk";}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:50:"#406 2 e 7 boot_device";}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;b:0;}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;s:12:"enumerations";}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;b:0;}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;s:16:"#ID value text";}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;s:19:"1 0 Disable";}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;s:18:"1 1 Enable";}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:15:"#2 0 No";}i:44;a:3:{i:0;s:0:"";i:1;i:45;i:2;s:16:"#2 1 Yes";}i:45;a:3:{i:0;s:0:"";i:1;i:46;i:2;s:20:"4 0 Fallback";}i:46;a:3:{i:0;s:0:"";i:1;i:47;i:2;s:18:"4 1 Normal";}i:47;a:3:{i:0;s:0:"";i:1;i:48;i:2;s:18:"5 0 115200";}i:48;a:3:{i:0;s:0:"";i:1;i:49;i:2;s:17:"5 1 57600";}i:49;a:3:{i:0;s:0:"";i:1;i:50;i:2;s:17:"5 2 38400";}i:50;a:3:{i:0;s:0:"";i:1;i:51;i:2;s:17:"5 3 19200";}i:51;a:3:{i:0;s:0:"";i:1;i:52;i:2;s:16:"5 4 9600";}i:52;a:3:{i:0;s:0:"";i:1;i:53;i:2;s:16:"5 5 4800";}i:53;a:3:{i:0;s:0:"";i:1;i:54;i:2;s:16:"5 6 2400";}i:54;a:3:{i:0;s:0:"";i:1;i:55;i:2;s:16:"5 7 1200";}i:55;a:3:{i:0;s:0:"";i:1;i:56;i:2;s:18:"6 6 Notice";}i:56;a:3:{i:0;s:0:"";i:1;i:57;i:2;s:16:"6 7 Info";}i:57;a:3:{i:0;s:0:"";i:1;i:58;i:2;s:17:"6 8 Debug";}i:58;a:3:{i:0;s:0:"";i:1;i:59;i:2;s:16:"6 9 Spew";}i:59;a:3:{i:0;s:0:"";i:1;i:60;i:2;s:20:"#7 0 Network";}i:60;a:3:{i:0;s:0:"";i:1;i:61;i:2;s:16:"#7 1 HDD";}i:61;a:3:{i:0;s:0:"";i:1;i:62;i:2;s:19:"#7 2 Floppy";}i:62;a:3:{i:0;s:0:"";i:1;i:63;i:2;s:16:"#7 3 ROM";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"63";}}}}s:37:"LinuxBIOSv1/src/config/linuxbios_c.ld";a:2:{s:6:"chunks";a:1:{i:0;a:105:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"/*";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:14:" * Memory map:";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:2:" *";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:13:" * _RAMBASE ";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:20:" * : data segment";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:19:" * : bss segment";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:12:" * : heap";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:13:" * : stack";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:3:" */";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:2:"/*";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:39:" * Bootstrap code for the STPC Consumer";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:61:" * Copyright (c) 1999 by Net Insight AB. All Rights Reserved.";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:2:" *";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:7:" * $Id$";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:2:" *";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:3:" */";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;b:0;}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:2:"/*";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:60:" * Written by Johan Rydberg, based on work by Daniel Kahlin.";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:35:" * Rewritten by Eric Biederman";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;s:3:" */";}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:2:"/*";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:46:" * We use ELF as output format. So that we can";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:32:" * debug the code in some form. ";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:3:" */";}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;s:17:"INCLUDE ldoptions";}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;b:0;}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;s:13:"ENTRY(_start)";}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;b:0;}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:8:"SECTIONS";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:1:"{";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:14:" . = _RAMBASE;";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:3:" /*";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;s:74:" * First we place the code and read only data (typically const declared).";}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:27:" * This get placed in rom.";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;s:4:" */";}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:10:" .text : {";}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;s:12:" _text = .;";}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;s:11:" *(.text);";}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;s:13:" *(.text.*);";}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;s:16:" . = ALIGN(16);";}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;s:13:" _etext = .;";}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;s:2:" }";}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:12:" .rodata : {";}i:44;a:3:{i:0;s:0:"";i:1;i:45;i:2;s:14:" _rodata = .;";}i:45;a:3:{i:0;s:0:"";i:1;i:46;i:2;s:15:" . = ALIGN(4);";}i:46;a:3:{i:0;s:0:"";i:1;i:47;i:2;s:15:" streams = . ;";}i:47;a:3:{i:0;s:0:"";i:1;i:48;i:2;s:20:" *(.rodata.streams)";}i:48;a:3:{i:0;s:0:"";i:1;i:49;i:2;s:15:" estreams = .;";}i:49;a:3:{i:0;s:0:"";i:1;i:50;i:2;s:15:" . = ALIGN(4);";}i:50;a:3:{i:0;s:0:"";i:1;i:51;i:2;s:19:" pci_drivers = . ;";}i:51;a:3:{i:0;s:0:"";i:1;i:52;i:2;s:24:" *(.rodata.pci_drivers)";}i:52;a:3:{i:0;s:0:"";i:1;i:53;i:2;s:20:" epci_drivers = . ;";}i:53;a:3:{i:0;s:0:"";i:1;i:54;i:2;s:12:" *(.rodata)";}i:54;a:3:{i:0;s:0:"";i:1;i:55;i:2;s:14:" *(.rodata.*)";}i:55;a:3:{i:0;s:0:"";i:1;i:56;i:2;s:15:" _erodata = .;";}i:56;a:3:{i:0;s:0:"";i:1;i:57;i:2;s:3:" } ";}i:57;a:3:{i:0;s:0:"";i:1;i:58;i:2;s:3:" /*";}i:58;a:3:{i:0;s:0:"";i:1;i:59;i:2;s:67:" * After the code we place initialized data (typically initialized";}i:59;a:3:{i:0;s:0:"";i:1;i:60;i:2;s:65:" * global variables). This gets copied into ram by startup code.";}i:60;a:3:{i:0;s:0:"";i:1;i:61;i:2;s:73:" * __data_start and __data_end shows where in ram this should be placed,";}i:61;a:3:{i:0;s:0:"";i:1;i:62;i:2;s:69:" * whereas __data_loadstart and __data_loadend shows where in rom to";}i:62;a:3:{i:0;s:0:"";i:1;i:63;i:2;s:14:" * copy from.";}i:63;a:3:{i:0;s:0:"";i:1;i:64;i:2;s:4:" */";}i:64;a:3:{i:0;s:0:"";i:1;i:65;i:2;s:10:" .data : {";}i:65;a:3:{i:0;s:0:"";i:1;i:66;i:2;s:12:" _data = .;";}i:66;a:3:{i:0;s:0:"";i:1;i:67;i:2;s:10:" *(.data)";}i:67;a:3:{i:0;s:0:"";i:1;i:68;i:2;s:13:" _edata = .;";}i:68;a:3:{i:0;s:0:"";i:1;i:69;i:2;s:2:" }";}i:69;a:3:{i:0;s:0:"";i:1;i:70;i:2;s:3:" /*";}i:70;a:3:{i:0;s:0:"";i:1;i:71;i:2;s:69:" * bss does not contain data, it is just a space that should be zero";}i:71;a:3:{i:0;s:0:"";i:1;i:72;i:2;s:70:" * initialized on startup. (typically uninitialized global variables)";}i:72;a:3:{i:0;s:0:"";i:1;i:73;i:2;s:52:" * crt0.S fills between _bss and _ebss with zeroes.";}i:73;a:3:{i:0;s:0:"";i:1;i:74;i:2;s:4:" */";}i:74;a:3:{i:0;s:0:"";i:1;i:75;i:2;s:10:" _bss = .;";}i:75;a:3:{i:0;s:0:"";i:1;i:76;i:2;s:11:" .bss . : {";}i:76;a:3:{i:0;s:0:"";i:1;i:77;i:2;s:9:" *(.bss)";}i:77;a:3:{i:0;s:0:"";i:1;i:78;i:2;s:10:" *(.sbss)";}i:78;a:3:{i:0;s:0:"";i:1;i:79;i:2;s:11:" *(COMMON)";}i:79;a:3:{i:0;s:0:"";i:1;i:80;i:2;s:2:" }";}i:80;a:3:{i:0;s:0:"";i:1;i:81;i:2;s:11:" _ebss = .;";}i:81;a:3:{i:0;s:0:"";i:1;i:82;i:2;s:10:" _end = .;";}i:82;a:3:{i:0;s:0:"";i:1;i:83;i:2;s:12:" _stack = .;";}i:83;a:3:{i:0;s:0:"";i:1;i:84;i:2;s:13:" .stack . : {";}i:84;a:3:{i:0;s:0:"";i:1;i:85;i:2;s:55:" /* Reserve a stack for each possible cpu, +1 extra */";}i:85;a:3:{i:0;s:0:"";i:1;i:86;i:2;s:47:" . = ((MAX_CPUS * STACK_SIZE) + STACK_SIZE) ; ";}i:86;a:3:{i:0;s:0:"";i:1;i:87;i:2;s:2:" }";}i:87;a:3:{i:0;s:0:"";i:1;i:88;i:2;s:13:" _estack = .;";}i:88;a:3:{i:0;s:0:"";i:1;i:89;i:2;s:11:" _heap = .;";}i:89;a:3:{i:0;s:0:"";i:1;i:90;i:2;s:12:" .heap . : {";}i:90;a:3:{i:0;s:0:"";i:1;i:91;i:2;s:33:" /* Reserve 256K for the heap */";}i:91;a:3:{i:0;s:0:"";i:1;i:92;i:2;s:17:" . = HEAP_SIZE ;";}i:92;a:3:{i:0;s:0:"";i:1;i:93;i:2;s:15:" . = ALIGN(4);";}i:93;a:3:{i:0;s:0:"";i:1;i:94;i:2;s:2:" }";}i:94;a:3:{i:0;s:0:"";i:1;i:95;i:2;s:12:" _eheap = .;";}i:95;a:3:{i:0;s:0:"";i:1;i:96;i:2;s:19:" /* The ram segment";}i:96;a:3:{i:0;s:0:"";i:1;i:97;i:2;s:66:" * This is all address of the memory resident copy of linuxBIOS.";}i:97;a:3:{i:0;s:0:"";i:1;i:98;i:2;s:4:" */";}i:98;a:3:{i:0;s:0:"";i:1;i:99;i:2;s:18:" _ram_seg = _text;";}i:99;a:3:{i:0;s:0:"";i:1;i:100;i:2;s:20:" _eram_seg = _eheap;";}i:100;a:3:{i:0;s:0:"";i:1;i:101;i:2;s:14:" /DISCARD/ : {";}i:101;a:3:{i:0;s:0:"";i:1;i:102;i:2;s:13:" *(.comment)";}i:102;a:3:{i:0;s:0:"";i:1;i:103;i:2;s:10:" *(.note)";}i:103;a:3:{i:0;s:0:"";i:1;i:104;i:2;s:2:" }";}i:104;a:3:{i:0;s:0:"";i:1;i:105;i:2;s:1:"}";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:3:"105";}}}}s:49:"LinuxBIOSv1/src/arch/i386/include/arch/rom_segs.h";a:2:{s:6:"chunks";a:1:{i:0;a:10:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:18:"#ifndef ROM_SEGS_H";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:18:"#define ROM_SEGS_H";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;b:0;}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:25:"#define ROM_CODE_SEG 0x08";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:25:"#define ROM_DATA_SEG 0x10";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;b:0;}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:31:"#define CACHE_RAM_CODE_SEG 0x18";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:31:"#define CACHE_RAM_DATA_SEG 0x20";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;b:0;}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:23:"#endif /* ROM_SEGS_H */";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"10";}}}}s:39:"LinuxBIOSv1/src/arch/i386/lib/c_start.S";a:2:{s:6:"chunks";a:1:{i:0;a:135:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:21:"#include ";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:23:"#include ";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:10:"#ifdef SMP";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:24:"#include ";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:6:"#endif";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:17:" .section ".text"";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:8:" .code32";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:14:" .globl _start";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:7:"_start:";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:4:" cli";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:17:" lgdt %cs:gdtaddr";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:16:" ljmp $0x10, $1f";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:18:"1: movl $0x18, %ax";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:15:" movl %eax, %ds";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:15:" movl %eax, %es";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:15:" movl %eax, %ss";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:15:" movl %eax, %fs";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:15:" movl %eax, %gs";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;b:0;}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:43:" intel_chip_post_macro(0x13) /* post 12 */";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;b:0;}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:19:" /** clear stack */";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:23:" leal EXT(_stack), %edi";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:25:" movl $EXT(_estack), %ecx";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:16:" subl %edi, %ecx";}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;s:16:" xorl %eax, %eax";}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;s:4:" rep";}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;s:6:" stosb";}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;b:0;}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:17:" /** clear bss */";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:21:" leal EXT(_bss), %edi";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:23:" movl $EXT(_ebss), %ecx";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:16:" subl %edi, %ecx";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;s:11:" jz .Lnobss";}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:16:" xorl %eax, %eax";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;s:4:" rep";}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:6:" stosb";}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;s:8:".Lnobss:";}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;b:0;}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;s:20:" /* set new stack */";}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;s:20:" movl $_estack, %esp";}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;s:10:"#ifdef SMP";}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;s:21:" /* Get the cpu id */";}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:30:" movl $APIC_DEFAULT_BASE, %edi";}i:44;a:3:{i:0;s:0:"";i:1;i:45;i:2;s:25:" movl APIC_ID(%edi), %eax";}i:45;a:3:{i:0;s:0:"";i:1;i:46;i:2;s:15:" shrl $24, %eax";}i:46;a:3:{i:0;s:0:"";i:1;i:47;i:2;b:0;}i:47;a:3:{i:0;s:0:"";i:1;i:48;i:2;s:44:" /* Get the cpu index (MAX_CPUS on error) */";}i:48;a:3:{i:0;s:0:"";i:1;i:49;i:2;s:15:" movl $-4, %ebx";}i:49;a:3:{i:0;s:0:"";i:1;i:50;i:2;s:16:"1: addl $4, %ebx";}i:50;a:3:{i:0;s:0:"";i:1;i:51;i:2;s:28:" cmpl $(MAX_CPUS << 2), %ebx";}i:51;a:3:{i:0;s:0:"";i:1;i:52;i:2;s:5:" je 2";}i:52;a:3:{i:0;s:0:"";i:1;i:53;i:2;s:37:" cmpl %eax, EXT(initial_apicid)(%ebx)";}i:53;a:3:{i:0;s:0:"";i:1;i:54;i:2;s:7:" jne 1b";}i:54;a:3:{i:0;s:0:"";i:1;i:55;i:2;s:16:"2: shrl $2, %ebx";}i:55;a:3:{i:0;s:0:"";i:1;i:56;i:2;b:0;}i:56;a:3:{i:0;s:0:"";i:1;i:57;i:2;s:40:" /* Now compute the appropriate stack */";}i:57;a:3:{i:0;s:0:"";i:1;i:58;i:2;s:16:" movl %ebx, %eax";}i:58;a:3:{i:0;s:0:"";i:1;i:59;i:2;s:23:" movl $STACK_SIZE, %ebx";}i:59;a:3:{i:0;s:0:"";i:1;i:60;i:2;s:10:" mull %ebx";}i:60;a:3:{i:0;s:0:"";i:1;i:61;i:2;s:16:" subl %eax, %esp";}i:61;a:3:{i:0;s:0:"";i:1;i:62;i:2;b:0;}i:62;a:3:{i:0;s:0:"";i:1;i:63;i:2;s:34:" /* push the boot_complete flag */";}i:63;a:3:{i:0;s:0:"";i:1;i:64;i:2;s:11:" pushl %ebp";}i:64;a:3:{i:0;s:0:"";i:1;i:65;i:2;b:0;}i:65;a:3:{i:0;s:0:"";i:1;i:66;i:2;s:30:" /* Save the stack location */";}i:66;a:3:{i:0;s:0:"";i:1;i:67;i:2;s:16:" movl %esp, %ebp";}i:67;a:3:{i:0;s:0:"";i:1;i:68;i:2;b:0;}i:68;a:3:{i:0;s:0:"";i:1;i:69;i:2;s:3:" /*";}i:69;a:3:{i:0;s:0:"";i:1;i:70;i:2;s:57:" * Now we are finished. Memory is up, data is copied and";}i:70;a:3:{i:0;s:0:"";i:1;i:71;i:2;s:54:" * bss is cleared. Now we call the main routine and";}i:71;a:3:{i:0;s:0:"";i:1;i:72;i:2;s:23:" * let it do the rest.";}i:72;a:3:{i:0;s:0:"";i:1;i:73;i:2;s:5:" */ ";}i:73;a:3:{i:0;s:0:"";i:1;i:74;i:2;s:42:" intel_chip_post_macro(0xfe) /* post fe */";}i:74;a:3:{i:0;s:0:"";i:1;i:75;i:2;b:0;}i:75;a:3:{i:0;s:0:"";i:1;i:76;i:2;s:32:" /* Resort the stack location */";}i:76;a:3:{i:0;s:0:"";i:1;i:77;i:2;s:16:" movl %ebp, %esp";}i:77;a:3:{i:0;s:0:"";i:1;i:78;i:2;s:1:" ";}i:78;a:3:{i:0;s:0:"";i:1;i:79;i:2;s:53:" /* The boot_complete flag has already been pushed */";}i:79;a:3:{i:0;s:0:"";i:1;i:80;i:2;s:23:" call EXT(hardwaremain)";}i:80;a:3:{i:0;s:0:"";i:1;i:81;i:2;s:15:" /*NOTREACHED*/";}i:81;a:3:{i:0;s:0:"";i:1;i:82;i:2;s:6:".Lhlt:";}i:82;a:3:{i:0;s:0:"";i:1;i:83;i:2;s:42:" intel_chip_post_macro(0xee) /* post fe */";}i:83;a:3:{i:0;s:0:"";i:1;i:84;i:2;s:4:" hlt";}i:84;a:3:{i:0;s:0:"";i:1;i:85;i:2;s:10:" jmp .Lhlt";}i:85;a:3:{i:0;s:0:"";i:1;i:86;i:2;s:6:"#endif";}i:86;a:3:{i:0;s:0:"";i:1;i:87;i:2;b:0;}i:87;a:3:{i:0;s:0:"";i:1;i:88;i:2;b:0;}i:88;a:3:{i:0;s:0:"";i:1;i:89;i:2;s:31:" .globl gdt, gdt_end, gdt_limit";}i:89;a:3:{i:0;s:0:"";i:1;i:90;i:2;b:0;}i:90;a:3:{i:0;s:0:"";i:1;i:91;i:2;s:59:"gdt_limit = gdt_end - gdt - 1 /* compute the table limit */";}i:91;a:3:{i:0;s:0:"";i:1;i:92;i:2;s:8:"gdtaddr:";}i:92;a:3:{i:0;s:0:"";i:1;i:93;i:2;s:16:" .word gdt_limit";}i:93;a:3:{i:0;s:0:"";i:1;i:94;i:2;s:50:" .long gdt /* we know the offset */";}i:94;a:3:{i:0;s:0:"";i:1;i:95;i:2;b:0;}i:95;a:3:{i:0;s:0:"";i:1;i:96;i:2;s:4:"gdt:";}i:96;a:3:{i:0;s:0:"";i:1;i:97;i:2;s:11:"// selgdt 0";}i:97;a:3:{i:0;s:0:"";i:1;i:98;i:2;s:34:" .word 0x0000, 0x0000 /* dummy */";}i:98;a:3:{i:0;s:0:"";i:1;i:99;i:2;s:29:" .byte 0x00, 0x00, 0x00, 0x00";}i:99;a:3:{i:0;s:0:"";i:1;i:100;i:2;b:0;}i:100;a:3:{i:0;s:0:"";i:1;i:101;i:2;s:11:"// selgdt 8";}i:101;a:3:{i:0;s:0:"";i:1;i:102;i:2;s:34:" .word 0x0000, 0x0000 /* dummy */";}i:102;a:3:{i:0;s:0:"";i:1;i:103;i:2;s:29:" .byte 0x00, 0x00, 0x00, 0x00";}i:103;a:3:{i:0;s:0:"";i:1;i:104;i:2;b:0;}i:104;a:3:{i:0;s:0:"";i:1;i:105;i:2;s:15:"// selgdt 0x10 ";}i:105;a:3:{i:0;s:0:"";i:1;i:106;i:2;s:23:"/* flat code segment */";}i:106;a:3:{i:0;s:0:"";i:1;i:107;i:2;s:23:" .word 0xffff, 0x0000 ";}i:107;a:3:{i:0;s:0:"";i:1;i:108;i:2;s:30:" .byte 0x00, 0x9b, 0xcf, 0x00 ";}i:108;a:3:{i:0;s:0:"";i:1;i:109;i:2;s:1:" ";}i:109;a:3:{i:0;s:0:"";i:1;i:110;i:2;s:13:"//selgdt 0x18";}i:110;a:3:{i:0;s:0:"";i:1;i:111;i:2;s:23:"/* flat data segment */";}i:111;a:3:{i:0;s:0:"";i:1;i:112;i:2;s:23:" .word 0xffff, 0x0000 ";}i:112;a:3:{i:0;s:0:"";i:1;i:113;i:2;s:30:" .byte 0x00, 0x93, 0xcf, 0x00 ";}i:113;a:3:{i:0;s:0:"";i:1;i:114;i:2;b:0;}i:114;a:3:{i:0;s:0:"";i:1;i:115;i:2;s:13:"//selgdt 0x20";}i:115;a:3:{i:0;s:0:"";i:1;i:116;i:2;s:34:" .word 0x0000, 0x0000 /* dummy */";}i:116;a:3:{i:0;s:0:"";i:1;i:117;i:2;s:29:" .byte 0x00, 0x00, 0x00, 0x00";}i:117;a:3:{i:0;s:0:"";i:1;i:118;i:2;b:0;}i:118;a:3:{i:0;s:0:"";i:1;i:119;i:2;s:52:"#if defined(CONFIG_VGABIOS) && (CONFIG_VGABIOS == 1)";}i:119;a:3:{i:0;s:0:"";i:1;i:120;i:2;s:15:" // from monty:";}i:120;a:3:{i:0;s:0:"";i:1;i:121;i:2;s:67:" /* 0x00009a00,0000ffffULL, 20h: 16-bit 64k code at 0x00000000 */";}i:121;a:3:{i:0;s:0:"";i:1;i:122;i:2;s:74:" /* 0x00009200,0000ffffULL 28h: 16-bit 64k data at 0x00000000 */";}i:122;a:3:{i:0;s:0:"";i:1;i:123;i:2;s:14:"// selgdt 0x28";}i:123;a:3:{i:0;s:0:"";i:1;i:124;i:2;s:34:"/*16-bit 64k code at 0x00000000 */";}i:124;a:3:{i:0;s:0:"";i:1;i:125;i:2;s:21:" .word 0xffff, 0x0000";}i:125;a:3:{i:0;s:0:"";i:1;i:126;i:2;s:20:" .byte 0, 0x9a, 0, 0";}i:126;a:3:{i:0;s:0:"";i:1;i:127;i:2;b:0;}i:127;a:3:{i:0;s:0:"";i:1;i:128;i:2;s:14:"// selgdt 0x30";}i:128;a:3:{i:0;s:0:"";i:1;i:129;i:2;s:34:"/*16-bit 64k data at 0x00000000 */";}i:129;a:3:{i:0;s:0:"";i:1;i:130;i:2;s:21:" .word 0xffff, 0x0000";}i:130;a:3:{i:0;s:0:"";i:1;i:131;i:2;s:20:" .byte 0, 0x92, 0, 0";}i:131;a:3:{i:0;s:0:"";i:1;i:132;i:2;s:58:"#endif // defined(CONFIG_VGABIOS) && (CONFIG_VGABIOS == 1)";}i:132;a:3:{i:0;s:0:"";i:1;i:133;i:2;s:8:"gdt_end:";}i:133;a:3:{i:0;s:0:"";i:1;i:134;i:2;b:0;}i:134;a:3:{i:0;s:0:"";i:1;i:135;i:2;s:7:".code32";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:3:"135";}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => '#ifndef CPU_I786_CPUFIXUP_H +', + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => '#define CPU_I786_CPUFIXUP_H +', + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => ' +', + ), + 3 => + array ( + 0 => '', + 1 => 4, + 2 => ' +', + ), + 4 => + array ( + 0 => '', + 1 => 5, + 2 => 'void i786_cpufixup(struct mem_range *mem); +', + ), + 5 => + array ( + 0 => '', + 1 => 6, + 2 => ' +', + ), + 6 => + array ( + 0 => '', + 1 => 7, + 2 => '#define L3_CACHE_DISABLE 0x40 +', + ), + 7 => + array ( + 0 => '', + 1 => 8, + 2 => ' +', + ), + 8 => + array ( + 0 => '', + 1 => 9, + 2 => '#endif /* CPU_I786_CPUFIXUP_H */ +', + ), + 9 => + array ( + 0 => '', + 1 => 10, + 2 => ' +', + ), + 10 => + array ( + 0 => '', + 1 => 11, + 2 => ' + +', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '11', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-03-mtn-new-file-single-line.expected b/test/data/IDF_DiffTest/test-03-mtn-new-file-single-line.expected index ac04a8d..67d6ea7 100644 --- a/test/data/IDF_DiffTest/test-03-mtn-new-file-single-line.expected +++ b/test/data/IDF_DiffTest/test-03-mtn-new-file-single-line.expected @@ -1 +1,33 @@ -a:1:{s:1:"a";a:2:{s:6:"chunks";a:1:{i:0;a:1:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:3:"abc";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;i:1;}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => "abc\r\n", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => 1, + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-04-mtn-new-file-multi-lines.expected b/test/data/IDF_DiffTest/test-04-mtn-new-file-multi-lines.expected index fe50d15..48db0ba 100644 --- a/test/data/IDF_DiffTest/test-04-mtn-new-file-multi-lines.expected +++ b/test/data/IDF_DiffTest/test-04-mtn-new-file-multi-lines.expected @@ -1 +1,39 @@ -a:1:{s:1:"a";a:2:{s:6:"chunks";a:1:{i:0;a:2:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:3:"abc";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:3:"abc";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:1:"2";}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => "abc\r\n", + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => "abc\r\n", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '2', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-05-mtn-change-to-single-line.expected b/test/data/IDF_DiffTest/test-05-mtn-change-to-single-line.expected index 1658746..846c0a8 100644 --- a/test/data/IDF_DiffTest/test-05-mtn-change-to-single-line.expected +++ b/test/data/IDF_DiffTest/test-05-mtn-change-to-single-line.expected @@ -1 +1,39 @@ -a:1:{s:1:"a";a:2:{s:6:"chunks";a:1:{i:0;a:2:{i:0;a:3:{i:0;s:1:"1";i:1;s:1:"1";i:2;s:3:"abc";}i:1;a:3:{i:0;i:2;i:1;s:0:"";i:2;s:3:"abc";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"1";i:1;s:1:"2";}i:1;a:2:{i:0;s:1:"1";i:1;i:1;}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '1', + 2 => "abc\r\n", + ), + 1 => + array ( + 0 => 2, + 1 => '', + 2 => "abc\r\n", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '2', + ), + 1 => + array ( + 0 => '1', + 1 => 1, + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-06-mtn-single-line.expected b/test/data/IDF_DiffTest/test-06-mtn-single-line.expected index d3d118c..256d8f6 100644 --- a/test/data/IDF_DiffTest/test-06-mtn-single-line.expected +++ b/test/data/IDF_DiffTest/test-06-mtn-single-line.expected @@ -1 +1,39 @@ -a:1:{s:1:"a";a:2:{s:6:"chunks";a:1:{i:0;a:2:{i:0;a:3:{i:0;s:1:"1";i:1;s:0:"";i:2;s:3:"abc";}i:1;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"ls";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"1";i:1;i:1;}i:1;a:2:{i:0;s:1:"1";i:1;i:1;}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '', + 2 => "abc\r\n", + ), + 1 => + array ( + 0 => '', + 1 => '1', + 2 => "ls\r\n", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => 1, + ), + 1 => + array ( + 0 => '1', + 1 => 1, + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-07-mtn-single-line-to-multiline.expected b/test/data/IDF_DiffTest/test-07-mtn-single-line-to-multiline.expected index b5c748d..5c95454 100644 --- a/test/data/IDF_DiffTest/test-07-mtn-single-line-to-multiline.expected +++ b/test/data/IDF_DiffTest/test-07-mtn-single-line-to-multiline.expected @@ -1 +1,39 @@ -a:1:{s:1:"a";a:2:{s:6:"chunks";a:1:{i:0;a:2:{i:0;a:3:{i:0;s:1:"1";i:1;s:1:"1";i:2;s:2:"ls";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:2:"ls";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"1";i:1;i:1;}i:1;a:2:{i:0;s:1:"1";i:1;s:1:"2";}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '1', + 2 => "ls\r\n", + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => "ls\r\n", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => 1, + ), + 1 => + array ( + 0 => '1', + 1 => '2', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-08-mtn-multiline-diff-with-property.expected b/test/data/IDF_DiffTest/test-08-mtn-multiline-diff-with-property.expected index bfd9767..36d7529 100644 --- a/test/data/IDF_DiffTest/test-08-mtn-multiline-diff-with-property.expected +++ b/test/data/IDF_DiffTest/test-08-mtn-multiline-diff-with-property.expected @@ -1 +1,45 @@ -a:1:{s:1:"a";a:2:{s:6:"chunks";a:1:{i:0;a:3:{i:0;a:3:{i:0;s:1:"1";i:1;s:1:"1";i:2;s:2:"ls";}i:1;a:3:{i:0;i:2;i:1;i:2;i:2;s:2:"ls";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:1:"l";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"1";i:1;s:1:"2";}i:1;a:2:{i:0;s:1:"1";i:1;s:1:"3";}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '1', + 2 => "ls\r\n", + ), + 1 => + array ( + 0 => 2, + 1 => 2, + 2 => "ls\r\n", + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => "l\r\n", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '2', + ), + 1 => + array ( + 0 => '1', + 1 => '3', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-09-hg-new-file.expected b/test/data/IDF_DiffTest/test-09-hg-new-file.expected index da9221b..446d393 100644 --- a/test/data/IDF_DiffTest/test-09-hg-new-file.expected +++ b/test/data/IDF_DiffTest/test-09-hg-new-file.expected @@ -1 +1,33 @@ -a:1:{s:1:"a";a:2:{s:6:"chunks";a:1:{i:0;a:1:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:3:"foo";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:1:"1";}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => "foo\n", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '1', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-10-hg-change.expected b/test/data/IDF_DiffTest/test-10-hg-change.expected index bda94a9..1748e39 100644 --- a/test/data/IDF_DiffTest/test-10-hg-change.expected +++ b/test/data/IDF_DiffTest/test-10-hg-change.expected @@ -1 +1,39 @@ -a:1:{s:1:"a";a:2:{s:6:"chunks";a:1:{i:0;a:2:{i:0;a:3:{i:0;s:1:"1";i:1;s:1:"1";i:2;s:3:"foo";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:2:"bf";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"1";i:1;s:1:"1";}i:1;a:2:{i:0;s:1:"1";i:1;s:1:"2";}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '1', + 2 => "foo\n", + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => "bf\n", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '1', + ), + 1 => + array ( + 0 => '1', + 1 => '2', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-11-git-add-singleline-file.expected b/test/data/IDF_DiffTest/test-11-git-add-singleline-file.expected index ac04a8d..a88ba77 100644 --- a/test/data/IDF_DiffTest/test-11-git-add-singleline-file.expected +++ b/test/data/IDF_DiffTest/test-11-git-add-singleline-file.expected @@ -1 +1,33 @@ -a:1:{s:1:"a";a:2:{s:6:"chunks";a:1:{i:0;a:1:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:3:"abc";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;i:1;}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => "abc\n", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => 1, + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-12-git-add-multiline-file.expected b/test/data/IDF_DiffTest/test-12-git-add-multiline-file.expected index ee1df51..9368311 100644 --- a/test/data/IDF_DiffTest/test-12-git-add-multiline-file.expected +++ b/test/data/IDF_DiffTest/test-12-git-add-multiline-file.expected @@ -1 +1,45 @@ -a:1:{s:1:"b";a:2:{s:6:"chunks";a:1:{i:0;a:3:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:1:"a";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:1:"b";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;b:0;}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:1:"3";}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => "a\n", + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => "b\n", + ), + 2 => + array ( + 0 => '', + 1 => 3, + 2 => "\n", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '0', + 1 => '0', + ), + 1 => + array ( + 0 => '1', + 1 => '3', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-13-git-change-file.expected b/test/data/IDF_DiffTest/test-13-git-change-file.expected index 29a30b6..916552f 100644 --- a/test/data/IDF_DiffTest/test-13-git-change-file.expected +++ b/test/data/IDF_DiffTest/test-13-git-change-file.expected @@ -1 +1,51 @@ -a:1:{s:1:"b";a:2:{s:6:"chunks";a:1:{i:0;a:4:{i:0;a:3:{i:0;s:1:"1";i:1;s:1:"1";i:2;s:1:"a";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:1:"l";}i:2;a:3:{i:0;i:2;i:1;i:3;i:2;s:1:"b";}i:3;a:3:{i:0;i:3;i:1;i:4;i:2;b:0;}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"1";i:1;s:1:"3";}i:1;a:2:{i:0;s:1:"1";i:1;s:1:"4";}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '1', + 2 => "a\n", + ), + 1 => + array ( + 0 => '', + 1 => 2, + 2 => "l\n", + ), + 2 => + array ( + 0 => 2, + 1 => 3, + 2 => "b\n", + ), + 3 => + array ( + 0 => 3, + 1 => 4, + 2 => "\n", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '3', + ), + 1 => + array ( + 0 => '1', + 1 => '4', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-14-git-change-file-to-singleline.expected b/test/data/IDF_DiffTest/test-14-git-change-file-to-singleline.expected index 49b3e70..62d78bc 100644 --- a/test/data/IDF_DiffTest/test-14-git-change-file-to-singleline.expected +++ b/test/data/IDF_DiffTest/test-14-git-change-file-to-singleline.expected @@ -1 +1,45 @@ -a:1:{s:1:"b";a:2:{s:6:"chunks";a:1:{i:0;a:3:{i:0;a:3:{i:0;s:1:"1";i:1;s:1:"1";i:2;s:1:"a";}i:1;a:3:{i:0;i:2;i:1;s:0:"";i:2;s:1:"b";}i:2;a:3:{i:0;i:3;i:1;s:0:"";i:2;b:0;}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"1";i:1;s:1:"3";}i:1;a:2:{i:0;s:1:"1";i:1;i:1;}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '1', + 2 => "a\n", + ), + 1 => + array ( + 0 => 2, + 1 => '', + 2 => "b\n", + ), + 2 => + array ( + 0 => 3, + 1 => '', + 2 => "\n", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '3', + ), + 1 => + array ( + 0 => '1', + 1 => 1, + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-15-git-change-single-line-invalid.expected b/test/data/IDF_DiffTest/test-15-git-change-single-line-invalid.expected index e526730..87c8b7d 100644 --- a/test/data/IDF_DiffTest/test-15-git-change-single-line-invalid.expected +++ b/test/data/IDF_DiffTest/test-15-git-change-single-line-invalid.expected @@ -1 +1,39 @@ -a:1:{s:9:"test_file";a:2:{s:6:"chunks";a:1:{i:0;a:2:{i:0;a:3:{i:0;s:1:"1";i:1;s:0:"";i:2;s:17:"Steddy is awesome";}i:1;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:22:"Steddy is very awesome";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"1";i:1;i:1;}i:1;a:2:{i:0;s:1:"1";i:1;i:1;}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '', + 2 => "Steddy is awesome\n", + ), + 1 => + array ( + 0 => '', + 1 => '1', + 2 => 'Steddy is very awesome', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => 1, + ), + 1 => + array ( + 0 => '1', + 1 => 1, + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-16-git-newline-removed.expected b/test/data/IDF_DiffTest/test-16-git-newline-removed.expected index 7fd1428..3a17da7 100644 --- a/test/data/IDF_DiffTest/test-16-git-newline-removed.expected +++ b/test/data/IDF_DiffTest/test-16-git-newline-removed.expected @@ -1 +1,39 @@ -a:1:{s:3:"foo";a:2:{s:6:"chunks";a:1:{i:0;a:2:{i:0;a:3:{i:0;s:1:"1";i:1;s:0:"";i:2;s:11:"This is foo";}i:1;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:11:"This is foo";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"1";i:1;i:1;}i:1;a:2:{i:0;s:1:"1";i:1;i:1;}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '', + 2 => "This is foo\n", + ), + 1 => + array ( + 0 => '', + 1 => '1', + 2 => 'This is foo', + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => 1, + ), + 1 => + array ( + 0 => '1', + 1 => 1, + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-17-git-newline-added.expected b/test/data/IDF_DiffTest/test-17-git-newline-added.expected index 7fd1428..aa3507b 100644 --- a/test/data/IDF_DiffTest/test-17-git-newline-added.expected +++ b/test/data/IDF_DiffTest/test-17-git-newline-added.expected @@ -1 +1,39 @@ -a:1:{s:3:"foo";a:2:{s:6:"chunks";a:1:{i:0;a:2:{i:0;a:3:{i:0;s:1:"1";i:1;s:0:"";i:2;s:11:"This is foo";}i:1;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:11:"This is foo";}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"1";i:1;i:1;}i:1;a:2:{i:0;s:1:"1";i:1;i:1;}}}}} \ No newline at end of file + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '', + 2 => "This is foo", + ), + 1 => + array ( + 0 => '', + 1 => '1', + 2 => "This is foo\n", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => 1, + ), + 1 => + array ( + 0 => '1', + 1 => 1, + ), + ), + ), + ), +); \ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-18-git-lineendings.diff b/test/data/IDF_DiffTest/test-18-git-lineendings.diff new file mode 100644 index 0000000..6b6a13e --- /dev/null +++ b/test/data/IDF_DiffTest/test-18-git-lineendings.diff @@ -0,0 +1,10 @@ +diff --git a/lineendings b/lineendings +index 7c2b7ec..9c59944 100644 +--- a/lineendings ++++ b/lineendings +@@ -1,3 +1,4 @@ ++Unix, again + Windows + Unix + Old Macintosh Nothing +\ No newline at end of file diff --git a/test/data/IDF_DiffTest/test-18-git-lineendings.expected b/test/data/IDF_DiffTest/test-18-git-lineendings.expected new file mode 100644 index 0000000..bf17f6b --- /dev/null +++ b/test/data/IDF_DiffTest/test-18-git-lineendings.expected @@ -0,0 +1,51 @@ + + array ( + 'chunks' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '', + 1 => '1', + 2 => "Unix, again\n", + ), + 1 => + array ( + 0 => '1', + 1 => 2, + 2 => "Windows\r\n", + ), + 2 => + array ( + 0 => 2, + 1 => 3, + 2 => "Unix\n", + ), + 3 => + array ( + 0 => 3, + 1 => 4, + 2 => "Old Macintosh\rNothing", + ), + ), + ), + 'chunks_def' => + array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => '3', + ), + 1 => + array ( + 0 => '1', + 1 => '4', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/www/media/idf/css/style.css b/www/media/idf/css/style.css index 4b94eb2..f9bca37 100644 --- a/www/media/idf/css/style.css +++ b/www/media/idf/css/style.css @@ -614,18 +614,56 @@ td.diff-r { background-color: #fdd; } -td.diff-a, td.diff-r, td.diff-c { +td.diff { border-bottom: none; border-top: none; white-space: pre; } -td.diff-a > span, -td.diff-r > span, -td.diff-c > span { +td.diff > span { float: left; } +td.diff > span.non-printable { + visibility: hidden; + color: white; + text-transform: uppercase; + float: none; + font-size: 5.5pt; + font-family: Calibri, Helvetica, Arial, sans-serif; + text-align: center; + display: inline-block; + word-wrap: break-word; + padding: 1px 1px 0px 1px; + margin-left: 1px; + margin-right: 1px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + cursor: default; + vertical-align: 10%; +} + +td.diff:hover > span.non-printable { + visibility: visible; +} + +td.diff-a > span.non-printable { + background: #0A0; +} + +td.diff-r > span.non-printable { + background: #A00; +} + +td.diff-c > span.non-printable { + background: black; +} + +/* override prettify css rule */ +td.diff > span.non-printable > * { + color: white; +} + table.diff tr.diff-next { background-color: #e4e8E0; vertical-align: top; From 83761c66c56cc7392d816a5d200a5cd1332f3020 Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Thu, 6 Oct 2011 00:00:07 +0200 Subject: [PATCH 03/15] The left floating breaks the vertical alignment of the unprintable characters. Remove that workaround, which was introduced to wrap very long lines; it should be replaced by something smarter. --- www/media/idf/css/style.css | 5 ----- 1 file changed, 5 deletions(-) diff --git a/www/media/idf/css/style.css b/www/media/idf/css/style.css index f9bca37..98f0b1f 100644 --- a/www/media/idf/css/style.css +++ b/www/media/idf/css/style.css @@ -620,10 +620,6 @@ td.diff { white-space: pre; } -td.diff > span { - float: left; -} - td.diff > span.non-printable { visibility: hidden; color: white; @@ -633,7 +629,6 @@ td.diff > span.non-printable { font-family: Calibri, Helvetica, Arial, sans-serif; text-align: center; display: inline-block; - word-wrap: break-word; padding: 1px 1px 0px 1px; margin-left: 1px; margin-right: 1px; From f19f07ec59b307b2f89bd35251dd2837758faec1 Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Thu, 6 Oct 2011 02:06:51 +0200 Subject: [PATCH 04/15] Change the unidiff rendering by letting the actual content be rendered into a separate container that can overflow and side-scroll for long lines. This effectively removes the need for all kinds of line-breaking hacks that have been applied before and only worked when the browser was actually able to break a word group apart somewhere. Lines are now always rendered as-is; as a nice side effect the line numbers are always visible, independently how far one scrolled into one direction, so the context is always clear. If the rendering area is made smaller, the table rendering also degrades gracefully and provides horizontal scrolling for views that did not need them before. The size that is occupied by the number display is now also automatically determined by the size that is needed to render the biggest line number in a column. Empty columns are rendered with a zero size. Currently all this works nicely with a recent version of Chrome, Firefox still needs some fine tuning for the vertical positioning. Other browsers are untested as of now. --- src/IDF/Diff.php | 58 ++++++++++++++----- www/media/idf/css/style.css | 110 ++++++++++++++++++++++-------------- 2 files changed, 112 insertions(+), 56 deletions(-) diff --git a/src/IDF/Diff.php b/src/IDF/Diff.php index 501b2b1..8f10e7f 100644 --- a/src/IDF/Diff.php +++ b/src/IDF/Diff.php @@ -168,41 +168,73 @@ class IDF_Diff public function as_html() { $out = ''; - foreach ($this->files as $filename=>$file) { + foreach ($this->files as $filename => $file) { $pretty = ''; $fileinfo = IDF_FileUtil::getMimeType($filename); if (IDF_FileUtil::isSupportedExtension($fileinfo[2])) { $pretty = ' prettyprint'; } - $out .= "\n".''."\n"; - $out .= ''."\n"; + $cc = 1; + $offsets = array(); + $contents = array(); + $maxlinenum = 0; + foreach ($file['chunks'] as $chunk) { foreach ($chunk as $line) { - if ($line[0] and $line[1]) { + list($left, $right, $content) = $line; + if ($left and $right) { $class = 'diff diff-c'; - } elseif ($line[0]) { + } elseif ($left) { $class = 'diff diff-r'; } else { $class = 'diff diff-a'; } - $line_content = Pluf_esc($line[2]); - $line_content = preg_replace("/\t/", " ", $line_content); - $line_content = self::makeNonPrintableCharsVisible($line_content); - $out .= sprintf(''."\n", $line[0], $line[1], $class, $pretty, $line_content); + + $offsets[] = sprintf('', $left, $right); + $content = Pluf_esc($content); + $content = self::makeNonPrintableCharsVisible($content); + $contents[] = sprintf('', $class, $pretty, $content); + + $maxlinenum = max($maxlinenum, max($left, $right)); + } + if (count($file['chunks']) > $cc) { + $offsets[] = ''; + $contents[] = ''; } - if (count($file['chunks']) > $cc) - $out .= ''."\n"; $cc++; } - $out .= '
'.Pluf_esc($filename).'
%s%s%s
%s%s%s...... 
...... 
'; + + $inner = '' ."\n". + '' . + implode(''."\n".'', $contents) . + '' ."\n". + '
' ."\n"; + + $rows = count($offsets); + $colwidth = (ceil(log10($maxlinenum)) + 1) * 10; + $first = array_shift($offsets); + + $out .= '' ."\n". + '' ."\n". + ''. + ''. + '' ."\n". + '' . + $first . sprintf('', $rows, $inner) . + '' ."\n". + '' . + implode(''."\n".'', $offsets) . + '' ."\n". + '
'.Pluf_esc($filename).'
%s
' ."\n"; } + return Pluf_Template::markSafe($out); } private static function makeNonPrintableCharsVisible($line) { - return preg_replace('/([^[:print:]])/e', + return preg_replace('/([^[:print:]\t])/e', '"".bin2hex("\\1").""', $line); } diff --git a/www/media/idf/css/style.css b/www/media/idf/css/style.css index 98f0b1f..08371e9 100644 --- a/www/media/idf/css/style.css +++ b/www/media/idf/css/style.css @@ -574,6 +574,7 @@ table.commit table.changes table.properties td.removed { table.diff { border-bottom: 1px solid #d3d7cf; width: 100%; + table-layout: fixed; } table.diff th { @@ -583,45 +584,63 @@ table.diff th { } -table.diff tr { - border-left: 1px solid #d3d7cf; - border-right: 1px solid #d3d7cf; - border-bottom: none; - border-top: none; +table.diff tr.line { + border: 1px solid #d3d7cf; +} + +table.diff tr.line td.diff-lc { + font-size: 90%; + padding: 1px 10px; + text-align: right; + width: 20px; +} + +table.diff tr.line div.diff-content { + overflow: auto; + display: block; } table.diff td { - font-size: 90%; vertical-align: top; - padding: 1px; border-color: inherit; + padding: 0; } -table.diff td.diff-lc { +table.diff td.next { + background-color: #e4e8E0; + vertical-align: top; text-align: right; - padding: 1px 5px; - border-color: inherit; - border-top: 1px solid #d3d7cf; - border-bottom: 1px solid #d3d7cf; - width: 3em; + border-color: #d3d7cf; + padding: 1px 10px; } -td.diff-a { +table.diff-content { + border: 0; + /* setting this to 100% sometimes triggers the overflow of the parent container, + when it is not actually needed. we try to prevent that by taking not the + complete available space... */ + width: 99.99%; + margin: 0; +} + +table.diff-content td.diff { + line-height: 12px; + padding: 2px; + font-size: 90%; + border: none; + white-space: pre; +} + +table.diff-content td.diff-a { background-color: #dfd; } -td.diff-r { +table.diff-content td.diff-r { background-color: #fdd; } -td.diff { - border-bottom: none; - border-top: none; - white-space: pre; -} - -td.diff > span.non-printable { - visibility: hidden; +table.diff-content td.diff > span.non-printable { + visibility: hidden; color: white; text-transform: uppercase; float: none; @@ -638,39 +657,44 @@ td.diff > span.non-printable { vertical-align: 10%; } -td.diff:hover > span.non-printable { - visibility: visible; +table.diff-content td.diff:hover > span.non-printable { + visibility: visible; } -td.diff-a > span.non-printable { - background: #0A0; +table.diff-content td.diff-a > span.non-printable { + background: #0A0; } -td.diff-r > span.non-printable { - background: #A00; +table.diff-content td.diff-r > span.non-printable { + background: #A00; } -td.diff-c > span.non-printable { - background: black; +table.diff-content td.diff-c > span.non-printable { + background: black; } /* override prettify css rule */ -td.diff > span.non-printable > * { - color: white; +table.diff-content td.diff > span.non-printable > * { + color: white; } -table.diff tr.diff-next { - background-color: #e4e8E0; - vertical-align: top; - text-align: right; - border-color: #d3d7cf; +/* + This is a special hack: the outer td.next has + top/bottom border and padding and comes to a total + height of 20px - BUT it shares the upper border + with the previous row, so the height is actually + only 19px. The inner table has no lines between rows, + so the upper border is counted and we have 20px + in the interior, which is one pixel too much for + every occurrence. + What we now do is to remove the 1px top padding and + therefor lower the total height of the inner one + again by one to match the outer. +*/ +table.diff-content td.next { + padding-top: 0; } -table.diff tr.diff-next td { - padding: 1px 5px; -} - - /** * view file content */ From b413b7ee8903d7a8630e7042908937cc5126ac98 Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Thu, 6 Oct 2011 02:31:36 +0200 Subject: [PATCH 05/15] Improve the calculation part and reuse the values we have from the diff hunks. --- src/IDF/Diff.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/IDF/Diff.php b/src/IDF/Diff.php index 8f10e7f..bfc273e 100644 --- a/src/IDF/Diff.php +++ b/src/IDF/Diff.php @@ -178,7 +178,6 @@ class IDF_Diff $cc = 1; $offsets = array(); $contents = array(); - $maxlinenum = 0; foreach ($file['chunks'] as $chunk) { foreach ($chunk as $line) { @@ -195,8 +194,6 @@ class IDF_Diff $content = Pluf_esc($content); $content = self::makeNonPrintableCharsVisible($content); $contents[] = sprintf('%s', $class, $pretty, $content); - - $maxlinenum = max($maxlinenum, max($left, $right)); } if (count($file['chunks']) > $cc) { $offsets[] = '......'; @@ -212,11 +209,23 @@ class IDF_Diff '' ."\n"; $rows = count($offsets); - $colwidth = (ceil(log10($maxlinenum)) + 1) * 10; + + list($added, $removed) = end($file['chunks_def']); + + $added = $added[0] + $added[1]; + $leftwidth = 1; + if ($added > 0) + $leftwidth = (ceil(log10($added)) + 1) * 10; + + $removed = $removed[0] + $removed[1]; + $rightwidth = 1; + if ($removed > 0) + $rightwidth = (ceil(log10($removed)) + 1) * 10; + $first = array_shift($offsets); $out .= '' ."\n". - '' ."\n". + '' ."\n". ''. ''. '' ."\n". From c84afd0f783537a5255ed2637568f242e0356640 Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Sun, 9 Oct 2011 00:08:16 +0200 Subject: [PATCH 06/15] Some git diffs (most likely octopus merges) start with diff --cc, so we have to detect and stop log parsing when this occurs as well. --- src/IDF/Scm/Git.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/IDF/Scm/Git.php b/src/IDF/Scm/Git.php index 051085e..b0f7b76 100644 --- a/src/IDF/Scm/Git.php +++ b/src/IDF/Scm/Git.php @@ -513,7 +513,11 @@ class IDF_Scm_Git extends IDF_Scm return false; } - $diffStart = strpos($out, 'diff --git a'); + $diffStart = false; + if (preg_match('/^diff (?:--git a|--cc)/m', $out, $m, PREG_OFFSET_CAPTURE)) { + $diffStart = $m[0][1]; + } + $diff = ''; if ($diffStart !== false) { $log = substr($out, 0, $diffStart); From 2e0995abac2175f1f77de7f47930d8996236d7d6 Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Sun, 9 Oct 2011 00:13:34 +0200 Subject: [PATCH 07/15] Fixed rendering in Firefox which did, unlike Chrome, not expand the last row's height to fit the up-popping horizontal scrollbar, but all rows just a little, so the heights did not match. I've reworked this to not used the ill-advised rowspan any longer, but two separate tables whose heights match each other now in both browsers. Also I fixed a bug in the whitespace detection code - utf8 characters where broken into single bytes, so apparently the [:print:] character class does not accout for them, even in //u mode, so we're selecting the characters that we want to make visible on our own (basically control characters lower than space, I might add more). --- src/IDF/Diff.php | 54 ++++---- www/media/idf/css/style.css | 263 ++++++++++++++++++------------------ 2 files changed, 161 insertions(+), 156 deletions(-) diff --git a/src/IDF/Diff.php b/src/IDF/Diff.php index bfc273e..d07a7ca 100644 --- a/src/IDF/Diff.php +++ b/src/IDF/Diff.php @@ -183,57 +183,61 @@ class IDF_Diff foreach ($chunk as $line) { list($left, $right, $content) = $line; if ($left and $right) { - $class = 'diff diff-c'; + $class = 'context'; } elseif ($left) { - $class = 'diff diff-r'; + $class = 'removed'; } else { - $class = 'diff diff-a'; + $class = 'added'; } - $offsets[] = sprintf('', $left, $right); + $offsets[] = sprintf('', $left, $right); $content = Pluf_esc($content); $content = self::makeNonPrintableCharsVisible($content); $contents[] = sprintf('', $class, $pretty, $content); } if (count($file['chunks']) > $cc) { $offsets[] = ''; - $contents[] = ''; + $contents[] = ''; } $cc++; } - $inner = '
'.Pluf_esc($filename).'
%s%s%s%s%s...... 
' ."\n". - '' . - implode(''."\n".'', $contents) . - '' ."\n". - '
' ."\n"; - - $rows = count($offsets); - list($added, $removed) = end($file['chunks_def']); $added = $added[0] + $added[1]; $leftwidth = 1; if ($added > 0) - $leftwidth = (ceil(log10($added)) + 1) * 10; + $leftwidth = ((ceil(log10($added)) + 1) * 8) + 12; $removed = $removed[0] + $removed[1]; $rightwidth = 1; if ($removed > 0) - $rightwidth = (ceil(log10($removed)) + 1) * 10; + $rightwidth = ((ceil(log10($removed)) + 1) * 8) + 12; - $first = array_shift($offsets); + $inner_linecounts = + '' ."\n". + '' ."\n". + '' . + implode(''."\n".'', $offsets). + '' ."\n". + '
' ."\n"; - $out .= '' ."\n". - '' ."\n". + + $inner_contents = + '
' ."\n". + '' . + implode(''."\n".'', $contents) . + '' ."\n". + '
' ."\n"; + + $out .= '' ."\n". + '' ."\n". ''. - ''. + ''. '' ."\n". - '' . - $first . sprintf('', $rows, $inner) . - '' ."\n". - '' . - implode(''."\n".'', $offsets) . + '' . + ''. "\n". + ''. '' ."\n". '
'.Pluf_esc($filename).''.Pluf_esc($filename).'
%s
'. $inner_linecounts .'
'. $inner_contents .'
' ."\n"; } @@ -243,7 +247,7 @@ class IDF_Diff private static function makeNonPrintableCharsVisible($line) { - return preg_replace('/([^[:print:]\t])/e', + return preg_replace('/([\x00-\x1F])/ue', '"".bin2hex("\\1").""', $line); } diff --git a/www/media/idf/css/style.css b/www/media/idf/css/style.css index 08371e9..c7a90c6 100644 --- a/www/media/idf/css/style.css +++ b/www/media/idf/css/style.css @@ -212,17 +212,17 @@ span.px-header-title a, span.px-header-title a:link, span.px-header-title a:visi * Issue */ #tagscloud dl { - margin: 0; + margin: 0; } #tagscloud dt { - margin-top: .5em; - font-weight: bold; + margin-top: .5em; + font-weight: bold; } #tagscloud dd { - margin: 0; - display: inline; + margin: 0; + display: inline; } a.issue-c { @@ -506,16 +506,16 @@ table td.fileicon { cursor: default; display: block; /* - if width will be 100% horizontal scrollbar will apear - when scroll mode will be used - */ + if width will be 100% horizontal scrollbar will apear + when scroll mode will be used + */ /*width: 100%;*/ font: menu; font-size: 12px; /* - it is very important, if line-height not setted or setted - in relative units scroll will be broken in firefox - */ + it is very important, if line-height not setted or setted + in relative units scroll will be broken in firefox + */ line-height: 16px; overflow: hidden; } @@ -572,41 +572,39 @@ table.commit table.changes table.properties td.removed { * syntax highlighting of diffs */ table.diff { - border-bottom: 1px solid #d3d7cf; width: 100%; table-layout: fixed; } +table.diff td { + border: none; + vertical-align: top; + padding: 0; +} + +table.diff > tbody > tr > td + td { + border-right: 1px solid #d3d7cf; +} + table.diff th { background-color: #e4e8E0; vertical-align: top; border-color: #d3d7cf; } - -table.diff tr.line { - border: 1px solid #d3d7cf; -} - -table.diff tr.line td.diff-lc { - font-size: 90%; - padding: 1px 10px; - text-align: right; - width: 20px; -} - -table.diff tr.line div.diff-content { +table.diff div.scroll { overflow: auto; - display: block; } -table.diff td { +table.diff-contents td, +table.diff-linecounts td { vertical-align: top; border-color: inherit; padding: 0; } -table.diff td.next { +table.diff-contents td.next, +table.diff-linecounts td.next { background-color: #e4e8E0; vertical-align: top; text-align: right; @@ -614,85 +612,89 @@ table.diff td.next { padding: 1px 10px; } -table.diff-content { - border: 0; - /* setting this to 100% sometimes triggers the overflow of the parent container, - when it is not actually needed. we try to prevent that by taking not the - complete available space... */ - width: 99.99%; - margin: 0; +table.diff-linecounts { + margin: 0; } -table.diff-content td.diff { - line-height: 12px; - padding: 2px; - font-size: 90%; - border: none; - white-space: pre; +table.diff-contents { + border-bottom: 1px solid #d3d7cf; + width: 100%; + margin: 0; } -table.diff-content td.diff-a { +table.diff-linecounts tr, +table.diff-contents tr { + height: 18px; +} + +table.diff-linecounts tr { + border: 1px solid #d3d7cf; +} + +table.diff-linecounts tr:first-child { + border-top: 0px; +} + +table.diff-linecounts td { + font-size: 90%; + padding: 1px 10px; + text-align: right; + border-left: 1px solid #d3d7cf; +} + +table.diff-contents td { + line-height: 12px; + padding: 2px; + font-size: 90%; + border: none; + white-space: pre; +} + +table.diff-contents td.added { background-color: #dfd; } -table.diff-content td.diff-r { +table.diff-contents td.removed { background-color: #fdd; } -table.diff-content td.diff > span.non-printable { - visibility: hidden; - color: white; - text-transform: uppercase; - float: none; - font-size: 5.5pt; - font-family: Calibri, Helvetica, Arial, sans-serif; - text-align: center; - display: inline-block; - padding: 1px 1px 0px 1px; - margin-left: 1px; - margin-right: 1px; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - cursor: default; - vertical-align: 10%; +table.diff-contents td > span.non-printable { + visibility: hidden; + color: white; + text-transform: uppercase; + float: none; + font-size: 5.5pt; + font-family: Calibri, Helvetica, Arial, sans-serif; + text-align: center; + display: inline-block; + padding: 1px 1px 0px 1px; + margin-left: 1px; + margin-right: 1px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + cursor: default; + vertical-align: 10%; } -table.diff-content td.diff:hover > span.non-printable { - visibility: visible; +table.diff-contents td:hover > span.non-printable { + visibility: visible; } -table.diff-content td.diff-a > span.non-printable { - background: #0A0; +table.diff-contents td.added > span.non-printable { + background: #0A0; } -table.diff-content td.diff-r > span.non-printable { - background: #A00; +table.diff-contents td.removed > span.non-printable { + background: #A00; } -table.diff-content td.diff-c > span.non-printable { - background: black; +table.diff-contents td.context > span.non-printable { + background: black; } /* override prettify css rule */ -table.diff-content td.diff > span.non-printable > * { - color: white; -} - -/* - This is a special hack: the outer td.next has - top/bottom border and padding and comes to a total - height of 20px - BUT it shares the upper border - with the previous row, so the height is actually - only 19px. The inner table has no lines between rows, - so the upper border is counted and we have 20px - in the interior, which is one pixel too much for - every occurrence. - What we now do is to remove the 1px top padding and - therefor lower the total height of the inner one - again by one to match the outer. -*/ -table.diff-content td.next { - padding-top: 0; +table.diff-contents td > span.non-printable > * { + color: white; } /** @@ -858,37 +860,37 @@ ol > li { } #wiki-toc { - float: right; - margin-left: 10px; - margin-bottom: 10px; - max-width: 33%; + float: right; + margin-left: 10px; + margin-bottom: 10px; + max-width: 33%; } #wiki-toc-content { - border: 1px solid #999999; - border-width: 1px 0; - padding: 10px 0; - padding-bottom: 15px; - background-color: #ffffff; - display: block; + border: 1px solid #999999; + border-width: 1px 0; + padding: 10px 0; + padding-bottom: 15px; + background-color: #ffffff; + display: block; } #wiki-toc-content a { - display: block; - margin-top: 0.5em; - font-size: 90%; + display: block; + margin-top: 0.5em; + font-size: 90%; } #wiki-toc-content a:first-child { - margin-top: 0; + margin-top: 0; } #wiki-toc-content a.wiki-h2 { - margin-left: 1em; + margin-left: 1em; } #wiki-toc-content a.wiki-h3 { - margin-left: 2em; + margin-left: 2em; } /** @@ -1127,87 +1129,86 @@ span.scm-action.property-changed { * Stats on index */ #stats > h3 { - text-decoration : underline; + text-decoration : underline; } #stats table tr td { - border-style: none; + border-style: none; } #stats td { - padding: .2em; + padding: .2em; } /* * Project list on index */ div.p-list-img { - float: left; - height: 32px; - margin-top: .5em; + float: left; + height: 32px; + margin-top: .5em; } div.p-list-prj { - float: left; - margin: .5em 0 .5em .8em; + float: left; + margin: .5em 0 .5em .8em; } div.p-list-prj p { - margin: 0px; + margin: 0px; } div.p-list-private { - bottom: 16px; - right: -3px; - position: relative; + bottom: 16px; + right: -3px; + position: relative; } /* * Issue summary */ div.issue-summary { - float: left; - width: 50%; + float: left; + width: 50%; } div.issue-summary > div { - margin-right: 3em; - padding-top: 1em; + margin-right: 3em; + padding-top: 1em; } div.issue-summary h2 { - border-bottom: 1px solid #A5E26A; + border-bottom: 1px solid #A5E26A; } table.issue-summary { - width: 100%; + width: 100%; } table.issue-summary tr td { - border: 0; - padding: .1em .005em; + border: 0; + padding: .1em .005em; } table.issue-summary td.graph { - width: 60%; + width: 60%; } table.issue-summary td.count { - text-align: right; - padding-right: .5em; + text-align: right; + padding-right: .5em; } table.graph { - width: 100%; - margin: 0; - padding: 0; + width: 100%; + margin: 0; + padding: 0; } table.issue-summary td.graph-color { - background: #3C78B5; + background: #3C78B5; } table.issue-summary td.graph-percent { - padding-left: 1em; + padding-left: 1em; } - From 7438a2bf19c10f18f112698435e8f962835795f9 Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Sun, 9 Oct 2011 00:55:42 +0200 Subject: [PATCH 08/15] Improve the rendering of the control characters greatly by using the Unicode counterparts in th 0x24## plane and add a little bit of explanation what we are doing there and why we are doing this. --- src/IDF/Diff.php | 10 +++++++++- www/media/idf/css/style.css | 2 -- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/IDF/Diff.php b/src/IDF/Diff.php index d07a7ca..910124a 100644 --- a/src/IDF/Diff.php +++ b/src/IDF/Diff.php @@ -247,8 +247,16 @@ class IDF_Diff private static function makeNonPrintableCharsVisible($line) { + // This translates most of the C0 ASCII control characters into + // their visual counterparts in the 0x24## unicode plane + // (http://en.wikipedia.org/wiki/C0_and_C1_control_codes). + // We could add DEL (0x7F) to this set, but unfortunately this + // is not nicely mapped to 0x247F in the control plane, but 0x2421 + // and adding an if expression below just for this is a little bit + // of a hassle. And of course, the more esoteric ones from C1 are + // missing as well... return preg_replace('/([\x00-\x1F])/ue', - '"".bin2hex("\\1").""', + '"$".bin2hex("\\1").""', $line); } diff --git a/www/media/idf/css/style.css b/www/media/idf/css/style.css index c7a90c6..f319922 100644 --- a/www/media/idf/css/style.css +++ b/www/media/idf/css/style.css @@ -663,8 +663,6 @@ table.diff-contents td > span.non-printable { color: white; text-transform: uppercase; float: none; - font-size: 5.5pt; - font-family: Calibri, Helvetica, Arial, sans-serif; text-align: center; display: inline-block; padding: 1px 1px 0px 1px; From efa10c9afd508374442bc154397aed11536e9e1f Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Sun, 9 Oct 2011 01:39:05 +0200 Subject: [PATCH 09/15] Properly quote file names for the system call. --- test/bootstrap.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/bootstrap.php b/test/bootstrap.php index 7c10d09..148dfb2 100644 --- a/test/bootstrap.php +++ b/test/bootstrap.php @@ -21,7 +21,7 @@ if (file_exists($testconfig['db_database'])) { } echo ">>> creating empty test database...\n"; -passthru('php ' . PLUF_PATH . '/migrate.php --conf=' . TESTDIR . '/config.php -a -i'); +passthru('php ' . escapeshellarg(PLUF_PATH.'/migrate.php') . ' --conf=' . escapeshellarg(TESTDIR.'/config.php').' -a -i'); echo ">>> setting up web application...\n"; require 'Pluf.php'; From 74d07d8fb840c30c7b69ce4ed4566d8f6f71b51a Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Sun, 9 Oct 2011 01:53:37 +0200 Subject: [PATCH 10/15] Ignore a couple of file patterns more and sort the list for easier reading. --- .gitignore | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 530a8f1..faadd4c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,19 @@ *~ -tmp +.buildpath +.externalToolBuilders +.project +.settings +.tx/config +attachments +indefero-*.zip src/IDF/conf/idf.php src/IDF/conf/idf.test.php -www/test.php -www/media/upload -src/IDF/gettexttemplates -indefero-*.zip src/IDF/conf/path.php -.tx/config +src/IDF/gettexttemplates src/IDF/locale/idf.pot.bak +test/config.php test/test.db test/tmp -test/config.php +tmp +www/media/upload +www/test.php From 6abd0b6faa461df3a19873a2ec656fb33ea64c7d Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Sun, 9 Oct 2011 01:54:51 +0200 Subject: [PATCH 11/15] - Move common static methods out of IDF_Diff and into IDF_FileUtil. - Make stuff that should be private in IDF_Diff really private and comment out a test that was the only call path for a previously public method. - Apply the whitespace emphasizing on the normal file view as well and get finally rid of padLine() --- src/IDF/Diff.php | 57 +++---------------------------------- src/IDF/FileUtil.php | 54 +++++++++++++++++++++++++++++++++-- src/IDF/Tests/TestDiff.php | 33 +++++++++++---------- www/media/idf/css/style.css | 47 ++++++++++++++++-------------- 4 files changed, 100 insertions(+), 91 deletions(-) diff --git a/src/IDF/Diff.php b/src/IDF/Diff.php index 910124a..5a66886 100644 --- a/src/IDF/Diff.php +++ b/src/IDF/Diff.php @@ -35,29 +35,7 @@ class IDF_Diff public function __construct($diff, $path_strip_level = 0) { $this->path_strip_level = $path_strip_level; - $this->lines = self::splitIntoLines($diff); - } - - /** - * Splits a diff into separate lines while retaining the individual - * line ending character for every line - */ - private static function splitIntoLines($diff) - { - // this works because in unified diff format even empty lines are - // either prefixed with a '+', '-' or ' ' - $splitted = preg_split("/\r\n|\n/", $diff, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE); - - $last_off = -1; - $lines = array(); - while (($split = array_shift($splitted)) !== null) { - if ($last_off != -1) { - $lines[] .= substr($diff, $last_off, $split[1] - $last_off); - } - $last_off = $split[1]; - } - $lines[] = substr($diff, $last_off); - return $lines; + $this->lines = IDF_FileUtil::splitIntoLines($diff, true); } public function parse() @@ -192,7 +170,7 @@ class IDF_Diff $offsets[] = sprintf('%s%s', $left, $right); $content = Pluf_esc($content); - $content = self::makeNonPrintableCharsVisible($content); + $content = IDF_FileUtil::emphasizeControlCharacters($content); $contents[] = sprintf('%s', $class, $pretty, $content); } if (count($file['chunks']) > $cc) { @@ -245,33 +223,6 @@ class IDF_Diff return Pluf_Template::markSafe($out); } - private static function makeNonPrintableCharsVisible($line) - { - // This translates most of the C0 ASCII control characters into - // their visual counterparts in the 0x24## unicode plane - // (http://en.wikipedia.org/wiki/C0_and_C1_control_codes). - // We could add DEL (0x7F) to this set, but unfortunately this - // is not nicely mapped to 0x247F in the control plane, but 0x2421 - // and adding an if expression below just for this is a little bit - // of a hassle. And of course, the more esoteric ones from C1 are - // missing as well... - return preg_replace('/([\x00-\x1F])/ue', - '"$".bin2hex("\\1").""', - $line); - } - - public static function padLine($line) - { - $line = str_replace("\t", ' ', $line); - $n = strlen($line); - for ($i=0;$i<$n;$i++) { - if (substr($line, $i, 1) != ' ') { - break; - } - } - return str_repeat(' ', $i).substr($line, $i); - } - /** * Review patch. * @@ -299,7 +250,7 @@ class IDF_Diff return $this->renderCompared($new_chunks, $filename); } - public function mergeChunks($orig_lines, $chunks, $context=10) + private function mergeChunks($orig_lines, $chunks, $context=10) { $spans = array(); $new_chunks = array(); @@ -396,7 +347,7 @@ class IDF_Diff return $nnew_chunks; } - public function renderCompared($chunks, $filename) + private function renderCompared($chunks, $filename) { $fileinfo = IDF_FileUtil::getMimeType($filename); $pretty = ''; diff --git a/src/IDF/FileUtil.php b/src/IDF/FileUtil.php index 346dfa8..73f6dce 100644 --- a/src/IDF/FileUtil.php +++ b/src/IDF/FileUtil.php @@ -65,9 +65,9 @@ class IDF_FileUtil } $table = array(); $i = 1; - foreach (preg_split("/\015\012|\015|\012/", $content) as $line) { + foreach (self::splitIntoLines($content) as $line) { $table[] = ''.$i.'' - .''.IDF_Diff::padLine(Pluf_esc($line)).''; + .''.self::emphasizeControlCharacters(Pluf_esc($line)).''; $i++; } return Pluf_Template::markSafe(implode("\n", $table)); @@ -143,6 +143,56 @@ class IDF_FileUtil return $res; } + /** + * Splits a string into separate lines while retaining the individual + * line ending character for every line. + * + * OS9 line endings are not supported. + * + * @param string content + * @param boolean if true, skip completely empty lines + * @return string + */ + public static function splitIntoLines($content, $skipEmpty = false) + { + $flags = PREG_SPLIT_OFFSET_CAPTURE; + if ($skipEmpty) $flags |= PREG_SPLIT_NO_EMPTY; + $splitted = preg_split("/\r\n|\n/", $content, -1, $flags); + + $last_off = -1; + $lines = array(); + while (($split = array_shift($splitted)) !== null) { + if ($last_off != -1) { + $lines[] .= substr($content, $last_off, $split[1] - $last_off); + } + $last_off = $split[1]; + } + $lines[] = substr($content, $last_off); + return $lines; + } + + /** + * This translates most of the C0 ASCII control characters into + * their visual counterparts in the 0x24## unicode plane + * (http://en.wikipedia.org/wiki/C0_and_C1_control_codes). + * + * We could add DEL (0x7F) to this set, but unfortunately this + * is not nicely mapped to 0x247F in the control plane, but 0x2421 + * and adding an if expression below just for this is a little bit + * of a hassle. And of course, the more esoteric ones from C1 are + * missing as well... + * + * @param string $content + * @return string + */ + public static function emphasizeControlCharacters($content) + { + return preg_replace( + '/([\x00-\x1F])/ue', + '"$".bin2hex("\\1").""', + $content); + } + /** * Find if a given mime type is a text file. * This uses the output of the self::getMimeType function. diff --git a/src/IDF/Tests/TestDiff.php b/src/IDF/Tests/TestDiff.php index b854171..6f7f0e6 100644 --- a/src/IDF/Tests/TestDiff.php +++ b/src/IDF/Tests/TestDiff.php @@ -32,21 +32,24 @@ class IDF_Tests_TestDiff extends UnitTestCase parent::__construct('Test the diff parser.'); } - public function testBinaryDiff() - { - $diff_content = file_get_contents(dirname(__FILE__).'/test-diff.diff'); - $orig = file_get_contents(dirname(__FILE__).'/test-diff-view.html'); - $diff = new IDF_Diff($diff_content); - $diff->parse(); - $def = $diff->files['src/IDF/templates/idf/issues/view.html']; - - $orig_lines = preg_split("/\015\012|\015|\012/", $orig); - $merged = $diff->mergeChunks($orig_lines, $def, 10); - $lchunk = end($merged); - $lline = end($lchunk); - $this->assertEqual(array('', '166', '{/if}{/block}'), - $lline); - } + // + // IDF_Diff::mergeChunks() is now private, so this test needs to be rewritten + // + //public function testBinaryDiff() + //{ + // $diff_content = file_get_contents(dirname(__FILE__).'/test-diff.diff'); + // $orig = file_get_contents(dirname(__FILE__).'/test-diff-view.html'); + // $diff = new IDF_Diff($diff_content); + // $diff->parse(); + // $def = $diff->files['src/IDF/templates/idf/issues/view.html']; + // + // $orig_lines = preg_split("/\015\012|\015|\012/", $orig); + // $merged = $diff->mergeChunks($orig_lines, $def, 10); + // $lchunk = end($merged); + // $lline = end($lchunk); + // $this->assertEqual(array('', '166', '{/if}{/block}'), + // $lline); + //} public function testDiffWithHeaders() { diff --git a/www/media/idf/css/style.css b/www/media/idf/css/style.css index f319922..b31e393 100644 --- a/www/media/idf/css/style.css +++ b/www/media/idf/css/style.css @@ -571,6 +571,19 @@ table.commit table.changes table.properties td.removed { /** * syntax highlighting of diffs */ +span.ctrl-char { + color: white; + background: black; + text-align: center; + display: inline-block; + padding: 1px 1px 0px 1px; + margin-left: 1px; + margin-right: 1px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + cursor: default; +} + table.diff { width: 100%; table-layout: fixed; @@ -658,40 +671,24 @@ table.diff-contents td.removed { background-color: #fdd; } -table.diff-contents td > span.non-printable { +table.diff-contents td > span.ctrl-char { visibility: hidden; - color: white; - text-transform: uppercase; - float: none; - text-align: center; - display: inline-block; - padding: 1px 1px 0px 1px; - margin-left: 1px; - margin-right: 1px; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - cursor: default; - vertical-align: 10%; } -table.diff-contents td:hover > span.non-printable { +table.diff-contents td:hover > span.ctrl-char { visibility: visible; } -table.diff-contents td.added > span.non-printable { +table.diff-contents td.added > span.ctrl-char { background: #0A0; } -table.diff-contents td.removed > span.non-printable { +table.diff-contents td.removed > span.ctrl-char { background: #A00; } -table.diff-contents td.context > span.non-printable { - background: black; -} - /* override prettify css rule */ -table.diff-contents td > span.non-printable > * { +table.diff-contents td > span.ctrl-char > * { color: white; } @@ -737,6 +734,14 @@ table.code td.code { padding-left: 5px; } +table.code td.code span.ctrl-char { + visibility: hidden; +} + +table.code td.code:hover span.ctrl-char { + visibility: visible; +} + table.code td.code-lc { text-align: right; padding: 1px 5px; From 234b70845c015b6b4b590f29b26c175543efff82 Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Sun, 9 Oct 2011 02:04:13 +0200 Subject: [PATCH 12/15] Render the TAB char wider, so it is easier recognized as tab --- www/media/idf/css/style.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/www/media/idf/css/style.css b/www/media/idf/css/style.css index b31e393..075c76e 100644 --- a/www/media/idf/css/style.css +++ b/www/media/idf/css/style.css @@ -584,6 +584,11 @@ span.ctrl-char { cursor: default; } +/* special formatting for the TAB character: make it wider, so it is rendered more properly */ +span.ctrl-char[title="0x09"] { + width: 24px; +} + table.diff { width: 100%; table-layout: fixed; From 4fb15ccb7d4d212003241de70b7535ea77a59831 Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Sun, 9 Oct 2011 02:13:49 +0200 Subject: [PATCH 13/15] 6abd0b6f made problems in reviews, need to be reworked anyways in a few. --- src/IDF/Diff.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/IDF/Diff.php b/src/IDF/Diff.php index 5a66886..8ab78b1 100644 --- a/src/IDF/Diff.php +++ b/src/IDF/Diff.php @@ -245,7 +245,7 @@ class IDF_Diff */ public function fileCompare($orig, $chunks, $filename, $context=10) { - $orig_lines = self::splitIntoLines($orig); + $orig_lines = IDF_FileUtil::splitIntoLines($orig); $new_chunks = $this->mergeChunks($orig_lines, $chunks, $context); return $this->renderCompared($new_chunks, $filename); } @@ -361,7 +361,7 @@ class IDF_Diff foreach ($chunk as $line) { $line1 = ' '; $line2 = ' '; - $line[2] = (strlen($line[2])) ? self::padLine(Pluf_esc($line[2])) : ' '; + $line[2] = (strlen($line[2])) ? IDF_FileUtil::emphasizeControlCharacters(Pluf_esc($line[2])) : ' '; if ($line[0] and $line[1]) { $class = 'diff-c'; $line1 = $line2 = $line[2]; From 0efc14dd6f7d1544ca685caf3989923b7b3283f1 Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Sun, 9 Oct 2011 02:22:43 +0200 Subject: [PATCH 14/15] The autocompleter for the issue relations feature broke the review view, do'h --- src/IDF/templates/idf/issues/js-autocomplete.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/IDF/templates/idf/issues/js-autocomplete.html b/src/IDF/templates/idf/issues/js-autocomplete.html index 575e1a5..24a0675 100644 --- a/src/IDF/templates/idf/issues/js-autocomplete.html +++ b/src/IDF/templates/idf/issues/js-autocomplete.html @@ -68,6 +68,9 @@ return row.to; } }); +{/literal} + {if $issue} +{literal} $("#id_relation_issue" + idx).autocomplete("{/literal}{url 'IDF_Views_Issue::autoCompleteIssueList', array($project.shortname, $issue.id)}{literal}", { minChars: 0, width: 310, @@ -83,6 +86,9 @@ return row[1]; } }); +{/literal} + {/if} +{literal} } }); {/literal} //--> From 464c1a8ef5323d5032dacdf86dcbe3167b436dc2 Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Sun, 9 Oct 2011 03:14:43 +0200 Subject: [PATCH 15/15] Fix / adapt the side-by-side review diff rendering. --- src/IDF/Diff.php | 112 +++++++++++++++++++++---- src/IDF/templates/idf/review/view.html | 55 +++++------- www/media/idf/css/style.css | 5 +- 3 files changed, 120 insertions(+), 52 deletions(-) diff --git a/src/IDF/Diff.php b/src/IDF/Diff.php index 8ab78b1..798b0a8 100644 --- a/src/IDF/Diff.php +++ b/src/IDF/Diff.php @@ -169,8 +169,7 @@ class IDF_Diff } $offsets[] = sprintf('%s%s', $left, $right); - $content = Pluf_esc($content); - $content = IDF_FileUtil::emphasizeControlCharacters($content); + $content = IDF_FileUtil::emphasizeControlCharacters(Pluf_esc($content)); $contents[] = sprintf('%s', $class, $pretty, $content); } if (count($file['chunks']) > $cc) { @@ -208,7 +207,7 @@ class IDF_Diff '' ."\n". '' ."\n"; - $out .= '' ."\n". + $out .= '
' ."\n". '' ."\n". ''. ''. @@ -354,31 +353,108 @@ class IDF_Diff if (IDF_FileUtil::isSupportedExtension($fileinfo[2])) { $pretty = ' prettyprint'; } - $out = ''; + $cc = 1; - $i = 0; + $left_offsets = array(); + $left_contents = array(); + $right_offsets = array(); + $right_contents = array(); + + $max_lineno_left = $max_lineno_right = 0; + foreach ($chunks as $chunk) { foreach ($chunk as $line) { - $line1 = ' '; - $line2 = ' '; - $line[2] = (strlen($line[2])) ? IDF_FileUtil::emphasizeControlCharacters(Pluf_esc($line[2])) : ' '; + $left = ''; + $right = ''; + $content = IDF_FileUtil::emphasizeControlCharacters(Pluf_esc($line[2])); + if ($line[0] and $line[1]) { - $class = 'diff-c'; - $line1 = $line2 = $line[2]; + $class = 'context'; + $left = $right = $content; } elseif ($line[0]) { - $class = 'diff-r'; - $line1 = $line[2]; + $class = 'removed'; + $left = $content; } else { - $class = 'diff-a'; - $line2 = $line[2]; + $class = 'added'; + $right = $content; } - $out .= sprintf(''."\n", $line[0], $class, $pretty, $line1, $line[1], $class, $pretty, $line2); + + $left_offsets[] = sprintf('', $line[0]); + $right_offsets[] = sprintf('', $line[1]); + $left_contents[] = sprintf('', $class, $pretty, $left); + $right_contents[] = sprintf('', $class, $pretty, $right); + + $max_lineno_left = max($max_lineno_left, $line[0]); + $max_lineno_right = max($max_lineno_right, $line[1]); + } + + if (count($chunks) > $cc) { + $left_offsets[] = ''; + $right_offsets[] = ''; + $left_contents[] = ''; + $right_contents[] = ''; } - if (count($chunks) > $cc) - $out .= ''."\n"; $cc++; - $i++; } + + $leftwidth = 1; + if ($max_lineno_left > 0) + $leftwidth = ((ceil(log10($max_lineno_left)) + 1) * 8) + 12; + + $rightwidth = 1; + if ($max_lineno_right > 0) + $rightwidth = ((ceil(log10($max_lineno_right)) + 1) * 8) + 12; + + $inner_linecounts_left = + '
'.Pluf_esc($filename).'
%s%s%s%s
%s%s%s%s......
... ... 
' ."\n". + '' ."\n". + '' . + implode(''."\n".'', $left_offsets). + '' ."\n". + '
' ."\n"; + + $inner_linecounts_right = + '' ."\n". + '' ."\n". + '' . + implode(''."\n".'', $right_offsets). + '' ."\n". + '
' ."\n"; + + $inner_contents_left = + '' ."\n". + '' . + implode(''."\n".'', $left_contents) . + '' ."\n". + '
' ."\n"; + + $inner_contents_right = + '' ."\n". + '' . + implode(''."\n".'', $right_contents) . + '' ."\n". + '
' ."\n"; + + $out = + '' ."\n". + '' . + '' . + '' . + '' ."\n". + ''. + ''. + '' ."\n". + '' . + '' . + ''. + '' . + ''. "\n". + ''. "\n". + ''. "\n". + ''. "\n". + '' ."\n". + '
'.Pluf_esc($filename).'
'.__('Old').''.__('New').'
'. $inner_linecounts_left .'
'. $inner_contents_left .'
'. $inner_linecounts_right .'
'. $inner_contents_right .'
' ."\n"; + return Pluf_Template::markSafe($out); } } diff --git a/src/IDF/templates/idf/review/view.html b/src/IDF/templates/idf/review/view.html index d655083..41d368b 100644 --- a/src/IDF/templates/idf/review/view.html +++ b/src/IDF/templates/idf/review/view.html @@ -10,8 +10,26 @@ {/if} {/if} - - -
+{if !$user.isAnonymous()} +
+

{trans 'How to Participate in a Code Review'}

+ +

{blocktrans}Code review is a process in which +after or before changes are commited into the code repository, +different people discuss the code changes. The goal is +to improve the quality of the code and the +contributions, as such, you must be pragmatic when writing +your review. Correctly mention the line numbers (in the old or in the +new file) and try to keep a good balance between seriousness and fun. +{/blocktrans}

+

{blocktrans} +Proposing code for review is intimidating, you know +you will receive critics, so please, as a reviewer, keep this +process fun, use it to help your contributor learn your +coding standards and the structure of the code and make them want +to propose more contributions. +{/blocktrans}

+{/if} @@ -45,39 +63,12 @@
{trans 'Created:'}{$patch.creation_dtime|date:"%Y-%m-%d %H:%M:%S"} ({$patch.creation_dtime|dateago}) {trans 'Archive'} {trans 'Download the corresponding diff file'}
-
-{if !$user.isAnonymous()} -
-

{trans 'How to Participate in a Code Review'}

- -

{blocktrans}Code review is a process in which -after or before changes are commited into the code repository, -different people discuss the code changes. The goal is -to improve the quality of the code and the -contributions, as such, you must be pragmatic when writing -your review. Correctly mention the line numbers (in the old or in the -new file) and try to keep a good balance between seriousness and fun. -{/blocktrans}

-

{blocktrans} -Proposing code for review is intimidating, you know -you will receive critics, so please, as a reviewer, keep this -process fun, use it to help your contributor learn your -coding standards and the structure of the code and make them want -to propose more contributions. -{/blocktrans}

-{/if} -
{foreach $files as $file=>$def} - - - - -{$def[0]} - -
{$file}
{trans 'Old'}{trans 'New'}
+ + {$def[0]} + {assign $fcomments = $def[2]} {assign $nc = $fcomments.count()} {assign $i = 1} diff --git a/www/media/idf/css/style.css b/www/media/idf/css/style.css index 075c76e..eff8a28 100644 --- a/www/media/idf/css/style.css +++ b/www/media/idf/css/style.css @@ -600,8 +600,9 @@ table.diff td { padding: 0; } -table.diff > tbody > tr > td + td { - border-right: 1px solid #d3d7cf; +table.diff.unified > tbody > tr > td + td, +table.diff.context > tbody > tr > td + td + td + td { + border-right: 1px solid #d3d7cf; } table.diff th {