char *d;
d=strdup(s);
if (!d) {
- fatal_perror(message);
+ fatal_perror("%s",message);
}
return d;
}
void *r;
r=malloc(size);
if (!r) {
- fatal_perror(message);
+ fatal_perror("%s",message);
}
return r;
}
void vslilog(struct log_if *lf, int priority, const char *message, va_list ap)
{
- lf->vlog(lf->st,priority,message,ap);
+ lf->vlogfn(lf->st,priority,message,ap);
}
void slilog(struct log_if *lf, int priority, const char *message, ...)
uint32_t their_index, uint32_t msgtype,
struct buffer_if *buf, const char *logwhy)
{
- buffer_init(buf,dest->comm->min_start_pad);
+ buffer_init(buf,calculate_max_start_pad());
buf_append_uint32(buf,their_index);
buf_append_uint32(buf,our_index);
buf_append_uint32(buf,LABEL_NAK);
if (logwhy)
Message(M_INFO,"%s: %08"PRIx32"<-%08"PRIx32": %08"PRIx32":"
" %s; sending NAK\n",
- dest->comm->addr_to_string(dest->comm->st,dest),
+ comm_addr_to_string(dest),
our_index, their_index, msgtype, logwhy);
dest->comm->sendmsg(dest->comm->st, buf, dest);
}
{
add_closure(dict,"sysbuffer",buffer_apply);
}
+
+void update_max_start_pad(int32_t *our_module_global, int32_t our_instance)
+{
+ if (*our_module_global < our_instance)
+ *our_module_global=our_instance;
+}
+
+int32_t transform_max_start_pad, comm_max_start_pad;
+
+int32_t calculate_max_start_pad(void)
+{
+ return
+ site_max_start_pad +
+ transform_max_start_pad +
+ comm_max_start_pad;
+}
+
+void vslilog_part(struct log_if *lf, int priority, const char *message, va_list ap)
+{
+ char *buff=lf->buff;
+ size_t bp;
+ char *nlp;
+
+ bp=strlen(buff);
+ assert(bp < LOG_MESSAGE_BUFLEN);
+ vsnprintf(buff+bp,LOG_MESSAGE_BUFLEN-bp,message,ap);
+ buff[LOG_MESSAGE_BUFLEN-1] = '\n';
+ buff[LOG_MESSAGE_BUFLEN] = '\0';
+ /* Each line is sent separately */
+ while ((nlp=strchr(buff,'\n'))) {
+ *nlp=0;
+ slilog(lf,priority,"%s",buff);
+ memmove(buff,nlp+1,strlen(nlp+1)+1);
+ }
+}
+
+extern void slilog_part(struct log_if *lf, int priority, const char *message, ...)
+{
+ va_list ap;
+ va_start(ap,message);
+ vslilog_part(lf,priority,message,ap);
+ va_end(ap);
+}