/* error.h */

#define error _kernel_oserror

extern error * error_message (char *format, ...);
extern error * error_lookup (char *tag, ...);
extern void    error_box (error *e);
extern void    error_exit (error *e);

#define ER(stmt) {error *e = (stmt); if (e) {return e;}}
#define ED(stmt) {error *e = (stmt); if (e) {error_box(e);}}
#define EE(stmt) {error *e = (stmt); if (e) {error_exit(e);}}
#define EG(label, stmt) {err = (stmt); if (err) goto label;}
#define EDG(label, stmt) {error *e = (stmt); if (e) {error_box(e); goto label;}}
