title: Kernel module alias
body: <p>When compiling  different versions of the Linux kernel, every now and then I see some drivers being dropped in favor of others.</p>
  
  <p>For instance, the commit <code>5772dcaa790851ec068afcd0d1f160d801b1126e</code> drops (removes) the IBM driver for the Xirlink C-it Camera, located in <code>drivers/media/video/usbvideo/ibmcam.c</code> in the v2.6.37 branch. The newer driver appears in v2.6.38 at <code>drivers/media/video/gspca/xirlink_cit.c</code>.</p>
  
  <p>For that particular driver, I see that all devices supported by the newer driver are supported by the old , as written in its <code>usb_device_table</code>, defined in <code>xirlink_cit.c</code>. However, I don't see any alias from the newer driver module towards the older. I know the existence of the <code>MODULE_ALIAS</code> macro, but in this case in particular, I don't see it being used.</p>
  
  <p>That said, I want to know all possible ways in which aliases can be programatically defined.
  Any help appreciated :)</p>