6b13f685e
김민수
BSP 최초 추가
|
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
29
30
31
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
#ifndef CARD_H
#define CARD_H
#include <linux/timer.h>
#include <linux/time.h>
#include <linux/isdnif.h>
#include <linux/irqreturn.h>
#include "message.h"
#include "scioc.h"
#define CHECKRESET_TIME msecs_to_jiffies(4000)
#define CHECKSTAT_TIME msecs_to_jiffies(8000)
#define SAR_TIMEOUT msecs_to_jiffies(10000)
#define IS_VALID_CARD(x) ((x >= 0) && (x <= cinst))
typedef struct {
int l2_proto;
int l3_proto;
char dn[50];
unsigned long first_sendbuf;
unsigned int num_sendbufs;
unsigned int free_sendbufs;
unsigned int next_sendbuf;
char eazlist[50];
char sillist[50];
int eazclear;
} bchan;
typedef struct {
int model;
int driverId;
char devicename[20];
isdn_if *card;
bchan *channel;
char nChannels;
unsigned int interrupt;
int iobase;
int ioport[MAX_IO_REGS];
int shmem_pgport;
int shmem_magic;
unsigned int rambase;
unsigned int ramsize;
RspMessage async_msg;
int want_async_messages;
unsigned char seq_no;
struct timer_list reset_timer;
struct timer_list stat_timer;
unsigned char nphystat;
unsigned char phystat;
HWConfig_pl hwconfig;
char load_ver[11];
char proc_ver[11];
int StartOnReset;
int EngineUp;
int trace_mode;
spinlock_t lock;
} board;
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);
int sndpkt(int devId, int channel, int ack, struct sk_buff *data);
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);
void sc_check_reset(unsigned long data);
void check_phystat(unsigned long data);
#endif /* CARD_H */
|