title: linux kernel code navigation
body: <p>I have a question about C code navigation. 
  In C++ or Java it's easy to navigate throught code. For example if there are 3 subsystems (3 classes) <code>DatebaseSubsystem</code>, <code>HardwareSubsystem</code>, <code>ServerSubsystem</code>, and any entity in project use them, I can see all calls to concrete subsystem by class name (static methods calls) or by member (object methods calls). It is enough to select member or class and click find usage in IDE.</p>
  
  <p>In C I can't understand how developers navigate through code. For example  there is a kernel driver, which uses a few subsystems. For example in USB subsystem there are  200 C interface functions. I want to see which functions from USB subsystem are used by driver.  How can I figure out this? Functions from USB subsystem don't have the same prefix. Do kernel developers write scripts for this or do they use any tool, which can do this job?</p>