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

📄 error.c

📁 实现vxworks下的1553b通讯功能
💻 C
字号:
#include <stdlib.h>
#include <string.h>
#include "proto.h"
/*
Get_Error_String_MCH
               
Description: Accepts the error returns from other Software Tools.
This routine returns a char string containing a corresponding
error message.

Input parameters:  errorcode   The error code returned from a function call
		   errorlen    
Output parameters: errorstring	A message string that contains a
                              	corresponding error message. In case of bad
                               	input this routine returns a string denoting
                               	that.

Return values:  0		Always

Use this routine as per the following example:
#define ERRORLEN 255
   char ErrorStr[ERRORLEN];
   Get_Error_String_MCH(errcode, ERRORLEN, ErrorStr);
   printf("error is: %s", ErrorStr);
              
*/

int borland_dll Get_Error_String_MCH(int errcode, int errlen, char *errstring)
{
char *localerr;
int i;


	localerr = Print_Error(errcode);
	/* do this so that there will be null termination */
	for (i=0; i<errlen; i++)
		errstring[i] = '\0';

	strncpy(errstring, localerr, errlen-1);
	return 0;
}

/*Obsolete. Retained for backward compatibility.*/
borland_dll char * Print_Error (int errorcode)
{
   
   if ((int) errorcode >= 0)
      return ("Function Succeeded");

   switch (errorcode)
   {
	case ebadid: return("Undefined message id used as input [ebadid]\n");
	case einval: return("Illegal value used as input [einval]\n"); 
	case emode: return("Mode specific command called in the wrong mode [emode]\n");
	case ebadchan: return("Tried to set channel to illegal value [ebadchan]\n");
	case ememerr: return("Memory test failed [emerr]\n");
	case enomsg: return("No new messages available [enomsg]\n");
	case incompatible_parameters: return("Function parameters are not consistent [incompatible_parameters]\n");	
	case etimeout: return("Reset in Set_Mode timed out [etimeout]\n");
	case ert2rtcmd: return ("Error in format of RT to RT command [ertrtcmd]\n");
	case noirqset: return ("No interrupt allocated [noirqset]\n");
case eopenkernel: return ("Cannot open kernel device; check ExcConfig settings [eopenkernel]\n");
case ekernelcantmap: return ("Kernel driver cannot map memory [ekernelcantmap]\n");
case ereleventhandle: return ("Error in kernel Release_Event_Handle [ereleventhandle]\n");
case egetintcount: return ("Error in kernel Get_Interrupt_Count [egetintcount]\n");
case egetchintcount: return ("Error in kernel Get_Channel_Interrupt_Count [egetchintcount]\n");
case egetintchannels: return ("Error in kernel Get_Interrupt_Channels [egetintchannels]\n");
case ewriteiobyte: return ("Error in kernel writeIOByte [ewriteiobyte]\n");
case ereadiobyte: return("Error in kernel ReadIoByte [ereadiobyte]\n");
case egeteventhand1: return("Error in kernel Get_Event_Handle, first part [egeteventhand1]\n");
case egeteventhand2: return("Error in kernel Get_Event_Handle, second part [egeteventhand2]\n");
case eopenscmant: return("Error in OpenSCManager in StartKernelDriver [eopenscmant]\n");
case eopenservicet: return("Error in OpenService in StartKernelDriver [eopenservicet]\n");
case estartservice: return("Error in StartService in StartKernelDriver [estartservice]\n");
case eopenscmanp: return("Error in OpenSCManager in StopKernelDriver [eopenscmanp]\n");
case eopenservicep: return("Error in OpenService in StopKernelDriver [eopenservicep]\n");
case econtrolservice: return("Error in ControlService in StopKernelDriver [econtrolservice]\n");
case eunmapmem: return("Error in kernel UnMapMemory [eunmapmem]\n");
case egetirq: return("Error in Get_IRQ_Number [egetirq]\n");
case eallocresources: return("Error allocating resources. see readme for details on resource allocation problems[eallocresources]\n");
case egetramsize: return ("Error in kernel GetRamSize [egetramsize]\n");
case ekernelwriteattrib: return ("Error in kernel write attrib [ekernelwriteattrib]\n");
case ekernelreadattrib: return ("Kernel readattrib error [ekernelreadattrib]\n");
case ekernelfrontdesk: return ("Kernel frontdesk error [ekernelfrontdesk]\n");
case ekernelOscheck: return ("Kernel Oscheck error [ekernelOscheck]\n");
case ekernelfrontdeskload: return ("Kernel frontdeskload error [ekernelfrontdeskload]\n");
case ekerneliswin2000compatible: return ("Kernel iswin2000compatible error [ekerneliswin2000compatible]\n");
case ekernelbankramsize: return("Kernel bankramsize error [ekernelbankramsize]\n");
case ekernelgetcardtype: return ("Kernel getcardtype error [ekernelgetcardtype]\n");	
case emodnum: return ("Invalid module number specified [emodnum]\n");
case regnotset: return("Card not configured. Reboot after ExcConfig is run and card is in slot [regnotset]\n");
case ekernelbankphysaddr: return ("Kernel GetBankPhysAddr error [ekernelbankphysaddr]\n");
case ekernelclosedevice: return ("Kernel CloseKernelDevice error [ekernelclosedevice]\n");
case ekerneldevicenotopen: return ("Kernel error: device not open [ekerneldevicenotopen]\n");
case ekernelinitmodule: return ("Kernel intialization error [ekernelinitmodule]\n");
case ekernelbadparam: return ("Kernel error: bad input parameter [ekernelbadparam]\n");
case ekernelbadpointer: return ("Kernel error: invalid pointer to output buffer [ekernelbadpointer]\n");
case ekerneltimeout: return ("Wait for Interrupt function returned with timeout [ekerneltimeout]\n");
case ekernelnotwin2000: return ("Operating System is not Windows 2000 [ekernelnotwin2000]\n");

   	
        default: return ("No such error\n");
	}
}

⌨️ 快捷键说明

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