23#if (defined(NFC_STANDALONE) && (NFC_STANDALONE == TRUE))
24 #include "gki_target.h"
27 #include "bt_target.h"
35#define GKI_SUCCESS 0x00
36#define GKI_FAILURE 0x01
37#define GKI_INVALID_TASK 0xF0
38#define GKI_INVALID_POOL 0xFF
50#define NUM_TASK_MBOX 4
61#define TASK_MBOX_0_EVT_MASK 0x0001
62#define TASK_MBOX_1_EVT_MASK 0x0002
63#define TASK_MBOX_2_EVT_MASK 0x0004
64#define TASK_MBOX_3_EVT_MASK 0x0008
72#define TIMER_0_EVT_MASK 0x0010
73#define TIMER_1_EVT_MASK 0x0020
74#define TIMER_2_EVT_MASK 0x0040
75#define TIMER_3_EVT_MASK 0x0080
86#define EVENT_MASK(evt) ((UINT16)(0x0001 << (evt)))
91#ifndef GKI_MAX_TIMER_QUEUES
92#define GKI_MAX_TIMER_QUEUES 3
100#if (GKI_NUM_FIXED_BUF_POOLS < 1)
103#define GKI_POOL_ID_0 0
107#define GKI_BUF0_SIZE 0
113#if (GKI_NUM_FIXED_BUF_POOLS < 2)
116#define GKI_POOL_ID_1 0
120#define GKI_BUF1_SIZE 0
126#if (GKI_NUM_FIXED_BUF_POOLS < 3)
129#define GKI_POOL_ID_2 0
133#define GKI_BUF2_SIZE 0
139#if (GKI_NUM_FIXED_BUF_POOLS < 4)
142#define GKI_POOL_ID_3 0
146#define GKI_BUF3_SIZE 0
152#if (GKI_NUM_FIXED_BUF_POOLS < 5)
155#define GKI_POOL_ID_4 0
159#define GKI_BUF4_SIZE 0
165#if (GKI_NUM_FIXED_BUF_POOLS < 6)
168#define GKI_POOL_ID_5 0
172#define GKI_BUF5_SIZE 0
178#if (GKI_NUM_FIXED_BUF_POOLS < 7)
181#define GKI_POOL_ID_6 0
185#define GKI_BUF6_SIZE 0
191#if (GKI_NUM_FIXED_BUF_POOLS < 8)
194#define GKI_POOL_ID_7 0
198#define GKI_BUF7_SIZE 0
204#if (GKI_NUM_FIXED_BUF_POOLS < 9)
207#define GKI_POOL_ID_8 0
211#define GKI_BUF8_SIZE 0
217#if (GKI_NUM_FIXED_BUF_POOLS < 10)
220#define GKI_POOL_ID_9 0
224#define GKI_BUF9_SIZE 0
230#if (GKI_NUM_FIXED_BUF_POOLS < 11)
232#ifndef GKI_POOL_ID_10
233#define GKI_POOL_ID_10 0
236#ifndef GKI_BUF10_SIZE
237#define GKI_BUF10_SIZE 0
243#if (GKI_NUM_FIXED_BUF_POOLS < 12)
245#ifndef GKI_POOL_ID_11
246#define GKI_POOL_ID_11 0
249#ifndef GKI_BUF11_SIZE
250#define GKI_BUF11_SIZE 0
256#if (GKI_NUM_FIXED_BUF_POOLS < 13)
258#ifndef GKI_POOL_ID_12
259#define GKI_POOL_ID_12 0
262#ifndef GKI_BUF12_SIZE
263#define GKI_BUF12_SIZE 0
269#if (GKI_NUM_FIXED_BUF_POOLS < 14)
271#ifndef GKI_POOL_ID_13
272#define GKI_POOL_ID_13 0
275#ifndef GKI_BUF13_SIZE
276#define GKI_BUF13_SIZE 0
282#if (GKI_NUM_FIXED_BUF_POOLS < 15)
284#ifndef GKI_POOL_ID_14
285#define GKI_POOL_ID_14 0
288#ifndef GKI_BUF14_SIZE
289#define GKI_BUF14_SIZE 0
295#if (GKI_NUM_FIXED_BUF_POOLS < 16)
297#ifndef GKI_POOL_ID_15
298#define GKI_POOL_ID_15 0
301#ifndef GKI_BUF15_SIZE
302#define GKI_BUF15_SIZE 0
310typedef void (TIMER_CBACK)(
void *p_tle);
311#ifndef TIMER_PARAM_TYPE
313#define TIMER_PARAM_TYPE void *
315#define TIMER_PARAM_TYPE UINT32
324 TIMER_CBACK *p_cback;
326 TIMER_PARAM_TYPE param;
335 TIMER_LIST_ENT *p_first;
336 TIMER_LIST_ENT *p_last;
351#define GKI_IS_QUEUE_EMPTY(p_q) ((p_q)->count == 0)
356typedef void (*TASKPTR)(UINT32);
360#define GKI_PUBLIC_POOL 0
361#define GKI_RESTRICTED_POOL 1
373GKI_API
extern UINT8 GKI_create_task (TASKPTR, UINT8, INT8 *, UINT16 *, UINT16);
374GKI_API
extern void GKI_destroy_task(UINT8 task_id);
375GKI_API
extern void GKI_task_self_cleanup(UINT8 task_id);
376GKI_API
extern void GKI_exit_task(UINT8);
377GKI_API
extern UINT8 GKI_get_taskid(
void);
378GKI_API
extern void GKI_init(
void);
379GKI_API
extern void GKI_shutdown(
void);
380GKI_API
extern INT8 *GKI_map_taskname(UINT8);
381GKI_API
extern UINT8 GKI_resume_task(UINT8);
382GKI_API
extern void GKI_run(
void *);
383GKI_API
extern void GKI_freeze(
void);
384GKI_API
extern void GKI_stop(
void);
385GKI_API
extern UINT8 GKI_suspend_task(UINT8);
386GKI_API
extern UINT8 GKI_is_task_running(UINT8);
390GKI_API
extern void GKI_shiftdown (UINT8 *p_mem, UINT32 len, UINT32 shift_amount);
391GKI_API
extern void GKI_shiftup (UINT8 *p_dest, UINT8 *p_src, UINT32 len);
395GKI_API
extern UINT8 GKI_isend_event (UINT8, UINT16);
396GKI_API
extern void GKI_isend_msg (UINT8, UINT8,
void *);
397GKI_API
extern void *GKI_read_mbox (UINT8);
398GKI_API
extern void GKI_send_msg (UINT8, UINT8,
void *);
399GKI_API
extern UINT8 GKI_send_event (UINT8, UINT16);
404GKI_API
extern void GKI_change_buf_owner (
void *, UINT8);
405GKI_API
extern UINT8 GKI_create_pool (UINT16, UINT16, UINT8,
void *);
406GKI_API
extern void GKI_delete_pool (UINT8);
407GKI_API
extern void *GKI_find_buf_start (
void *);
408GKI_API
extern void GKI_freebuf (
void *);
409GKI_API
extern void *GKI_getbuf (UINT16);
410GKI_API
extern UINT16 GKI_get_buf_size (
void *);
411GKI_API
extern void *GKI_getpoolbuf (UINT8);
412GKI_API
extern UINT16 GKI_poolcount (UINT8);
413GKI_API
extern UINT16 GKI_poolfreecount (UINT8);
414GKI_API
extern UINT16 GKI_poolutilization (UINT8);
415GKI_API
extern void GKI_register_mempool (
void *p_mem);
416GKI_API
extern UINT8 GKI_set_pool_permission(UINT8, UINT8);
421GKI_API
extern void *GKI_dequeue (
BUFFER_Q *);
422GKI_API
extern void GKI_enqueue (
BUFFER_Q *,
void *);
423GKI_API
extern void GKI_enqueue_head (
BUFFER_Q *,
void *);
424GKI_API
extern void *GKI_getfirst (
BUFFER_Q *);
425GKI_API
extern void *GKI_getlast (
BUFFER_Q *);
426GKI_API
extern void *GKI_getnext (
void *);
427GKI_API
extern void GKI_init_q (
BUFFER_Q *);
428GKI_API
extern BOOLEAN GKI_queue_is_empty(
BUFFER_Q *);
429GKI_API
extern void *GKI_remove_from_queue (
BUFFER_Q *,
void *);
430GKI_API
extern UINT16 GKI_get_pool_bufsize (UINT8);
434GKI_API
extern void GKI_add_to_timer_list (
TIMER_LIST_Q *, TIMER_LIST_ENT *);
435GKI_API
extern void GKI_delay(UINT32);
436GKI_API
extern UINT32 GKI_get_tick_count(
void);
437GKI_API
extern INT8 *GKI_get_time_stamp(INT8 *);
438GKI_API
extern void GKI_init_timer_list (
TIMER_LIST_Q *);
439GKI_API
extern void GKI_init_timer_list_entry (TIMER_LIST_ENT *);
440GKI_API
extern INT32 GKI_ready_to_sleep (
void);
441GKI_API
extern void GKI_remove_from_timer_list (
TIMER_LIST_Q *, TIMER_LIST_ENT *);
442GKI_API
extern void GKI_start_timer(UINT8, INT32, BOOLEAN);
443GKI_API
extern void GKI_stop_timer (UINT8);
444GKI_API
extern void GKI_timer_update(INT32);
445GKI_API
extern UINT16 GKI_update_timer_list (
TIMER_LIST_Q *, INT32);
446GKI_API
extern UINT32 GKI_get_remaining_ticks (
TIMER_LIST_Q *, TIMER_LIST_ENT *);
447GKI_API
extern UINT16 GKI_wait(UINT16, UINT32);
453typedef void (SYSTEM_TICK_CBACK)(BOOLEAN);
457GKI_API
extern BOOLEAN GKI_timer_queue_empty (
void);
458GKI_API
extern void GKI_timer_queue_register_callback(SYSTEM_TICK_CBACK *);
462GKI_API
extern void GKI_enable(
void);
463GKI_API
extern void GKI_disable(
void);
464GKI_API
extern void GKI_sched_lock(
void);
465GKI_API
extern void GKI_sched_unlock(
void);
469GKI_API
extern void *GKI_os_malloc (UINT32);
470GKI_API
extern void GKI_os_free (
void *);
473GKI_API
extern UINT32 GKI_get_os_tick_count(
void);
477GKI_API
extern void GKI_exception (UINT16,
char *);
480GKI_API
extern void GKI_PrintBufferUsage(UINT8 *p_num_pools, UINT16 *p_cur_used);
481GKI_API
extern void GKI_PrintBuffer(
void);
482GKI_API
extern void GKI_print_task(
void);
484#undef GKI_PrintBufferUsage
485#define GKI_PrintBuffer() NULL