Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1319 | giacomo | 1 | #include <tracer.h> |
2 | |||
3 | #include <kernel/kern.h> |
||
4 | #include <unistd.h> |
||
5 | |||
6 | |||
7 | TASK finish_task() { |
||
8 | |||
9 | #ifdef __NEW_TRACER__ |
||
10 | |||
11 | extern __volatile__ unsigned int TracerEventsPresent; |
||
12 | unsigned int k; |
||
13 | |||
14 | SYS_FLAGS f; |
||
15 | |||
16 | sleep(1); |
||
17 | |||
18 | tracer_init_udp(1,"192.168.118.4","192.168.118.2"); |
||
19 | |||
20 | tracer_create_udp_task(NULL,80); |
||
21 | |||
22 | f = kern_fsave(); |
||
23 | k = TracerEventsPresent; |
||
24 | kern_frestore(f); |
||
25 | while(k > 0) { |
||
26 | f = kern_fsave(); |
||
27 | printf_xy(0,5,WHITE,"REM = %08d",k); |
||
28 | k = TracerEventsPresent; |
||
29 | kern_frestore(f); |
||
30 | } |
||
31 | |||
32 | tracer_flush_sent_events(); |
||
33 | |||
34 | #endif |
||
35 | |||
36 | sys_end(); |
||
37 | |||
38 | return NULL; |
||
39 | |||
40 | } |
||
41 | |||
42 | extern void *StartTracerBuffer; // Buffer Start 0 |
||
43 | extern void *EndTracerBuffer; // Buffer End 4 |
||
44 | extern void *LastBeforeEndTracerBuffer; //8 |
||
45 | extern void *CurrentTracerBuffer; //The Actual Write Point For The Next Event 12 |
||
46 | extern void *FirstTracerBuffer; //The First Valid Event 16 |
||
47 | |||
48 | |||
49 | extern int TracerActive; //20 |
||
50 | extern int TracerOutputType; //24 |
||
51 | extern unsigned long long TracerEventsRecorded; //28 |
||
52 | extern unsigned int TracerEventsPresent; //36 |
||
53 | |||
54 | int main() { |
||
55 | |||
56 | NRT_TASK_MODEL nrt; |
||
57 | |||
58 | void *save_tracer_pointer = (void *)(2324422UL); |
||
59 | |||
60 | #ifdef __NEW_TRACER__ |
||
61 | |||
62 | StartTracerBuffer = *(void **)(save_tracer_pointer); // Buffer Start 0 |
||
63 | EndTracerBuffer = *(void **)(save_tracer_pointer+4); // Buffer End 4 |
||
64 | LastBeforeEndTracerBuffer = *(void **)(save_tracer_pointer+8); //8 |
||
65 | CurrentTracerBuffer = *(void **)(save_tracer_pointer+12); //The Actual Write Point For The Next Event 12 |
||
66 | FirstTracerBuffer = *(void **)(save_tracer_pointer+16); //The First Valid Event 16 |
||
67 | |||
68 | TracerActive = 0; |
||
69 | |||
70 | TracerEventsRecorded = *(unsigned long long *)(save_tracer_pointer+28); //28 |
||
71 | TracerEventsPresent = *(unsigned int *)(save_tracer_pointer+36); //36 |
||
72 | |||
73 | cprintf("Total Events Present %d\n",TracerEventsPresent); |
||
74 | |||
75 | nrt_task_default_model(nrt); |
||
76 | |||
77 | task_activate(task_create("Finish",finish_task,&nrt,NULL)); |
||
78 | |||
79 | #else |
||
80 | |||
81 | sys_end(); |
||
82 | |||
83 | #endif |
||
84 | |||
85 | return 0; |
||
86 | |||
87 | } |
||
88 |