Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1093 pj 1
 
2
/* this example simply prints a Shark trace file */
3
 
4
#include <netinet/in.h>
5
 
6
#include <stdio.h>
7
#include "types.h"
8
#include <trace.h>
9
#include "util.h"
10
 
11
int dumpsys(trc_system_event_t *sys)
12
{
13
  /*
14
  if (sys->event==TRC_SCHEDULE) {
15
    //if (sys->prev!=65535)
16
    //  printf("%02i->%02i\n",sys->prev,sys->task);
17
    //else
18
      printf("??->%02i\n",sys->task);
19
    return 0;
20
  }
21
  */
22
  printf("%02i\n",sys->task);
23
  return 0;
24
}
25
 
26
int dumpusr(trc_user_event_t *usr)
27
{
28
  printf("%8li ",usr->n);
29
  printf("\n");
30
  return 0;
31
}
32
 
33
int dumpsem(trc_sem_event_t *sem)
34
{
35
  printf("on [%i]\n",sem->id);
36
  return 0;
37
}
38
 
39
int dumpfunc(trc_event_t *ev)
40
{
41
  static int counter=0;
42
 
43
  printf("%4i ",counter);
44
  counter++;
45
  printf("%12s ",format_time(ev->time));
46
  printf("%-10s ",event_name(ev->event));
47
 
48
  //printf("%08x\n",(unsigned)ev->sys.event);
49
  //return 0;
50
 
51
  switch(event_class(ev->event)) {
52
    case TRC_CLASS_SYSTEM: return dumpsys(&ev->x.sys);
53
    case TRC_CLASS_USER:   return dumpusr(&ev->x.usr);
54
    case TRC_CLASS_SEM:    return dumpsem(&ev->x.sem);
55
  }
56
  printf("\nEVENT %i... CLASS %i UNKNOWN!\n",ev->event,event_class(ev->event));
57
  return -1;
58
}
59
 
60
int main(int argc, char *argv[])
61
{
62
  int res;
63
 
64
  if (argc!=2) {
65
    fprintf(stderr,"missing filename!\n");
66
    return -1;
67
  }
68
 
69
  res=read_trace(argv[1],dumpfunc);
70
 
71
  //fprintf(stderr,"result=%i\n",res);
72
  //fprintf(stderr,"size=%li\n",sizeof(trc_event_t));
73
 
74
  return 0;
75
}