Lines Matching refs:exc

52 sm_etype_printf(exc, stream)  in sm_etype_printf()  argument
53 SM_EXC_T *exc; in sm_etype_printf()
56 size_t n = strlen(exc->exc_type->etype_argformat);
60 for (p = exc->exc_type->etype_printcontext; *p != '\0'; ++p)
95 switch (exc->exc_type->etype_argformat[i])
99 s = exc->exc_argv[i].v_str;
110 exc->exc_argv[i].v_int);
118 exc->exc_argv[i].v_long);
121 sm_exc_write(exc->exc_argv[i].v_exc,
151 SM_EXC_T *exc,
155 sm_etype_os_print(exc, stream) in sm_etype_os_print() argument
156 SM_EXC_T *exc; in sm_etype_os_print()
159 int err = exc->exc_argv[0].v_int;
160 char *syscall = exc->exc_argv[1].v_str;
161 char *sysargs = exc->exc_argv[2].v_str;
245 SM_EXC_T * volatile exc = NULL; local
260 exc = sm_malloc_x(sizeof(SM_EXC_T));
261 exc->sm_magic = SmExcMagic;
262 exc->exc_refcount = 1;
263 exc->exc_type = etype;
264 exc->exc_argv = NULL;
274 exc->exc_argv = argv;
332 if (exc == NULL || argv == NULL)
384 sm_free(exc);
389 return exc;
414 SM_EXC_T *exc; local
418 exc = sm_exc_vnew_x(etype, ap);
420 return exc;
434 sm_exc_free(exc) in sm_exc_free() argument
435 SM_EXC_T *exc; in sm_exc_free()
437 if (exc == NULL)
439 SM_REQUIRE(exc->sm_magic == SmExcMagic);
440 if (exc->exc_refcount == 0)
442 if (--exc->exc_refcount == 0)
446 for (i = 0; (c = exc->exc_type->etype_argformat[i]) != '\0';
453 sm_free(exc->exc_argv[i].v_str);
456 sm_exc_free(exc->exc_argv[i].v_exc);
460 exc->sm_magic = NULL;
461 sm_free(exc->exc_argv);
462 sm_free(exc);
478 sm_exc_match(exc, pattern) in sm_exc_match() argument
479 SM_EXC_T *exc; in sm_exc_match()
482 if (exc == NULL)
484 SM_REQUIRE(exc->sm_magic == SmExcMagic);
485 return sm_match(exc->exc_type->etype_category, pattern);
500 sm_exc_write(exc, stream) in sm_exc_write() argument
501 SM_EXC_T *exc; in sm_exc_write()
504 SM_REQUIRE_ISA(exc, SmExcMagic);
505 exc->exc_type->etype_print(exc, stream);
520 sm_exc_print(exc, stream) in sm_exc_print() argument
521 SM_EXC_T *exc; in sm_exc_print()
524 SM_REQUIRE_ISA(exc, SmExcMagic);
525 exc->exc_type->etype_print(exc, stream);
573 sm_exc_raise_x(exc) in sm_exc_raise_x() argument
574 SM_EXC_T *exc; in sm_exc_raise_x()
576 SM_REQUIRE_ISA(exc, SmExcMagic);
598 (*h)(exc);
610 sm_exc_print(exc, smioerr);
615 SmExcHandler->eh_value = exc;
617 sm_exc_free(exc);
644 SM_EXC_T *exc; local
648 exc = sm_exc_vnew_x(etype, ap);
650 sm_exc_raise_x(exc);