static void setup_read(msg_t *msg) { CEX_finalize_write_msg(msg); int len = CEX_msg_tell(msg); MSG_PTR(msg) = MSG_START(msg); MSG_END(msg) = MSG_PTR(msg) + len; MSG_MODE(msg) = MSG_R; }
void sml_debug(const char *format, ...) { va_list args; FILE *out; if (verbose_level < MSG_DEBUG) return; va_start(args, format); out = MSG_START(MSG_DEBUG); vfprintf(out, format, args); MSG_END(out, MSG_DEBUG); va_end(args); }
static void print_error(enum sml_msg_level level, int err, const char *format, va_list args) { FILE *out; if (verbose_level < level) return; if (err != 0) { print_syserror(level, err, format, args); return; } out = MSG_START(level); vfprintf(out, format, args); fputs("\n", out); fflush(out); MSG_END(out, level); }
static void print_syserror(enum sml_msg_level level, int err, const char *format, va_list args) { FILE *out; if (verbose_level < level) return; out = MSG_START(level); vfprintf(out, format, args); if (err > 0) fprintf(out, "%s\n", strerror(err)); else if (err == 0) fprintf(out, ": Success\n"); else fprintf(out, ": Failed (%d)\n", err); fflush(out); MSG_END(out, level); }