Changeset 3cfa94a
- Timestamp:
- 04/09/05 18:29:56 (16 years ago)
- Branches:
- 4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, getfragoff, help, libtrace4, master, ndag_format, pfring, rc-4.0.1, rc-4.0.2, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance, ringtimestampfixes
- Children:
- 001fbb6
- Parents:
- 48a6c51
- Location:
- lib
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
lib/Makefile.am
r5cffb71 r3cfa94a 8 8 libtrace_la_CFLAGS = @ADD_INCLS@ 9 9 libtrace_la_LIBADD = @ADD_LIBS@ $(top_builddir)/replace/libreplace.a 10 libtrace_la_LDFLAGS=-version-info 2:1 5b:0 @ADD_LDFLAGS@10 libtrace_la_LDFLAGS=-version-info 2:16:0 @ADD_LDFLAGS@ 11 11 12 12 dagapi.c: -
lib/libtrace.h
rd66fbf0 r3cfa94a 436 436 TRACE_EVENT_IOWAIT, 437 437 TRACE_EVENT_SLEEP, 438 TRACE_EVENT_PACKET 438 TRACE_EVENT_PACKET, 439 TRACE_EVENT_TERMINATE 439 440 } libtrace_event_t; 440 441 … … 444 445 int fd; /**< if IOWAIT, the fd to sleep on */ 445 446 double seconds; /**< if SLEEP, the amount of time to sleep for */ 447 int size; /**< if PACKET, the value returned from trace_read_packet */ 446 448 }; 447 449 -
lib/trace.c
rd66fbf0 r3cfa94a 169 169 double last_ts; 170 170 double start_ts; 171 struct timeval start_tv; 171 172 }; 172 173 … … 1476 1477 } 1477 1478 if (data>0) { 1478 trace_read_packet(trace,packet); 1479 event.size = trace_read_packet(trace,packet); 1480 if (event.size < 0) { 1481 event.type = TRACE_EVENT_TERMINATE; 1482 return event; 1483 } 1479 1484 event.type = TRACE_EVENT_PACKET; 1480 1485 return event; … … 1494 1499 } 1495 1500 if (data>0) { 1496 trace_read_packet(trace,packet); 1501 event.size = trace_read_packet(trace,packet); 1502 if (event.size < 0) { 1503 event.type = TRACE_EVENT_TERMINATE; 1504 return event; 1505 } 1497 1506 event.type = TRACE_EVENT_PACKET; 1498 1507 return event; … … 1505 1514 { 1506 1515 double ts; 1516 double now; 1517 struct timeval stv; 1507 1518 /* "Prime" the pump */ 1508 1519 if (!trace->packet.buffer) { … … 1510 1521 trace->packet.size= 1511 1522 trace_read_packet(trace,packet); 1512 } 1523 if (trace->packet.size > 0 ) { 1524 memcpy(trace->packet.buffer,packet->buffer,trace->packet.size); 1525 } 1526 } 1527 event.size = trace->packet.size; 1528 1529 if (event.size == 0) { 1530 event.type = TRACE_EVENT_TERMINATE; 1531 return event; 1532 } 1533 1513 1534 ts=trace_get_seconds(packet); 1514 1535 if (trace->last_ts!=0) { 1515 1536 event.seconds = ts - trace->last_ts; 1516 if (event.seconds>time(NULL)-trace->start_ts) { 1537 gettimeofday(&stv, NULL); 1538 now = stv.tv_sec + ((double)stv.tv_usec / 1000000.0); 1539 1540 if (event.seconds > (now - trace->start_ts)) { 1517 1541 event.type = TRACE_EVENT_SLEEP; 1518 1542 return event; … … 1521 1545 } 1522 1546 else { 1523 trace->start_ts = time(NULL); 1547 gettimeofday(&stv, NULL); 1548 trace->start_ts = stv.tv_sec + ((double)stv.tv_usec / 1000000.0); 1524 1549 trace->last_ts = ts; 1525 1550 } 1526 1551 1527 1552 packet->size = trace->packet.size; 1528 1553 memcpy(packet->buffer,trace->packet.buffer,trace->packet.size); … … 1531 1556 trace->packet.buffer = 0; 1532 1557 event.type = TRACE_EVENT_PACKET; 1558 1559 gettimeofday(&stv, NULL); 1560 trace->start_ts = stv.tv_sec + ((double)stv.tv_usec / 1000000.0); 1561 trace->last_ts = ts; 1562 1533 1563 return event; 1534 1564 }
Note: See TracChangeset
for help on using the changeset viewer.