1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 21da177e4SLinus Torvalds /* 31da177e4SLinus Torvalds * These are the public elements of the Linux LAPB module. 41da177e4SLinus Torvalds */ 51da177e4SLinus Torvalds 61da177e4SLinus Torvalds #ifndef LAPB_KERNEL_H 71da177e4SLinus Torvalds #define LAPB_KERNEL_H 81da177e4SLinus Torvalds 9*949d6b40SJakub Kicinski #include <linux/skbuff.h> 10*949d6b40SJakub Kicinski #include <linux/timer.h> 11*949d6b40SJakub Kicinski 12*949d6b40SJakub Kicinski struct net_device; 13*949d6b40SJakub Kicinski 141da177e4SLinus Torvalds #define LAPB_OK 0 151da177e4SLinus Torvalds #define LAPB_BADTOKEN 1 161da177e4SLinus Torvalds #define LAPB_INVALUE 2 171da177e4SLinus Torvalds #define LAPB_CONNECTED 3 181da177e4SLinus Torvalds #define LAPB_NOTCONNECTED 4 191da177e4SLinus Torvalds #define LAPB_REFUSED 5 201da177e4SLinus Torvalds #define LAPB_TIMEDOUT 6 211da177e4SLinus Torvalds #define LAPB_NOMEM 7 221da177e4SLinus Torvalds 231da177e4SLinus Torvalds #define LAPB_STANDARD 0x00 241da177e4SLinus Torvalds #define LAPB_EXTENDED 0x01 251da177e4SLinus Torvalds 261da177e4SLinus Torvalds #define LAPB_SLP 0x00 271da177e4SLinus Torvalds #define LAPB_MLP 0x02 281da177e4SLinus Torvalds 291da177e4SLinus Torvalds #define LAPB_DTE 0x00 301da177e4SLinus Torvalds #define LAPB_DCE 0x04 311da177e4SLinus Torvalds 321da177e4SLinus Torvalds struct lapb_register_struct { 331da177e4SLinus Torvalds void (*connect_confirmation)(struct net_device *dev, int reason); 341da177e4SLinus Torvalds void (*connect_indication)(struct net_device *dev, int reason); 351da177e4SLinus Torvalds void (*disconnect_confirmation)(struct net_device *dev, int reason); 361da177e4SLinus Torvalds void (*disconnect_indication)(struct net_device *dev, int reason); 371da177e4SLinus Torvalds int (*data_indication)(struct net_device *dev, struct sk_buff *skb); 381da177e4SLinus Torvalds void (*data_transmit)(struct net_device *dev, struct sk_buff *skb); 391da177e4SLinus Torvalds }; 401da177e4SLinus Torvalds 411da177e4SLinus Torvalds struct lapb_parms_struct { 421da177e4SLinus Torvalds unsigned int t1; 431da177e4SLinus Torvalds unsigned int t1timer; 441da177e4SLinus Torvalds unsigned int t2; 451da177e4SLinus Torvalds unsigned int t2timer; 461da177e4SLinus Torvalds unsigned int n2; 471da177e4SLinus Torvalds unsigned int n2count; 481da177e4SLinus Torvalds unsigned int window; 491da177e4SLinus Torvalds unsigned int state; 501da177e4SLinus Torvalds unsigned int mode; 511da177e4SLinus Torvalds }; 521da177e4SLinus Torvalds 53d97a077aSstephen hemminger extern int lapb_register(struct net_device *dev, 54d97a077aSstephen hemminger const struct lapb_register_struct *callbacks); 551da177e4SLinus Torvalds extern int lapb_unregister(struct net_device *dev); 561da177e4SLinus Torvalds extern int lapb_getparms(struct net_device *dev, struct lapb_parms_struct *parms); 571da177e4SLinus Torvalds extern int lapb_setparms(struct net_device *dev, struct lapb_parms_struct *parms); 581da177e4SLinus Torvalds extern int lapb_connect_request(struct net_device *dev); 591da177e4SLinus Torvalds extern int lapb_disconnect_request(struct net_device *dev); 601da177e4SLinus Torvalds extern int lapb_data_request(struct net_device *dev, struct sk_buff *skb); 611da177e4SLinus Torvalds extern int lapb_data_received(struct net_device *dev, struct sk_buff *skb); 621da177e4SLinus Torvalds 631da177e4SLinus Torvalds #endif 64