e576bb | 2002-10-11 | Martin Nilsson | | |
5e05fb | 2005-01-21 | Martin Stjernholm | | || $Id: errors.h,v 1.32 2005/01/21 14:32:30 mast Exp $
|
e576bb | 2002-10-11 | Martin Nilsson | | */
|
1b10db | 2002-10-08 | Martin Nilsson | |
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | #ifdef ERR_DECLARE
|
df019f | 2004-04-18 | Martin Stjernholm | | #define DECLARE_ERROR(NAME, SCNAME, INHERIT, DECL) \
|
fa8c69 | 2000-11-30 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT struct program *PIKE_CONCAT(NAME,_error_program); \
|
a9e569 | 2000-08-15 | Henrik Grubbström (Grubba) | | ptrdiff_t PIKE_CONCAT(NAME,_error_offset);
|
928b78 | 2000-06-05 | Henrik Grubbström (Grubba) | |
#define ERR_VAR(TYPE,CTYPE,RUNTYPE,NAME) TYPE NAME ;
#endif
#ifdef ERR_EXT_DECLARE
|
df019f | 2004-04-18 | Martin Stjernholm | | #define DECLARE_ERROR(NAME, SCNAME, INHERIT, DECL) \
|
f31ced | 2000-12-16 | Marcus Comstedt | | PMOD_EXPORT extern struct program *PIKE_CONCAT(NAME,_error_program); \
|
e0755c | 2000-08-15 | Henrik Grubbström (Grubba) | | extern ptrdiff_t PIKE_CONCAT(NAME,_error_offset); \
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | struct PIKE_CONCAT(NAME,_error_struct) { \
DECL \
};
#define ERR_VAR(TYPE,CTYPE,RUNTYPE,NAME) TYPE NAME ;
|
65a7eb | 2001-08-16 | Henrik Grubbström (Grubba) | |
#define EMPTY ERR_VAR(INT_TYPE, int, PIKE_T_INT, ignored__)
|
928b78 | 2000-06-05 | Henrik Grubbström (Grubba) | | #endif /* ERR_EXT_DECLARE */
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | |
#ifdef ERR_SETUP
|
df019f | 2004-04-18 | Martin Stjernholm | | #define DECLARE_ERROR(NAME, SCNAME, INHERIT, DECL) do{\
|
e0755c | 2000-08-15 | Henrik Grubbström (Grubba) | | ptrdiff_t current_offset=0; \
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | struct PIKE_CONCAT(NAME,_error_struct) foo; \
start_new_program(); \
INHERIT \
|
e0755c | 2000-08-15 | Henrik Grubbström (Grubba) | | current_offset = PIKE_CONCAT(NAME,_error_offset) = \
ADD_STORAGE(struct PIKE_CONCAT(NAME,_error_struct));\
|
df019f | 2004-04-18 | Martin Stjernholm | | add_string_constant("error_type", #SCNAME, 0); \
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | add_integer_constant("is_" #NAME "_error",1,0); \
DECL \
PIKE_CONCAT(NAME,_error_program)=end_program(); \
|
df019f | 2004-04-18 | Martin Stjernholm | | add_program_constant( #SCNAME "Error",PIKE_CONCAT(NAME,_error_program),0); \
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | }while(0);
#define ERR_VAR(TYPE,CTYPE,RUNTYPE,NAME2) \
|
892b8a | 2005-01-20 | Martin Nilsson | | MAP_VARIABLE(#NAME2, CTYPE, 0, \
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | current_offset + (((char *)&(foo.NAME2))-((char *)&foo)), RUNTYPE);
|
f93ed4 | 2001-08-20 | Martin Stjernholm | | #define EMPTY
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | #define ERR_INHERIT(NAME) \
low_inherit(PIKE_CONCAT(NAME,_error_program),0,0,0,0,0);
#define ERR_FUNC(NAME,FUNC,TYPE,FLAGS) \
ADD_FUNCTION(NAME,FUNC,TYPE,FLAGS);
#endif
#ifdef ERR_CLEANUP
|
df019f | 2004-04-18 | Martin Stjernholm | | #define DECLARE_ERROR(NAME, SCNAME, INHERIT, DECL) \
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | if(PIKE_CONCAT(NAME,_error_program)) {\
free_program(PIKE_CONCAT(NAME,_error_program)); \
PIKE_CONCAT(NAME,_error_program)=0;\
}
#endif
#ifndef ERR_INHERIT
#define ERR_INHERIT(NAME)
#endif
#ifndef ERR_VAR
#define ERR_VAR(TYPE,CTYPE,RUNTYPE,NAME)
#endif
#ifndef ERR_FUNC
#define ERR_FUNC(NAME,FUNC,TYPE,FLAGS)
#endif
|
df019f | 2004-04-18 | Martin Stjernholm | | DECLARE_ERROR(generic, Generic, EMPTY ,
|
892b8a | 2005-01-20 | Martin Nilsson | | ERR_VAR(struct pike_string *,tStr,PIKE_T_STRING,error_message)
ERR_VAR(struct array *,tArray,PIKE_T_ARRAY,error_backtrace)
|
5e05fb | 2005-01-21 | Martin Stjernholm | | ERR_FUNC("cast",f_error_cast,tFunc(tString,tArray),ID_STATIC)
ERR_FUNC("`[]",f_error_index,tFunc(tInt01,tMixed),ID_STATIC)
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | ERR_FUNC("describe",f_error_describe,tFunc(tVoid,tString),0)
|
e86c8c | 2003-11-14 | Martin Stjernholm | | ERR_FUNC("message", f_error_message, tFunc(tVoid,tString), 0)
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | ERR_FUNC("backtrace",f_error_backtrace,tFunc(tVoid,tArr(tMixed)),0)
|
5e05fb | 2005-01-21 | Martin Stjernholm | | ERR_FUNC("_sprintf", f_error__sprintf,
tFunc(tOr(tInt,tVoid) tOr(tMapping,tVoid),tString), ID_STATIC)
|
1dc55b | 2004-12-17 | Martin Stjernholm | | ERR_FUNC("create",f_error_create,tFunc(tStr tOr(tVoid,tArr(tMixed)),tVoid),ID_STATIC)
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | )
|
60d987 | 2000-03-23 | Fredrik Hübinette (Hubbe) | | #define GENERIC_ERROR_THIS ((struct generic_error_struct *)CURRENT_STORAGE)
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | |
|
df019f | 2004-04-18 | Martin Stjernholm | | DECLARE_ERROR(index, Index,
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | ERR_INHERIT(generic),
|
892b8a | 2005-01-20 | Martin Nilsson | | ERR_VAR(struct svalue, tMix, PIKE_T_MIXED, value)
ERR_VAR(struct svalue, tMix, PIKE_T_MIXED, index)
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | )
|
df019f | 2004-04-18 | Martin Stjernholm | | DECLARE_ERROR(bad_argument, BadArgument,
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | ERR_INHERIT(generic),
|
892b8a | 2005-01-20 | Martin Nilsson | | ERR_VAR(INT_TYPE, tInt, PIKE_T_INT, which_argument)
ERR_VAR(struct pike_string *, tStr,PIKE_T_STRING,expected_type)
ERR_VAR(struct svalue, tMix, PIKE_T_MIXED, got_value)
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | )
|
df019f | 2004-04-18 | Martin Stjernholm | | DECLARE_ERROR(math, Math,
|
d0ed26 | 1999-03-20 | Fredrik Hübinette (Hubbe) | | ERR_INHERIT(generic),
|
892b8a | 2005-01-20 | Martin Nilsson | | ERR_VAR(struct svalue, tMix, PIKE_T_MIXED, number)
|
d0ed26 | 1999-03-20 | Fredrik Hübinette (Hubbe) | | )
|
df019f | 2004-04-18 | Martin Stjernholm | | DECLARE_ERROR(resource, Resource,
|
d0ed26 | 1999-03-20 | Fredrik Hübinette (Hubbe) | | ERR_INHERIT(generic),
|
892b8a | 2005-01-20 | Martin Nilsson | | ERR_VAR(struct pike_string *, tStr, PIKE_T_STRING,resource_type)
ERR_VAR(INT_TYPE, tInt, PIKE_T_INT, howmuch)
|
d0ed26 | 1999-03-20 | Fredrik Hübinette (Hubbe) | | )
|
df019f | 2004-04-18 | Martin Stjernholm | | DECLARE_ERROR(permission, Permission,
|
64dc4c | 1999-04-17 | Henrik Grubbström (Grubba) | | ERR_INHERIT(generic),
|
892b8a | 2005-01-20 | Martin Nilsson | | ERR_VAR(struct pike_string *, tStr, PIKE_T_STRING,permission_type)
|
64dc4c | 1999-04-17 | Henrik Grubbström (Grubba) | | )
|
010dc6 | 2001-08-16 | Martin Stjernholm | |
|
df019f | 2004-04-18 | Martin Stjernholm | | DECLARE_ERROR(cpp, Cpp, ERR_INHERIT(generic), EMPTY)
|
010dc6 | 2001-08-16 | Martin Stjernholm | |
|
df019f | 2004-04-18 | Martin Stjernholm | | DECLARE_ERROR(compilation, Compilation, ERR_INHERIT(generic), EMPTY)
|
32ffa1 | 2001-08-16 | Martin Stjernholm | |
|
df019f | 2004-04-18 | Martin Stjernholm | | DECLARE_ERROR(master_load, MasterLoad, ERR_INHERIT (generic), EMPTY)
|
667ec2 | 2003-07-22 | Martin Stjernholm | |
|
df019f | 2004-04-18 | Martin Stjernholm | | DECLARE_ERROR (module_load, ModuleLoad,
|
20b522 | 2004-03-22 | Martin Stjernholm | | ERR_INHERIT (generic),
|
892b8a | 2005-01-20 | Martin Nilsson | | ERR_VAR (struct pike_string *, tStr, PIKE_T_STRING, path)
ERR_VAR (struct pike_string *, tStr, PIKE_T_STRING, reason)
|
20b522 | 2004-03-22 | Martin Stjernholm | | )
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | #undef DECLARE_ERROR
#undef ERR_INHERIT
#undef ERR_VAR
|
f93ed4 | 2001-08-20 | Martin Stjernholm | | #undef EMPTY
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | #undef ERR_FUNC
#undef ERR_DECLARE
|
928b78 | 2000-06-05 | Henrik Grubbström (Grubba) | | #undef ERR_EXT_DECLARE
|
81299f | 1999-03-19 | Fredrik Hübinette (Hubbe) | | #undef ERR_SETUP
#undef ERR_CLEANUP
|