OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [usb/] [auerisdn.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*****************************************************************************/
2
/*
3
 *      auerisdn.h  --  Auerswald PBX/System Telephone ISDN interface.
4
 *
5
 *      Copyright (C) 2002  Wolfgang Mües (wolfgang@iksw-muees.de)
6
 *
7
 *      This program is free software; you can redistribute it and/or modify
8
 *      it under the terms of the GNU General Public License as published by
9
 *      the Free Software Foundation; either version 2 of the License, or
10
 *      (at your option) any later version.
11
 *
12
 *      This program is distributed in the hope that it will be useful,
13
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 *      GNU General Public License for more details.
16
 *
17
 *      You should have received a copy of the GNU General Public License
18
 *      along with this program; if not, write to the Free Software
19
 *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20
 */
21
 /*****************************************************************************/
22
 
23
#ifndef AUERISDN_H
24
#define AUERISDN_H
25
 
26
#if (CONFIG_USB_AUERISDN || CONFIG_USB_AUERISDN_MODULE)
27
 
28
#include <linux/timer.h>
29
#include "auerserv.h"
30
#include "auerisdn_b.h"
31
 
32
#define AUISDN_IPTIMEOUT (HZ * 60)      /* IP Timeout is 40s */
33
 
34
struct auerswald;
35
struct auerhisax;
36
 
37
struct auerisdn {
38
        struct auerscon dchannelservice;        /* serving the D channel */
39
        struct auerhisax *ahp;                  /* Reference to hisax interface */
40
        unsigned int dc_activated;              /* 1 if D-Channel is activated */
41
        struct auerisdnbc bc[AUISDN_BCHANNELS]; /* B channel data */
42
        unsigned int insize;                    /* Max. Block Size of Input INT */
43
        unsigned int outsize;                   /* Max. Block Size of Output INT */
44
        unsigned int outInterval;               /* nr. of ms between INT OUT transfers */
45
        struct urb *intbi_urbp;                 /* B channel Input Interrupt urb */
46
        unsigned char *intbi_bufp;              /* B channel Input data buffer */
47
        unsigned int paketsize;                 /* Data size of the INT OUT pakets */
48
        struct usb_device *usbdev;              /* USB device handle */
49
        unsigned int intbo_state;               /* Status of INT OUT urb */
50
        struct urb *intbo_urbp;                 /* B channel Output Interrupt urb */
51
        unsigned char *intbo_bufp;              /* B channel Output data buffer */
52
        unsigned int intbo_index;               /* Index of last served B channel */
53
        unsigned int intbo_toggletimer;         /* data toggle timer for 2 b channels */
54
        unsigned int intbo_endp;                /* grrr.. different on some devices */
55
        struct timer_list dcopen_timer;         /* Open D-channel once more later... */
56
};
57
 
58
struct auerhisax {
59
        struct hisax_d_if hisax_d_if;           /* Hisax D-Channel interface */
60
        struct hisax_b_if hisax_b_if[AUISDN_BCHANNELS]; /* Hisax B-channel interfaces */
61
        struct auerswald *cp;                   /* Context to usb device */
62
        unsigned int hisax_registered;          /* 1 if registered at hisax interface */
63
        unsigned char txseq;                    /* L2 emulation: tx sequence byte */
64
        unsigned char rxseq;                    /* L2 emulation: rx sequence byte */
65
        spinlock_t seq_lock;                    /* Lock sequence numbers */
66
        unsigned long last_close;               /* Time of last close in jiffies */
67
};
68
 
69
/* Function Prototypes */
70
void auerisdn_init_dev(struct auerswald *cp);
71
 
72
int auerisdn_probe(struct auerswald *cp);
73
 
74
void auerisdn_disconnect(struct auerswald *cp);
75
 
76
void auerisdn_init(void);
77
 
78
void auerisdn_cleanup(void);
79
 
80
#else   /* no CONFIG_USB_AUERISDN */
81
 
82
struct auerisdn {
83
        int dummy;
84
};
85
 
86
/* Dummy ISDN functions */
87
#define auerisdn_init_dev( cp)
88
#define auerisdn_probe( cp) 0
89
#define auerisdn_disconnect( cp)
90
#define auerisdn_init()
91
#define auerisdn_cleanup()
92
#endif  /* CONFIG_USB_AUERISDN */
93
 
94
#endif  /* AUERISDN_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.