Project

General

Profile

395 markw
#include "debug.h"
394 markw
395 markw
#include "stdarg.h"
416 markw
#include "simplefile.h"
395 markw
#include "printf/printf.h"

394 markw
struct SimpleFile * usb_file;
416 markw
int usb_location;
394 markw
void usb_log_init(struct SimpleFile * file)
{
416 markw
if (SimpleFile_OK == file_open_name("/usb.log", file) && (file_size(file)>=65536 && file_readonly(file)==0))
{
char buffer[256];
memset8(&buffer,0,256);

file_seek(file,0);

int i;
for (i=0;i!=1024;++i)
{
int byteswritten = 0;
file_write(file,(void *)buffer,sizeof(buffer),&byteswritten);
}

file_seek(file,0);
usb_location = 0;
394 markw
usb_file = file;
416 markw
}
394 markw
else
usb_file = 0;
}

416 markw
static void putcp(void* p,char c)
{
*(*((char**)p))++ = c;
}

394 markw
void usb_log(char *fmt, ...)
{
va_list va;
va_start(va,fmt);

if (usb_file)
{
416 markw
char buffer[256];
char * ptr = &buffer[0];
tfp_format(&ptr,putcp,fmt,va);
putcp(&ptr,0);
394 markw
416 markw
file_seek(usb_file,usb_location);

394 markw
int byteswritten = 0;
file_write(usb_file,(void *)buffer,strlen(buffer),&byteswritten);
416 markw
usb_location +=byteswritten;

file_write(usb_file,(void *)"\n",strlen("\n"),&byteswritten);
usb_location +=byteswritten;
394 markw
}

va_end(va);
}