aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2010-08-05 22:13:51 -0500
committerDan Williams <dcbw@redhat.com>2010-08-05 22:51:28 -0500
commit52f9c721d3f7201ca2f8ad6461cbb5fd8e50d822 (patch)
tree13cec955444fc1c098c4568c8af8041aceb1ac77
parentb4d3ab014d5587b80858f314e53e596ed70ebdbf (diff)
core: add SPC lock error
-rw-r--r--libqcdm/src/commands.c7
-rw-r--r--libqcdm/src/error.c1
-rw-r--r--libqcdm/src/error.h1
3 files changed, 9 insertions, 0 deletions
diff --git a/libqcdm/src/commands.c b/libqcdm/src/commands.c
index 11a1a38b..e4918617 100644
--- a/libqcdm/src/commands.c
+++ b/libqcdm/src/commands.c
@@ -119,6 +119,8 @@ bin2hexstr (const guint8 *bytes, int len)
return result;
}
+/**********************************************************************/
+
static gboolean
check_command (const char *buf, gsize len, guint8 cmd, gsize min_len, GError **error)
{
@@ -154,6 +156,11 @@ check_command (const char *buf, gsize len, guint8 cmd, gsize min_len, GError **e
"DM command %d not allowed in the current device mode",
cmd);
return FALSE;
+ case DIAG_CMD_BAD_SPC_MODE:
+ g_set_error (error, QCDM_COMMAND_ERROR, QCDM_COMMAND_SPC_LOCKED,
+ "DM command %d not allowed because the Service Programming Code is locked",
+ cmd);
+ return FALSE;
default:
break;
}
diff --git a/libqcdm/src/error.c b/libqcdm/src/error.c
index e3b97a04..994608e9 100644
--- a/libqcdm/src/error.c
+++ b/libqcdm/src/error.c
@@ -75,6 +75,7 @@ qcdm_command_error_get_type (void)
ENUM_ENTRY (QCDM_COMMAND_NOT_ACCEPTED, "QcdmCommandNotAccepted"),
ENUM_ENTRY (QCDM_COMMAND_BAD_MODE, "QcdmCommandBadMode"),
ENUM_ENTRY (QCDM_COMMAND_NVCMD_FAILED, "QcdmCommandNvCmdFailed"),
+ ENUM_ENTRY (QCDM_COMMAND_SPC_LOCKED, "QcdmCommandSpcLocked"),
{ 0, 0, 0 }
};
diff --git a/libqcdm/src/error.h b/libqcdm/src/error.h
index 7a02ae2c..f0b05349 100644
--- a/libqcdm/src/error.h
+++ b/libqcdm/src/error.h
@@ -41,6 +41,7 @@ enum {
QCDM_COMMAND_NOT_ACCEPTED = 5,
QCDM_COMMAND_BAD_MODE = 6,
QCDM_COMMAND_NVCMD_FAILED = 7,
+ QCDM_COMMAND_SPC_LOCKED = 8,
};
#define QCDM_COMMAND_ERROR (qcdm_command_error_quark ())