root/drivers/scsi/scsi_module.c

/* [previous][next][first][last][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. init_module
  2. cleanup_module

   1 /*
   2  *  scsi_module.c Copyright (1994, 1995) Eric Youngdale.
   3  *
   4  * Support for loading low-level scsi drivers using the linux kernel loadable
   5  * module interface.
   6  *
   7  * To use, the host adapter should first define and initialize the variable
   8  * driver_template (datatype Scsi_Host_Template), and then include this file.
   9  * This should also be wrapped in a #ifdef MODULE/#endif.
  10  *
  11  * The low -level driver must also define a release function which will
  12  * free any irq assignments, release any dma channels, release any I/O
  13  * address space that might be reserved, and otherwise clean up after itself.
  14  * The idea is that the same driver should be able to be reloaded without
  15  * any difficulty.  This makes debugging new drivers easier, as you should
  16  * be able to load the driver, test it, unload, modify and reload.
  17  *
  18  * One *very* important caveat.  If the driver may need to do DMA on the
  19  * ISA bus, you must have unchecked_isa_dma set in the device template,
  20  * even if this might be changed during the detect routine.  This is
  21  * because the shpnt structure will be allocated in a special way so that
  22  * it will be below the appropriate DMA limit - thus if your driver uses
  23  * the hostdata field of shpnt, and the board must be able to access this
  24  * via DMA, the shpnt structure must be in a DMA accessible region of
  25  * memory.  This comment would be relevant for something like the buslogic
  26  * driver where there are many boards, only some of which do DMA onto the
  27  * ISA bus.  There is no convenient way of specifying whether the host
  28  * needs to be in a ISA DMA accessible region of memory when you call
  29  * scsi_register.
  30  */
  31 
  32 #include <linux/module.h>
  33 
  34 int init_module(void) {
     /* [previous][next][first][last][top][bottom][index][help] */
  35     driver_template.usage_count = &mod_use_count_;
  36     scsi_register_module(MODULE_SCSI_HA, &driver_template);
  37     return (driver_template.present == 0);
  38 }
  39 
  40 void cleanup_module( void) {
     /* [previous][next][first][last][top][bottom][index][help] */
  41     scsi_unregister_module(MODULE_SCSI_HA, &driver_template);
  42 }
  43 
  44 /*
  45  * Overrides for Emacs so that we almost follow Linus's tabbing style.
  46  * Emacs will notice this stuff at the end of the file and automatically
  47  * adjust the settings for this buffer only.  This must remain at the end
  48  * of the file.
  49  * ---------------------------------------------------------------------------
  50  * Local variables:
  51  * c-indent-level: 4
  52  * c-brace-imaginary-offset: 0
  53  * c-brace-offset: -4
  54  * c-argdecl-indent: 4
  55  * c-label-offset: -4
  56  * c-continued-statement-offset: 4
  57  * c-continued-brace-offset: 0
  58  * indent-tabs-mode: nil
  59  * tab-width: 8
  60  * End:
  61  */

/* [previous][next][first][last][top][bottom][index][help] */