Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 369 → Rev 370

/shark/trunk/tracer/include/tracer.h
61,6 → 61,7
 
#include <ll/sys/types.h>
#include <ll/i386/hw-instr.h>
#include <kernel/kern.h>
#include "FTrace.h"
 
#define TRACER_NO_OUTPUT 0
78,7 → 79,8
 
//UDP
 
int init_udp_tracer(char *local_ip, char *target_ip);
int tracer_init_udp(int flag, char *local_ip, char *target_ip);
int tracer_create_udp_task(TASK_MODEL *m, int EventsForPeriod);
 
#define TRACER_SERIALIZE
 
/shark/trunk/tracer/newtrace/udp.c
41,6 → 41,8
#include <tracer.h>
#include <unistd.h>
 
#include <kernel/kern.h>
 
#include <drivers/udpip.h>
 
#define TRACER_UDP_DEBUG
56,6 → 58,8
char local_ip[20],target_ip[20];
int socket;
 
PID udp_task;
 
extern int TracerOutputType;
 
struct tracer_udp_header {
65,7 → 69,8
unsigned int total_size;
};
 
int init_udp_tracer(char *l_ip, char *t_ip) {
//Init UDP, if flag = 1 init the network driver
int tracer_init_udp(int flag, char *l_ip, char *t_ip) {
 
SYS_FLAGS f;
76,16 → 81,20
strcpy(local_ip,l_ip);
strcpy(target_ip,t_ip);
 
net_setmode(m, TXTASK);
net_setudpip(m, local_ip, "255.255.255.255");
if (flag) {
 
if (net_init(&m) != 1) {
ll_frestore(f);
return -1;
net_setmode(m, TXTASK);
net_setudpip(m, local_ip, "255.255.255.255");
 
if (net_init(&m) != 1) {
ll_frestore(f);
return -1;
}
 
sleep(1);
 
}
 
sleep(1);
 
ip_str2addr(local_ip,&(local.s_addr));
local.s_port = TRACER_PORT+1;
socket = udp_bind(&local, NULL);
174,4 → 183,57
udp_sendto(socket, pkt, total_pkt_size, &target);
}
 
}
 
//Sender Task
TASK udp_sender(void *arg)
{
 
int number = (int)(arg);
 
while(1) {
 
tracer_send_logged_events(number);
tracer_flush_sent_events();
 
task_endcycle();
 
}
 
}
 
int tracer_create_udp_task(TASK_MODEL *m, int EventsForPeriod)
{
 
if (m == NULL) {
 
SOFT_TASK_MODEL st;
 
soft_task_default_model(st);
soft_task_def_arg(st,(void *)(EventsForPeriod));
soft_task_def_period(st,500000);
soft_task_def_met(st,10000);
udp_task = task_create("UDP_Sender",udp_sender,&st,NULL);
if (udp_task == NIL) {
cprintf("Error creating UDP Sender\n");
sys_end();
}
task_activate(udp_task);
 
} else {
 
udp_task = task_create("UDP_Sender",udp_sender,&m,NULL);
if (udp_task == NIL) {
cprintf("Error creating UDP Sender\n");
sys_end();
}
task_activate(udp_task);
 
}
 
return 0;
 
}