summaryrefslogtreecommitdiffstats
path: root/etc/inc/system.inc
diff options
context:
space:
mode:
authorScott Ullrich <sullrich@pfsense.org>2010-05-18 17:31:47 -0400
committerScott Ullrich <sullrich@pfsense.org>2010-05-18 17:31:47 -0400
commit2c7d67ff55d4713b174d18c4e30368a908204824 (patch)
treee63bb9c6201b6f73b07d5aa27e812b3fad73f3d3 /etc/inc/system.inc
parent15f1488904c0bd3a1b8d843f90b22587b5700936 (diff)
downloadpfsense-2c7d67ff55d4713b174d18c4e30368a908204824.zip
pfsense-2c7d67ff55d4713b174d18c4e30368a908204824.tar.gz
Add system_identify_specific_platform()
Diffstat (limited to 'etc/inc/system.inc')
-rw-r--r--etc/inc/system.inc39
1 files changed, 39 insertions, 0 deletions
diff --git a/etc/inc/system.inc b/etc/inc/system.inc
index 6ea3b9b..2123053 100644
--- a/etc/inc/system.inc
+++ b/etc/inc/system.inc
@@ -1369,4 +1369,43 @@ EOD;
return 0;
}
+/* attempt to identify the specific platform (for embedded systems)
+ Returns an array with two elements:
+ name => platform string (e.g. 'wrap', 'alix' etc.)
+ descr => human-readable description (e.g. "PC Engines WRAP")
+*/
+function system_identify_specific_platform() {
+ global $g;
+
+ if ($g['platform'] == 'generic-pc')
+ return array('name' => 'generic-pc', 'descr' => "Generic PC");
+
+ if ($g['platform'] == 'generic-pc-cdrom')
+ return array('name' => 'generic-pc-cdrom', 'descr' => "Generic PC (CD-ROM)");
+
+ /* the rest of the code only deals with 'embedded' platforms */
+ if ($g['platform'] != 'embedded')
+ return array('name' => $g['platform'], 'descr' => $g['platform']);
+
+ $dmesg = system_get_dmesg_boot();
+
+ if (strpos($dmesg, "PC Engines WRAP") !== false)
+ return array('name' => 'wrap', 'descr' => 'PC Engines WRAP');
+
+ if (strpos($dmesg, "PC Engines ALIX") !== false)
+ return array('name' => 'alix', 'descr' => 'PC Engines ALIX');
+
+ if (preg_match("/Soekris net45../", $dmesg, $matches))
+ return array('name' => 'net45xx', 'descr' => $matches[0]);
+
+ if (preg_match("/Soekris net48../", $dmesg, $matches))
+ return array('name' => 'net48xx', 'descr' => $matches[0]);
+
+ if (preg_match("/Soekris net55../", $dmesg, $matches))
+ return array('name' => 'net55xx', 'descr' => $matches[0]);
+
+ /* unknown embedded platform */
+ return array('name' => 'embedded', 'descr' => 'embedded (unknown)');
+}
+
?> \ No newline at end of file
OpenPOWER on IntegriCloud