| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * These are the public elements of the Linux LAPB module. |
| */ |
| |
| #ifndef LAPB_KERNEL_H |
| #define LAPB_KERNEL_H |
| |
| #define LAPB_OK 0 |
| #define LAPB_BADTOKEN 1 |
| #define LAPB_INVALUE 2 |
| #define LAPB_CONNECTED 3 |
| #define LAPB_NOTCONNECTED 4 |
| #define LAPB_REFUSED 5 |
| #define LAPB_TIMEDOUT 6 |
| #define LAPB_NOMEM 7 |
| |
| #define LAPB_STANDARD 0x00 |
| #define LAPB_EXTENDED 0x01 |
| |
| #define LAPB_SLP 0x00 |
| #define LAPB_MLP 0x02 |
| |
| #define LAPB_DTE 0x00 |
| #define LAPB_DCE 0x04 |
| |
| struct lapb_register_struct { |
| void (*connect_confirmation)(struct net_device *dev, int reason); |
| void (*connect_indication)(struct net_device *dev, int reason); |
| void (*disconnect_confirmation)(struct net_device *dev, int reason); |
| void (*disconnect_indication)(struct net_device *dev, int reason); |
| int (*data_indication)(struct net_device *dev, struct sk_buff *skb); |
| void (*data_transmit)(struct net_device *dev, struct sk_buff *skb); |
| }; |
| |
| struct lapb_parms_struct { |
| unsigned int t1; |
| unsigned int t1timer; |
| unsigned int t2; |
| unsigned int t2timer; |
| unsigned int n2; |
| unsigned int n2count; |
| unsigned int window; |
| unsigned int state; |
| unsigned int mode; |
| }; |
| |
| extern int lapb_register(struct net_device *dev, |
| const struct lapb_register_struct *callbacks); |
| extern int lapb_unregister(struct net_device *dev); |
| extern int lapb_getparms(struct net_device *dev, struct lapb_parms_struct *parms); |
| extern int lapb_setparms(struct net_device *dev, struct lapb_parms_struct *parms); |
| extern int lapb_connect_request(struct net_device *dev); |
| extern int lapb_disconnect_request(struct net_device *dev); |
| extern int lapb_data_request(struct net_device *dev, struct sk_buff *skb); |
| extern int lapb_data_received(struct net_device *dev, struct sk_buff *skb); |
| |
| #endif |