forked from mirrors/linux
		
	 778c1f5ccb
			
		
	
	
		778c1f5ccb
		
	
	
	
	
		
			
			Add helper commands and functions for finding pointers to struct device
by enumerating linux device bus/class infrastructure.  This can be used
to fetch subsystem and driver-specific structs:
  (gdb) p *$container_of($lx_device_find_by_class_name("net", "eth0"), "struct net_device", "dev")
  (gdb) p *$container_of($lx_device_find_by_bus_name("i2c", "0-004b"), "struct i2c_client", "dev")
  (gdb) p *(struct imx_port*)$lx_device_find_by_class_name("tty", "ttymxc1")->parent->driver_data
Several generic "lx-device-list" functions are included to enumerate
devices by bus and class:
  (gdb) lx-device-list-bus usb
  (gdb) lx-device-list-class
  (gdb) lx-device-list-tree &platform_bus
Similar information is available in /sys but pointer values are
deliberately hidden.
Link: http://lkml.kernel.org/r/c948628041311cbf1b9b4cff3dda7d2073cb3eaa.1561492937.git.leonard.crestez@nxp.com
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Cc: Kieran Bingham <kbingham@kernel.org>
Cc: Jan Kiszka <jan.kiszka@siemens.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
	
			
		
			
				
	
	
		
			39 lines
		
	
	
	
		
			864 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
	
		
			864 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| #
 | |
| # gdb helper commands and functions for Linux kernel debugging
 | |
| #
 | |
| #  loader module
 | |
| #
 | |
| # Copyright (c) Siemens AG, 2012, 2013
 | |
| #
 | |
| # Authors:
 | |
| #  Jan Kiszka <jan.kiszka@siemens.com>
 | |
| #
 | |
| # This work is licensed under the terms of the GNU GPL version 2.
 | |
| #
 | |
| 
 | |
| import os
 | |
| 
 | |
| sys.path.insert(0, os.path.dirname(__file__) + "/scripts/gdb")
 | |
| 
 | |
| try:
 | |
|     gdb.parse_and_eval("0")
 | |
|     gdb.execute("", to_string=True)
 | |
| except:
 | |
|     gdb.write("NOTE: gdb 7.2 or later required for Linux helper scripts to "
 | |
|               "work.\n")
 | |
| else:
 | |
|     import linux.utils
 | |
|     import linux.symbols
 | |
|     import linux.modules
 | |
|     import linux.dmesg
 | |
|     import linux.tasks
 | |
|     import linux.config
 | |
|     import linux.cpus
 | |
|     import linux.lists
 | |
|     import linux.rbtree
 | |
|     import linux.proc
 | |
|     import linux.constants
 | |
|     import linux.timerlist
 | |
|     import linux.clk
 | |
|     import linux.genpd
 | |
|     import linux.device
 |