1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * These are the public elements of the Linux LAPB module. 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #ifndef LAPB_KERNEL_H 7*4882a593Smuzhiyun #define LAPB_KERNEL_H 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #define LAPB_OK 0 10*4882a593Smuzhiyun #define LAPB_BADTOKEN 1 11*4882a593Smuzhiyun #define LAPB_INVALUE 2 12*4882a593Smuzhiyun #define LAPB_CONNECTED 3 13*4882a593Smuzhiyun #define LAPB_NOTCONNECTED 4 14*4882a593Smuzhiyun #define LAPB_REFUSED 5 15*4882a593Smuzhiyun #define LAPB_TIMEDOUT 6 16*4882a593Smuzhiyun #define LAPB_NOMEM 7 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun #define LAPB_STANDARD 0x00 19*4882a593Smuzhiyun #define LAPB_EXTENDED 0x01 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun #define LAPB_SLP 0x00 22*4882a593Smuzhiyun #define LAPB_MLP 0x02 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun #define LAPB_DTE 0x00 25*4882a593Smuzhiyun #define LAPB_DCE 0x04 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun struct lapb_register_struct { 28*4882a593Smuzhiyun void (*connect_confirmation)(struct net_device *dev, int reason); 29*4882a593Smuzhiyun void (*connect_indication)(struct net_device *dev, int reason); 30*4882a593Smuzhiyun void (*disconnect_confirmation)(struct net_device *dev, int reason); 31*4882a593Smuzhiyun void (*disconnect_indication)(struct net_device *dev, int reason); 32*4882a593Smuzhiyun int (*data_indication)(struct net_device *dev, struct sk_buff *skb); 33*4882a593Smuzhiyun void (*data_transmit)(struct net_device *dev, struct sk_buff *skb); 34*4882a593Smuzhiyun }; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun struct lapb_parms_struct { 37*4882a593Smuzhiyun unsigned int t1; 38*4882a593Smuzhiyun unsigned int t1timer; 39*4882a593Smuzhiyun unsigned int t2; 40*4882a593Smuzhiyun unsigned int t2timer; 41*4882a593Smuzhiyun unsigned int n2; 42*4882a593Smuzhiyun unsigned int n2count; 43*4882a593Smuzhiyun unsigned int window; 44*4882a593Smuzhiyun unsigned int state; 45*4882a593Smuzhiyun unsigned int mode; 46*4882a593Smuzhiyun }; 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun extern int lapb_register(struct net_device *dev, 49*4882a593Smuzhiyun const struct lapb_register_struct *callbacks); 50*4882a593Smuzhiyun extern int lapb_unregister(struct net_device *dev); 51*4882a593Smuzhiyun extern int lapb_getparms(struct net_device *dev, struct lapb_parms_struct *parms); 52*4882a593Smuzhiyun extern int lapb_setparms(struct net_device *dev, struct lapb_parms_struct *parms); 53*4882a593Smuzhiyun extern int lapb_connect_request(struct net_device *dev); 54*4882a593Smuzhiyun extern int lapb_disconnect_request(struct net_device *dev); 55*4882a593Smuzhiyun extern int lapb_data_request(struct net_device *dev, struct sk_buff *skb); 56*4882a593Smuzhiyun extern int lapb_data_received(struct net_device *dev, struct sk_buff *skb); 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun #endif 59