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 38struct 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 44struct hisax_b_if { 45 struct hisax_if ifc; 46 47 // private to hisax 48 struct BCState *bcs; 49}; 50 51struct 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 62int hisax_register(struct hisax_d_if *hisax_if, struct hisax_b_if *b_if[], 63 char *name, int protocol); 64void hisax_unregister(struct hisax_d_if *hisax_if); 65 66#endif 67