mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.2 KiB
83 lines
2.2 KiB
#ifdef MIPS_C
|
|
static char * message[] = {
|
|
#define ERRDAT(name, mes) mes,
|
|
};
|
|
#else
|
|
#ifdef WIN32
|
|
#define ERRDAT(name, mes) static char S##name[] = mes;
|
|
#else
|
|
#define ERRDAT(name, mes) static char _based(_segname("_CODE")) S##name[] = mes;
|
|
#endif
|
|
#include "errors.h"
|
|
#undef ERRDAT
|
|
|
|
#ifdef WIN32
|
|
static char * message[] = {
|
|
#else
|
|
static char _based(_segname("_CODE")) *_based(_segname("_CODE")) message[] = {
|
|
#endif
|
|
#define ERRDAT(name, mes) S##name,
|
|
#include "errors.h"
|
|
#undef ERRDAT
|
|
};
|
|
#endif
|
|
|
|
ushort PASCAL GetErrorText (PHTM phTM, EESTATUS Status, PEEHSTR phError)
|
|
{
|
|
UINT len;
|
|
ushort err_num;
|
|
ushort buflen;
|
|
char FAR *pBuf;
|
|
char Tempbuf[4];
|
|
int cnt;
|
|
|
|
if ((*phTM == 0) || (Status != EEGENERAL)) {
|
|
*phError = 0;
|
|
return (EECATASTROPHIC);
|
|
}
|
|
if ((*phError = MHMemAllocate (ERRSTRMAX)) == 0) {
|
|
return (EENOMEMORY);
|
|
}
|
|
else {
|
|
buflen = ERRSTRMAX - 1;
|
|
pBuf = MHMemLock (*phError);
|
|
_fmemset (pBuf, 0, buflen);
|
|
DASSERT( pExState == NULL );
|
|
pExState = MHMemLock (*phTM);
|
|
if ((err_num = pExState->err_num) != 0) {
|
|
if (err_num >= ERR_MAX) {
|
|
DASSERT (FALSE);
|
|
}
|
|
else {
|
|
//DASSERT (message[err_num].num == err_num);
|
|
len = _fstrlen (message[err_num]);
|
|
len = (UINT) min (len, (UINT)buflen);
|
|
_itoa (err_num, Tempbuf, 10);
|
|
cnt = 7 - (short)_fstrlen (Tempbuf);
|
|
#if defined(C_ONLY)
|
|
_fmemcpy (pBuf, "CAN000", cnt);
|
|
#else
|
|
_fmemcpy (pBuf, "CXX000", cnt);
|
|
#endif
|
|
pBuf += cnt;
|
|
_fmemcpy (pBuf, Tempbuf, _fstrlen (Tempbuf));
|
|
pBuf +=_fstrlen(Tempbuf);
|
|
_fmemcpy (pBuf, ": Error: ", 10);
|
|
pBuf += 9;
|
|
_fstrncpy (pBuf, message[err_num], len);
|
|
*(pBuf + len) = 0;
|
|
}
|
|
} else {
|
|
#if defined(C_ONLY)
|
|
_fstrcpy (pBuf, "CAN000");
|
|
#else
|
|
_fstrcpy (pBuf, "CXX000");
|
|
#endif
|
|
_fstrcat (pBuf, " Error: Unknown error");
|
|
}
|
|
MHMemUnLock (*phError);
|
|
MHMemUnLock (*phTM);
|
|
pExState = NULL;
|
|
return (EENOERROR);
|
|
}
|
|
}
|