📄 pcm.h
字号:
#define spslock 0x000000C0,6
#define splockm 0x000000C0
#define splocks 6
/*
* locks2 bits
* _______________________________________________________
* |8 |7 |6 |5 |4 |3 |2 |1 |
* |------|------|------|------|------|------|------|------|
* |reserved |clock |
* -------------------------------------------------------
*/
#define clock 0x00000003,0
#define clockm 0x00000003
#define clocks 0
/********************************************************************
*
* Field MAINTENANCE INFORMATION - MAIN
*
********************************************************************/
/*
* T.B.D.
*/
#define SIZE_EF_MAIN 8
#define NR_EF_MAIN 1
/********************************************************************
*
* Field SPECIAL FUNCTION KEY - SFK
*
********************************************************************/
/*
* T.B.D.
*/
#define SIZE_EF_SFK 8
#define NR_EF_SFK 1
/********************************************************************
*
* Field FAULT CONDITIONS - FAULT
*
********************************************************************/
/*
* T.B.D.
*/
#define SIZE_EF_FAULT 8
#define NR_EF_FAULT 1
/********************************************************************
*
* Field DEBUG INFORMATION - DEBUG
*
********************************************************************/
/*
* T.B.D.
*/
#define SIZE_EF_DEBUG 8
#define NR_EF_DEBUG 1
/********************************************************************
*
* Field POWER MANAGEMENT - POWER
*
********************************************************************/
/*
* T.B.D.
*/
#define SIZE_EF_POWER 8
#define NR_EF_POWER 1
/********************************************************************
*
* Field KEYBOARD MAPPING - KEYB
*
********************************************************************/
typedef struct pcm_EFkbd_Type
{
UBYTE logical_key [32]; /* logical key map */
UBYTE raw_key [32]; /* raw key map */
} EF_KBD;
#define SIZE_EF_KEYB 64
#define NR_EF_KEYB 1
/********************************************************************
*
* Field RADIO PARAMETERS - RADIO
*
********************************************************************/
/*
* T.B.D.
*/
#define SIZE_EF_RADIO 8
#define NR_EF_RADIO 1
/********************************************************************
*
* Field MANUFACTURER - CGMI
*
********************************************************************/
#define SIZE_EF_CGMI_DATA 20 /* value depends on manufacturer spec. */
typedef struct pcm_EFcgmi_Type
{
UBYTE data[SIZE_EF_CGMI_DATA]; /* name of manufacturer */
} EF_CGMI;
#define SIZE_EF_CGMI (SIZE_EF_CGMI_DATA)
#define NR_EF_CGMI 1
/********************************************************************
*
* Field IDENTIFICATION INFORMATION - INF0
*
********************************************************************/
#define SIZE_EF_INF0_DATA 20 /* value depends on manufacturer spec. */
typedef struct pcm_EFinf0_Type
{
UBYTE data[SIZE_EF_INF0_DATA]; /* identification information */
} EF_INF0;
#define SIZE_EF_INF0 (SIZE_EF_INF0_DATA)
#define NR_EF_INF0 2
/********************************************************************
*
* Field MODEL - CGMM
*
********************************************************************/
#define SIZE_EF_CGMM_DATA 20 /* value depends on manufacturer spec. */
typedef struct pcm_EFcgmm_Type
{
UBYTE data[SIZE_EF_CGMM_DATA]; /* name of product */
} EF_CGMM;
#define SIZE_EF_CGMM (SIZE_EF_CGMM_DATA)
#define NR_EF_CGMM 1
/********************************************************************
*
* Field REVISION - CGMR
*
********************************************************************/
#define SIZE_EF_CGMR_DATA 20 /* value depends on manufacturer spec. */
typedef struct pcm_EFcgmr_Type
{
UBYTE data[SIZE_EF_CGMR_DATA]; /* version of product */
} EF_CGMR;
#define SIZE_EF_CGMR (SIZE_EF_CGMR_DATA)
#define NR_EF_CGMR 1
/********************************************************************
*
* Field PRODUCT SERIAL NUMBER - CGSN
*
********************************************************************/
#define SIZE_EF_CGSN_DATA 20 /* value depends on manufacturer spec. */
typedef struct pcm_EFcgsn_Type
{
UBYTE data[SIZE_EF_CGSN_DATA]; /* serial number of product */
} EF_CGSN;
#define SIZE_EF_CGSN (SIZE_EF_CGSN_DATA)
#define NR_EF_CGSN 1
/********************************************************************
*
* Field SMS PROFILE - SMSPRFL
*
********************************************************************/
#define SIZE_EF_SMSPRFL_SCA 20
#define SIZE_EF_SMSPRFL_MIDS 40
#define SIZE_EF_SMSPRFL_DCSS 20
#define SIZE_EF_SMSPRFL_VPABS 14
typedef struct pcm_EFsmsprfl_Type
{
UBYTE vldFlag; /* valid flag */
UBYTE CSCAsca[SIZE_EF_SMSPRFL_SCA]; /* service center address */
UBYTE CSCAlenSca; /* length of service center address */
UBYTE CSCAton; /* type of number */
UBYTE CSCAnpi; /* numbering plan identification */
UBYTE CSCBmode; /* cell broadcast mode */
UBYTE CSCBmids[SIZE_EF_SMSPRFL_MIDS]; /* message identifiers */
UBYTE CSCBdcss[SIZE_EF_SMSPRFL_DCSS]; /* data coding schemes */
UBYTE CSMPfo; /* first octet */
UBYTE CSMPvprel; /* validity period relative */
UBYTE CSMPvpabs[SIZE_EF_SMSPRFL_VPABS]; /* validity period absolute */
UBYTE CSMPpid; /* protocol identifier */
UBYTE CSMPdcs; /* data coding scheme */
} EF_SMSPRFL;
#define SIZE_EF_SMSPRFL (SIZE_EF_SMSPRFL_SCA + \
SIZE_EF_SMSPRFL_MIDS + \
SIZE_EF_SMSPRFL_DCSS + \
SIZE_EF_SMSPRFL_VPABS + 9)
#define NR_EF_SMSPRFL 2
/*
* vldFlag values
*/
#define EF_SMSPRFL_VLD 0x00
#define EF_SMSPRFL_INVLD 0xFF
/********************************************************************
*
* Field PLMN IDENTIFIER - PLMN
*
********************************************************************/
#define SIZE_EF_PLMN_MCC 2
#define SIZE_EF_PLMN_MNC 2
#define SIZE_EF_PLMN_LONG 20
#define SIZE_EF_PLMN_SHRT 10
typedef struct pcm_EFplmn_Type
{
UBYTE mcc[SIZE_EF_PLMN_MCC]; /* mobile country code */
UBYTE mnc[SIZE_EF_PLMN_MNC]; /* mobile network code */
UBYTE lngNam[SIZE_EF_PLMN_LONG]; /* MT voice counter home PLMN */
UBYTE shrtNam[SIZE_EF_PLMN_SHRT]; /* MO data counter home PLMN */
} EF_PLMN;
#define SIZE_EF_PLMN (SIZE_EF_PLMN_MCC + \
SIZE_EF_PLMN_MNC + \
SIZE_EF_PLMN_LONG + \
SIZE_EF_PLMN_SHRT)
#define NR_EF_PLMN 2
/********************************************************************
*
* Field BCCH INFORMATION - BCCHINF
*
********************************************************************/
typedef struct pcm_EFbcchinfo_Type
{
UBYTE bcch_info[54]; /* content of bcch_info */
} EF_BCCHINFO;
#define SIZE_EF_BCCHINFO 54
#define NR_EF_BCCHINFO 1
/********************************************************************
*
* Field ALTERNATIVE LINE SERVICE - ALS
*
********************************************************************/
typedef struct pcm_EFals_Type
{
UBYTE selLine; /* selected line */
UBYTE statLine; /* status line */
} EF_ALS;
#define SIZE_EF_ALS 2
#define NR_EF_ALS 1
/********************************************************************
*
* Field LOCATION INFORMATION (GPRS) - LOCGPRS
*
********************************************************************/
typedef struct pcm_EFlocgprs_Type
{
UBYTE ptmsi[4]; /* packet TMSI */
UBYTE ptmsi_signature[3]; /* packet TMSI signature value */
UBYTE rai[6]; /* routing area information */
UBYTE ra_status; /* status of rai */
} EF_LOCGPRS;
#define SIZE_EF_LOCGPRS sizeof (EF_LOCGPRS)
#define NR_EF_LOCGPRS 1
/********************************************************************
*
* Field CIPHERING KEY (GPRS) - KCGPRS
*
********************************************************************/
typedef struct pcm_EFkcgprs_Type
{
UBYTE kc[8]; /* currently used cyphering key */
UBYTE cksn; /* ciphering key sequence number of kc */
} EF_KCGPRS;
#define SIZE_EF_KCGPRS sizeof (EF_KCGPRS)
#define NR_EF_KCGPRS 1
/********************************************************************
*
* Field IMSI (GPRS) - IMSIGPRS
*
********************************************************************/
typedef struct pcm_EFimsigprs_Type
{
UBYTE len; /* length IMSI */
UBYTE IMSI[8]; /* IMSI */
} EF_IMSIGPRS;
#define SIZE_EF_IMSIGPRS sizeof (EF_IMSIGPRS)
#define NR_EF_IMSIGPRS 1
/********************************************************************
*
* Prototypes
*
********************************************************************/
EXTERN unsigned char pcm_find_active_pcm_sector (void);
EXTERN void pcm_read_flash (UBYTE *pcm_mem,
unsigned size,
UBYTE pcm_sector);
EXTERN drv_Return_Type pcm_erase_flash_sector (UBYTE pcm_sector);
EXTERN drv_Return_Type pcm_write_flash (UBYTE *pcm_mem,
unsigned size,
UBYTE pcm_sector);
EXTERN drv_Return_Type pcm_Init (void);
EXTERN void pcm_Exit (void);
EXTERN drv_Return_Type pcm_ReadFile (UBYTE *in_FileName,
USHORT in_BufferSize,
UBYTE *out_BufferPtr,
UBYTE *out_VersionPtr);
EXTERN drv_Return_Type pcm_GetFileInfo (UBYTE *in_FileName,
pcm_FileInfo_Type *out_FileInfoPtr);
EXTERN drv_Return_Type pcm_ReadRecord (UBYTE *in_FileName,
USHORT in_Record,
USHORT in_BufferSize,
UBYTE *out_BufferPtr,
UBYTE *out_VersionPtr,
USHORT *out_MaxRecordsPtr);
EXTERN drv_Return_Type pcm_WriteFile (UBYTE *in_FileName,
USHORT in_BufferSize,
UBYTE *in_BufferPtr);
EXTERN drv_Return_Type pcm_WriteRecord (UBYTE *in_FileName,
USHORT in_Record,
USHORT in_BufferSize,
UBYTE *in_BufferPtr);
EXTERN drv_Return_Type pcm_Flush (void);
#endif // ifndef DEF_PCM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -