From 2910f9b13bb127987b3f9db4fa0e45a386976e2b Mon Sep 17 00:00:00 2001 From: Tzafrir Cohen Date: Thu, 15 Mar 2012 12:53:07 +0000 Subject: xpp: FXS: improve fxs_info output layout * Rotate the channels table in /proc/xpp/XBUS-*/XPD-*/fxs_info - This way we don't overflow 80 columns - Can also add more info items per-channel * Linearize LED output for easier grep'ping Signed-off-by: Oron Peled Acked-by: Tzafrir Cohen git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@10479 a0bf4364-ded3-4de4-8d8a-66a801d63aff --- drivers/dahdi/xpp/card_fxs.c | 59 +++++++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/drivers/dahdi/xpp/card_fxs.c b/drivers/dahdi/xpp/card_fxs.c index 31cfea3..43b822a 100644 --- a/drivers/dahdi/xpp/card_fxs.c +++ b/drivers/dahdi/xpp/card_fxs.c @@ -1687,26 +1687,43 @@ static int proc_fxs_info_read(char *page, char **start, off_t off, int count, spin_lock_irqsave(&xpd->lock, flags); priv = xpd->priv; BUG_ON(!priv); - len += - sprintf(page + len, "%-8s %-10s %-10s %-10s %-10s %-10s\n", - "Channel", "idletxhookstate", "lasttxhook", "ohttimer", - "neon_blinking", "search_fsk_pattern"); + len += sprintf(page + len, "%-12s", "Channel:"); for_each_line(xpd, i) { - char pref; + len += sprintf(page + len, "%4d", i); + } + len += sprintf(page + len, "\n%-12s", ""); + for_each_line(xpd, i) { + char *chan_type; if (IS_SET(PHONEDEV(xpd).digital_outputs, i)) - pref = 'O'; + chan_type = "out"; else if (IS_SET(PHONEDEV(xpd).digital_inputs, i)) - pref = 'I'; + chan_type = "in"; else - pref = ' '; - len += - sprintf(page + len, "%c%7d %10d %10d %10d %10d %10d\n", - pref, i, priv->idletxhookstate[i], - priv->lasttxhook[i], priv->ohttimer[i], - IS_SET(priv->neon_blinking, i), - IS_SET(priv->search_fsk_pattern, i) - ); + chan_type = ""; + len += sprintf(page + len, "%4s", chan_type); + } + len += sprintf(page + len, "\n%-12s", "idletxhook:"); + for_each_line(xpd, i) { + len += sprintf(page + len, "%4d", priv->idletxhookstate[i]); + } + len += sprintf(page + len, "\n%-12s", "lasttxhook:"); + for_each_line(xpd, i) { + len += sprintf(page + len, "%4d", priv->lasttxhook[i]); + } + len += sprintf(page + len, "\n%-12s", "ohttimer:"); + for_each_line(xpd, i) { + len += sprintf(page + len, "%4d", priv->ohttimer[i]); + } + len += sprintf(page + len, "\n%-12s", "neon_blink:"); + for_each_line(xpd, i) { + len += sprintf(page + len, "%4d", + IS_SET(priv->neon_blinking, i)); + } + len += sprintf(page + len, "\n%-12s", "search_fsk:"); + for_each_line(xpd, i) { + len += sprintf(page + len, "%4d", + IS_SET(priv->search_fsk_pattern, i)); } len += sprintf(page + len, "\n%-12s", "vbat_h:"); for_each_line(xpd, i) { @@ -1715,8 +1732,8 @@ static int proc_fxs_info_read(char *page, char **start, off_t off, int count, } len += sprintf(page + len, "\n"); for (led = 0; led < NUM_LEDS; led++) { - len += sprintf(page + len, "LED #%d", led); - len += sprintf(page + len, "\n\t%-17s: ", "ledstate"); + len += sprintf(page + len, "\nLED #%d\t%-12s: ", + led, "ledstate"); for_each_line(xpd, i) { if (!IS_SET(PHONEDEV(xpd).digital_outputs, i) && !IS_SET(PHONEDEV(xpd).digital_inputs, i)) @@ -1724,7 +1741,8 @@ static int proc_fxs_info_read(char *page, char **start, off_t off, int count, sprintf(page + len, "%d ", IS_SET(priv->ledstate[led], i)); } - len += sprintf(page + len, "\n\t%-17s: ", "ledcontrol"); + len += sprintf(page + len, "\nLED #%d\t%-12s: ", + led, "ledcontrol"); for_each_line(xpd, i) { if (!IS_SET(PHONEDEV(xpd).digital_outputs, i) && !IS_SET(PHONEDEV(xpd).digital_inputs, i)) @@ -1732,7 +1750,8 @@ static int proc_fxs_info_read(char *page, char **start, off_t off, int count, sprintf(page + len, "%d ", IS_SET(priv->ledcontrol[led], i)); } - len += sprintf(page + len, "\n\t%-17s: ", "led_counter"); + len += sprintf(page + len, "\nLED #%d\t%-12s: ", + led, "led_counter"); for_each_line(xpd, i) { if (!IS_SET(PHONEDEV(xpd).digital_outputs, i) && !IS_SET(PHONEDEV(xpd).digital_inputs, i)) @@ -1740,8 +1759,8 @@ static int proc_fxs_info_read(char *page, char **start, off_t off, int count, sprintf(page + len, "%d ", LED_COUNTER(priv, i, led)); } - len += sprintf(page + len, "\n"); } + len += sprintf(page + len, "\n"); spin_unlock_irqrestore(&xpd->lock, flags); if (len <= off + count) *eof = 1; -- cgit v1.2.3