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

📄 mk_user.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 3 页
字号:

/*+FHDR E*/
/*
+------------------------------------------------------------------------------+
|  Functionname : xOutEnv                                                      |
|  Author       : S&P Media GmbH Germany                                       |
+------------------------------------------------------------------------------+
|                                                                              |
|  Description :                                                               |
|                 This function is called by the Cmicro Kernel, if an SDL      |
|                 signal is to be sent to the environment.                     |
|                                                                              |
|                 The user must take care for that for each possible signal    |
|                 there is an appropriate handling. If a signal was handled,   |
|                 the function should return with XMK_TRUE, otherwise XMK_FALSE|
|                                                                              |
|                 Notes:                                                       |
|                 ------                                                       |
|               1.xOutEnv is called only, and only if a signal is to be send   |
|                 to the SDL environment. In earlier Cmicro KLernel versions,  |
|                 each SDL signal was passed through xOutEnv, even internal    |
|                 signals of the system. This was confusing and does not longer|
|                 happen.                                                      |
|               2.The user has several possibilities to send signals to the    |
|                 Environment by using #EXTSIG,#ALT or #CODE, please view      |
|                 the reference manual.                                        |
|                                                                              |
|  Parameter    :  xmk_TmpSignalID        - ID of the signal (see .ifc file)   |
|                  xmk_TmpPrio            - Priority of signal                 |
|                  xmk_TmpDataLength      - Amount of bytes in signal's        |
|                                           parameters                         |
|                 *xmk_TmpDataPtr         - Pointer to signal's parameters     |
|                  xmk_TmpReceiverPID     - PID of the receiver.               |
|                                                                              |
|  Return       : Function must return with XMK_TRUE, if Signal was sent       |
|                 to the environment, otherwise with XMK_FALSE.                |
|                                                                              |
+------------------------------------------------------------------------------+
*/
/*-FHDR E*/

/*+FDEF E*/

#ifndef XNOPROTO
   /* ANSI - Style */
  xmk_OPT_INT   xOutEnv (xmk_T_SIGNAL xmk_TmpSignalID
                         #ifdef XMK_USE_SIGNAL_PRIORITIES
                          , xmk_T_PRIO xmk_TmpPrio
                         #endif
                         #ifdef XMK_USED_SIGNAL_WITH_PARAMS
                          , xmk_T_MESS_LENGTH xmk_TmpDataLength,
                           void xmk_RAM_ptr  xmk_TmpDataPtr
                         #endif
                         #ifdef XMK_USE_RECEIVER_PID_IN_SIGNAL
                          , xPID xmk_TmpReceiverPID
                         #endif
                         )

#else
   /* Kernighan-Ritchie-Style */
         xmk_OPT_INT xOutEnv  (xmk_TmpSignalID
                               #ifdef XMK_USE_SIGNAL_PRIORITIES
                               ,  xmk_TmpPrio
                               #endif
                               #ifdef XMK_USED_SIGNAL_WITH_PARAMS
                               , xmk_TmpDataLength,
                                 xmk_TmpDataPtr
                               #endif
                               #ifdef XMK_USE_RECEIVER_PID_IN_SIGNAL
                               , xmk_TmpReceiverPID
                               #endif
                               )
                               xmk_T_SIGNAL       xmk_TmpSignalID;
                               #ifdef XMK_USE_SIGNAL_PRIORITIES
                                 xmk_T_PRIO         xmk_TmpPrio;
                               #endif
                               #ifdef XMK_USED_SIGNAL_WITH_PARAMS
                                 xmk_T_MESS_LENGTH  xmk_TmpDataLength;
                                 void xmk_RAM_ptr  xmk_TmpDataPtr;
                               #endif
                               #ifdef XMK_USE_RECEIVER_PID_IN_SIGNAL
                                 xPID               xmk_TmpReceiverPID;
                               #endif
#endif

/*-FDEF E*/
{
  xmk_OPT_INT xmk_TmpResult = XMK_FALSE;

  #ifdef XMK_ADD_PRINTF_USER
    XMK_FUNCTION("xOutEnv");
  #endif

  #ifdef XMK_ADD_PRINTF_ADDITIONAL
    PRINTF (("signal_id = %d\n", xmk_TmpSignalID));
    #ifdef XMK_USE_SIGNAL_PRIORITIES
      PRINTF (("prio      = %d\n", xmk_TmpPrio));
    #endif

    #ifdef XMK_USED_SIGNAL_WITH_PARAMS
      PRINTF (("data_len  = %d\n", xmk_TmpDataLength));
    #endif
  #endif /* ... XMK_ADD_PRINTF_USER */

  /*
  ** P L E A S E _ M O D I F Y _ T H E _ F O L L O W I N G _ C O D E
  ** P L E A S E _ M O D I F Y _ T H E _ F O L L O W I N G _ C O D E
  ** P L E A S E _ M O D I F Y _ T H E _ F O L L O W I N G _ C O D E
  */

  /*
  ** Please insert appropriate code here to send
  ** signals to the environment ...
  */
  switch (xmk_TmpSignalID)
  {
     case SDL_Signal1 :
        /* ........................................... */
        /* IMPORTANT NOTE                              */
        /* ===============                             */
        /* The parameters of the signal to be sent to  */
        /* the environment are TO BE COPIED !          */
        /* Do not use the pointer xmk_TmpDataPtr to transfer   */
        /* data, because the memory block, where it    */
        /* points to, is undefined after returning     */
        /* from xOutEnv () ! See generated Code and    */
        /* mk_outp for more details.                   */
        /* Include the generated file <systemname>.ifc */
        /* ........................................... */
        xmk_TmpResult = XMK_TRUE; /* to tell the caller that */
                       /* signal is consumed      */
        break ;


     case SDL_Signal2 :
        /* ........................................... */
        /* ........................................... */
        /* ........................................... */
        xmk_TmpResult = XMK_TRUE; /* to tell the caller that */
                       /* signal is consumed      */
        break ;

     default :
        /* Please do not modify the following, because */
        /* it is used for error checking.              */
        xmk_TmpResult = XMK_FALSE;
        break ;
  }

  /*
  ** P L E A S E _ M O D I F Y _ T H E _ P R E V I O U S _ C O D E
  ** P L E A S E _ M O D I F Y _ T H E _ P R E V I O U S _ C O D E
  ** P L E A S E _ M O D I F Y _ T H E _ P R E V I O U S _ C O D E
  */


  #ifdef XMK_USE_SIGNAL_PRIORITIES
    XMK_SUPPRESS(xmk_TmpPrio);
  #endif

  #ifdef XMK_USED_SIGNAL_WITH_PARAMS
    XMK_SUPPRESS(xmk_TmpDataLength);
    XMK_SUPPRESS(xmk_TmpDataPtr);
  #endif

  #ifdef XMK_USE_RECEIVER_PID_IN_SIGNAL
    XMK_SUPPRESS(xmk_TmpReceiverPID);
  #endif

  #ifdef XMK_ADD_PRINTF_USER
    XMK_TRACE_EXIT("xOutEnv");
  #endif

  return (xmk_TmpResult);

} /* END OF FUNCTION */

#endif /* ... XMK_USE_xOutEnv */

#endif /* ... XMK_NO_GENERATED_ENV */


#ifdef XMK_NO_GENERATED_ENV

#ifdef XMK_USE_xCloseEnv

/*+FHDR E*/
/*
+------------------------------------------------------------------------------+
|  Functionname : xCloseEnv                                                    |
|  Author       : S&P Media GmbH Germany                                       |
+------------------------------------------------------------------------------+
|                                                                              |
|  Description :                                                               |
|  This function is called by the Cmicro Kernel after termination.             |
|  It is not that useful in a Cmicro controler application, but may be so in   |
|  a simulation with the Cmicro Package.                                       |
|                                                                              |
|  Parameter    : -                                                            |
|                                                                              |
|  Return       : -                                                            |
|                                                                              |
+------------------------------------------------------------------------------+
*/
/*-FHDR E*/

/*+FDEF E*/

#ifndef XNOPROTO
   /* ANSI - Style */
   void xCloseEnv (void)
#else
   /* Kernighan-Ritchie-Style */
   void xCloseEnv ()
#endif

/*-FDEF E*/
{

  #ifdef XMK_ADD_PRINTF_USER
    XMK_FUNCTION("xCloseEnv");
  #endif

  /*
  ** P L E A S E _ M O D I F Y _ T H E _ F O L L O W I N G _ C O D E 
  ** P L E A S E _ M O D I F Y _ T H E _ F O L L O W I N G _ C O D E 
  ** P L E A S E _ M O D I F Y _ T H E _ F O L L O W I N G _ C O D E 
  */

      /* ........................................... */
      /* ... Close all interfaces+the environment... */
      /* ... here .............................. ... */
      /* ........................................... */

  xCloseEnv_is_not_filled_yet = 0;

  /*
  ** P L E A S E _ M O D I F Y _ T H E _ P R E V I O U S _ C O D E
  ** P L E A S E _ M O D I F Y _ T H E _ P R E V I O U S _ C O D E
  ** P L E A S E _ M O D I F Y _ T H E _ P R E V I O U S _ C O D E
  */

  #ifdef XMK_ADD_PRINTF_USER
    XMK_TRACE_EXIT("xCloseEnv");
  #endif

} /* END OF FUNCTION */

#endif /* ... XMK_USE_xCloseEnv */

#endif /* ... XMK_NO_GENERATED_ENV */


#if defined(XECSOP)

/*+FHDR E*/
/*
+------------------------------------------------------------------------------+
|  Functionname : xSDLOpError                                                  |
|  Author       : S&P Media GmbH Germany                                       |
+------------------------------------------------------------------------------+
|                                                                              |
|  Description :                                                               |
|  This is a function which is to filled up by the user. The function is an    |
|  central error handling function for ADTs. It is compiled only if XECSOP     |
|  was defined in ml_mcf.h.                                                    |
|                                                                              |
|  Parameter    :                                                              |
|            char *xmk_String1,     - the SDL ADT operators name plus detail   |
|            char *xmk_String2,     - the reason for failure                   |
|                                                                              |
|  Return       : -                                                            |
|                                                                              |
+------------------------------------------------------------------------------+
*/
/*-FHDR E*/

/*+FDEF E*/

#ifndef XNOPROTO
   /* ANSI - Style */
   void xSDLOpError ( char * xmk_String1, char *xmk_String2 )
#else
   /* Kernighan-Ritchie-Style */
   void xSDLOpError ( xmk_String1, xmk_String2 )
   char * xmk_String1;
   char * xmk_String2;
#endif

/*-FDEF E*/
{

  #ifdef XMK_ADD_PRINTF_USER
      XMK_FUNCTION("xSDLOpError");
  #endif

  #ifdef XMK_ADD_PRINTF_ADDITIONAL
    PRINTF (("ERR:IN ADT:%s\n%s\n", xmk_String1, xmk_String2));
  #endif

  ErrorHandler (ERR_N_PREDEFINED_OPERATOR_CALL);  

  #ifdef XMK_ADD_PRINTF_USER
    XMK_TRACE_EXIT("xSDLOpError");
  #endif

} /* END OF FUNCTION */

#endif /* #if defined(XECSOP) */


#ifndef XMK_USE_NO_ERR_CHECK


/*+FHDR E*/
/*
+------------------------------------------------------------------------------+
|  Functionname : ErrorHandler                                                 |
|  Author       : S&P Media GmbH Germany                                       |
+------------------------------------------------------------------------------+
|                                                                              |
|  Description :                                                               |
|  This is a function which is to filled up by the user. The function is the   |
|  central ErrorHandler. The Cmicro Kernel, Cmicro Tester as well as the       |

⌨️ 快捷键说明

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