Subversion Repositories shark

Rev

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;

}