Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/drivers/isdn/hisax/hisax_if.h
15115 views
1
/*
2
* Interface between low level (hardware) drivers and
3
* HiSax protocol stack
4
*
5
* Author Kai Germaschewski
6
* Copyright 2001 by Kai Germaschewski <[email protected]>
7
*
8
* This software may be used and distributed according to the terms
9
* of the GNU General Public License, incorporated herein by reference.
10
*
11
*/
12
13
#ifndef __HISAX_IF_H__
14
#define __HISAX_IF_H__
15
16
#include <linux/skbuff.h>
17
18
#define REQUEST 0
19
#define CONFIRM 1
20
#define INDICATION 2
21
#define RESPONSE 3
22
23
#define PH_ACTIVATE 0x0100
24
#define PH_DEACTIVATE 0x0110
25
#define PH_DATA 0x0120
26
#define PH_PULL 0x0130
27
#define PH_DATA_E 0x0140
28
29
#define L1_MODE_NULL 0
30
#define L1_MODE_TRANS 1
31
#define L1_MODE_HDLC 2
32
#define L1_MODE_EXTRN 3
33
#define L1_MODE_HDLC_56K 4
34
#define L1_MODE_MODEM 7
35
#define L1_MODE_V32 8
36
#define L1_MODE_FAX 9
37
38
struct hisax_if {
39
void *priv; // private to driver
40
void (*l1l2)(struct hisax_if *, int pr, void *arg);
41
void (*l2l1)(struct hisax_if *, int pr, void *arg);
42
};
43
44
struct hisax_b_if {
45
struct hisax_if ifc;
46
47
// private to hisax
48
struct BCState *bcs;
49
};
50
51
struct hisax_d_if {
52
struct hisax_if ifc;
53
54
// private to hisax
55
struct module *owner;
56
struct IsdnCardState *cs;
57
struct hisax_b_if *b_if[2];
58
struct sk_buff_head erq;
59
unsigned long ph_state;
60
};
61
62
int hisax_register(struct hisax_d_if *hisax_if, struct hisax_b_if *b_if[],
63
char *name, int protocol);
64
void hisax_unregister(struct hisax_d_if *hisax_if);
65
66
#endif
67
68