[dahdi-commits] sruffell: branch linux/sruffell/dahdi-linux-transcoder r5634 - in /linux/team...

SVN commits to the DAHDI project dahdi-commits at lists.digium.com
Mon Jan 5 14:43:23 CST 2009


Author: sruffell
Date: Mon Jan  5 14:43:21 2009
New Revision: 5634

URL: http://svn.digium.com/view/dahdi?view=rev&rev=5634
Log:
Merged revisions 5627 via svnmerge from 
https://origsvn.digium.com/svn/dahdi/linux/trunk

........
r5627 | sruffell | 2009-01-05 11:21:24 -0800 (Mon, 05 Jan 2009) | 3 lines

Print more information to the kernel log when the transcoder sends us a
diagnostic message.

........

Modified:
    linux/team/sruffell/dahdi-linux-transcoder/   (props changed)
    linux/team/sruffell/dahdi-linux-transcoder/drivers/dahdi/wctc4xxp/base.c

Propchange: linux/team/sruffell/dahdi-linux-transcoder/
------------------------------------------------------------------------------
    automerge = yes

Propchange: linux/team/sruffell/dahdi-linux-transcoder/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Jan  5 14:43:21 2009
@@ -1,1 +1,1 @@
-/linux/trunk:1-5621
+/linux/trunk:1-5633

Modified: linux/team/sruffell/dahdi-linux-transcoder/drivers/dahdi/wctc4xxp/base.c
URL: http://svn.digium.com/view/dahdi/linux/team/sruffell/dahdi-linux-transcoder/drivers/dahdi/wctc4xxp/base.c?view=diff&rev=5634&r1=5633&r2=5634
==============================================================================
--- linux/team/sruffell/dahdi-linux-transcoder/drivers/dahdi/wctc4xxp/base.c (original)
+++ linux/team/sruffell/dahdi-linux-transcoder/drivers/dahdi/wctc4xxp/base.c Mon Jan  5 14:43:21 2009
@@ -179,6 +179,7 @@
 /* Supervisor function codes */
 #define SUPVSR_CREATE_CHANNEL	0x0010
 
+#define MONITOR_LIVE_INDICATION_TYPE 0x75
 #define CONFIG_CHANGE_TYPE	0x00
 #define CONFIG_CHANNEL_CLASS	0x02
 #define CONFIG_DEVICE_CLASS	0x06
@@ -2020,19 +2021,38 @@
 }
 
 static void
-display_diagnostic_cmd(struct wcdte *wc, struct tcb *cmd)
-{
-	int i;
+print_command(struct wcdte *wc, const struct tcb *cmd)
+{
+	int i, curlength;
 	const struct csm_encaps_hdr *hdr = cmd->data;
-	DTE_PRINTK(WARNING, "Received Diagnostic Message:\n");
-	DTE_PRINTK(WARNING, "   Function: %04x\n", le16_to_cpu(hdr->function));
-	for (i = 0; i < (hdr->length/2); ++i) {
-		DTE_PRINTK(WARNING, "   Param[%d]: %04x\n", i,
+	char *buffer;
+	const int BUFFER_SIZE = 1024;
+	int parameters = ((hdr->length - 8)/sizeof(__le16));
+
+	buffer = kzalloc(BUFFER_SIZE + 1, GFP_ATOMIC);
+	if (!buffer) {
+		DTE_PRINTK(DEBUG, "Failed print_command\n");
+		return;
+	}
+	curlength = snprintf(buffer, BUFFER_SIZE, 
+		"opcode: %04x seq: %02x control: %02x "
+		"channel: %04x ", be16_to_cpu(hdr->op_code),
+		hdr->seq_num, hdr->control, be16_to_cpu(hdr->channel));
+	curlength += snprintf(buffer + curlength, BUFFER_SIZE - curlength,
+		"length: %02x index: %02x type: %02x "
+		"class: %02x function: %04x",
+		hdr->length, hdr->index, hdr->type, hdr->class,
+		le16_to_cpu(hdr->function));
+	for (i = 0; i < parameters; ++i) {
+		curlength += snprintf(buffer + curlength,
+			BUFFER_SIZE - curlength, " %04x",
 			le16_to_cpu(hdr->params[i]));
 	}
-}
-
-static void
+	DTE_PRINTK(DEBUG, "%s\n", buffer);
+	kfree(buffer);
+}
+
+static void 
 receive_csm_encaps_packet(struct wcdte *wc, struct tcb *cmd)
 {
 	const struct csm_encaps_hdr *hdr = cmd->data;
@@ -2066,8 +2086,9 @@
 				wake_up(&wc->waitq);
 			}
 			free_cmd(cmd);
-		} else if (0x75 == hdr->type) {
-			display_diagnostic_cmd(wc, cmd);
+		} else if (MONITOR_LIVE_INDICATION_TYPE == hdr->type) {
+			DTE_PRINTK(WARNING, "Received diagnostic message:\n");
+			print_command(wc, cmd);
 			free_cmd(cmd);
 		} else {
 			DTE_PRINTK(WARNING,




More information about the dahdi-commits mailing list