/**************************************************************************** * Copyright (c) 2006 DST Technologies Inc. All Rights Reserved. * * Module: LLD_LOCAL * * Description: This file contains LLD local definitions * * Notes: * ***************************************************************************/ #ifndef _LLD_LOCAL_H #define _LLD_LOCAL_H #include "dstmodule.h" #include "dst_kernel.h" #define LLD_MIPS_SYNC __asm__ __volatile__("sync") #define KERNEL_PID 0xfffffff0 /*====================================== * Chip info main structure *=====================================*/ typedef struct tag_DST_DEVICE_INFO { DS_U32 refcount; DS_S8 name[8]; DS_U32 chipid; WAIT_Q intq; WAIT_Q bmq; unsigned int irq_counter; } DST_DEVICE_INFO; /*============================ * Local APIs *===========================*/ void SemInit(void); void SemCleanup(void); void SemProcessExit(void); DS_U32 SemOperation(OBJ_OPER *SemParams); void EventInit(void); void EventCleanup(void); void EventProcessExit(void); DS_U32 EventOperation(OBJ_OPER *EvParams); /* * os specific utility routines */ void lld_delay (DS_U32 millisec); DS_U32 lld_os_disable_ints (void); void lld_os_enable_ints (void); void lld_os_restore_ints (DS_U32 flags); void* lld_os_malloc (DS_U32 cbsize); void lld_os_free (void *pmemory); void lld_os_copy_from_user (DS_S8 *pdest, DS_S8* psrc, DS_U32 cbsize); void lld_os_copy_to_user (DS_S8 *pdest, DS_S8* psrc, DS_U32 cbsize); DS_BOOL lld_os_get_lock (DS_U32 lock); DS_BOOL lld_os_release_lock (DS_U32 lock); DS_U32 lld_os_get_usermode_process_id (void); DS_BOOL lld_os_signal_detected (void); DS_BOOL lld_check_wait_q (WAIT_Q *WaitQPtr); void lld_wait_for_interrupt (WAIT_Q *WaitQPtr); DS_U32 lld_init_wait_q (WAIT_Q *WaitQPtr); DS_U32 lld_wait_on_q (WAIT_Q *WaitQPtr); DS_U32 lld_timeout_wait_on_q (WAIT_Q *WaitQPtr, DS_U32 TimeOut); DS_U32 lld_wakeup_wait_q (WAIT_Q *WaitQPtr); DS_U32 lld_force_wakeup_wait_q (WAIT_Q *WaitQPtr); DS_BOOL lld_os_init_lock (DS_U32 lock, DS_U32 Init); #endif /* _LLD_LOCAL_H */