aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/winbond/linux/common.h
blob: 712a86cfa68b5650c1c0396f7914e4a31ed8fa0a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
//
// common.h
//
// This file contains the OS dependant definition and function.
// Every OS has this file individual.
//

#define DebugUsbdStatusInformation( _A )

#ifndef COMMON_DEF
#define COMMON_DEF

#include <linux/version.h>
#include <linux/usb.h>
#include <linux/kernel.h> //need for kernel alert
#include <linux/autoconf.h>
#include <linux/sched.h>
#include <linux/signal.h>
#include <linux/slab.h> //memory allocate
#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/init.h>//need for init and exit modules marco
#include <linux/ctype.h>
#include <linux/wait.h>
#include <linux/list.h>
#include <linux/wireless.h>
#include <linux/if_arp.h>
#include <asm/uaccess.h>
#include <net/iw_handler.h>
#include <linux/skbuff.h>


//#define DEBUG_ENABLED  1



//===============================================================
// Common type definition
//===============================================================

//===========================================
#define IGNORE      2
#define	SUCCESS     1
#define	FAILURE     0


#ifndef true
#define true        1
#endif

#ifndef false
#define false       0
#endif

// PD43 20021108
#ifndef TRUE
#define TRUE        1
#endif

#ifndef FALSE
#define FALSE       0
#endif

#define STATUS_MEDIA_CONNECT 1
#define STATUS_MEDIA_DISCONNECT 0

#ifndef BIT
#define BIT(x)                  (1 << (x))
#endif

typedef struct urb * PURB;



//==================================================================================================
// Common function definition
//==================================================================================================
#ifndef abs
#define abs(_T)							((_T) < 0 ? -_T : _T)
#endif
#define DEBUG_ENABLED
#define ETH_LENGTH_OF_ADDRESS	6
#ifdef DEBUG_ENABLED
#define WBDEBUG( _M )	printk _M
#else
#define WBDEBUG( _M )	0
#endif

#define OS_DISCONNECTED	0
#define OS_CONNECTED	1


#define OS_EVENT_INDICATE( _A, _B, _F )
#define OS_PMKID_STATUS_EVENT( _A )


/* Uff, no, longs are not atomic on all architectures Linux
 * supports. This should really use atomic_t */

#define OS_ATOMIC			u32
#define OS_ATOMIC_READ( _A, _V )	_V
#define OS_ATOMIC_INC( _A, _V )		EncapAtomicInc( _A, (void*)_V )
#define OS_ATOMIC_DEC( _A, _V )		EncapAtomicDec( _A, (void*)_V )
#define OS_MEMORY_CLEAR( _A, _S )	memset( (u8 *)_A,0,_S)
#define OS_MEMORY_COMPARE( _A, _B, _S )	(memcmp(_A,_B,_S)? 0 : 1) // Definition is reverse with Ndis 1: the same 0: different

#define OS_TIMER	struct timer_list
#define OS_TIMER_INITIAL( _T, _F, _P )			\
{							\
	init_timer( _T );				\
	(_T)->function = (void *)_F##_1a;		\
	(_T)->data = (unsigned long)_P;			\
}

// _S : Millisecond
// 20060420 At least 1 large than jiffies
#define OS_TIMER_SET( _T, _S )					\
{								\
	(_T)->expires = jiffies + ((_S*HZ+999)/1000);\
	add_timer( _T );					\
}
#define OS_TIMER_CANCEL( _T, _B )		del_timer_sync( _T )
#define OS_TIMER_GET_SYS_TIME( _T )		(*_T=jiffies)


#endif // COMMON_DEF