[U-Boot] [PATCH] itest: Add bitwise and operator

Eric Nelson eric.nelson at boundarydevices.com
Fri May 3 20:47:42 CEST 2013


Signed-off-by: Eric Nelson <eric.nelson at boundarydevices.com>
---
 common/cmd_itest.c        |    4 ++++
 doc/README.commands.itest |   10 +++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/common/cmd_itest.c b/common/cmd_itest.c
index 2c8e5d0..0629b09 100644
--- a/common/cmd_itest.c
+++ b/common/cmd_itest.c
@@ -38,6 +38,7 @@
 #define GT	3
 #define LE	4
 #define GE	5
+#define AND	6
 
 struct op_tbl_s {
 	char	*op;		/* operator string */
@@ -60,6 +61,8 @@ static const op_tbl_t op_table [] = {
 	{ ">=" , GE },
 	{ "-le", LE },
 	{ "<=" , LE },
+	{ "-and", AND },
+	{ "&" , AND },
 };
 
 static long evalexp(char *s, int w)
@@ -126,6 +129,7 @@ static int arithcomp (char *s, char *t, int op, int w)
 	case GT: return (l > r);
 	case LE: return (l <= r);
 	case GE: return (l >= r);
+	case AND: return (l & r);
 	}
 	return (0);
 }
diff --git a/doc/README.commands.itest b/doc/README.commands.itest
index 5e0fe86..0058155 100644
--- a/doc/README.commands.itest
+++ b/doc/README.commands.itest
@@ -2,7 +2,7 @@ A slow day today so here is a revised itest command with provisional
 support for comparing strings as well :-))
 
 Now table driven to allow the operators
--eq, -ne, -lt, -gt, -le, -ge, ==, !=, <>, <, >, <=, >=
+-eq, -ne, -lt, -gt, -le, -ge, -and, ==, !=, <>, <, >, <=, >=, &
 
 Uses the expected command modifier for integer compares of width 1, 2 or
 4 bytes of .b, .w, .l and the new modifer of .s for a string compare.
@@ -14,3 +14,11 @@ if itest.l *40000 == 12345678 then; ....
 if itest.w *40000 != 1234 then; ....
 if itest.b *40000 >= 12 then; ....
 if itest.s *40000 -eq hello then; ....
+
+Note that "&" (-and) operator only operates on integers and
+that the '&' will need to be quoted.
+
+e.g.:
+	if itest.l 0x80 '&' *0x020D8044 then; ...
+or
+	if itest.l 0x80 -and *0x020D8044 then; ...
-- 
1.7.9.5



More information about the U-Boot mailing list