⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ma_acc1.c

📁 gsm map协议源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
{
   U16      oldPtr;          /* saved pointer value */

   TRC2(maAccPushMsgQ)

   /* save the old pointer */
   oldPtr = maAccCb.msgQ.wrPtr;

   /* increment the write pointer */
   maAccCb.msgQ.wrPtr++;

   if (maAccCb.msgQ.wrPtr == (U16)MA_ACC_MSG_QSIZE)
   {
      maAccCb.msgQ.wrPtr = 0;
   }

   /* Check if the queue if FULL */
   if (maAccCb.msgQ.wrPtr == maAccCb.msgQ.rdPtr)
   {
      maAccCb.msgQ.wrPtr = oldPtr;

      AULOGERROR(ERRCLS_DEBUG, EAU101, (ErrVal)maAccCb.curTst.id,
                 "maAccPushMsgQ(): Queue is full");

      RETVALUE(RFAILED);
   }

   /* queue the passed element */
   maAccCb.msgQ.q[oldPtr] = *msg;
   
   RETVALUE(ROK);
} /* maAccPushMsgQ */



/*
*
*       Fun:   maAccExamMsgQ
*
*       Desc:  Examine the message at the front of the Queue
*
*       Ret:   ROK     - operation was successful
*              RFAILED - queue is empty
*
*       Notes: None
*
*       File:  ma_acc1.c
*
*/
#ifdef ANSI
PUBLIC  S16 maAccExamMsgQ
(
MaAccMsgQElm  **msg           /* queue message to be returned */
)
#else
PUBLIC  S16 maAccExamMsgQ(msg)
MaAccMsgQElm  **msg;          /* queue message to be returned */
#endif
{

   TRC2(maAccExamMsgQ)

   /* Check If queue is EMPTY */
   if (maAccCb.msgQ.rdPtr == maAccCb.msgQ.wrPtr)
   {
      *msg = NULLP;
      RETVALUE(RFAILED);
   }
   
   *msg = &maAccCb.msgQ.q[maAccCb.msgQ.rdPtr];

   RETVALUE(ROK);
} /* maAccExamMsgQ */



/*
*
*       Fun:   maAccGetMsgQSize
*
*       Desc:  Get the number of entrmas present in the queue
*
*       Ret:   ROK     - operation was successful
*
*       Notes: None
*
*       File:  ma_acc1.c
*
*/
#ifdef ANSI
PUBLIC S16 maAccGetMsgQSize
(
U16   *qSize            /* To return size of the queue */
)
#else
PUBLIC S16 maAccGetMsgQSize(qSize)
U16   *qSize;           /* To return size of the queue */
#endif
{
   TRC2(maAccGetMsgQSize)

   if (maAccCb.msgQ.wrPtr < maAccCb.msgQ.rdPtr)
   {
      *qSize = MA_ACC_MSG_QSIZE + maAccCb.msgQ.wrPtr - maAccCb.msgQ.rdPtr;
   }
   else
   {
      *qSize = maAccCb.msgQ.wrPtr - maAccCb.msgQ.rdPtr;
   }

   RETVALUE(ROK);
} /* maAccGetMsgQSize */



/*
*
*       Fun:   maAccFlushMsgQ
*
*       Desc:  Flush the Queue
*
*       Ret:   ROK     - operation was successful
*
*       Notes: None
*
*       File:  ma_acc1.c
*
*/
#ifdef ANSI
PUBLIC S16 maAccFlushMsgQ
(
Void
)
#else
PUBLIC S16 maAccFlushMsgQ(Void)
#endif
{
   TRC2(maAccFlushMsgQ)

   maAccCb.msgQ.wrPtr = 0;
   maAccCb.msgQ.rdPtr = 0;

   RETVALUE(ROK);
} /* maAccFlushMsgQ */



/*
*
*       Fun:   maAccPrntMsgQ
*
*       Desc:  Prints a message form the queue
*
*       Ret:   ROK     - operation was successful
*              RFAILED - queue is empty
*
*       Notes: None
*
*       File:  ma_acc1.c
*
*/
#ifdef ANSI
PUBLIC S16 maAccPrntMsgQ
(
MaAccMsgQElm  *msg           /* queue message to be returned */
)
#else
PUBLIC S16 maAccPrntMsgQ(msg)
MaAccMsgQElm  *msg;          /* queue message to be returned */
#endif
{
   Txt   prntBuf[MA_PRNTBUF_SIZE];

   TRC2(maAccPrntMsgQ)
#ifndef ALIGN_64BIT
   MAACCPRINT((prntBuf, "\nMAP link %d - SuDlgId %5ld  SpDlgId %5ld\n",
               msg->suId, msg->suDlgId, msg->spDlgId));
#else

   MAACCPRINT((prntBuf, "\nMAP link %d - SuDlgId %5d  SpDlgId %5d\n",
               msg->suId, msg->suDlgId, msg->spDlgId));
#endif /* ALIGN_64BIT */

   switch(msg->evtType)
   {
      case MA_ACC_EVT_OPEN_IND:
         MAACCPRINT((prntBuf, "Open Indication Rx'd"));
         break;

      case MA_ACC_EVT_OPEN_CFM:
         MAACCPRINT((prntBuf, "Open Confirm Rx'd"));
         break;

      case MA_ACC_EVT_DLG_CFM:
         MAACCPRINT((prntBuf, "Dialogue Confirm Rx'd"));
         break;

      case MA_ACC_EVT_DELIM_IND:
         MAACCPRINT((prntBuf, "Delimiter Indication Rx'd"));
         break;

      case MA_ACC_EVT_CLOSE_IND:
         MAACCPRINT((prntBuf, "Close Indication Rx'd"));
         break;

      case MA_ACC_EVT_ABT_IND:
         MAACCPRINT((prntBuf, "Abort Indication Rx'd"));
         break;

      case MA_ACC_EVT_NOT_IND:
         MAACCPRINT((prntBuf, "  Cause %d\n",
                     msg->s.notEv.cause));
         MAACCPRINT((prntBuf, "Notice Indication Rx'd"));
         break;

      case MA_ACC_EVT_STAT_IND:
         MAACCPRINT((prntBuf, "  InvokeId %d Prim %d\n",
                     msg->s.statEv.invId.octet,msg->s.statEv.primType));
         MAACCPRINT((prntBuf, "STATUS  Indication Rx'd"));
         break;

      case MA_ACC_EVT_STE_IND:
         MAACCPRINT((prntBuf, "State Change Indication Rx'd"));
         break;

      case MA_ACC_EVT_STE_CFM:
         MAACCPRINT((prntBuf, "State Change Confirm Rx'd"));
         break;

      case MA_ACC_EVT_HOMGMT_IND:
         MAACCPRINT((prntBuf, "InvokeId %d, LinkedId %d, OprCode %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.lnkId.octet,
                     msg->s.operEv.oprCode));
         MAACCPRINT((prntBuf, "Hand off Management  Indication Rx'd"));
         break;

      case MA_ACC_EVT_HOMGMT_CFM:
         MAACCPRINT((prntBuf, "InvokeId %d, UsrError %d PrvError %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.usrErr.errCode,
                     msg->s.operEv.prvErr.errCode));
         MAACCPRINT((prntBuf, "Hand off  Management Confirm Rx'd"));
         break;

      case MA_ACC_EVT_AUTHMGMT_IND:
         MAACCPRINT((prntBuf, "InvokeId %d, LinkedId %d, OprCode %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.lnkId.octet,
                     msg->s.operEv.oprCode));
         MAACCPRINT((prntBuf, "Authentication Management  Indication Rx'd"));
         break;

      case MA_ACC_EVT_AUTHMGMT_CFM:
         MAACCPRINT((prntBuf, "InvokeId %d, UsrError %d PrvError %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.usrErr.errCode,
                     msg->s.operEv.prvErr.errCode));
         MAACCPRINT((prntBuf, "Authentication Management Confirm Rx'd"));
         break;

      case MA_ACC_EVT_IMEIMGMT_IND:
         MAACCPRINT((prntBuf, "InvokeId %d, LinkedId %d, OprCode %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.lnkId.octet,
                     msg->s.operEv.oprCode));
         MAACCPRINT((prntBuf, "IMEI Management  Indication Rx'd"));
         break;

      case MA_ACC_EVT_IMEIMGMT_CFM:
         MAACCPRINT((prntBuf, "InvokeId %d, UsrError %d PrvError %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.usrErr.errCode,
                     msg->s.operEv.prvErr.errCode));
         MAACCPRINT((prntBuf, "IMEI Management  Confirm Rx'd"));
         break;

      case MA_ACC_EVT_FRMGMT_IND:
         MAACCPRINT((prntBuf, "InvokeId %d, LinkedId %d, OprCode %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.lnkId.octet,
                     msg->s.operEv.oprCode));
         MAACCPRINT((prntBuf, "FR Management  Indication Rx'd"));
         break;

      case MA_ACC_EVT_FRMGMT_CFM:
         MAACCPRINT((prntBuf, "InvokeId %d, UsrError %d PrvError %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.usrErr.errCode,
                     msg->s.operEv.prvErr.errCode));
         MAACCPRINT((prntBuf, "FR Management Confirm Rx'd"));
         break;

      case MA_ACC_EVT_OAMMGMT_IND:
         MAACCPRINT((prntBuf, "InvokeId %d, LinkedId %d, OprCode %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.lnkId.octet,
                     msg->s.operEv.oprCode));
         MAACCPRINT((prntBuf, "OAM  Indication Rx'd"));
         break;

      case MA_ACC_EVT_OAMMGMT_CFM:
         MAACCPRINT((prntBuf, "InvokeId %d, UsrError %d PrvError %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.usrErr.errCode,
                     msg->s.operEv.prvErr.errCode));
         MAACCPRINT((prntBuf, "OAM Confirm Rx'd"));
         break;

      case MA_ACC_EVT_CALLMGMT_IND:
         MAACCPRINT((prntBuf, "InvokeId %d, LinkedId %d, OprCode %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.lnkId.octet,
                     msg->s.operEv.oprCode));
         MAACCPRINT((prntBuf, "call Management  Indication Rx'd"));
         break;

      case MA_ACC_EVT_CALLMGMT_CFM:
         MAACCPRINT((prntBuf, "InvokeId %d, UsrError %d PrvError %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.usrErr.errCode,
                     msg->s.operEv.prvErr.errCode));
         MAACCPRINT((prntBuf, "call Management Confirm Rx'd"));
         break;
      case MA_ACC_EVT_PDPACTV_IND:
         MAACCPRINT((prntBuf, "InvokeId %d, LinkedId %d, OprCode %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.lnkId.octet,
                     msg->s.operEv.oprCode));
         MAACCPRINT((prntBuf, "PDP Active   Indication Rx'd"));
         break;

      case MA_ACC_EVT_PDPACTV_CFM:
         MAACCPRINT((prntBuf, "InvokeId %d, UsrError %d PrvError %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.usrErr.errCode,
                     msg->s.operEv.prvErr.errCode));
         MAACCPRINT((prntBuf, "PDP Active Confirm Rx'd"));
         break;

      case MA_ACC_EVT_SMMGMT_IND:
         MAACCPRINT((prntBuf, "InvokeId %d, LinkedId %d, OprCode %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.lnkId.octet,
                     msg->s.operEv.oprCode));
         MAACCPRINT((prntBuf, "SM  Indication Rx'd"));
         break;

      case MA_ACC_EVT_SMMGMT_CFM:
         MAACCPRINT((prntBuf, "InvokeId %d, UsrError %d PrvError %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.usrErr.errCode,
                     msg->s.operEv.prvErr.errCode));
         MAACCPRINT((prntBuf, "SM Confirm Rx'd"));
         break;
      case MA_ACC_EVT_SSMGMT_IND:
         MAACCPRINT((prntBuf, "InvokeId %d, LinkedId %d, OprCode %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.lnkId.octet,
                     msg->s.operEv.oprCode));
         MAACCPRINT((prntBuf, "SS   Indication Rx'd"));
         break;

      case MA_ACC_EVT_SSMGMT_CFM:
         MAACCPRINT((prntBuf, "InvokeId %d, UsrError %d PrvError %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.usrErr.errCode,
                     msg->s.operEv.prvErr.errCode));
         MAACCPRINT((prntBuf, "SS Confirm Rx'd"));
         break;

      case MA_ACC_EVT_SUBMGMT_IND:
         MAACCPRINT((prntBuf, "InvokeId %d, LinkedId %d, OprCode %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.lnkId.octet,
                     msg->s.operEv.oprCode));
         MAACCPRINT((prntBuf, "Subscriber Management  Management  Indication Rx'd"));
         break;

      case MA_ACC_EVT_SUBMGMT_CFM:
         MAACCPRINT((prntBuf, "InvokeId %d, UsrError %d PrvError %d\n",
                     msg->s.operEv.invId.octet, msg->s.operEv.usrErr.errCode,
                     msg->s.operEv.prvErr.errCode));
         MAACCPRINT((prntBuf, "Subscriber Management  Confirm Rx'd"));
         break;

      case MA_ACC_EVT_BND_CFM:
         MAACCPRINT((prntBuf, "SuId %d\n", msg->suId));
         MAACCPRINT((prntBuf, "Bind Confirm Rx'd"));
         break;

   }
   MAACCPRINT((prntBuf, "\n\n"));

   RETVALUE(ROK);
} /* maAccPrntMsgQ */



/*
*
*       Fun:   maAccAllocDlgId
*
*       Desc:  Allocates the next available dialogma Id.
*
*       Ret:   ROK     - If can allocate a free dialogue Id
*              RFAILED - if can't
*
*       Notes: None
*
*       File:  ma_acc1.c
*
*/
#ifdef ANSI
PUBLIC S16 maAccAllocDlgId
(
StDlgId      *dlgId
)
#else
PUBLIC S16 maAccAllocDlgId(dlgId)
StDlgId      *dlgId;
#endif
{
   TRC2(maAccAllocDlgId)

    if (++maAccCb.dlgIdPool == 0)
    {
       maAccCb.dlgIdPool = 1;
    }
 
   *dlgId = maAccCb.dlgIdPool;

   RETVALUE(ROK);
} /* End of maAccAllocDlgId */



/*
*
*       Fun:   maAccWaitTmr
*
*       Desc:  Wait for the given number of timer ticks
*
*       Ret:   ROK     - wait is over
*              RFAILED - wait isn't over
*
*       Notes: None
*
*       File:  ma_acc1.c
*
*/
#ifdef ANSI
PUBLIC S16 maAccWaitTmr
(
Ticks     wait
)
#else
PUBLIC S16 maAccWaitTmr(wait)
Ticks     wait;
#endif
{
   Txt        prntBuf[MA_PRNTBUF_SIZE];
   Ticks      crntTime = 0;

   TRC2(maAccWaitTmr)


   (Void)SGetSysTime(&crntTime);

   if (maAccCb.crntTime == 0)
   {
      maAccCb.crntTime = crntTime;
      SPrint("\n\nmaAccWaitTmr: Waiting for the MAP Guard Timer to Expire\n");
   }
   else
   {
      if (crntTime >= (maAccCb.crntTime + wait))
      {
         #ifndef ALIGN_64BIT

         sprintf(prntBuf, "\nRej Tmr: StartTime %ld,    CrntTime %ld\n",\
                                      maAccCb.crntTime, crntTime);

         #else

         sprintf(prntBuf, "\nRej Tmr: StartTime %d,    CrntTime %d\n",\
                                      maAccCb.crntTime, crntTime);

          #endif /* ALIGN_64BIT */
 
         SPrint(prntBuf);
         maAccCb.crntTime = 0;

         RETVALUE(ROK);
      }
   }

   RETVALUE(RFAILED);
} /* maAccWaitTmr */



#ifdef MA_SEG

/*                                     
*
*       Fun:   maAccSegGenCfg
*
*       Desc:  MAP General Configuration
*
*       Ret:   ROK - ok
*
*       Notes: None
*
*       File:  ma_acc1.c
*
*/
#ifdef ANSI
PUBLIC  S16 maAccSegGenCfg
(
Ent     ent,             /* entity id */
Inst    inst,            /* instance id */
U16     nmbSap,          /* Number of SAPS */
U16     nmbDlg,          /* Number of dialogues  - system wide */
U16     nmbOpr,          /* Number of Operations - system wide */
Tra

⌨️ 快捷键说明

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