[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit
Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/cp/ps/modem/psbase/inc/base_api.h b/cp/ps/modem/psbase/inc/base_api.h
new file mode 100644
index 0000000..c6e652e
--- /dev/null
+++ b/cp/ps/modem/psbase/inc/base_api.h
@@ -0,0 +1,720 @@
+/************************************************************************
+* °æÈ¨ËùÓÐ (C)2001,ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
+*
+* ÎļþÃû³Æ£º base_api.h
+* Îļþ±êʶ£º
+* ÄÚÈÝÕªÒª£º
+*
+* ÐÞ¸ÄÈÕÆÚ °æ±¾ºÅ Ð޸ıê¼Ç ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
+* ---------------------------------------------------------------------
+* 2007/11/24 V0.5 ¹¨Òí create
+************************************************************************/
+
+#ifndef BASE_API_H_
+#define BASE_API_H_
+/**************************************************************************
+ * Í·Îļþ°üº¬ *
+ **************************************************************************/
+#include "oss_api.h"
+#include "base_pub.h"
+
+
+ /**************************************************************************
+ * ³£Á¿ *
+ **************************************************************************/
+
+
+/**************************************************************************
+ * ºê¶¨Òå *
+ **************************************************************************/
+/*KangShuJie 2008.04.03*/
+#ifndef CLOCK_TICK
+#define CLOCK_TICK 4615385
+#endif
+
+#define P_many_receiver 126
+#define P_no_receiver 125
+
+
+#define HISR_ENTRY_CONG(HISR_NAME,ENTRY,PRIO,STACK_SIZE) \
+{#HISR_NAME"HISR",ENTRY, &HISR_NAME##_HISR_control,STACK_SIZE,PRIO}
+
+#define PROCESS_ENTRY(PROC_NAME,INSTANCE,ENTRY,PRIO,TIME_SLICE,STACK_SIZE) \
+ #PROC_NAME":"#INSTANCE, ENTRY, &PROC_NAME##INSTANCE##_task, STACK_SIZE, \
+ PRIO, TIME_SLICE, { ( P_##PROC_NAME + INSTANCE - 1 ), (queue_table+P_##PROC_NAME+INSTANCE-1) }
+
+#define SIGNAL_NAME(SIG_NAME, SIG_IDNODE) \
+ (XSIGTYPE)(SIG_NAME & (SIGREFTYPE)0xFFFFFFFF)
+
+#define NU_SUSPEND 0xFFFFFFFFUL
+
+#define NU_MAX_NAME 8
+
+#define SDL_pid SDL_PId
+#define SDL_Pid SDL_PId
+
+#define SIGREFTYPE UINT32
+
+#define XINPUTREFTYPE SIGREFTYPE
+
+#define XSIGTYPE SIGREFTYPE
+
+#define XSIGNALHEADERTYPE xSignalHeaderRec
+
+/*SDLÈÎÎñ״̬*/
+#define xInput (xInputAction)0
+#define xSave (xInputAction)1
+#define xDiscard (xInputAction)2
+#define xEnablCond (xInputAction)3
+#define xPrioInput (xInputAction)4
+#define xNotInSignalSet (xInputAction)5
+
+#define SDL_NULL (SDL_PId)0
+
+#define STARTUP_SIGNAL_NAME SIGNAL_NAME(~0, 0)
+
+#define OSS_TASKSELFID_BEGIN 0x00007f00
+
+#define MS_OS_CRITICAL_SECTION_SUPPORT 1
+
+/**************************************************************************
+ * Êý¾ÝÀàÐÍ *
+ **************************************************************************/
+/*Ïß³ÌÈë¿Úº¯ÊýÀàÐÍ*/
+typedef void (*ENTRY)(unsigned long, void *);
+typedef void (*HISRENTRY)(void);
+
+typedef struct s_queue *QID;
+
+typedef QID SDL_PId;
+
+typedef struct xSignalHeaderStruct *xSignalHeader;
+typedef struct xTimerHeaderStruct *xTimerHeader;
+
+/**************************************************************************
+* Êý¾Ý½á¹¹ *
+**************************************************************************/
+/*HISRÈÎÎñ¿ØÖÆ¿é*/
+typedef struct NU_HISR_STRUCT{
+ UNSIGNED words[22];
+ VOID(*hisrEntry)(VOID);
+ ZOSS_THREAD_ID hisrTaskId;
+} NU_HISR;
+
+/*Ïß³ÌÈë²Î£¬±£´æÕæÕýµÄÈë¿Úº¯ÊýºÍ²ÎÊý*/
+typedef struct entryCb{
+ ENTRY entry;
+ unsigned long argc;
+ VOID *argv;
+}EntryCB;
+
+/*HISRÏß³ÌÈë²Î£¬±£´æÈë¿Úº¯Êý*/
+typedef struct hisrEntryCb{
+ HISRENTRY entry;
+}HisrEntryCB;
+
+/*´æ·ÅSDLÈÎÎñµÄIDºÍͨѶID*/
+struct args{
+ UINT32 self_id;
+ SDL_PId self;
+};
+
+/*SDLÈÎÎñºÍÏ̵߳ǼDZí*/
+struct process_desc{
+ CHAR *name;
+ VOID (*entry)(UNSIGNED, VOID *);
+ ZOSS_THREAD_ID task;
+ UNSIGNED stack_size;
+ UINT32 prio;
+ UNSIGNED time_slice;
+ struct args args;
+};
+
+/*HISRÈÎÎñµÇ¼Ç±í*/
+struct hisr_desc{
+ CHAR *name;
+ VOID (*entry)( VOID );
+ NU_HISR *hcb;
+ UNSIGNED stack_size;
+ UINT32 prio;
+};
+
+typedef struct NU_PROTECT_STRUCT
+{
+ UNSIGNED words[2];
+}NU_PROTECT;
+
+/*ÐźÅÁ¿±êʶ*/
+typedef struct NU_SEMAPHORE_STRUCT{
+ ZOSS_SEMAPHORE_ID sem_id;
+ UNSIGNED initial_count;
+ DATA_ELEMENT sm_fifo_suspend;
+}NU_SEMAPHORE;
+
+/*SDLÈÎÎñÏûϢͷ*/
+typedef struct xSignalHeaderStruct{
+ xSignalHeader pred;
+ xSignalHeader succ;
+ SIGREFTYPE SignalCode;
+ UINT32 sender_id;
+ SDL_PId Sender;
+}xSignalHeaderRec;
+
+/*SDLÈÎÎñͨѶID*/
+typedef struct s_queue{
+#if 0
+ ZOSS_THREAD_ID thread_id;
+#endif
+ xSignalHeaderRec list;
+ ZOSS_SEMAPHORE_ID events;
+ ZOSS_MUTEX_ID mutex;
+ VOID *ECB;
+}t_queue;
+
+/*SDLÈÎÎñÏêϸÐÅÏ¢£¬Ã¿¸öSDLÈÎÎñ×Ô¼ºÎ¬»¤*/
+typedef struct process_vars{
+ SDL_PId Offspring;
+ SDL_PId Parent;
+ SDL_PId Self;
+ SDL_PId Sender;
+ xSignalHeaderRec *yInSignalPtr;
+ xSignalHeaderRec SaveQ;
+ xSignalHeader CurrentInSaveQ;
+ UINT8 xState;
+ XINPUTREFTYPE RestartAddress;
+ UINT32 SelfId;
+}t_process_vars;
+
+/*SDLÈÎÎñ×´Ì¬×ªÒÆ±í*/
+typedef struct s_trans_desc{
+ const xInputAction *ystah;
+ const XINPUTREFTYPE *ystai;
+}t_trans_desc;
+
+/*¶¨Ê±Æ÷¿ØÖƿ飬¿ÉÒÔµ±×÷ÏûϢͷʹÓÃ*/
+typedef struct xTimerHeaderStruct{
+ xTimerHeader ee_succ;
+ xTimerHeader le_succ;
+ SIGREFTYPE SignalCode;
+ SDL_PId Sender;
+ SdlTimeSpec ee_time;
+ SdlTimeSpec le_time;
+ t_timer_param param;
+}xTimerHeaderRec;
+
+#if 0
+#define MAXIMUMTIMER 1024
+typedef struct _TimerContext
+{
+ char timerName[MAX_THREADNAME_LEN];/* ¶¨Ê±Æ÷Ãû³Æ ,×î´óֵͬÏß³ÌÃû*/
+ ZOSS_TIMER_FUN timerFun; /* ¶¨Ê±Æ÷Ö´Ðлص÷º¯Êý */
+ UINT32 input; /* »Øµ÷º¯ÊýÈë¿Ú²ÎÊý */
+ UINT32 timer_expire; /* ¶¨Ê±Æ÷¶¨Ê±³¬Ê±Ê±¼ä */
+ UINT32 auto_activate; /* ¶¨Ê±Æ÷ÊÇ·ñ¸Õ´´½¨ºÃ¾Í¼¤»î */
+ BOOL active; /* µ±Ç°¶¨Ê±Æ÷ÊÇ·ñ´¦ÓÚ¼¤»î״̬ */
+ UINT32 index; /* µ±Ç°ÏîÉÏÏÂÎĵÄË÷Òý */
+ ZOSS_TIMER_ID timerid; /* ¶¨Ê±Æ÷µÄID */
+ HANDLE threadHandle; /* ¶¨Ê±Æ÷ËùÔÚÏ̵߳ľä±ú */
+ BOOL isInUse; /* µ±Ç°ÏîÉÏÏÂÎÄÊÇ·ñÒѾ±»Ê¹Óà */
+ BOOL cycle; /* µ±Ç°¶¨Ê±Æ÷ÊÇÖÜÆÚÐԵϹÊÇÖ»Ö´ÐÐÒ»´Î */
+}TimerContext;
+#endif
+
+ /**************************************************************************
+ * È«¾Öº¯ÊýÔÐÍ *
+ **************************************************************************/
+ /*===========================================*/
+/*ϵͳ¹ÜÀíÄ£¿é*/
+/*===========================================*/
+/**************************************************************************
+* º¯ÊýÃû³Æ£º nu_is_booting
+* ¹¦ÄÜÃèÊö£º ¼ì²âÊÇ·ñ³õʼ»¯Íê³É
+* ²ÎÊý˵Ã÷£º (IN)
+ (OUT)
+* ·µ »Ø Öµ£º TURE: the system is booted
+ FALSE: not completed
+* ÆäËü˵Ã÷£º
+**************************************************************************/
+extern SINT32 nu_is_booting(VOID);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ£º SDL_Task_Start
+* ¹¦ÄÜÃèÊö£º Æô¶¯SDL ÈÎÎñ
+* ²ÎÊý˵Ã÷£º (IN)
+ process:
+ staticEntry:
+ (OUT)
+* ·µ »Ø Öµ£º ³É¹¦·´»ØZOSS_SUCCESS£¬Ê§°Ü·´»ØZOSS_ERROR
+* ÆäËü˵Ã÷£º
+**************************************************************************/
+extern UINT32 SDL_Task_Start(struct process_desc *process);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ£º Non_SDL_Task_Start
+* ¹¦ÄÜÃèÊö£º Æô¶¯SDL ÈÎÎñ
+* ²ÎÊý˵Ã÷£º (IN)
+ process:
+ additionalEntry:
+ (OUT)
+* ·µ »Ø Öµ£º ³É¹¦·´»ØZOSS_SUCCESS£¬Ê§°Ü·´»ØZOSS_ERROR
+* ÆäËü˵Ã÷£º
+**************************************************************************/
+extern UINT32 Non_SDL_Task_Start(struct process_desc *process);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ£º HIRS_Task_Start
+* ¹¦ÄÜÃèÊö£º Æô¶¯HISR ÈÎÎñ
+* ²ÎÊý˵Ã÷£º (IN)
+ hisr:
+ (OUT)
+* ·µ »Ø Öµ£º ³É¹¦·´»ØZOSS_SUCCESS£¬Ê§°Ü·´»ØZOSS_ERROR
+* ÆäËü˵Ã÷£º
+**************************************************************************/
+extern UINT32 HIRS_Task_Start(struct hisr_desc *hisr);
+
+/*===========================================*/
+/*HISRÈÎÎñ¹ÜÀíÄ£¿é*/
+/*===========================================*/
+/**************************************************************************
+* º¯ÊýÃû³Æ: NU_Create_HISR
+* ¹¦ÄÜÃèÊö: ´´½¨HISRÏß³Ì
+* ²ÎÊý˵Ã÷: hisr:HISRÖ¸Õë
+ name:Ïß³ÌÃû³Æ
+ hisr_entry:Ïß³ÌÈë¿Úº¯Êý
+ priority:ÓÅÏȼ¶
+ stack_address:Õ»µØÖ·
+ stack_size:Õ»´óС
+* ·µ »Ø Öµ: ÕýÈ··µ»ØZOSS_SUCCESS£¬´íÎó·µ»ØZOSS_ERROR
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern UINT32 NU_Create_HISR(NU_HISR *hisr, CHAR *name, VOID (*hisr_entry)(VOID),
+ OPTION priority, VOID *stack_address, UNSIGNED stack_size);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: NU_Activate_HISR
+* ¹¦ÄÜÃèÊö: ¼¤»îHISRÏß³Ì
+* ²ÎÊý˵Ã÷: HISRÖ¸Õë
+* ·µ »Ø Öµ: ÕýÈ··µ»ØZOSS_SUCCESS£¬´íÎó·µ»ØZOSS_ERROR
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern UINT32 NU_Activate_HISR(NU_HISR *hisr);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: NU_Init_HISR_Sem
+* ¹¦ÄÜÃèÊö: ³õʼ»¯HISRÏ̵߳ĿìËÙÐźÅÁ¿
+* ²ÎÊý˵Ã÷:
+* ·µ »Ø Öµ:
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern VOID NU_Init_HISR_Sem(VOID);
+/**************************************************************************
+* º¯ÊýÃû³Æ: NU_Wait_HISR_Sem
+* ¹¦ÄÜÃèÊö: µÈ´ý¿ìËÙÐźÅÁ¿±»ÊÍ·Å
+* ²ÎÊý˵Ã÷:
+* ·µ »Ø Öµ:
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern VOID NU_Wait_HISR_Sem(VOID);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: NU_Delete_HISR
+* ¹¦ÄÜÃèÊö: ɾ³ýHISR
+* ²ÎÊý˵Ã÷: ÎÞ
+* ·µ »Ø Öµ: ÕýÈ··µ»ØZOSS_SUCCESS£¬´íÎó·µ»ØZOSS_ERROR
+* ÆäËü˵Ã÷:
+**************************************************************************/
+// P98C-YXS extern UINT32 NU_Delete_HISR(NU_HISR *hisr);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: NU_Current_HISR_Pointer
+* ¹¦ÄÜÃèÊö: »ñµÃµ±Ç°HISRÖ¸Õë
+* ²ÎÊý˵Ã÷: ÎÞ
+* ·µ »Ø Öµ: »ñµÃµ±Ç°HISRÖ¸Õë
+* ÆäËü˵Ã÷:
+**************************************************************************/
+// P98C-YXS extern NU_HISR *NU_Current_HISR_Pointer(VOID);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: NU_Current_Task_Pointer
+* ¹¦ÄÜÃèÊö: »ñµÃµ±Ç°ÈÎÎñÖ¸Õë
+* ²ÎÊý˵Ã÷: ÎÞ
+* ·µ »Ø Öµ: µ±Ç°ÈÎÎñÖ¸Õë
+* ÆäËü˵Ã÷: ÖжÏÏ̷߳µ»Ø¿Õ
+**************************************************************************/
+extern VOID *NU_Current_Task_Pointer(VOID);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: NU_Create_Semaphore
+* ¹¦ÄÜÃèÊö: ´´½¨ÐźÅÁ¿
+* ²ÎÊý˵Ã÷: semaphore£ºÐźÅÁ¿Ö¸Õë
+ name:ÐźÅÁ¿Ãû³Æ
+ initial_count:³õʼֵ
+ suspend_type:ÀàÐÍ
+* ·µ »Ø Öµ: ÕýÈ··µ»ØZOSS_SUCCESS£¬´íÎó·µ»ØZOSS_ERROR
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern UINT32 NU_Create_Semaphore(NU_SEMAPHORE *semaphore, CHAR *name,
+ UNSIGNED initial_count, OPTION suspend_type);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: NU_Delete_Semaphore
+* ¹¦ÄÜÃèÊö: ɾ³ýÐźÅÁ¿
+* ²ÎÊý˵Ã÷: semaphore:ÐźÅÁ¿Ö¸Õë
+* ·µ »Ø Öµ: ÕýÈ··µ»ØZOSS_SUCCESS£¬´íÎó·µ»ØZOSS_ERROR
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern UINT32 NU_Delete_Semaphore(NU_SEMAPHORE *semaphore);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: NU_Obtain_Semaphore
+* ¹¦ÄÜÃèÊö: »ñµÃÐźÅÁ¿
+* ²ÎÊý˵Ã÷: semaphore:ÐźÅÁ¿Ö¸Õë
+ suspend:ÀàÐÍ
+* ·µ »Ø Öµ: ÕýÈ··µ»ØZOSS_SUCCESS£¬´íÎó·µ»ØZOSS_ERROR
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern UINT32 NU_Obtain_Semaphore(NU_SEMAPHORE *semaphore, UNSIGNED suspend);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: NU_Release_Semaphore
+* ¹¦ÄÜÃèÊö: ÊÍ·ÅÐźÅÁ¿
+* ²ÎÊý˵Ã÷: semaphore:ÐźÅÁ¿Ö¸Õë
+* ·µ »Ø Öµ: ÕýÈ··µ»ØZOSS_SUCCESS£¬´íÎó·µ»ØZOSS_ERROR
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern UINT32 NU_Release_Semaphore(NU_SEMAPHORE *semaphore);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: NU_Reset_Semaphore
+* ¹¦ÄÜÃèÊö: ÖØÉèÐźÅÁ¿
+* ²ÎÊý˵Ã÷: semaphore:ÐźÅÁ¿Ö¸Õë
+ initial_count:³õʼֵ
+* ·µ »Ø Öµ: ÕýÈ··µ»ØZOSS_SUCCESS£¬´íÎó·µ»ØZOSS_ERROR
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern UINT32 NU_Reset_Semaphore(NU_SEMAPHORE *semaphore, UNSIGNED initial_count);
+
+/*===========================================*/
+/*Òì³£´¦ÀíÄ£¿é*/
+/*===========================================*/
+/**************************************************************************
+* º¯ÊýÃû³Æ£ºnu_exception
+* ¹¦ÄÜÃèÊö£º Òì³£´¦Àí
+* ²ÎÊý˵Ã÷£º (IN)
+ line_number:ÐÐÊý
+ filename:ÎļþÃû
+ un_status:״ֵ̬
+ (OUT)
+* ·µ »Ø Öµ£º ÎÞ
+* ÆäËü˵Ã÷£º
+**************************************************************************/
+// P98C-YXS extern VOID nu_exception (SINT32 line_number, CHAR *filename, STATUS nu_status);
+
+/*===========================================*/
+/*ÄÚ´æ¹ÜÀíÄ£¿é*/
+/*===========================================*/
+/**************************************************************************
+* º¯ÊýÃû³Æ: ps_calloc
+* ¹¦ÄÜÃèÊö: ·ÖÅäÒ»×é¿Õ¼ä
+* ²ÎÊý˵Ã÷: (IN)
+ nel:¿éÊý
+ size:ÿ¿éµÄ´óС
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern VOID *ps_calloc(size_t nel, size_t size);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: ps_malloc
+* ¹¦ÄÜÃèÊö: ´Ó¶ÑÖзÖÅä¿Õ¼ä
+* ²ÎÊý˵Ã÷: (IN)
+ size:´óС
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern VOID *ps_malloc(size_t size);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: zrealloc
+* ¹¦ÄÜÃèÊö: ´ÓзÖÅä¿Õ¼ä
+* ²ÎÊý˵Ã÷: (IN)
+ block:ÔÓÐÄÚ´æÖ¸Õë
+ newsize:еĴóС
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern VOID *zrealloc(void *block, size_t newsize);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: ps_free
+* ¹¦ÄÜÃèÊö: Êͷſռä
+* ²ÎÊý˵Ã÷: (IN)
+ memp:ÄÚ´æÖ¸Õë
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern VOID ps_free(void *memp);
+
+#if 0
+extern VOID *malloc_dma_buffer(size_t size);
+extern VOID free_dma_buffer(void *ptr);
+#endif
+
+/*===========================================*/
+/*ÏûÏ¢¹ÜÀíÄ£¿é*/
+/*===========================================*/
+/**************************************************************************
+* º¯ÊýÃû³Æ: alloc_sig_loc
+* ¹¦ÄÜÃèÊö: ·ÖÅäÏûÏ¢¿Õ¼ä
+* ²ÎÊý˵Ã÷: (IN)
+ size:´óС
+ file:ÎļþÃû
+ line:³õʼֵ
+ (OUT)
+* ·µ »Ø Öµ: ÕýÈ··µ»ØÄÚ´æÖ¸Õ룬´íÎó·µ»ØNULL
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern xSignalHeaderRec *alloc_sig_loc(UINT32 size, CHAR *file, SINT32 line);
+#define alloc_sig(_size) alloc_sig_loc ((_size), __FILE__, __LINE__)
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: free_sig_loc
+* ¹¦ÄÜÃèÊö: ÊÍ·ÅÏûÏ¢¿Õ¼ä
+* ²ÎÊý˵Ã÷: (IN)
+ signal_ptr:ÒªÊͷŵÄÄÚ´æÖ¸Õë
+ file:ÎļþÃû
+ line:³õʼֵ
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern VOID free_sig_loc(xSignalHeaderRec *signal_ptr, CHAR *file, SINT32 line);
+#define free_sig(_sig_ptr) free_sig_loc((_sig_ptr), __FILE__, __LINE__)
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: send_sig_loc
+* ¹¦ÄÜÃèÊö: ÏòÒ»¸öSDLÏ̷߳¢ËÍÏûÏ¢
+* ²ÎÊý˵Ã÷: (IN)
+ signal_ptr:ÏûÏ¢¿é
+ rec_queue:½ÓÊÕ¶ÓÁÐÍ·Ö¸Õë
+ sig_name:ÐźÅÃû
+ file:ÎļþÃû
+ line:ÐÐÊý
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern void send_sig_loc(
+ xSignalHeaderRec *signal_ptr, t_queue *rec_queue, char *sig_name, char *file, int line );
+
+#define send_sig(_signal_ptr,_rec_queue ,_sig_name) \
+ send_sig_loc ((_signal_ptr), (_rec_queue),(_sig_name), __FILE__, __LINE__)
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: send_sig_no_to_loc
+* ¹¦ÄÜÃèÊö: ¸ù¾ÝÏûÏ¢ÂëÏòÒ»¸öSDLÏ̷߳¢ËÍÏûÏ¢
+* ²ÎÊý˵Ã÷: (IN)
+ signal_ptr:ÏûÏ¢¿é
+ signal_cod:ÏûÏ¢Âë
+ file:ÎļþÃû
+ line:ÐÐÊý
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷: hehaijian for win debug
+**************************************************************************/
+extern void send_sig_no_to_loc (
+ xSignalHeaderRec *signal_ptr, unsigned signal_code, CHAR *file, SINT32 line );
+
+#define send_sig_no_to(_signal_ptr, _signal_code, _sig_name ) \
+ send_sig_no_to_loc ((_signal_ptr), ( _signal_code), __FILE__, __LINE__)
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: send_startup_sig_loc
+* ¹¦ÄÜÃèÊö: ÏòÒ»¸öSDLÏ̷߳¢ËÍÆô¶¯ÏûÏ¢
+* ²ÎÊý˵Ã÷: (IN)
+ rec_queue:ÏòÒ»¸öÏ̷߳¢ËÍÆô¶¯ÏûÏ¢
+ file:ÎļþÃû
+ line:ÐÐÊý
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern VOID send_startup_sig_loc (
+ t_queue *rec_queue, CHAR *file, SINT32 line );
+
+#define send_startup_sig(_rec_queue) \
+ send_startup_sig_loc ((_rec_queue), __FILE__, __LINE__)
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: receive_sig_loc
+* ¹¦ÄÜÃèÊö: ½ÓÊÕÏûÏ¢
+* ²ÎÊý˵Ã÷: (IN)
+ queue:ÏûÏ¢¶ÓÁÐÍ·
+ file:ÎļþÃû
+ line:ÐÐÊý
+ (OUT)
+* ·µ »Ø Öµ: ÏûÏ¢Ö¸Õë
+* ÆäËü˵Ã÷: ÓÉSDLÈÎÎñµ÷ÓÃ
+**************************************************************************/
+extern xSignalHeaderRec *receive_sig_loc(t_queue *queue, CHAR *file, SINT32 line);
+#define receive_sig(_queue) receive_sig_loc ((_queue), __FILE__, __LINE__)
+
+/*===========================================*/
+/*SDL¶¨Ê±Æ÷¹ÜÀíÄ£¿é*/
+/*===========================================*/
+/**************************************************************************
+* º¯ÊýÃû³Æ: SDL_Set_Dur
+* ¹¦ÄÜÃèÊö: ´´½¨Ò»¸öSDL¶¨Ê±Æ÷
+* ²ÎÊý˵Ã÷: (IN)
+ Tick_Expr:¶¨Ê±Æ÷ÖÜÆÚ
+ timer_name:¶¨Ê±Æ÷Ãû
+ timer_param:¶¨Ê±Æ÷²ÎÊý
+ yVarP:Ïß³ÌÐÅÏ¢Ö¸Õë
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷: ÏÈÕÒ¶¨Ê±Æ÷£¬Èç¹ûÕÒµ½Ôò»Ö¸´£¬·ñÔò´´½¨Ò»¸öеÄ
+**************************************************************************/
+extern VOID SDL_Set_Dur(SDL_Duration Tick_Expr, UINT32 timer_name,
+ t_timer_param timer_param, t_process_vars *yVarP,BYTE sample_id);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: SDL_Set_Dur_Ex
+* ¹¦ÄÜÃèÊö: ´´½¨Ò»¸öSDL¶¨Ê±Æ÷
+* ²ÎÊý˵Ã÷: (IN)
+ Earliest_Tick_Expr:¶¨Ê±Æ÷×îÔçÖÜÆÚ
+ Latest_Tick_Expr:¶¨Ê±Æ÷×îÍíÖÜÆÚ
+ timer_name:¶¨Ê±Æ÷Ãû
+ timer_param:¶¨Ê±Æ÷²ÎÊý
+ yVarP:Ïß³ÌÐÅÏ¢Ö¸Õë
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷: ÏÈÕÒ¶¨Ê±Æ÷£¬Èç¹ûÕÒµ½ÔòÓÃÐÂÖÜÆÚ»Ö¸´£¬·ñÔò´´½¨Ò»¸öеÄ
+**************************************************************************/
+extern VOID SDL_Set_Dur_Ex(SDL_Duration Earliest_Tick_Expr, SDL_Duration Latest_Tick_Expr,
+ UINT32 timer_name, t_timer_param timer_param, t_process_vars *yVarP,BYTE sample_id);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: SDL_Set
+* ¹¦ÄÜÃèÊö: ´´½¨Ò»¸öSDL¶¨Ê±Æ÷
+* ²ÎÊý˵Ã÷: (IN)
+ Tick_Expr:¶¨Ê±Æ÷ÖÜÆÚ
+ timer_name:¶¨Ê±Æ÷Ãû
+ timer_param:¶¨Ê±Æ÷²ÎÊý
+ yVarP:Ïß³ÌÐÅÏ¢Ö¸Õë
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷: ÏÈÕÒ¶¨Ê±Æ÷£¬Èç¹ûÕÒµ½Ôò»Ö¸´£¬·ñÔò´´½¨Ò»¸öеÄ
+**************************************************************************/
+// P98C-YXS extern VOID SDL_Set(SDL_Time Time, UINT32 timer_name,
+// P98C-YXS t_timer_param timer_param, t_process_vars *yVarP);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: SDL_Set_Ex
+* ¹¦ÄÜÃèÊö: ´´½¨Ò»¸öSDL¶¨Ê±Æ÷
+* ²ÎÊý˵Ã÷: (IN)
+ Earliest_Tick_Expr:¶¨Ê±Æ÷×îÔçÖÜÆÚ
+ Latest_Tick_Expr:¶¨Ê±Æ÷×îÍíÖÜÆÚ
+ timer_name:¶¨Ê±Æ÷Ãû
+ timer_param:¶¨Ê±Æ÷²ÎÊý
+ yVarP:Ïß³ÌÐÅÏ¢Ö¸Õë
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷: ÏÈÕÒ¶¨Ê±Æ÷£¬Èç¹ûÕÒµ½Ôò»Ö¸´£¬·ñÔò´´½¨Ò»¸öеÄ
+**************************************************************************/
+// P98C-YXS extern VOID SDL_Set_Ex(SDL_Time Earliest_Time, SDL_Time Latest_Time, UINT32 timer_name,
+// P98C-YXS t_timer_param timer_param, t_process_vars *yVarP);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: SDL_Reset
+* ¹¦ÄÜÃèÊö: ɾ³ýÒ»¸öSDL¶¨Ê±Æ÷
+* ²ÎÊý˵Ã÷: (IN)
+ timer_name:¶¨Ê±Æ÷Ãû
+ timer_param:¶¨Ê±Æ÷²ÎÊý
+ yVarP:Ïß³ÌÐÅÏ¢Ö¸Õë
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern VOID SDL_Reset (UINT32 TimerName, t_timer_param timer_param,
+ t_process_vars *yVarP,BYTE sample_id);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: SDL_Active
+* ¹¦ÄÜÃèÊö: ¼ì²é¶¨Ê±Æ÷ÊÇ·ñ´æÔÚ
+* ²ÎÊý˵Ã÷: (IN)
+ timer_name:¶¨Ê±Æ÷Ãû
+ timer_param:¶¨Ê±Æ÷²ÎÊý
+ yVarP:Ïß³ÌÐÅÏ¢Ö¸Õë
+ (OUT)
+* ·µ »Ø Öµ: ´æÔÚ·µ»ØTRUE£¬·ñÔò·µ»ØFALSE
+* ÆäËü˵Ã÷:
+**************************************************************************/
+// P98C-YXS extern SDL_Boolean SDL_Active(UINT32 TimerName, t_timer_param timer_param,
+// P98C-YXS t_process_vars *yVarP);
+
+extern SDL_Time RetrieveClock(BYTE sample_id);
+
+extern SDL_Duration SDL_Duration_Lit (SINT32 secs, SINT32 nsecs);
+
+/*===========================================*/
+/*SDLÈÎÎñ¹ÜÀíÄ£¿é*/
+/*===========================================*/
+/**************************************************************************
+* º¯ÊýÃû³Æ: SDL_Create
+* ¹¦ÄÜÃèÊö: ´´½¨Ò»¸öSDLÈÎÎñ
+* ²ÎÊý˵Ã÷: (IN)
+ task_entry:ÈÎÎñÈë¿Úº¯Êý
+ stack_size:¶ÑÕ»´óС
+ self_id:ÈÎÎñID
+ prio:ÓÅÏȼ¶
+ task_name:ÈÎÎñÃû
+ startup_signal:³õʼ»¯ÏûÏ¢
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷:
+**************************************************************************/
+extern SDL_PId SDL_Create (
+ VOID ( *task_entry )( UNSIGNED argc, VOID *argv ),
+ SINT32 stack_size,
+ SINT32 self_id,
+ SINT32 prio,
+ CHAR *task_name,
+ xSignalHeader startup_signal
+ );
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: SDL_Stop
+* ¹¦ÄÜÃèÊö: ɾ³ýÒ»¸öSDLÈÎÎñ
+* ²ÎÊý˵Ã÷: (IN)
+ varp:Ïß³ÌÐÅÏ¢
+ yInSignalPtr:ÏûÏ¢Ö¸Õë
+ self_if:ÈÎÎñID
+ (OUT)
+* ·µ »Ø Öµ: ÎÞ
+* ÆäËü˵Ã÷: ÔÚÈÎÎñÈë¿ÚÖе÷Óã¬Ò»°ãÓÃÀ´É¾³ý×Ô¼º
+**************************************************************************/
+extern VOID SDL_Stop(t_process_vars *varp, xSignalHeaderRec *yInSignalPtr);
+
+/**************************************************************************
+* º¯ÊýÃû³Æ: SDL_Loop
+* ¹¦ÄÜÃèÊö: Ñ»·½ÓÊÕÏûÏ¢
+* ²ÎÊý˵Ã÷: (IN)
+ proc_insig_tab:ÏûϢ״̬Êý×é
+ trans_tab:×´Ì¬×ªÒÆ¾ØÕó
+ yVarP:Ïß³ÌÐÅÏ¢½á¹¹ÌåÖ¸Õë
+ self_id:Ïß³ÌID
+ (OUT)
+* ·µ »Ø Öµ: ÏûÏ¢Ö¸Õë
+* ÆäËü˵Ã÷: ÓÐÎÊÌâ
+**************************************************************************/
+extern xSignalHeaderRec *SDL_Loop(const XSIGTYPE *proc_insig_tab,
+ const t_trans_desc *trans_tab,
+ struct process_vars *yVarP,
+ char *file, int line);
+
+#endif
+