pcm.h

来自「是一个手机功能的模拟程序」· C头文件 代码 · 共 1,584 行 · 第 1/4 页

H
1,584
字号
  UBYTE locks2;
  UBYTE cnt;                            /* lock counter                 */
  UBYTE maxcnt;                         /* lock counter                 */
  UBYTE PKey[8];                        /* SIM control key              */
  UBYTE SPKey[8];                       /* SP control key               */
  UBYTE NSKey[8];                       /* NS control key               */
  UBYTE CKey[8];                        /* corporate control key        */
  UBYTE NKey[8];                        /* network control key          */
  UBYTE len_p_imsi;                     /* bytes of IMSI P-Lock         */
  UBYTE p_imsi[15];                     /* IMSI P-Lock                  */
  UBYTE len_sp_imsi;                    /* bytes of IMSI SP-Lock        */
  UBYTE sp_imsi[15];                    /* IMSI SP-Lock                 */
  UBYTE len_ns_imsi;                    /* bytes of IMSI NS-Lock        */
  UBYTE ns_imsi[15];                    /* IMSI NS-Lock                 */
  UBYTE len_c_imsi;                     /* bytes of IMSI C-Lock         */
  UBYTE c_imsi[15];                     /* IMSI C-Lock                  */
  UBYTE len_n_imsi;                     /* bytes of IMSI N-Lock         */
  UBYTE n_imsi[15];                     /* IMSI N-Lock                  */
  UBYTE len_u_imsi;                     /* bytes of IMSI U-Lock         */
  UBYTE u_imsi[15];                     /* IMSI U-Lock                  */
  UBYTE gidl1;                          /* Group Identifier Level 1     */
  UBYTE gidl2;                          /* Group Identifier Level 1     */
} EF_SIMLCKEXT;

#define SIZE_EF_SIMLCKEXT 142
#define NR_EF_SIMLCKEXT     1

/*
 *  locks1
 */
#define plock            0x00000003,0
#define plockm           0x00000003
#define plocks           0
#define nlock            0x0000000C,2
#define nlockm           0x0000000C
#define nlocks           2
#define nslock           0x00000030,4
#define nslockm          0x00000030
#define nslocks          4
#define spslock          0x000000C0,6
#define splockm          0x000000C0
#define splocks          6

/*
 *  locks2
 */
#define clock            0x00000003,0
#define clockm           0x00000003
#define clocks           0

/********************************************************************
 *
 * Field MAINTENANCE INFORMATION
 *
 ********************************************************************/

/*
 *  T.B.D.
 */
#define SIZE_EF_MAIN  8
#define NR_EF_MAIN    1

/********************************************************************
 *
 * Field SPECIAL FUNCTION KEY
 *
 ********************************************************************/

/*
 *  T.B.D.
 */
#define SIZE_EF_SFK   8
#define NR_EF_SFK     1

/********************************************************************
 *
 * Field FAULT CONDITIONS
 *
 ********************************************************************/

/*
 *  T.B.D.
 */
#define SIZE_EF_FAULT 8
#define NR_EF_FAULT   1

/********************************************************************
 *
 * Field DEBUG INFORMATION
 *
 ********************************************************************/

/*
 *  T.B.D.
 */
#define SIZE_EF_DEBUG 8
#define NR_EF_DEBUG   1

/********************************************************************
 *
 * Field POWER MANAGEMENT
 *
 ********************************************************************/

/*
 *  T.B.D.
 */
#define SIZE_EF_POWER 8
#define NR_EF_POWER   1

 /********************************************************************
 *
 * Field KEYBOARD MAPPING
 *
 ********************************************************************/

typedef struct pcm_EFkbd_Type       /* Keyboard Mapping             */
{
  UBYTE logical_key [32];           /* logical key                  */
  UBYTE raw_key [32];               /* raw key                      */
} EF_KBD;

#define SIZE_EF_KEYB 64
#define NR_EF_KEYB    1

/********************************************************************
 *
 * Field RADIO PARAMETERS
 *
 ********************************************************************/

/*
 *  T.B.D.
 */
#define SIZE_EF_RADIO 8
#define NR_EF_RADIO   1

/********************************************************************
 *
 * Manufacturer
 *
 ********************************************************************/

#define SIZE_EF_CGMI_DATA 20

typedef struct pcm_EFcgmi_Type   /* Manufacturer                 */
{
  UBYTE data[SIZE_EF_CGMI_DATA]; /* Name of Manufacturer         */
} EF_CGMI;

#define SIZE_EF_CGMI SIZE_EF_CGMI_DATA
#define NR_EF_CGMI   1

/********************************************************************
 *
 *  Identification Information 
 *
 ********************************************************************/

#define SIZE_EF_INF0_DATA 20

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

/********************************************************************
 *
 * Model
 *
 ********************************************************************/

#define SIZE_EF_CGMM_DATA 20

typedef struct pcm_EFcgmm_Type   /* Model                        */
{
  UBYTE data[SIZE_EF_CGMM_DATA]; /* Name of Product              */
} EF_CGMM;

#define SIZE_EF_CGMM SIZE_EF_CGMM_DATA
#define NR_EF_CGMM   1

/********************************************************************
 *
 * Revision
 *
 ********************************************************************/

#define SIZE_EF_CGMR_DATA 20

typedef struct pcm_EFcgmr_Type   /* Revision                     */
{
  UBYTE data[SIZE_EF_CGMR_DATA]; /* Version of Product           */
} EF_CGMR;

#define SIZE_EF_CGMR SIZE_EF_CGMR_DATA
#define NR_EF_CGMR   1

/********************************************************************
 *
 * Product Serial Number
 *
 ********************************************************************/

#define SIZE_EF_CGSN_DATA 20

typedef struct pcm_EFcgsn_Type   /* Product Serial Number        */
{
  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

/********************************************************************
 *
 * SMS Profile
 *
 ********************************************************************/

#define SIZE_EF_SMSPRFL_SCA   20
#define SIZE_EF_SMSPRFL_MIDS  40
#define SIZE_EF_SMSPRFL_DCSS  20
#define SIZE_EF_SMSPRFL_VPABS 14

#define EF_SMSPRFL_VLD        0x00
#define EF_SMSPRFL_INVLD      0xFF

typedef struct pcm_EFsmsprfl_Type         /* SMS Profile                      */
{
  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;                         /* Mode                             */
  UBYTE CSCBmids[SIZE_EF_SMSPRFL_MIDS];   /* Message Identifier               */
  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

/********************************************************************
 *
 * PLMN Identifier
 *
 ********************************************************************/

#define SIZE_EF_PLMN_LONG 20
#define SIZE_EF_PLMN_SHRT 10
#define SIZE_EF_PLMN_MCC   2
#define SIZE_EF_PLMN_MNC   2

typedef struct pcm_EFplmn_Type      /* PLMN Identifier              */
{
  UBYTE mcc[SIZE_EF_PLMN_MCC];      /* Mobile country code          */
  UBYTE mnc[SIZE_EF_PLMN_MNC];      /* Mobile network code          */
  UBYTE lngNam[SIZE_EF_PLMN_LONG];  /* Long operator name           */
  UBYTE shrtNam[SIZE_EF_PLMN_SHRT]; /* Short operator name          */
} EF_PLMN;

#define SIZE_EF_PLMN ( SIZE_EF_PLMN_MCC  + SIZE_EF_PLMN_MCC +   \
                       SIZE_EF_PLMN_LONG + SIZE_EF_PLMN_SHRT )
#define NR_EF_PLMN   2

/********************************************************************
 *
 * Field BCCH Information
 *
 ********************************************************************/

typedef struct pcm_EFbcchinfo_Type  /* BCCH information             */
{
  UBYTE bcch_info[54];              /* content                      */
} EF_BCCHINFO;

#define SIZE_EF_BCCHINFO 54
#define NR_EF_BCCHINFO    1

/********************************************************************
 *
 * Field alternate line service
 *
 ********************************************************************/

typedef struct pcm_EFals_Type  /* alternate line service            */
{
  UBYTE selLine;
  UBYTE statLine;
} EF_ALS;

#define SIZE_EF_ALS 2
#define NR_EF_ALS   1

/********************************************************************
 *
 * Field Location Information (GPRS)
 *
 ********************************************************************/

typedef struct pcm_EFlocgprs_Type   /* GPRS Location information    */
{
  UBYTE ptmsi[4];
  UBYTE ptmsi_signature[3];
  UBYTE rai[6];
  UBYTE ra_status;
} EF_LOCGPRS;

#define SIZE_EF_LOCGPRS sizeof (EF_LOCGPRS)
#define NR_EF_LOCGPRS   1

/********************************************************************
 *
 * Field Ciphering Key (GPRS)
 *
 ********************************************************************/

typedef struct pcm_EFkcgprs_Type         /* GPRS Ciphering key      */
{
  UBYTE kc[8];
  UBYTE cksn;
} EF_KCGPRS;

#define SIZE_EF_KCGPRS sizeof (EF_KCGPRS)
#define NR_EF_KCGPRS   1

/********************************************************************
 *
 * Field IMSI (GPRS, only for validation of GPRS related fields)
 *
 ********************************************************************/

typedef struct pcm_EFimsigprs_Type    /* International Subscriber Id */
{
  UBYTE len;
  UBYTE IMSI[8];
} EF_IMSIGPRS;

#define SIZE_EF_IMSIGPRS sizeof (EF_IMSIGPRS)
#define NR_EF_IMSIGPRS   1

/********************************************************************
 *
 * Prototypes
 *
 ********************************************************************/

#if defined (NEW_FRAME)
/*
 * to achieve backward compatibility with older definitions
 */
#define drv_SignalCB_Type           T_DRV_CB_FUNC
#define drv_SignalID_Type           T_DRV_SIGNAL
#define T_VSI_THANDLE               USHORT
#endif

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


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?