📄 mk_user.c
字号:
/*+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 + -