ip2.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:4k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*******************************************************************************
  2. *
  3. *   (c) 1998 by Computone Corporation
  4. *
  5. ********************************************************************************
  6. *
  7. *
  8. *   PACKAGE:     Linux tty Device Driver for IntelliPort II family of multiport
  9. *                serial I/O controllers.
  10. *
  11. *   DESCRIPTION: Driver constants for configuration and tuning
  12. *
  13. *   NOTES:
  14. *
  15. *******************************************************************************/
  16. #ifndef IP2_H
  17. #define IP2_H
  18. #include "ip2types.h"
  19. #include "i2cmd.h"
  20. /*************/
  21. /* Constants */
  22. /*************/
  23. /* Device major numbers
  24.  * The first set are the major numbers allocated from the Linux Device Registry.
  25.  * This was expanded from 64 to 128 with version 2.0.26. If this code is built
  26.  * under earlier versions we use majors from the LOCAL/EXPERIMENTAL range.
  27.  */
  28. #if MAX_CHRDEV > 64
  29. # define IP2_TTY_MAJOR      71
  30. # define IP2_CALLOUT_MAJOR  72
  31. # define IP2_IPL_MAJOR      73
  32. #else
  33. # define IP2_TTY_MAJOR      60
  34. # define IP2_CALLOUT_MAJOR  61
  35. # define IP2_IPL_MAJOR      62
  36. #endif
  37. /* Board configuration array.
  38.  * This array defines the hardware irq and address for up to IP2_MAX_BOARDS
  39.  * (4 supported per ip2_types.h) ISA board addresses and irqs MUST be specified,
  40.  * PCI and EISA boards are probed for and automagicly configed
  41.  * iff the addresses are set to 1 and 2 respectivily.
  42.  *    0x0100 - 0x03f0 == ISA
  43.  *          1        == PCI
  44.  *          2        == EISA
  45.  *          0        == (skip this board)
  46.  * This array defines the hardware addresses for them. Special 
  47.  * addresses are EISA and PCI which go sniffing for boards. 
  48.  * In a multiboard system the position in the array determines which port
  49.  * devices are assigned to each board: 
  50.  * board 0 is assigned ttyF0.. to ttyF63, 
  51.  * board 1 is assigned ttyF64  to ttyF127,
  52.  * board 2 is assigned ttyF128 to ttyF191,
  53.  * board 3 is assigned ttyF192 to ttyF255. 
  54.  *
  55.  * In PCI and EISA bus systems each range is mapped to card in 
  56.  * monotonically increasing slot number order, ISA position is as specified
  57.  * here.
  58.  * If the irqs are ALL set to 0,0,0,0 all boards operate in 
  59.  * polled mode. For interrupt operation ISA boards require that the IRQ be 
  60.  * specified, while PCI and EISA boards any nonzero entry 
  61.  * will enable interrupts using the BIOS configured irq for the board. 
  62.  * An invalid irq entry will default to polled mode for that card and print
  63.  * console warning.
  64.  
  65.  * When the driver is loaded as a module these setting can be overridden on the 
  66.  * modprobe command line or on an option line in /etc/modules.conf.
  67.  * If the driver is built-in the configuration must be 
  68.  * set here for ISA cards and address set to 1 and 2 for PCI and EISA.
  69.  *
  70.  * Here is an example that shows most if not all possibe combinations:
  71.  *static ip2config_t ip2config =
  72.  *{
  73.  * {11,1,0,0}, // irqs
  74.  * { // Addresses
  75.  * 0x0308, // Board 0, ttyF0   - ttyF63// ISA card at io=0x308, irq=11
  76.  * 0x0001, // Board 1, ttyF64  - ttyF127//PCI card configured by BIOS
  77.  * 0x0000, // Board 2, ttyF128 - ttyF191// Slot skipped
  78.  * 0x0002 // Board 3, ttyF192 - ttyF255//EISA card configured by BIOS
  79.  *  // but polled not irq driven
  80.  * }
  81.  *};
  82.  */
  83.  /* this structure is zeroed out because the suggested method is to configure
  84.   * the driver as a module, set up the parameters with an options line in
  85.   * /etc/modules.conf and load with modprobe, kerneld or kmod, the kernel
  86.   * module loader
  87.   */
  88.  /* This structure is NOW always initialized when the driver is initialized.
  89.   * Compiled in defaults MUST be added to the io and irq arrays in
  90.   * ip2.c.  Those values are configurable from insmod parameters in the
  91.   * case of modules or from command line parameters (ip2=io,irq) when
  92.   * compiled in.
  93.   */
  94. static ip2config_t ip2config =
  95. {
  96. {0,0,0,0}, // irqs
  97. { // Addresses
  98. /* Do NOT set compile time defaults HERE!  Use the arrays in
  99. ip2.c!  These WILL be overwritten!  =mhw= */
  100. 0x0000, // Board 0, ttyF0   - ttyF63
  101. 0x0000, // Board 1, ttyF64  - ttyF127
  102. 0x0000, // Board 2, ttyF128 - ttyF191
  103. 0x0000 // Board 3, ttyF192 - ttyF255
  104. }
  105. };
  106. #endif