1/***************************************************************************** 2* if_wanipe_common.h Sangoma Driver/Socket common area definitions. 3* 4* Author: Nenad Corbic <ncorbic@sangoma.com> 5* 6* Copyright: (c) 2000 Sangoma Technologies Inc. 7* 8* This program is free software; you can redistribute it and/or 9* modify it under the terms of the GNU General Public License 10* as published by the Free Software Foundation; either version 11* 2 of the License, or (at your option) any later version. 12* ============================================================================ 13* Jan 13, 2000 Nenad Corbic Initial version 14*****************************************************************************/ 15 16 17#ifndef _WANPIPE_SOCK_DRIVER_COMMON_H 18#define _WANPIPE_SOCK_DRIVER_COMMON_H 19 20#include <linux/version.h> 21 22#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,0) 23 #define netdevice_t struct net_device 24#else 25 #define netdevice_t struct device 26#endif 27 28 29typedef struct { 30 netdevice_t *slave; 31 atomic_t packet_sent; 32 atomic_t receive_block; 33 atomic_t command; 34 atomic_t disconnect; 35 atomic_t driver_busy; 36 unsigned char common_critical; 37 struct timer_list *tx_timer; 38 struct sock *sk; /* Wanpipe Sock bind's here */ 39 int (*func) (struct sk_buff *, netdevice_t *, 40 struct sock *); 41 42 struct tq_struct wanpipe_task; /* Immediate BH handler task */ 43 unsigned char rw_bind; /* Sock bind state */ 44 unsigned char usedby; 45 unsigned char state; 46 unsigned char svc; 47 unsigned short lcn; 48 void *mbox; 49} wanpipe_common_t; 50 51 52enum { 53 WANSOCK_UNCONFIGURED, /* link/channel is not configured */ 54 WANSOCK_DISCONNECTED, /* link/channel is disconnected */ 55 WANSOCK_CONNECTING, /* connection is in progress */ 56 WANSOCK_CONNECTED, /* link/channel is operational */ 57 WANSOCK_LIMIT, /* for verification only */ 58 WANSOCK_DUALPORT, /* for Dual Port cards */ 59 WANSOCK_DISCONNECTING, 60 WANSOCK_BINDED, 61 WANSOCK_BIND_LISTEN, 62 WANSOCK_LISTEN 63}; 64 65#endif 66 67 68