vsi.h
来自「是一个手机功能的模拟程序」· C头文件 代码 · 共 548 行 · 第 1/2 页
H
548 行
/*
+------------------------------------------------------------------------------
| File: vsi.h
+------------------------------------------------------------------------------
| Copyright 2002 Texas Instruments Berlin, AG
| All rights reserved.
|
| This file is confidential and a trade secret of Texas
| Instruments Berlin, AG
| The receipt of or possession of this file does not convey
| any rights to reproduce or disclose its contents or to
| manufacture, use, or sell anything it may describe, in
| whole, or in part, without the specific written consent of
| Texas Instruments Berlin, AG.
+-----------------------------------------------------------------------------
| Purpose : Definitions for Virtual System Interface.
+-----------------------------------------------------------------------------
*/
#ifndef VSI_H
#define VSI_H
/*==== INCLUDES =============================================================*/
#include <stddef.h>
#include "header.h"
#include "gdi.h"
#include "drvconf.h"
#if 0
/* to be removed later */
//#define MEMORY_SUPERVISION
//#define OPTIMIZE_POOL
#define EXTENDED_OPC 0x80000000
#define DYNAMIC_PRIMITIVE 0x40000000
#define READY_TO_FREE 0x20000000
#define XOPC_MASK (0xffffffff & ~(DYNAMIC_PRIMITIVE|READY_TO_FREE))
#endif
/*==== CONSTANTS ===============================================================*/
#ifdef _WIN32_
#ifdef FRAME_DLL
#define DLL_IMPORT_DATA extern
#else /* FRAME_DLL*/
#define DLL_IMPORT_DATA __declspec( dllimport )
#endif /* FRAME_DLL*/
#endif /* WIN32 */
#ifdef MEMORY_SUPERVISION
#define FILE_LINE ,file,line
#define FILE_LINE_TYPE ,const char *file, int line
#define FILE_LINE_MACRO ,__FILE__,__LINE__
#define FILE_LINE_MACRO_PASSED ,rm_path(file),line
#else
#define FILE_LINE
#define FILE_LINE_TYPE
#define FILE_LINE_MACRO
#define FILE_LINE_MACRO_PASSED ,__FILE__,__LINE__
#endif
#define NO_TASK 0
/*
* defines if the frame is controlling a protocol stack or a tools application (TAP,PCO,...)
*/
#define ENV_STACK 0
#define ENV_TOOLS 1
#define PASSIVE_BODY 0x01
#define COPY_BY_REF 0x02
#define SYSTEM_PROCESS 0x04
#define TRC_NO_SUSPEND 0x08
#define PARTITION_AUTO_FREE 0x10
/*
* return values
*/
#define VSI_OK 0
#define VSI_TIMEOUT 1
#define VSI_ERROR (-1)
/*
* message types
*/
#define MSG_PRIMITIVE 1
#define MSG_SIGNAL 2
#define MSG_TIMEOUT 3
/*
* definitions for dynamic primitive allocation
*/
#define DP_FRAME_GUESS 0xffffffff
#define DP_NO_FRAME_GUESS 0
#ifndef NTRACE
#ifndef NTRACE_FUNC
#define TRACE_FUNC
#endif
#define TRACE_EVE
#define TRACE_ERR
#define TRACE_PRIM
#define TRACE_STATE
#define TRACE_IS /* entity internal signals */
#endif
/*
* trace bit masks
*/
#define TC_FUNC 0x00000001
#define TC_EVENT 0x00000002
#define TC_PRIM 0x00000004
#define TC_STATE 0x00000008
#define TC_SYSTEM 0x00000010
#define TC_ISIG 0x00000020
#define TC_ERROR 0x00000040
#define TC_CCD 0x00000080
#define TC_TIMER 0x00000100
#define TC_USER1 0x00010000
#define TC_USER2 0x00020000
#define TC_USER3 0x00040000
#define TC_USER4 0x00080000
#define SYS_MASK 0x8000 /* system primitive mask */
/*
* types of partition pools to alocate from
*/
#define PRIM_POOL_PARTITION 0x0001
#define DMEM_POOL_PARTITION 0x0002
#define TIMER_SET 1
#define TIMER_RESET 2
#define TIMER_SPEED_UP 3
#define TIMER_SLOW_DOWN 4
#define TIMER_SUPPRESS 5
/*
* maximum length for a text trace
*/
#define TTRACE_LEN 100
/*
* values do be passed to vsi_m_init() to define if the allocated
* partitions shall be initialized with a predefined value.
*/
#define DISABLE_PARTITON_INIT 0
#define ENABLE_PARTITON_INIT 1
#define TIME_MODE_MASK 0xc0000000
#define TIME_IS_TDMA 0x80000000
/*==== TYPES ================================================================*/
typedef ULONG T_TIME;
typedef int T_HANDLE;
#include "pei.h"
#include "alert.h"
union T_MSG
{
struct T_Prim
{
T_VOID_STRUCT *Prim;
ULONG PrimLen;
} Primitive;
struct Sig
{
ULONG SigOPC;
T_VOID_STRUCT *SigBuffer;
ULONG SigLen;
} Signal;
struct Tim
{
ULONG Index;
} Timer;
};
typedef struct
{
USHORT MsgType;
union T_MSG Msg;
} T_QMSG;
typedef struct
{
char const *Str;
USHORT Ind;
} T_STR_IND;
/*==== PROTOTYPES ===============================================================*/
T_HANDLE vsi_p_create (T_HANDLE Caller,
SHORT (*pei_create)(T_PEI_INFO const ** info),
void (*TaskEntry)(T_HANDLE, ULONG),
T_HANDLE MemPoolHandle );
int vsi_p_exit (T_HANDLE Caller, T_HANDLE TaskHandle);
int vsi_p_delete (T_HANDLE Caller, T_HANDLE TaskHandle);
int vsi_p_start (T_HANDLE Caller, T_HANDLE TaskHandle);
int vsi_p_stop (T_HANDLE Caller, T_HANDLE TaskHandle);
int vsi_p_name (T_HANDLE Caller, T_HANDLE Handle, char *Name);
T_HANDLE vsi_p_handle (T_HANDLE Caller, char *Name);
void vsi_o_set_htrace (T_HANDLE comhandle);
T_VOID_STRUCT * vsi_m_new (ULONG Size, USHORT type FILE_LINE_TYPE);
T_VOID_STRUCT * vsi_m_new_size (ULONG size, USHORT type,
ULONG *partition_size FILE_LINE_TYPE);
int vsi_m_free (T_VOID_STRUCT **Addr FILE_LINE_TYPE);
int vsi_m_status (T_HANDLE caller, ULONG size, USHORT type, USHORT *free, USHORT *alloc);
int vsi_m_init (char enable_init, char pattern);
T_VOID_STRUCT * vsi_m_cnew (ULONG size, USHORT type FILE_LINE_TYPE);
int vsi_m_cfree (T_VOID_STRUCT **ptr FILE_LINE_TYPE);
int vsi_m_attach (T_VOID_STRUCT *ptr FILE_LINE_TYPE);
T_HANDLE vsi_c_open (T_HANDLE Caller, char *Name);
int vsi_c_close (T_HANDLE Caller, T_HANDLE ComHandle);
int vsi_c_clear (T_HANDLE Caller, T_HANDLE ComHandle);
T_VOID_STRUCT * vsi_c_pnew (ULONG Size, ULONG opc FILE_LINE_TYPE);
T_VOID_STRUCT * vsi_c_new_sdu (ULONG Size, ULONG opc, USHORT sdu_len,
USHORT sdu_offset, USHORT encode_offset FILE_LINE_TYPE);
T_VOID_STRUCT * vsi_c_ppass (T_VOID_STRUCT *prim, ULONG opc FILE_LINE_TYPE);
void vsi_c_pstore (T_VOID_STRUCT *prim FILE_LINE_TYPE);
int vsi_c_pfree (T_VOID_STRUCT **Msg FILE_LINE_TYPE);
int vsi_c_ssend (T_HANDLE ComHandle, ULONG opc,
T_VOID_STRUCT *ptr, ULONG MsgLen FILE_LINE_TYPE);
int vsi_c_psend (T_HANDLE ComHandle, T_VOID_STRUCT *ptr FILE_LINE_TYPE);
T_VOID_STRUCT * vsi_c_reuse (T_PRIM_HEADER *ptr, ULONG Size,
ULONG opc, USHORT sdu_len, USHORT sdu_offset,
USHORT encode_offset FILE_LINE_TYPE);
T_VOID_STRUCT * vsi_c_new (T_HANDLE Caller, ULONG Size, ULONG opc FILE_LINE_TYPE);
int vsi_c_send (T_HANDLE Caller, T_HANDLE ComHandle,
T_QMSG *Msg FILE_LINE_TYPE);
int vsi_c_free (T_HANDLE Caller, T_VOID_STRUCT **Msg FILE_LINE_TYPE);
int vsi_c_pmax_size (void);
int vsi_c_sync (T_HANDLE Caller, T_TIME timeout);
T_VOID_STRUCT * vsi_drpo_new (ULONG size, ULONG opc, ULONG guess FILE_LINE_TYPE);
T_VOID_STRUCT * vsi_drp_new (ULONG size, ULONG guess FILE_LINE_TYPE);
T_VOID_STRUCT * vsi_dp_new (ULONG size, T_VOID_STRUCT *addr, ULONG guess FILE_LINE_TYPE);
int vsi_free (T_VOID_STRUCT **Msg FILE_LINE_TYPE);
int vsi_dp_sum (T_VOID_STRUCT *addr, ULONG *size);
int vsi_dp_max_size (void);
int vsi_c_await (T_HANDLE Caller, T_HANDLE ComHandle, T_QMSG *Msg,
ULONG Timeout);
int vsi_c_primitive (T_HANDLE Caller, void *Prim);
int vsi_c_awake (T_HANDLE caller );
int vsi_c_status (T_HANDLE q_handle, unsigned int *used, unsigned int *free);
int vsi_t_start (T_HANDLE Caller, USHORT Index, T_TIME Value);
int vsi_t_pstart (T_HANDLE Caller, USHORT Index, T_TIME Value1,
T_TIME Value2 );
int vsi_t_stop (T_HANDLE Caller, USHORT Index );
int vsi_t_status (T_HANDLE Caller, USHORT Index, T_TIME *Value );
int vsi_t_config (T_HANDLE Caller, USHORT Index, UBYTE Mode, ULONG Value );
int _vsi_t_config (T_HANDLE Caller, char *CfgString, const T_STR_IND *pTable );
T_HANDLE vsi_s_open (T_HANDLE Caller, char *Name, USHORT Count);
int vsi_s_close (T_HANDLE Caller, T_HANDLE SemHandle);
int vsi_s_get (T_HANDLE Caller, T_HANDLE SemHandle);
int vsi_s_release (T_HANDLE Caller, T_HANDLE SemHandle);
int vsi_s_status (T_HANDLE Caller, T_HANDLE SemHandle, USHORT *Count);
int vsi_o_func_ttrace (const char * const format, ... );
int vsi_o_event_ttrace(const char * const format, ... );
int vsi_o_error_ttrace(const char * const format, ... );
int vsi_o_state_ttrace(const char * const format, ... );
int _vsi_o_ttrace (ULONG TraceClass, const char * const format, ... );
int vsi_o_ttrace (T_HANDLE Caller, ULONG TraceClass, const char * const format, ... );
int vsi_o_func_itrace (ULONG index, const char * const format, ... );
int vsi_o_event_itrace(ULONG index, const char * const format, ... );
int vsi_o_error_itrace(ULONG index, const char * const format, ... );
int vsi_o_state_itrace(ULONG index, const char * const format, ... );
int _vsi_o_itrace (ULONG TraceClass, ULONG index, const char * const format, ... );
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?