source: git/omalloc/omError.h @ c0180f

spielwiese
Last change on this file since c0180f was c0180f, checked in by Hans Schönemann <hannes@…>, 15 years ago
*hannes: more const git-svn-id: file:///usr/local/Singular/svn/trunk@11777 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 2.9 KB
Line 
1/*******************************************************************
2 *  File:    omError.h
3 *  Purpose: Error handling of omalloc
4 *  Author:  obachman (Olaf Bachmann)
5 *  Created: 11/99
6 *  Version: $Id: omError.h,v 1.9 2009-05-06 10:28:33 Singular Exp $
7 *******************************************************************/
8#ifndef OM_ERROR_H
9#define OM_ERROR_H
10
11#include <stdio.h>
12/*******************************************************************
13 *
14 *  error codes
15 *
16 *******************************************************************/
17enum omError_e
18{
19  omError_NoError = 0,
20  omError_Unknown,
21  omError_InternalBug,
22  omError_MemoryCorrupted,
23  omError_NullAddr,
24  omError_InvalidRangeAddr,
25  omError_FalseAddr,
26  omError_FalseAddrOrMemoryCorrupted,
27  omError_WrongSize,
28  omError_FreedAddr,
29  omError_FreedAddrOrMemoryCorrupted,
30  omError_WrongBin,
31  omError_UnknownBin,
32  omError_NotBinAddr,
33  omError_UnalignedAddr,
34  omError_NullSizeAlloc,
35  omError_ListCycleError,
36  omError_SortedListError,
37  omError_KeptAddrListCorrupted,
38  omError_FreePattern,
39  omError_BackPattern,
40  omError_FrontPattern,
41  omError_NotString,
42  omError_StickyBin,
43  omError_MaxError
44};
45typedef enum omError_e omError_t;
46
47/* global variable holding last omError */
48extern omError_t om_ErrorStatus;
49/* globale variable holding last low-level omError */
50extern omError_t om_InternalErrorStatus;
51/* returns description of error */
52const char* omError2String(omError_t error);
53/* returns error as string */
54const char* omError2Serror(omError_t error);
55extern omError_t omReportError(omError_t error, omError_t report_error, OM_FLR_DECL,
56                               const char* fmt, ...);
57
58/* this is a dummy function and used as default for om_Opts.ErrorHook */
59extern void omErrorBreak();
60
61#ifndef OM_NDEBUG
62extern void omPrintAddrInfo(FILE* fd, void* addr, const char* s);
63#else
64#define omPrintAddrInfo(fd, addr, s) fprintf(fd, "OM_NDEBUG: no addr info available\n")
65#endif
66
67/*BEGINPRIVATE*/
68
69#ifndef OM_NDEBUG
70extern int om_CallErrorHook;
71#else
72#define om_CallErrorHook 1
73#endif
74
75/*******************************************************************
76 *
77 * om_assume(x) -- a handy macro for assumptions
78 *
79 ******************************************************************/
80#ifndef HAVE_OM_ASSUME
81
82#define omAssume(x) ((void) 0)
83
84#else /* ! HAVE_OM_ASSUME */
85
86#define omAssume(x)                                             \
87do                                                              \
88{                                                               \
89  if (! (x))                                                    \
90  {                                                             \
91    omReportError(omError_InternalBug, omError_InternalBug, OM_FLR, "omAssume violation");   \
92  }                                                             \
93}                                                               \
94while (0)
95
96#endif /* HAVE_OM_ASSUME */
97/*ENDPRIVATE*/
98
99#endif /* OM_LOCAL_H */
Note: See TracBrowser for help on using the repository browser.