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
This commit is contained in:
parent
84b9b4c84a
commit
3df0b7aedc
6
README
6
README
@ -802,6 +802,12 @@ A free-form description of the span.
|
|||||||
===== /sys/bus/dahdi_spans/devices/span-N/lbo
|
===== /sys/bus/dahdi_spans/devices/span-N/lbo
|
||||||
LBO setting for the channel.
|
LBO setting for the channel.
|
||||||
|
|
||||||
|
===== /sys/bus/dahdi_spans/devices/span-N/lineconfig
|
||||||
|
The framing and coding of the span, for a digital span. Textual
|
||||||
|
represenation:
|
||||||
|
|
||||||
|
<B8ZS|AMI|HDB3>/<D4|ESF|CCS>[/CRC4]
|
||||||
|
|
||||||
===== /sys/bus/dahdi_spans/devices/span-N/local_spanno
|
===== /sys/bus/dahdi_spans/devices/span-N/local_spanno
|
||||||
The number of the span within the DAHDI device.
|
The number of the span within the DAHDI device.
|
||||||
|
|
||||||
|
@ -259,6 +259,35 @@ static BUS_ATTR_READER(channels_show, dev, buf)
|
|||||||
return sprintf(buf, "%d\n", span->channels);
|
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[] = {
|
static struct device_attribute span_dev_attrs[] = {
|
||||||
__ATTR_RO(name),
|
__ATTR_RO(name),
|
||||||
__ATTR_RO(desc),
|
__ATTR_RO(desc),
|
||||||
@ -271,6 +300,7 @@ static struct device_attribute span_dev_attrs[] = {
|
|||||||
__ATTR_RO(is_sync_master),
|
__ATTR_RO(is_sync_master),
|
||||||
__ATTR_RO(basechan),
|
__ATTR_RO(basechan),
|
||||||
__ATTR_RO(channels),
|
__ATTR_RO(channels),
|
||||||
|
__ATTR_RO(lineconfig),
|
||||||
__ATTR_NULL,
|
__ATTR_NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user