diff options
Diffstat (limited to 'include/linux/if_wanpipe.h')
-rw-r--r-- | include/linux/if_wanpipe.h | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/include/linux/if_wanpipe.h b/include/linux/if_wanpipe.h new file mode 100644 index 000000000000..e594ca6069e5 --- /dev/null +++ b/include/linux/if_wanpipe.h @@ -0,0 +1,124 @@ +/***************************************************************************** +* if_wanpipe.h Header file for the Sangoma AF_WANPIPE Socket +* +* Author: Nenad Corbic +* +* Copyright: (c) 2000 Sangoma Technologies Inc. +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version +* 2 of the License, or (at your option) any later version. +* ============================================================================ +* +* Jan 28, 2000 Nenad Corbic Initial Version +* +*****************************************************************************/ + +#ifndef __LINUX_IF_WAN_PACKET_H +#define __LINUX_IF_WAN_PACKET_H + +struct wan_sockaddr_ll +{ + unsigned short sll_family; + unsigned short sll_protocol; + int sll_ifindex; + unsigned short sll_hatype; + unsigned char sll_pkttype; + unsigned char sll_halen; + unsigned char sll_addr[8]; + unsigned char sll_device[14]; + unsigned char sll_card[14]; +}; + +typedef struct +{ + unsigned char free; + unsigned char state_sk; + int rcvbuf; + int sndbuf; + int rmem; + int wmem; + int sk_count; + unsigned char bound; + char name[14]; + unsigned char d_state; + unsigned char svc; + unsigned short lcn; + unsigned char mbox; + unsigned char cmd_busy; + unsigned char command; + unsigned poll; + unsigned poll_cnt; + int rblock; +} wan_debug_hdr_t; + +#define MAX_NUM_DEBUG 10 +#define X25_PROT 0x16 +#define PVC_PROT 0x17 + +typedef struct +{ + wan_debug_hdr_t debug[MAX_NUM_DEBUG]; +}wan_debug_t; + +#define SIOC_WANPIPE_GET_CALL_DATA (SIOCPROTOPRIVATE + 0) +#define SIOC_WANPIPE_SET_CALL_DATA (SIOCPROTOPRIVATE + 1) +#define SIOC_WANPIPE_ACCEPT_CALL (SIOCPROTOPRIVATE + 2) +#define SIOC_WANPIPE_CLEAR_CALL (SIOCPROTOPRIVATE + 3) +#define SIOC_WANPIPE_RESET_CALL (SIOCPROTOPRIVATE + 4) +#define SIOC_WANPIPE_DEBUG (SIOCPROTOPRIVATE + 5) +#define SIOC_WANPIPE_SET_NONBLOCK (SIOCPROTOPRIVATE + 6) +#define SIOC_WANPIPE_CHECK_TX (SIOCPROTOPRIVATE + 7) +#define SIOC_WANPIPE_SOCK_STATE (SIOCPROTOPRIVATE + 8) + +/* Packet types */ + +#define WAN_PACKET_HOST 0 /* To us */ +#define WAN_PACKET_BROADCAST 1 /* To all */ +#define WAN_PACKET_MULTICAST 2 /* To group */ +#define WAN_PACKET_OTHERHOST 3 /* To someone else */ +#define WAN_PACKET_OUTGOING 4 /* Outgoing of any type */ +/* These ones are invisible by user level */ +#define WAN_PACKET_LOOPBACK 5 /* MC/BRD frame looped back */ +#define WAN_PACKET_FASTROUTE 6 /* Fastrouted frame */ + + +/* X25 specific */ +#define WAN_PACKET_DATA 7 +#define WAN_PACKET_CMD 8 +#define WAN_PACKET_ASYNC 9 +#define WAN_PACKET_ERR 10 + +/* Packet socket options */ + +#define WAN_PACKET_ADD_MEMBERSHIP 1 +#define WAN_PACKET_DROP_MEMBERSHIP 2 + +#define WAN_PACKET_MR_MULTICAST 0 +#define WAN_PACKET_MR_PROMISC 1 +#define WAN_PACKET_MR_ALLMULTI 2 + +#ifdef __KERNEL__ + +/* Private wanpipe socket structures. */ +struct wanpipe_opt +{ + void *mbox; /* Mail box */ + void *card; /* Card bouded to */ + struct net_device *dev; /* Bounded device */ + unsigned short lcn; /* Binded LCN */ + unsigned char svc; /* 0=pvc, 1=svc */ + unsigned char timer; /* flag for delayed transmit*/ + struct timer_list tx_timer; + unsigned poll_cnt; + unsigned char force; /* Used to force sock release */ + atomic_t packet_sent; + unsigned short num; +}; + +#define wp_sk(__sk) ((struct wanpipe_opt *)(__sk)->sk_protinfo) + +#endif + +#endif |