aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMantas Mikulėnas <grawity@gmail.com>2019-05-06 12:02:30 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-05-06 14:29:36 +0200
commita7e9761fb1277e3a824e2fdd1277b4bd057acec3 (patch)
tree4c4f5f08128693db2b422f78a8aaf852aaa65401
parent0a198e0cb655ea585ec7d576ce329679b6d916e4 (diff)
downloadusbutils-a7e9761fb1277e3a824e2fdd1277b4bd057acec3.tar.gz
lsusb.py: Usb* classes: call read() automatically from constructor
Signed-off-by: Mantas Mikulėnas <grawity@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--lsusb.py.in41
1 files changed, 21 insertions, 20 deletions
diff --git a/lsusb.py.in b/lsusb.py.in
index e5201e7..1962fe5 100644
--- a/lsusb.py.in
+++ b/lsusb.py.in
@@ -238,16 +238,18 @@ def find_dev(driver, usbname):
class UsbEndpoint:
"Container for USB endpoint info"
- def __init__(self, parent = None, indent = 18):
+ def __init__(self, parent, fname, indent=18):
self.parent = parent
self.indent = indent
- self.fname = ""
+ self.fname = fname
self.epaddr = 0
self.len = 0
self.ival = ""
self.type = ""
self.attr = 0
self.max = 0
+ if self.fname:
+ self.read(self.fname)
def read(self, fname):
fullpath = ""
@@ -271,11 +273,11 @@ class UsbEndpoint:
class UsbInterface:
"Container for USB interface info"
- def __init__(self, parent = None, level = 1):
+ def __init__(self, parent, fname, level=1):
self.parent = parent
self.level = level
self.fullpath = ""
- self.fname = ""
+ self.fname = fname
self.iclass = 0
self.isclass = 0
self.iproto = 0
@@ -284,6 +286,9 @@ class UsbInterface:
self.devname = ""
self.protoname = ""
self.eps = []
+ if self.fname:
+ self.read(self.fname)
+
def read(self, fname):
fullpath = ""
if self.parent:
@@ -302,10 +307,9 @@ class UsbInterface:
pass
self.protoname = find_usb_class(self.iclass, self.isclass, self.iproto)
if showeps:
- for epfnm in os.listdir(prefix + fullpath):
- if epfnm[:3] == "ep_":
- ep = UsbEndpoint(self, self.level+len(self.fname))
- ep.read(epfnm)
+ for dirent in os.listdir(prefix + fullpath):
+ if dirent[:3] == "ep_":
+ ep = UsbEndpoint(self, dirent, self.level + len(self.fname))
self.eps.append(ep)
def __str__(self):
@@ -326,10 +330,10 @@ class UsbInterface:
class UsbDevice:
"Container for USB device info"
- def __init__(self, parent = None, level = 0):
+ def __init__(self, parent, fname, level=0):
self.parent = parent
self.level = level
- self.fname = ""
+ self.fname = fname
self.fullpath = ""
self.iclass = 0
self.isclass = 0
@@ -346,6 +350,9 @@ class UsbDevice:
self.devname = ""
self.interfaces = []
self.children = []
+ if self.fname:
+ self.read(self.fname)
+ self.readchildren()
def read(self, fname):
self.fname = fname
@@ -402,13 +409,10 @@ class UsbDevice:
if not dirent[0:1].isdigit():
continue
if os.access(prefix + dirent + "/bInterfaceClass", os.R_OK):
- iface = UsbInterface(self, self.level+1)
- iface.read(dirent)
+ iface = UsbInterface(self, dirent, self.level+1)
self.interfaces.append(iface)
else:
- usbdev = UsbDevice(self, self.level+1)
- usbdev.read(dirent)
- usbdev.readchildren()
+ usbdev = UsbDevice(self, dirent, self.level+1)
self.children.append(usbdev)
usbsortkey = lambda obj: [int(x) for x in re.split(r"[-:.]", obj.fname)]
self.interfaces.sort(key=usbsortkey)
@@ -438,8 +442,7 @@ class UsbDevice:
else:
strg += "\n"
if showeps:
- ep = UsbEndpoint(self, self.level+len(self.fname))
- ep.read("ep_00")
+ ep = UsbEndpoint(self, "ep_00", self.level+len(self.fname))
strg += str(ep)
if showint:
for iface in self.interfaces:
@@ -472,9 +475,7 @@ def read_usb():
for dirent in os.listdir(prefix):
if not dirent[0:3] == "usb":
continue
- usbdev = UsbDevice(None, 0)
- usbdev.read(dirent)
- usbdev.readchildren()
+ usbdev = UsbDevice(None, dirent, 0)
root_hubs.append(usbdev)
root_hubs.sort(key=lambda x: int(x.fname[3:]))
for usbdev in root_hubs: