1 #ifndef __EEMCS_KAL_H__
2 #define __EEMCS_KAL_H__
5 #include <linux/delay.h>
6 #include <linux/skbuff.h>
9 /* portable character for multichar character set */
11 /* portable wide character for unicode character set */
13 /* portable 8-bit unsigned integer */
15 /* portable 8-bit signed integer */
17 /* portable 16-bit unsigned integer */
18 #define KAL_UINT16 u16
19 /* portable 16-bit signed integer */
21 /* portable 32-bit unsigned integer */
22 #define KAL_UINT32 u32
23 /* portable 32-bit signed integer */
25 /* portable 64-bit unsigned integer */
26 #define KAL_UINT64 u64
27 /* portable 64-bit signed integer */
30 #define KAL_SUCCESS (0)
33 #define kal_uint8 KAL_UINT8
34 #define kal_uint16 KAL_UINT16
35 #define kal_uint32 KAL_UINT32
36 #define kal_bool KAL_CHAR
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)
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)
49 #define KAL_ALLOCATE_PHYSICAL_MEM(_pBuf, _Size) \
53 _pBuf = kmalloc(_Size, GFP_KERNEL); \
54 result = _pBuf == NULL ? -ENOMEM : 0; \
59 #define KAL_ALLOCATE_PHYSICAL_DMA_MEM(_pBuf, _Size) \
63 _pBuf = kmalloc(_Size, GFP_KERNEL | GFP_DMA); \
64 result = _pBuf == NULL ? -ENOMEM : 0; \
69 #define KAL_ALLOCATE_PHYSICAL_DMA_MEM_NEW(_pBuf, _Size) \
73 _pBuf = kmalloc(_Size, GFP_ATOMIC); \
74 result = _pBuf == NULL ? -ENOMEM : 0; \
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))
85 #define KAL_ALIGN_TO_DWORD(_value) (((_value) + 0x3) & ~0x3)
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)
91 #define KAL_FUNC_NAME __FUNCTION__
93 /* Message verbosity: lower values indicate higher urgency */
102 #define KAL_DEBUG_LEVEL DBG_ERROR
106 #define LOG_FUNC(a...) printk(KERN_ERR a)
108 extern unsigned int lte_kal_debug_level
;
112 #define KAL_DBGPRINT(_mod, _level, _fmt) \
114 if (lte_kal_debug_level >= _level){ \
118 #define KAL_RAWPRINT(_fmt) \
123 #define KAL_ASSERT(exp) \
126 panic("[EEMCS/KAL] [ASSERT]%s : %d : %s\r\n", __FILE__, __LINE__,#exp); \
129 #define KAL_DUMP_DWARD_DATA(dword_size, addr) \
132 for (i=0; i<dword_size; i++){ \
133 LOG_FUNC("[EEMCS/KAL] [DUMP] 0x%x\t", *((unsigned int)(addr)+i)); \
137 #define KAL_DBGPRINT(_mod, _level, _fmt)
138 #define KAL_RAWPRINT(_fmt) \
142 #define KAL_ASSERT(exp) \
145 LOG_FUNC("[EEMCS/KAL] [ASSERT]%s : %d : %s\r\n", __FILE__, __LINE__,#exp); \
148 #define KAL_DUMP_DWARD_DATA(size, addr)