1 /* 2 * Interface between low level (hardware) drivers and 3 * HiSax protocol stack 4 * 5 * Author Kai Germaschewski 6 * Copyright 2001 by Kai Germaschewski <kai.germaschewski@gmx.de> 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