| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- #ifndef _FREERTOS_SERVICE_H_
- #define _FREERTOS_SERVICE_H_
- //----- ------------------------------------------------------------------
- // Include Files
- //----- ------------------------------------------------------------------
- //#include "wireless.h"
- #include "dlist.h"
- // --------------------------------------------
- // Platform dependent include file
- // --------------------------------------------
- #if defined(CONFIG_PLATFORM_8195A)
- #include "platform/platform_stdlib.h"
- extern VOID RtlUdelayOS(u32 us);
- #elif defined(CONFIG_PLATFORM_8711B)
- #include "platform/platform_stdlib.h"
- #else
- // other MCU may use standard library
- #include <string.h>
- #endif
- #if (defined CONFIG_GSPI_HCI || defined CONFIG_SDIO_HCI) || defined(CONFIG_LX_HCI)
- /* For SPI interface transfer and us delay implementation */
- #if !defined(CONFIG_PLATFORM_8195A) && !defined(CONFIG_PLATFORM_8711B)
- #include <rtwlan_bsp.h>
- #endif
- #endif
- // --------------------------------------------
- // Platform dependent type define
- // --------------------------------------------
- #if !defined(CONFIG_PLATFORM_8195A) && !defined(CONFIG_PLATFORM_8711B)
- typedef unsigned char u8;
- typedef unsigned short u16;
- typedef unsigned int u32;
- typedef signed char s8;
- typedef signed short s16;
- typedef signed int s32;
- typedef signed long long s64;
- typedef unsigned long long u64;
- typedef unsigned int uint;
- typedef signed int sint;
- #ifndef bool
- typedef int bool;
- #define true 1
- #define false 0
- #endif
- #define IN
- #define OUT
- #define VOID void
- #define NDIS_OID uint
- #define NDIS_STATUS uint
- #ifndef PVOID
- typedef void * PVOID;
- #endif
- typedef unsigned int __kernel_size_t;
- typedef int __kernel_ssize_t;
- typedef __kernel_size_t SIZE_T;
- typedef __kernel_ssize_t SSIZE_T;
- #endif //CONFIG_PLATFORM_8195A
- #define FIELD_OFFSET(s,field) ((SSIZE_T)&((s*)(0))->field)
- // os types
- typedef char osdepCHAR;
- typedef float osdepFLOAT;
- typedef double osdepDOUBLE;
- typedef long osdepLONG;
- typedef short osdepSHORT;
- typedef unsigned long osdepSTACK_TYPE;
- typedef long osdepBASE_TYPE;
- typedef unsigned long osdepTickType;
- typedef void* _timerHandle;
- typedef void* _sema;
- typedef void* _mutex;
- typedef void* _lock;
- typedef void* _queueHandle;
- typedef void* _xqueue;
- typedef struct timer_list _timer;
- typedef struct sk_buff _pkt;
- typedef unsigned char _buffer;
- #ifndef __LIST_H
- #warning "DLIST_NOT_DEFINE!!!!!!"
- struct list_head {
- struct list_head *next, *prev;
- };
- #endif
- struct __queue {
- struct list_head queue;
- _lock lock;
- };
- typedef struct __queue _queue;
- typedef struct list_head _list;
- typedef unsigned long _irqL;
- typedef void* _thread_hdl_;
- typedef void thread_return;
- typedef void* thread_context;
- #define ATOMIC_T atomic_t
- #define HZ configTICK_RATE_HZ
- #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
- /* emulate a modern version */
- #define LINUX_VERSION_CODE KERNEL_VERSION(2, 6, 17)
- static __inline _list *get_next(_list *list)
- {
- return list->next;
- }
- static __inline _list *get_list_head(_queue *queue)
- {
- return (&(queue->queue));
- }
- #define LIST_CONTAINOR(ptr, type, member) \
- ((type *)((char *)(ptr)-(SIZE_T)((char *)&((type *)ptr)->member - (char *)ptr)))
- //#define container_of(p,t,n) (t*)((p)-&(((t*)0)->n))
- #define container_of(ptr, type, member) \
- ((type *)((char *)(ptr)-(SIZE_T)(&((type *)0)->member)))
- #define TASK_PRORITY_LOW 1
- #define TASK_PRORITY_MIDDLE 2
- #define TASK_PRORITY_HIGH 3
- #define TASK_PRORITY_SUPER 4
- #define TIMER_MAX_DELAY 0xFFFFFFFF
- void save_and_cli(void);
- void restore_flags(void);
- void cli(void);
- #ifndef mdelay
- #define mdelay(t) ((t/portTICK_RATE_MS)>0)?(vTaskDelay(t/portTICK_RATE_MS)):(vTaskDelay(1))
- #endif
- #ifndef udelay
- #define udelay(t) ((t/(portTICK_RATE_MS*1000))>0)?vTaskDelay(t/(portTICK_RATE_MS*1000)):(vTaskDelay(1))
- #endif
- //----- ------------------------------------------------------------------
- // Common Definition
- //----- ------------------------------------------------------------------
- #define __init
- #define __exit
- #define __devinit
- #define __devexit
- #define KERN_ERR
- #define KERN_INFO
- #define KERN_NOTICE
- #undef GFP_KERNEL
- #define GFP_KERNEL 1
- #define GFP_ATOMIC 1
- #define SET_MODULE_OWNER(some_struct) do { } while (0)
- #define SET_NETDEV_DEV(dev, obj) do { } while (0)
- #define register_netdev(dev) (0)
- #define unregister_netdev(dev) do { } while (0)
- #define netif_queue_stopped(dev) (0)
- #define netif_wake_queue(dev) do { } while (0)
- #define printk printf
- #define DBG_ERR(fmt, args...) printf("\n\r[%s] " fmt, __FUNCTION__, ## args)
- #if WLAN_INTF_DBG
- #define DBG_TRACE(fmt, args...) printf("\n\r[%s] " fmt, __FUNCTION__, ## args)
- #define DBG_INFO(fmt, args...) printf("\n\r[%s] " fmt, __FUNCTION__, ## args)
- #else
- #define DBG_TRACE(fmt, args...)
- #define DBG_INFO(fmt, args...)
- #endif
- #define HALT() do { cli(); for(;;);} while(0)
- #undef ASSERT
- #define ASSERT(x) do { \
- if((x) == 0) \
- printf("\n\rAssert(" #x ") failed on line %d in file %s", __LINE__, __FILE__); \
- HALT(); \
- } while(0)
- #undef DBG_ASSERT
- #define DBG_ASSERT(x, msg) do { \
- if((x) == 0) \
- printf("\n\r%s, Assert(" #x ") failed on line %d in file %s", msg, __LINE__, __FILE__); \
- } while(0)
- //----- ------------------------------------------------------------------
- // Atomic Operation
- //----- ------------------------------------------------------------------
- #if !defined(CONFIG_PLATFORM_8195A) && !defined(CONFIG_PLATFORM_8711B) // for 8195A, it is defined in ..system../basic_types.h
- typedef struct { volatile int counter; } atomic_t;
- #endif
- /*
- * atomic_read - read atomic variable
- * @v: pointer of type atomic_t
- *
- * Atomically reads the value of @v. Note that the guaranteed
- * useful range of an atomic_t is only 24 bits.
- */
- #undef atomic_read
- #define atomic_read(v) ((v)->counter)
- /*
- * atomic_set - set atomic variable
- * @v: pointer of type atomic_t
- * @i: required value
- *
- * Atomically sets the value of @v to @i. Note that the guaranteed
- * useful range of an atomic_t is only 24 bits.
- */
- #undef atomic_set
- #define atomic_set(v,i) ((v)->counter = (i))
- /*
- * These inlines deal with timer wrapping correctly. You are
- * strongly encouraged to use them
- * 1. Because people otherwise forget
- * 2. Because if the timer wrap changes in future you wont have to
- * alter your driver code.
- *
- * time_after(a,b) returns true if the time a is after time b.
- *
- * Do this with "<0" and ">=0" to only test the sign of the result. A
- * good compiler would generate better code (and a really good compiler
- * wouldn't care). Gcc is currently neither.
- */
- #define time_after(a,b) ((long)(b) - (long)(a) < 0)
- #define time_before(a,b) time_after(b,a)
-
- #define time_after_eq(a,b) ((long)(a) - (long)(b) >= 0)
- #define time_before_eq(a,b) time_after_eq(b,a)
- extern void rtw_init_listhead(_list *list);
- extern u32 rtw_is_list_empty(_list *phead);
- extern void rtw_list_insert_head(_list *plist, _list *phead);
- extern void rtw_list_insert_tail(_list *plist, _list *phead);
- extern void rtw_list_delete(_list *plist);
- #if CONFIG_PLATFORM_8711B
- extern u32 random_seed;
- #endif
- #endif /* _FREERTOS_SERVICE_H_ */
|