2005-04-16 15:20:36 -07:00
/*
2012-02-19 19:52:38 -08:00
* Interface between low level ( hardware ) drivers and
2005-04-16 15:20:36 -07:00
* HiSax protocol stack
*
* Author Kai Germaschewski
* Copyright 2001 by Kai Germaschewski < kai . germaschewski @ gmx . de >
2012-02-19 19:52:38 -08:00
*
2005-04-16 15:20:36 -07:00
* This software may be used and distributed according to the terms
* of the GNU General Public License , incorporated herein by reference .
*
*/
# ifndef __HISAX_IF_H__
# define __HISAX_IF_H__
# include <linux/skbuff.h>
# define REQUEST 0
# define CONFIRM 1
# define INDICATION 2
# define RESPONSE 3
# define PH_ACTIVATE 0x0100
# define PH_DEACTIVATE 0x0110
# define PH_DATA 0x0120
# define PH_PULL 0x0130
# define PH_DATA_E 0x0140
# define L1_MODE_NULL 0
# define L1_MODE_TRANS 1
# define L1_MODE_HDLC 2
# define L1_MODE_EXTRN 3
# define L1_MODE_HDLC_56K 4
# define L1_MODE_MODEM 7
# define L1_MODE_V32 8
# define L1_MODE_FAX 9
struct hisax_if {
void * priv ; // private to driver
void ( * l1l2 ) ( struct hisax_if * , int pr , void * arg ) ;
void ( * l2l1 ) ( struct hisax_if * , int pr , void * arg ) ;
} ;
struct hisax_b_if {
struct hisax_if ifc ;
// private to hisax
struct BCState * bcs ;
} ;
struct hisax_d_if {
struct hisax_if ifc ;
// private to hisax
struct module * owner ;
struct IsdnCardState * cs ;
struct hisax_b_if * b_if [ 2 ] ;
struct sk_buff_head erq ;
2007-10-14 19:35:20 +01:00
unsigned long ph_state ;
2005-04-16 15:20:36 -07:00
} ;
int hisax_register ( struct hisax_d_if * hisax_if , struct hisax_b_if * b_if [ ] ,
char * name , int protocol ) ;
void hisax_unregister ( struct hisax_d_if * hisax_if ) ;
# endif