card.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:3k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* $Id: card.h,v 1.1.4.1 2001/11/20 14:19:37 kai Exp $
  2.  *
  3.  * Driver parameters for SpellCaster ISA ISDN adapters
  4.  *
  5.  * Copyright (C) 1996  SpellCaster Telecommunications Inc.
  6.  *
  7.  * This software may be used and distributed according to the terms
  8.  * of the GNU General Public License, incorporated herein by reference.
  9.  *
  10.  * For more information, please contact gpl-info@spellcast.com or write:
  11.  *
  12.  *     SpellCaster Telecommunications Inc.
  13.  *     5621 Finch Avenue East, Unit #3
  14.  *     Scarborough, Ontario  Canada
  15.  *     M1B 2T9
  16.  *     +1 (416) 297-8565
  17.  *     +1 (416) 297-6433 Facsimile
  18.  */
  19. #ifndef CARD_H
  20. #define CARD_H
  21. /*
  22.  * We need these if they're not already included
  23.  */
  24. #include <linux/timer.h>
  25. #include <linux/isdnif.h>
  26. #include "message.h"
  27. /*
  28.  * Amount of time to wait for a reset to complete
  29.  */
  30. #define CHECKRESET_TIME milliseconds(4000)
  31. /*
  32.  * Amount of time between line status checks
  33.  */
  34. #define CHECKSTAT_TIME milliseconds(8000)
  35. /*
  36.  * The maximum amount of time to wait for a message response
  37.  * to arrive. Use exclusively by send_and_receive
  38.  */
  39. #define SAR_TIMEOUT milliseconds(10000)
  40. /*
  41.  * Macro to determine is a card id is valid
  42.  */
  43. #define IS_VALID_CARD(x) ((x >= 0) && (x <= cinst))
  44. /*
  45.  * Per channel status and configuration
  46.  */
  47. typedef struct {
  48. int l2_proto;
  49. int l3_proto;
  50. char dn[50];
  51. unsigned long first_sendbuf; /* Offset of first send buffer */
  52. unsigned int num_sendbufs; /* Number of send buffers */
  53. unsigned int free_sendbufs; /* Number of free sendbufs */
  54. unsigned int next_sendbuf; /* Next sequential buffer */
  55. char eazlist[50]; /* Set with SETEAZ */
  56. char sillist[50]; /* Set with SETSIL */
  57. int eazclear; /* Don't accept calls if TRUE */
  58. } bchan;
  59. /*
  60.  * Everything you want to know about the adapter ...
  61.  */
  62. typedef struct {
  63. int model;
  64. int driverId; /* LL Id */
  65. char devicename[20]; /* The device name */
  66. isdn_if *card; /* ISDN4Linux structure */
  67. bchan *channel; /* status of the B channels */
  68. char nChannels; /* Number of channels */
  69. unsigned int interrupt; /* Interrupt number */
  70. int iobase; /* I/O Base address */
  71. int ioport[MAX_IO_REGS]; /* Index to I/O ports */
  72. int shmem_pgport; /* port for the exp mem page reg. */
  73. int shmem_magic; /* adapter magic number */
  74. unsigned int rambase; /* Shared RAM base address */
  75. unsigned int ramsize; /* Size of shared memory */
  76. RspMessage async_msg; /* Async response message */
  77. int want_async_messages; /* Snoop the Q ? */
  78. unsigned char seq_no; /* Next send seq. number */
  79. struct timer_list reset_timer; /* Check reset timer */
  80. struct timer_list stat_timer; /* Check startproc timer */
  81. unsigned char nphystat; /* Latest PhyStat info */
  82. unsigned char phystat; /* Last PhyStat info */
  83. HWConfig_pl hwconfig; /* Hardware config info */
  84. char load_ver[11]; /* CommManage Version string */
  85. char proc_ver[11]; /* CommEngine Version */
  86. int StartOnReset; /* Indicates startproc after reset */
  87. int EngineUp; /* Indicates CommEngine Up */
  88. int trace_mode; /* Indicate if tracing is on */
  89. } board;
  90. #endif /* CARD_H */