static void raise(enum Exception exn, int error) { value args[2]; args[0] = Val_int((int) exn); args[1] = Val_int(error); caml_raise_with_args(*caml_named_value("FFmpeg exception"), 2, args); }
static void raise_inotify_error(char const *msg) { static value *inotify_err = NULL; value args[2]; if (!inotify_err) inotify_err = caml_named_value("inotify.error"); args[0] = caml_copy_string(msg); args[1] = Val_int(errno); caml_raise_with_args(*inotify_err, 2, args); }
void stub_raise_if(int condition) { CAMLparam0 (); CAMLlocalN(error_parameters, 2); if(condition) { int error_to_raise = EUNKNOWN; int current_errno = zmq_errno(); int i; for (i = 0; i < EUNKNOWN; i++) { if (current_errno == stub_error_table[i]) { error_to_raise = i; break; } } error_parameters[0] = Val_int(error_to_raise); error_parameters[1] = caml_copy_string(zmq_strerror(current_errno)); caml_raise_with_args( *ZMQ_EXCEPTION_NAME, 2, error_parameters); } CAMLreturn0; }