| 1 | /**************************************************************************** |
|---|
| 2 | * Copyright (c) 2006 DST Technologies Inc. All Rights Reserved. |
|---|
| 3 | * |
|---|
| 4 | * Module: LLD_LOCAL |
|---|
| 5 | * |
|---|
| 6 | * Description: This file contains LLD local definitions |
|---|
| 7 | * |
|---|
| 8 | * Notes: |
|---|
| 9 | * |
|---|
| 10 | ***************************************************************************/ |
|---|
| 11 | #ifndef _LLD_LOCAL_H |
|---|
| 12 | #define _LLD_LOCAL_H |
|---|
| 13 | |
|---|
| 14 | #include "dstmodule.h" |
|---|
| 15 | #include "dst_kernel.h" |
|---|
| 16 | |
|---|
| 17 | #define LLD_MIPS_SYNC __asm__ __volatile__("sync") |
|---|
| 18 | |
|---|
| 19 | #define KERNEL_PID 0xfffffff0 |
|---|
| 20 | /*====================================== |
|---|
| 21 | * Chip info main structure |
|---|
| 22 | *=====================================*/ |
|---|
| 23 | typedef struct tag_DST_DEVICE_INFO |
|---|
| 24 | { |
|---|
| 25 | DS_U32 refcount; |
|---|
| 26 | DS_S8 name[8]; |
|---|
| 27 | DS_U32 chipid; |
|---|
| 28 | WAIT_Q intq; |
|---|
| 29 | WAIT_Q bmq; |
|---|
| 30 | unsigned int irq_counter; |
|---|
| 31 | } DST_DEVICE_INFO; |
|---|
| 32 | |
|---|
| 33 | /*============================ |
|---|
| 34 | * Local APIs |
|---|
| 35 | *===========================*/ |
|---|
| 36 | void SemInit(void); |
|---|
| 37 | void SemCleanup(void); |
|---|
| 38 | void SemProcessExit(void); |
|---|
| 39 | DS_U32 SemOperation(OBJ_OPER *SemParams); |
|---|
| 40 | void EventInit(void); |
|---|
| 41 | void EventCleanup(void); |
|---|
| 42 | void EventProcessExit(void); |
|---|
| 43 | DS_U32 EventOperation(OBJ_OPER *EvParams); |
|---|
| 44 | |
|---|
| 45 | /* |
|---|
| 46 | * os specific utility routines |
|---|
| 47 | */ |
|---|
| 48 | |
|---|
| 49 | void lld_delay (DS_U32 millisec); |
|---|
| 50 | DS_U32 lld_os_disable_ints (void); |
|---|
| 51 | void lld_os_enable_ints (void); |
|---|
| 52 | void lld_os_restore_ints (DS_U32 flags); |
|---|
| 53 | void* lld_os_malloc (DS_U32 cbsize); |
|---|
| 54 | void lld_os_free (void *pmemory); |
|---|
| 55 | void lld_os_copy_from_user (DS_S8 *pdest, DS_S8* psrc, DS_U32 cbsize); |
|---|
| 56 | void lld_os_copy_to_user (DS_S8 *pdest, DS_S8* psrc, DS_U32 cbsize); |
|---|
| 57 | DS_BOOL lld_os_get_lock (DS_U32 lock); |
|---|
| 58 | DS_BOOL lld_os_release_lock (DS_U32 lock); |
|---|
| 59 | DS_U32 lld_os_get_usermode_process_id (void); |
|---|
| 60 | DS_BOOL lld_os_signal_detected (void); |
|---|
| 61 | DS_BOOL lld_check_wait_q (WAIT_Q *WaitQPtr); |
|---|
| 62 | void lld_wait_for_interrupt (WAIT_Q *WaitQPtr); |
|---|
| 63 | DS_U32 lld_init_wait_q (WAIT_Q *WaitQPtr); |
|---|
| 64 | DS_U32 lld_wait_on_q (WAIT_Q *WaitQPtr); |
|---|
| 65 | DS_U32 lld_timeout_wait_on_q (WAIT_Q *WaitQPtr, DS_U32 TimeOut); |
|---|
| 66 | DS_U32 lld_wakeup_wait_q (WAIT_Q *WaitQPtr); |
|---|
| 67 | DS_U32 lld_force_wakeup_wait_q (WAIT_Q *WaitQPtr); |
|---|
| 68 | DS_BOOL lld_os_init_lock (DS_U32 lock, DS_U32 Init); |
|---|
| 69 | |
|---|
| 70 | #endif /* _LLD_LOCAL_H */ |
|---|