import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / eemcs / eemcs_kal.h
1 #ifndef __EEMCS_KAL_H__
2 #define __EEMCS_KAL_H__
3
4 #include <asm/types.h>
5 #include <linux/delay.h>
6 #include <linux/skbuff.h>
7 #include "eemcs_cfg.h"
8
9 /* portable character for multichar character set */
10 #define KAL_CHAR s8
11 /* portable wide character for unicode character set */
12 #define KAL_WCHAR s16
13 /* portable 8-bit unsigned integer */
14 #define KAL_UINT8 u8
15 /* portable 8-bit signed integer */
16 #define KAL_INT8 s8
17 /* portable 16-bit unsigned integer */
18 #define KAL_UINT16 u16
19 /* portable 16-bit signed integer */
20 #define KAL_INT16 s16
21 /* portable 32-bit unsigned integer */
22 #define KAL_UINT32 u32
23 /* portable 32-bit signed integer */
24 #define KAL_INT32 s32
25 /* portable 64-bit unsigned integer */
26 #define KAL_UINT64 u64
27 /* portable 64-bit signed integer */
28 #define KAL_INT64 s64
29
30 #define KAL_SUCCESS (0)
31 #define KAL_FAIL (-1)
32
33 #define kal_uint8 KAL_UINT8
34 #define kal_uint16 KAL_UINT16
35 #define kal_uint32 KAL_UINT32
36 #define kal_bool KAL_CHAR
37
38
39 #define KAL_MUTEX struct mutex
40 #define KAL_AQUIREMUTEX(_lock_p) mutex_init(_lock_p)
41 #define KAL_DESTROYMUTEX(_lock_p) mutex_destroy(_lock_p)
42 #define KAL_MUTEXLOCK(_lock_p) mutex_lock(_lock_p)
43 #define KAL_MUTEXUNLOCK(_lock_p) mutex_unlock(_lock_p)
44
45 #define KAL_ENQUEUE_PKT(_queue, _pkt) skb_queue_tail(_queue, _pkt)
46 #define KAL_DEQUEUE_PKT(_queue) skb_dequeue(_queue)
47 #define KAL_QUEUE_PURGE(_queue) skb_queue_purge(_queue)
48
49 #define KAL_ALLOCATE_PHYSICAL_MEM(_pBuf, _Size) \
50 ({ \
51 int result; \
52 \
53 _pBuf = kmalloc(_Size, GFP_KERNEL); \
54 result = _pBuf == NULL ? -ENOMEM : 0; \
55 \
56 result; \
57 })
58
59 #define KAL_ALLOCATE_PHYSICAL_DMA_MEM(_pBuf, _Size) \
60 ({ \
61 int result; \
62 \
63 _pBuf = kmalloc(_Size, GFP_KERNEL | GFP_DMA); \
64 result = _pBuf == NULL ? -ENOMEM : 0; \
65 \
66 result; \
67 })
68
69 #define KAL_ALLOCATE_PHYSICAL_DMA_MEM_NEW(_pBuf, _Size) \
70 ({ \
71 int result; \
72 \
73 _pBuf = kmalloc(_Size, GFP_ATOMIC); \
74 result = _pBuf == NULL ? -ENOMEM : 0; \
75 \
76 result; \
77 })
78
79
80 #define KAL_FREE_PHYSICAL_MEM(_pBuf) kfree(_pBuf)
81 #define KAL_COPY_MEM(_pDst, _pSrc, _Size) memcpy((void *)(_pDst), (void *)(_pSrc), (_Size))
82 #define KAL_ZERO_MEM(_pBuf, _Size) memset((void *)(_pBuf), 0, (_Size))
83 #define KAL_COMP_MEM(_pDst, _pSrc, _Size) memcmp((void *)(_pDst), (void *)(_pSrc), (_Size))
84
85 #define KAL_ALIGN_TO_DWORD(_value) (((_value) + 0x3) & ~0x3)
86
87 #define KAL_SLEEP_USEC(_Usec) usleep_range(_Usec, _Usec+10)
88 #define KAL_SLEEP_MSEC(_Msec) msleep(_Msec)
89 #define KAL_SLEEP_SEC(_sec) msleep(_sec * 1000)
90
91 #define KAL_FUNC_NAME __FUNCTION__
92
93 /* Message verbosity: lower values indicate higher urgency */
94 #define DBG_OFF 0
95 #define DBG_ERROR 1
96 #define DBG_WARN 2
97 #define DBG_CRIT 3
98 #define DBG_TRACE 4
99 #define DBG_INFO 5
100 #define DBG_LOUD 6
101
102 #define KAL_DEBUG_LEVEL DBG_ERROR
103
104 #define KERNEL_DEBUG
105
106 #define LOG_FUNC(a...) printk(KERN_ERR a)
107
108 extern unsigned int lte_kal_debug_level ;
109
110
111 #ifdef KERNEL_DEBUG
112 #define KAL_DBGPRINT(_mod, _level, _fmt) \
113 ({ \
114 if (lte_kal_debug_level >= _level){ \
115 LOG_FUNC _fmt; \
116 } \
117 })
118 #define KAL_RAWPRINT(_fmt) \
119 ({ \
120 LOG_FUNC _fmt; \
121 })
122
123 #define KAL_ASSERT(exp) \
124 ({ \
125 if (!(exp)){ \
126 panic("[EEMCS/KAL] [ASSERT]%s : %d : %s\r\n", __FILE__, __LINE__,#exp); \
127 } \
128 })
129 #define KAL_DUMP_DWARD_DATA(dword_size, addr) \
130 ({ \
131 KAL_INT32 i ; \
132 for (i=0; i<dword_size; i++){ \
133 LOG_FUNC("[EEMCS/KAL] [DUMP] 0x%x\t", *((unsigned int)(addr)+i)); \
134 } \
135 })
136 #else
137 #define KAL_DBGPRINT(_mod, _level, _fmt)
138 #define KAL_RAWPRINT(_fmt) \
139 ({ \
140 LOG_FUNC _fmt; \
141 })
142 #define KAL_ASSERT(exp) \
143 ({ \
144 if (!(exp)){ \
145 LOG_FUNC("[EEMCS/KAL] [ASSERT]%s : %d : %s\r\n", __FILE__, __LINE__,#exp); \
146 } \
147 })
148 #define KAL_DUMP_DWARD_DATA(size, addr)
149 #endif
150
151
152 #endif