Loading...
#include <linux/list.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include "intermezzo_fs.h"
#include "intermezzo_kml.h"
// dlogit -- oppsite to logit ()
// return the sbuf + size;
char *dlogit (void *tbuf, const void *sbuf, int size)
{
char *ptr = (char *)sbuf;
memcpy(tbuf, ptr, size);
ptr += size;
return ptr;
}
static spinlock_t kml_lock = SPIN_LOCK_UNLOCKED;
static char buf[1024];
char * bdup_printf (char *format, ...)
{
va_list args;
int i;
char *path;
unsigned long flags;
spin_lock_irqsave(&kml_lock, flags);
va_start(args, format);
i = vsprintf(buf, format, args); /* hopefully i < sizeof(buf) */
va_end(args);
PRESTO_ALLOC (path, char *, i + 1);
if (path == NULL)
return NULL;
strcpy (path, buf);
spin_unlock_irqrestore(&kml_lock, flags);
return path;
}
|