aboutsummaryrefslogtreecommitdiff
path: root/lib/targetdb.exp
diff options
context:
space:
mode:
authorRob Savoye <rob@welcomehome.org>2001-02-05 04:26:49 +0000
committerRob Savoye <rob@welcomehome.org>2001-02-05 04:26:49 +0000
commit229fa96029bd352626b934a724c88eba6a1350f7 (patch)
treecd107e9fab160ca92d55e594e878d0d9bb776cce /lib/targetdb.exp
parent20f1185dd84bcadf4b238d1d2ca18f5ca79157d4 (diff)
downloaddejagnu-229fa96029bd352626b934a724c88eba6a1350f7.zip
dejagnu-229fa96029bd352626b934a724c88eba6a1350f7.tar.gz
dejagnu-229fa96029bd352626b934a724c88eba6a1350f7.tar.bz2
Initial revision
Diffstat (limited to 'lib/targetdb.exp')
-rw-r--r--lib/targetdb.exp113
1 files changed, 113 insertions, 0 deletions
diff --git a/lib/targetdb.exp b/lib/targetdb.exp
new file mode 100644
index 0000000..b682d04
--- /dev/null
+++ b/lib/targetdb.exp
@@ -0,0 +1,113 @@
+# Copyright (C) 97, 98, 1999 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# DejaGnu@cygnus.com
+
+#
+# Searches in the appropriate place (the board_info array) for the specified
+# information.
+#
+proc board_info { machine op args } {
+ global target_info
+ global board_info
+
+ verbose "board_info $machine $op $args" 3
+
+ if [info exists target_info($machine,name)] {
+ set machine $target_info($machine,name);
+ }
+ if { $op == "exists" } {
+ if { [llength $args] == 0 } {
+ if [info exists board_info($machine,name)] {
+ return 1;
+ } else {
+ return 0;
+ }
+ } else {
+ if [info exists "board_info($machine,[lindex $args 0])"] {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+ }
+ if { [llength $args] == 0 } {
+ verbose "getting $machine $op" 3
+ if [info exists board_info($machine,$op)] {
+ return $board_info($machine,$op);
+ } else {
+ return ""
+ }
+ }
+ return "";
+}
+
+proc target_info { op args } {
+ return [eval "board_info target \"$op\" $args"];
+}
+
+proc host_info { op args } {
+ return [eval "board_info host \"$op\" $args"];
+}
+
+#
+# Fill in ENTRY with VALUE for the current board being defined.
+#
+proc set_board_info { entry value } {
+ global board_info board;
+
+ if ![info exists board_info($board,$entry)] {
+ set board_info($board,$entry) $value;
+ }
+}
+
+#
+# Fill in ENTRY with VALUE for the current target.
+#
+proc set_currtarget_info { entry value } {
+ global board_info;
+
+ set board [target_info name];
+
+ if ![info exists board_info($board,$entry)] {
+ set board_info($board,$entry) $value;
+ }
+}
+
+#
+# Unset ENTRY for the current board being defined.
+#
+proc unset_board_info { entry } {
+ global board_info board;
+
+ if [info exists board_info($board,$entry)] {
+ unset board_info($board,$entry);
+ }
+}
+
+#
+# Unset ENTRY for the current board being defined.
+#
+proc unset_currtarget_info { entry } {
+ global board_info;
+
+ set board [target_info name];
+
+ if [info exists board_info($board,$entry)] {
+ unset board_info($board,$entry);
+ }
+}