Blame view

drivers/isdn/sc/card.h 4.26 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  /* $Id: card.h,v 1.1.10.1 2001/09/23 22:24:59 kai Exp $
   *
   * Driver parameters for SpellCaster ISA ISDN adapters
   *
   * Copyright (C) 1996  SpellCaster Telecommunications Inc.
   *
   * This software may be used and distributed according to the terms
   * of the GNU General Public License, incorporated herein by reference.
   *
   * For more information, please contact gpl-info@spellcast.com or write:
   *
   *     SpellCaster Telecommunications Inc.
   *     5621 Finch Avenue East, Unit #3
   *     Scarborough, Ontario  Canada
   *     M1B 2T9
   *     +1 (416) 297-8565
   *     +1 (416) 297-6433 Facsimile
   */
  
  #ifndef CARD_H
  #define CARD_H
  
  /*
   * We need these if they're not already included
   */
  #include <linux/timer.h>
  #include <linux/time.h>
  #include <linux/isdnif.h>
fc238b379   Adrian Bunk   [PATCH] drivers/i...
29
  #include <linux/irqreturn.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
30
  #include "message.h"
fc238b379   Adrian Bunk   [PATCH] drivers/i...
31
  #include "scioc.h"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
  
  /*
   * Amount of time to wait for a reset to complete
   */
  #define CHECKRESET_TIME		msecs_to_jiffies(4000)
  
  /*
   * Amount of time between line status checks
   */
  #define CHECKSTAT_TIME		msecs_to_jiffies(8000)
  
  /*
   * The maximum amount of time to wait for a message response
   * to arrive. Use exclusively by send_and_receive
   */
  #define SAR_TIMEOUT		msecs_to_jiffies(10000)
  
  /*
   * Macro to determine is a card id is valid
   */
  #define IS_VALID_CARD(x)	((x >= 0) && (x <= cinst))
  
  /*
   * Per channel status and configuration
   */
  typedef struct {
  	int l2_proto;
  	int l3_proto;
  	char dn[50];
  	unsigned long first_sendbuf;	/* Offset of first send buffer */
  	unsigned int num_sendbufs;	/* Number of send buffers */
  	unsigned int free_sendbufs;	/* Number of free sendbufs */
  	unsigned int next_sendbuf;	/* Next sequential buffer */
  	char eazlist[50];		/* Set with SETEAZ */
  	char sillist[50];		/* Set with SETSIL */
  	int eazclear;			/* Don't accept calls if TRUE */
  } bchan;
  
  /*
   * Everything you want to know about the adapter ...
   */
  typedef struct {
  	int model;
  	int driverId;			/* LL Id */
  	char devicename[20];		/* The device name */
  	isdn_if *card;			/* ISDN4Linux structure */
  	bchan *channel;			/* status of the B channels */
  	char nChannels;			/* Number of channels */
  	unsigned int interrupt;		/* Interrupt number */
  	int iobase;			/* I/O Base address */
  	int ioport[MAX_IO_REGS];	/* Index to I/O ports */
  	int shmem_pgport;		/* port for the exp mem page reg. */
  	int shmem_magic;		/* adapter magic number */
  	unsigned int rambase;		/* Shared RAM base address */
  	unsigned int ramsize;		/* Size of shared memory */
  	RspMessage async_msg;		/* Async response message */
  	int want_async_messages;	/* Snoop the Q ? */
  	unsigned char seq_no;		/* Next send seq. number */
  	struct timer_list reset_timer;	/* Check reset timer */
  	struct timer_list stat_timer;	/* Check startproc timer */
  	unsigned char nphystat;		/* Latest PhyStat info */
  	unsigned char phystat;		/* Last PhyStat info */
  	HWConfig_pl hwconfig;		/* Hardware config info */
  	char load_ver[11];		/* CommManage Version string */
  	char proc_ver[11];		/* CommEngine Version */
  	int StartOnReset;		/* Indicates startproc after reset */
  	int EngineUp;			/* Indicates CommEngine Up */
  	int trace_mode;			/* Indicate if tracing is on */
  	spinlock_t lock;		/* local lock */
  } board;
fc238b379   Adrian Bunk   [PATCH] drivers/i...
102
103
104
105
106
107
108
109
110
  
  extern board *sc_adapter[];
  extern int cinst;
  
  void memcpy_toshmem(int card, void *dest, const void *src, size_t n);
  void memcpy_fromshmem(int card, void *dest, const void *src, size_t n);
  int get_card_from_id(int driver);
  int indicate_status(int card, int event, ulong Channel, char *Data);
  irqreturn_t interrupt_handler(int interrupt, void *cardptr);
186fd777a   Frank Lichtenheld   [ISDN] sc: Fix sn...
111
  int sndpkt(int devId, int channel, int ack, struct sk_buff *data);
fc238b379   Adrian Bunk   [PATCH] drivers/i...
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
  void rcvpkt(int card, RspMessage *rcvmsg);
  int command(isdn_ctrl *cmd);
  int reset(int card);
  int startproc(int card);
  int send_and_receive(int card, unsigned int procid, unsigned char type,
  		     unsigned char class, unsigned char code,
  		     unsigned char link, unsigned char data_len,
  		     unsigned char *data,  RspMessage *mesgdata, int timeout);
  void flushreadfifo (int card);
  int sendmessage(int card, unsigned int procid, unsigned int type,
  		unsigned int class, unsigned int code, unsigned int link,
  		unsigned int data_len, unsigned int *data);
  int receivemessage(int card, RspMessage *rspmsg);
  int sc_ioctl(int card, scs_ioctl *data);
  int setup_buffers(int card, int c);
e3aded3cc   Alexey Dobriyan   isdn/sc: compile ...
127
  void sc_check_reset(unsigned long data);
fc238b379   Adrian Bunk   [PATCH] drivers/i...
128
  void check_phystat(unsigned long data);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
129
  #endif /* CARD_H */