diff options
Diffstat (limited to 'xpp/perl_modules/Dahdi/Xpp.pm')
-rw-r--r-- | xpp/perl_modules/Dahdi/Xpp.pm | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/xpp/perl_modules/Dahdi/Xpp.pm b/xpp/perl_modules/Dahdi/Xpp.pm index 919df30..f2811aa 100644 --- a/xpp/perl_modules/Dahdi/Xpp.pm +++ b/xpp/perl_modules/Dahdi/Xpp.pm @@ -32,6 +32,38 @@ Dahdi::Xpp - Perl interface to the Xorcom Astribank drivers. my $proc_base = "/proc/xpp"; +sub xpd_attr_path($$$@) { + my ($busnum, $unitnum, $subunitnum, @attr) = @_; + foreach my $attr (@attr) { + my $file = sprintf "/sys/bus/xpds/devices/%02d:%1d:%1d/$attr", + $busnum, $unitnum, $subunitnum; + unless(-f $file) { + my $procfile = sprintf "/proc/xpp/XBUS-%02d/XPD-%1d%1d/$attr", + $busnum, $unitnum, $subunitnum; + warn "$0: OLD DRIVER: missing '$file'. Fall back to '$procfile'\n"; + $file = $procfile; + } + next unless -f $file; + return $file; + } + return undef; +} + +sub xbus_attr_path($$) { + my ($busnum, @attr) = @_; + foreach my $attr (@attr) { + my $file = sprintf "/sys/bus/astribanks/devices/xbus-%02d/$attr", $busnum; + unless(-f $file) { + my $procfile = sprintf "/proc/xpp/XBUS-%02d/$attr", $busnum; + warn "$0: OLD DRIVER: missing '$file'. Fall back to '$procfile'\n"; + $file = $procfile; + } + next unless -f $file; + return $file; + } + return undef; +} + # Nominal sorters for xbuses sub by_name { return $a->name cmp $b->name; |