summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2005-07-03 13:13:17 +0000
committerMarcel Holtmann <marcel@holtmann.org>2005-07-03 13:13:17 +0000
commit4f32352b05190a3f70828c38f4a4f25655bb696e (patch)
tree45ba3b21b94f85c56ad51c5a9448fb9c7c785117
parentcbbe4f3f909cde4356f1323e0bd157e2fe9320de (diff)
Move CSR panic and fault code reading to the bccmd tool
-rw-r--r--tools/bccmd.c42
-rw-r--r--tools/hciconfig.c12
2 files changed, 40 insertions, 14 deletions
diff --git a/tools/bccmd.c b/tools/bccmd.c
index 5e358b01..df39a3df 100644
--- a/tools/bccmd.c
+++ b/tools/bccmd.c
@@ -95,14 +95,50 @@ static int cmd_clock(int dd, int argc, char *argv[])
return 0;
}
+static int cmd_panicarg(int dd, int argc, char *argv[])
+{
+ uint16_t error = 0;
+ int err;
+
+ err = csr_read_varid_uint16(dd, 5, CSR_VARID_PANIC_ARG, &error);
+ if (err < 0) {
+ errno = -err;
+ return -1;
+ }
+
+ printf("Panic code: 0x%02x (%s)\n", error,
+ error < 0x100 ? "valid" : "invalid");
+
+ return 0;
+}
+
+static int cmd_faultarg(int dd, int argc, char *argv[])
+{
+ uint16_t error = 0;
+ int err;
+
+ err = csr_read_varid_uint16(dd, 5, CSR_VARID_FAULT_ARG, &error);
+ if (err < 0) {
+ errno = -err;
+ return -1;
+ }
+
+ printf("Fault code: 0x%02x (%s)\n", error,
+ error < 0x100 ? "valid" : "invalid");
+
+ return 0;
+}
+
static struct {
char *str;
int (*func)(int dd, int argc, char **argv);
char *arg;
char *doc;
} commands[] = {
- { "keylen", cmd_keylen, "<handle>", "Get current crypt key length" },
- { "clock", cmd_clock, "", "Get local Bluetooth clock" },
+ { "keylen", cmd_keylen, "<handle>", "Get current crypt key length" },
+ { "clock", cmd_clock, "", "Get local Bluetooth clock" },
+ { "panicarg", cmd_panicarg, "", "Get panic code argument" },
+ { "faultarg", cmd_faultarg, "", "Get fault code argument" },
{ NULL },
};
@@ -116,7 +152,7 @@ static void usage(void)
printf("Commands:\n");
for (i = 0; commands[i].str; i++)
- printf("\t%s\t%-8s\t%s\n", commands[i].str,
+ printf("\t%-10s%-8s\t%s\n", commands[i].str,
commands[i].arg, commands[i].doc);
}
diff --git a/tools/hciconfig.c b/tools/hciconfig.c
index f6c932e4..4dfb57a7 100644
--- a/tools/hciconfig.c
+++ b/tools/hciconfig.c
@@ -1173,7 +1173,7 @@ static void print_rev_ericsson(int dd)
static void print_rev_csr(int dd, uint16_t rev)
{
- uint16_t buildid, chipver, chiprev, maxkeylen, mapsco, error;
+ uint16_t buildid, chipver, chiprev, maxkeylen, mapsco;
if (csr_read_varid_uint16(dd, 0, CSR_VARID_BUILDID, &buildid) < 0) {
printf("\t%s\n", csr_buildidtostr(rev));
@@ -1193,16 +1193,6 @@ static void print_rev_csr(int dd, uint16_t rev)
if (!csr_read_pskey_uint16(dd, 4, CSR_PSKEY_HOSTIO_MAP_SCO_PCM, &mapsco))
printf("\tSCO mapping: %s\n", mapsco ? "PCM" : "HCI");
-
- if (!csr_read_varid_uint16(dd, 5, CSR_VARID_PANIC_ARG, &error)) {
- if (error < 0x0100)
- printf("\tPanic code: 0x%02x\n", error);
- }
-
- if (!csr_read_varid_uint16(dd, 6, CSR_VARID_FAULT_ARG, &error)) {
- if (error < 0x0100)
- printf("\tFault code: 0x%02x\n", error);
- }
}
static void print_rev_digianswer(int dd)