[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

+