Rev 1319 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
#include <tracer.h>
#include <kernel/kern.h>
#include <drivers/udpip.h>
#include <unistd.h>
TASK finish_task() {
#ifdef __NEW_TRACER__
extern __volatile__ unsigned int TracerEventsPresent;
unsigned int k;
SYS_FLAGS f;
sleep(1);
tracer_init_udp(0,"192.168.118.4","192.168.118.2");
sleep(1);
tracer_create_udp_task(NULL,80);
sleep(1);
f = kern_fsave();
k = TracerEventsPresent;
kern_frestore(f);
while(k > 0) {
f = kern_fsave();
printf_xy(0,5,WHITE,"REM = %08d",k);
k = TracerEventsPresent;
kern_frestore(f);
}
tracer_flush_sent_events();
#endif
sys_end();
return NULL;
}
extern void *StartTracerBuffer; // Buffer Start 0
extern void *EndTracerBuffer; // Buffer End 4
extern void *LastBeforeEndTracerBuffer; //8
extern void *CurrentTracerBuffer; //The Actual Write Point For The Next Event 12
extern void *FirstTracerBuffer; //The First Valid Event 16
extern int TracerActive; //20
extern int TracerOutputType; //24
extern unsigned long long TracerEventsRecorded; //28
extern unsigned int TracerEventsPresent; //36
int main() {
NRT_TASK_MODEL nrt;
void *save_tracer_pointer = (void *)(40270428UL);
struct net_model m = net_base;
#ifdef __NEW_TRACER__
StartTracerBuffer = *(void **)(save_tracer_pointer); // Buffer Start 0
EndTracerBuffer = *(void **)(save_tracer_pointer+4); // Buffer End 4
LastBeforeEndTracerBuffer = *(void **)(save_tracer_pointer+8); //8
CurrentTracerBuffer = *(void **)(save_tracer_pointer+12); //The Actual Write Point For The Next Event 12
FirstTracerBuffer = *(void **)(save_tracer_pointer+16); //The First Valid Event 16
TracerActive = 0;
TracerEventsRecorded = *(unsigned long long *)(save_tracer_pointer+28); //28
TracerEventsPresent = *(unsigned int *)(save_tracer_pointer+36); //36
cprintf("Total Events Present %d\n",TracerEventsPresent);
net_setudpip(m, "192.168.118.4", "255.255.255.255");
if (net_init(&m) != 1) {
return -1;
}
nrt_task_default_model(nrt);
task_activate(task_create("Finish",finish_task,&nrt,NULL));
#else
sys_end();
#endif
return 0;
}