URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 441 to Rev 442
- ↔ Reverse comparison
Rev 441 → Rev 442
/trunk/or1ksim/vapi/vapi.c
48,8 → 48,6
static unsigned int server_fd = 0; |
static unsigned int nhandlers = 0; |
|
void server_request(void); |
|
static int tcp_level = 0; |
|
static struct vapi_handler { |
58,7 → 56,7
void (*read_func)(unsigned long, unsigned long); |
struct vapi_handler *next; |
int temp; |
} *vapi_handler; |
} *vapi_handler = NULL; |
|
/* Structure for polling, it is cached, that it doesn't have to be rebuilt each time */ |
static struct pollfd *fds = NULL; |
118,7 → 116,6
return tt; |
} |
|
/* Added by Erez 09/12/01 */ |
void vapi_write_log_file(VAPI_COMMAND command, unsigned long devid, unsigned long data) |
{ |
if (!runtime.vapi.vapi_file) |
295,7 → 292,7
return sockfd; |
} |
|
void server_request() |
static void server_request() |
{ |
struct sockaddr_in sa; |
struct sockaddr* addr = (struct sockaddr*)&sa; |
381,30 → 378,27
if (vapi_write_stream(t->fd, &data, sizeof (data)) < 0) |
return 1; |
return 0; |
} |
} |
|
static int read_packet (unsigned long id, unsigned long *data) { |
unsigned long t_id; |
struct vapi_handler *t = find_handler (id); |
if (!t || !t->fd) |
static int read_packet (int fd, unsigned long *id, unsigned long *data) |
{ |
if (fd <= 0) |
return 1; |
if (vapi_read_stream(t->fd, &t_id, sizeof (unsigned long)) < 0) |
if (vapi_read_stream(fd, id, sizeof(unsigned long)) < 0) |
return 1; |
t_id = htonl (t_id); |
if (t_id != id) { |
fprintf (stderr, "IDs not the same (got %x, expected %x)\n", t_id, id); |
*id = ntohl (*id); |
if (vapi_read_stream(fd, data, sizeof(unsigned long)) < 0) |
return 1; |
} |
if (vapi_read_stream(t->fd, data, sizeof (unsigned long)) < 0) |
return 1; |
*data = htonl (*data); |
*data = ntohl (*data); |
return 0; |
} |
|
static void vapi_request (struct vapi_handler *t) { |
unsigned long data; |
if(read_packet (t->id, &data)) { |
if(t->fd) { |
static void vapi_request (struct vapi_handler *t) |
{ |
unsigned long id, data; |
|
if (read_packet(t->fd, &id, &data)) { |
if (t->fd >= 0) { |
perror("vapi read"); |
close(t->fd); |
t->fd = 0; |
413,12 → 407,16
return; |
} |
|
vapi_write_log_file (0, t->id, data); |
debug (4, "[%08x, %08x]\n", t->id, data); |
if (!t->read_func) |
fprintf (stderr, "WARNING: packet sent to undefined id %x, %x\n", t->id, data); |
vapi_write_log_file (VAPI_COMMAND_REQUEST, id, data); |
debug (4, "[%08x, %08x]\n", id, data); |
|
/* This packet may be for another handler */ |
if (t->id != id) |
t = find_handler (id); |
if (!t || !t->read_func) |
fprintf (stderr, "WARNING: Received packet for undefined id %08x, data %08x\n", id, data); |
else |
t->read_func(t->id, data); |
t->read_func(id, data); |
} |
|
void vapi_check () |
513,7 → 511,7
fds = 0; |
if (runtime.vapi.vapi_file) { |
/* Mark end of simulation */ |
vapi_write_log_file (2, t->id, 0); |
vapi_write_log_file (VAPI_COMMAND_END, 0, 0); |
fclose (runtime.vapi.vapi_file); |
} |
|
572,7 → 570,7
int vapi_send (unsigned long id, unsigned long data) |
{ |
debug (4, "vapi_send [%08x %08x]\n", id, data); |
vapi_write_log_file (1, id, data); |
vapi_write_log_file (VAPI_COMMAND_SEND, id, data); |
write_packet (id, data); |
} |
|