diff options
author | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2012-02-22 12:10:59 +0000 |
---|---|---|
committer | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2012-02-22 12:10:59 +0000 |
commit | 12336c61e43d7cff62ca9547c418875f8c876fdb (patch) | |
tree | bcff9f43daf68b2edf5dd7fc91d5d1caa08a305b /drivers | |
parent | cea472e488fc6b17c0fa5922c9618bb3e5a35f72 (diff) |
sysfs: add 'lineconfig' attribute to span
This patch exposes the span 'lineconfig' via sysfs: textual representation
of the framing and coding of the span.
This is needed in order for the Dahdi perl classes (in tools) to get
the inforamtion for e.g. dahdi_genconf to work without the guesswork of
parsing /proc/dahdi .
Signed-off-by: Oron Peled <oron.peled@xorcom.com>
Acked-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Shaun Ruffell <sruffell@digium.com>
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@10461 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/dahdi/dahdi-sysfs.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/dahdi/dahdi-sysfs.c b/drivers/dahdi/dahdi-sysfs.c index 3641606..b3b10d8 100644 --- a/drivers/dahdi/dahdi-sysfs.c +++ b/drivers/dahdi/dahdi-sysfs.c @@ -259,6 +259,35 @@ static BUS_ATTR_READER(channels_show, dev, buf) return sprintf(buf, "%d\n", span->channels); } +static BUS_ATTR_READER(lineconfig_show, dev, buf) +{ + struct dahdi_span *span; + int len = 0; + + span = dev_to_span(dev); + if (span->lineconfig) { + /* framing first */ + if (span->lineconfig & DAHDI_CONFIG_B8ZS) + len += sprintf(buf + len, "B8ZS/"); + else if (span->lineconfig & DAHDI_CONFIG_AMI) + len += sprintf(buf + len, "AMI/"); + else if (span->lineconfig & DAHDI_CONFIG_HDB3) + len += sprintf(buf + len, "HDB3/"); + /* then coding */ + if (span->lineconfig & DAHDI_CONFIG_ESF) + len += sprintf(buf + len, "ESF"); + else if (span->lineconfig & DAHDI_CONFIG_D4) + len += sprintf(buf + len, "D4"); + else if (span->lineconfig & DAHDI_CONFIG_CCS) + len += sprintf(buf + len, "CCS"); + /* E1's can enable CRC checking */ + if (span->lineconfig & DAHDI_CONFIG_CRC4) + len += sprintf(buf + len, "/CRC4"); + } + len += sprintf(buf + len, "\n"); + return len; +} + static struct device_attribute span_dev_attrs[] = { __ATTR_RO(name), __ATTR_RO(desc), @@ -271,6 +300,7 @@ static struct device_attribute span_dev_attrs[] = { __ATTR_RO(is_sync_master), __ATTR_RO(basechan), __ATTR_RO(channels), + __ATTR_RO(lineconfig), __ATTR_NULL, }; |