xref: /reactos/sdk/lib/crt/misc/amsg.c (revision 5100859e)
1 /*
2  * COPYRIGHT:   See COPYING in the top level directory
3  * PROJECT:     ReactOS system libraries
4  * FILE:        lib/sdk/crt/misc/amsg.c
5  * PURPOSE:     Print runtime error messages
6  * PROGRAMER:   Ariadne
7  * UPDATE HISTORY:
8  *              28/12/98: Created
9  */
10 
11 #include <precomp.h>
12 
13 static char *__rt_err_msg[] =
14 {
15    "stack overflow",				/* _RT_STACK */
16    "null pointer assignment",			/* _RT_NULLPTR */
17    "floating point not loaded",			/* _RT_FLOAT */
18    "integer divide by 0",			/* _RT_INTDIV */
19    "not enough space for arguments",		/* _RT_SPACEARG */
20    "not enough space for environment",		/* _RT_SPACEENV */
21    "abnormal program termination",		/* _RT_ABORT */
22    "not enough space for thread data",		/* _RT_THREAD */
23    "unexpected multithread lock error",		/* _RT_LOCK */
24    "unexpected heap error",			/* _RT_HEAP */
25    "unable to open console device",		/* _RT_OPENCON */
26    "non-continuable exception",			/* _RT_NONCONT */
27    "invalid exception disposition",		/* _RT_INVALDISP */
28    "not enough space for _onexit/atexit table",	/* _RT_ONEXIT */
29    "pure virtual function call",		/* _RT_PUREVIRT */
30    "not enough space for stdio initialization",	/* _RT_STDIOINIT */
31    "not enough space for lowio initialization",	/* _RT_LOWIOINIT */
32 };
33 
34 
35 /*
36  * @implemented
37  */
38 int _aexit_rtn(int exitcode)
39 {
40     _exit(exitcode);
41     return 0;
42 }
43 
44 /*
45  * @implemented
46  */
47 void _amsg_exit(int errnum)
48 {
49     if ((errnum >=0) && (errnum < sizeof(__rt_err_msg)/sizeof(__rt_err_msg[0])))
50         fprintf(stderr, "runtime error - %s\n", __rt_err_msg[errnum]);
51     else
52         fprintf(stderr, "runtime error - %d\n", errnum);
53     _exit(-1);
54 }
55 
56