Changeset 5876154
- Timestamp:
- 06/23/14 23:36:31 (7 years ago)
- Branches:
- 4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, 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:
- 10e183f
- Parents:
- 8c42377 (diff), 5ba34eb (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Files:
-
- 3 added
- 25 edited
Legend:
- Unmodified
- Added
- Removed
-
configure.in
rfbd4ba6 rabf01b6 19 19 AC_CONFIG_MACRO_DIR([m4]) 20 20 AC_CONFIG_SRCDIR(lib/trace.c) 21 AM_INIT_AUTOMAKE 21 AM_INIT_AUTOMAKE([subdir-objects]) 22 22 23 23 # Make sure we use the relatively silent automake output … … 105 105 LIBWANDIO_LIBS="" 106 106 107 # Set our C compiler flags based on the gcc version 108 if test "$GCC" = "yes"; then 107 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wextra -DLT_BUILDING_DLL=1" 108 CXXFLAGS="$CXXFLAGS -Wall -DLT_BUILDING_DLL=1" 109 110 # Check for -fvisibility 111 gl_VISIBILITY 112 113 gcc_PACKED 114 gcc_DEPRECATED 115 gcc_UNUSED 116 gcc_PURE 117 gcc_FORMAT 109 118 110 gcc_version=`gcc -dumpversion`111 112 # This is probably not the most reliable way to test whether our113 # compiler supports visibility, but it's better than nothing114 #115 # According to the gcc wiki - http://gcc.gnu.org/wiki/Visibility -116 # visibility is supported in gcc 4.0 or later, so we just need to117 # check the major version number118 119 major=$(echo $gcc_version | cut -d'.' -f1)120 121 #major=${gcc_version%\.*\.*}122 123 if test "$major" -lt 4; then124 vis=no125 else126 vis=yes127 fi128 129 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes"130 CXXFLAGS="$CXXFLAGS -Wall"131 LIBCFLAGS="$CFLAGS"132 LIBCFLAGS="$LIBCFLAGS -DLT_BUILDING_DLL=1"133 LIBCXXFLAGS="$CXXFLAGS"134 LIBCXXFLAGS="$CXXFLAGS -DLT_BUILDING_DLL=1"135 136 if test "$vis" = "yes"; then137 LIBCFLAGS="$LIBCFLAGS -Wextra -fvisibility=hidden"138 LIBCXXFLAGS="$CXXFLAGS -Wextra -fvisibility=hidden"139 fi140 fi141 142 119 # Check for libtool 143 120 AC_PROG_LIBTOOL -
lib/Makefile.am
rd6a56b6 re3a639a 2 2 include_HEADERS = libtrace.h dagformat.h lt_inttypes.h daglegacy.h rt_protocol.h erftypes.h 3 3 4 AM_CFLAGS=@LIBCFLAGS@ -pthread5 AM_CXXFLAGS=@LIBCXXFLAGS@ -pthread4 AM_CFLAGS=@LIBCFLAGS@ @CFLAG_VISIBILITY@ -pthread 5 AM_CXXFLAGS=@LIBCXXFLAGS@ @CFLAG_VISIBILITY@ -pthread 6 6 7 7 extra_DIST = format_template.c … … 61 61 endif 62 62 63 INCLUDES= @ADD_INCLS@ -I../libwandio63 AM_CPPFLAGS= @ADD_INCLS@ -I../libwandio 64 64 libtrace_la_LIBADD = @LIBTRACE_LIBS@ @LTLIBOBJS@ $(DPDKLIBS) 65 65 libtrace_la_LDFLAGS=-version-info @LIBTRACE_MAJOR@:@LIBTRACE_MINOR@:@LIBTRACE_MID@ @ADD_LDFLAGS@ -
lib/data-struct/message_queue.c
rfac8c46 r5ba34eb 16 16 * see: man 7 pipe notes on atomic operations 17 17 */ 18 inlinevoid libtrace_message_queue_init(libtrace_message_queue_t *mq, size_t message_len)18 void libtrace_message_queue_init(libtrace_message_queue_t *mq, size_t message_len) 19 19 { 20 20 assert(message_len); … … 41 41 * of messages. 42 42 */ 43 in line int libtrace_message_queue_put(libtrace_message_queue_t *mq, const void *message)43 int libtrace_message_queue_put(libtrace_message_queue_t *mq, const void *message) 44 44 { 45 45 int ret; … … 66 66 * of messages. 67 67 */ 68 in line int libtrace_message_queue_get(libtrace_message_queue_t *mq, void *message)68 int libtrace_message_queue_get(libtrace_message_queue_t *mq, void *message) 69 69 { 70 70 int ret; … … 90 90 * of messages. 91 91 */ 92 in line int libtrace_message_queue_try_get(libtrace_message_queue_t *mq, void *message)92 int libtrace_message_queue_try_get(libtrace_message_queue_t *mq, void *message) 93 93 { 94 94 int ret; … … 113 113 * May be negative if threads blocking and waiting for a message. 114 114 */ 115 in line int libtrace_message_queue_count(const libtrace_message_queue_t *mq)115 int libtrace_message_queue_count(const libtrace_message_queue_t *mq) 116 116 { 117 117 // This is only ok because we know int is atomic … … 119 119 } 120 120 121 inlinevoid libtrace_message_queue_destroy(libtrace_message_queue_t *mq)121 void libtrace_message_queue_destroy(libtrace_message_queue_t *mq) 122 122 { 123 123 mq->message_count = 0; … … 131 131 * @return a file descriptor for the queue, can be used with select() poll() etc. 132 132 */ 133 in line int libtrace_message_queue_get_fd(libtrace_message_queue_t *mq)133 int libtrace_message_queue_get_fd(libtrace_message_queue_t *mq) 134 134 { 135 135 return mq->pipefd[0]; -
lib/data-struct/message_queue.h
r8c42377 r5ba34eb 13 13 } libtrace_message_queue_t; 14 14 15 inlinevoid libtrace_message_queue_init(libtrace_message_queue_t *mq, size_t message_len);16 in line int libtrace_message_queue_put(libtrace_message_queue_t *mq, const void *message);17 in line int libtrace_message_queue_count(const libtrace_message_queue_t *mq);18 in line int libtrace_message_queue_get(libtrace_message_queue_t *mq, void *message);19 in line int libtrace_message_queue_try_get(libtrace_message_queue_t *mq, void *message);20 inlinevoid libtrace_message_queue_destroy(libtrace_message_queue_t *mq);21 in line int libtrace_message_queue_get_fd(libtrace_message_queue_t *mq);15 void libtrace_message_queue_init(libtrace_message_queue_t *mq, size_t message_len); 16 int libtrace_message_queue_put(libtrace_message_queue_t *mq, const void *message); 17 int libtrace_message_queue_count(const libtrace_message_queue_t *mq); 18 int libtrace_message_queue_get(libtrace_message_queue_t *mq, void *message); 19 int libtrace_message_queue_try_get(libtrace_message_queue_t *mq, void *message); 20 void libtrace_message_queue_destroy(libtrace_message_queue_t *mq); 21 int libtrace_message_queue_get_fd(libtrace_message_queue_t *mq); 22 22 23 23 #endif -
lib/data-struct/sliding_window.c
read9478 r5ba34eb 14 14 * NOTE: this mainly applies to the blocking functions 15 15 */ 16 inlinevoid libtrace_slidingwindow_init(libtrace_slidingwindow_t *sw, size_t size, uint64_t start_number) {16 void libtrace_slidingwindow_init(libtrace_slidingwindow_t *sw, size_t size, uint64_t start_number) { 17 17 sw->size = size; // All of this size can be used 18 18 sw->start = 0; … … 27 27 * @param rb The ringbuffer to destroy 28 28 */ 29 inlinevoid libtrace_slidingwindow_destroy(libtrace_slidingwindow_t *sw) {29 void libtrace_slidingwindow_destroy(libtrace_slidingwindow_t *sw) { 30 30 sw->size = 0; 31 31 sw->start = 0; … … 46 46 * @return 1 if a object was written otherwise 0. 47 47 */ 48 in line int libtrace_slidingwindow_try_write(libtrace_slidingwindow_t *sw, uint64_t number, void* value) {48 int libtrace_slidingwindow_try_write(libtrace_slidingwindow_t *sw, uint64_t number, void* value) { 49 49 uint64_t adjusted_number = number - sw->start_number; 50 50 if (adjusted_number < sw->size) { … … 62 62 } 63 63 64 inlineuint64_t libtrace_slidingwindow_read_ready(libtrace_slidingwindow_t *sw) {64 uint64_t libtrace_slidingwindow_read_ready(libtrace_slidingwindow_t *sw) { 65 65 return sw->elements[sw->start] != NULL; 66 66 } … … 74 74 * @return 1 if a object was received otherwise 0, in this case out remains unchanged 75 75 */ 76 in line int libtrace_slidingwindow_try_read(libtrace_slidingwindow_t *sw, void ** value, uint64_t *number) {76 int libtrace_slidingwindow_try_read(libtrace_slidingwindow_t *sw, void ** value, uint64_t *number) { 77 77 if (sw->elements[sw->start]) { 78 78 *value = sw->elements[sw->start]; … … 88 88 } 89 89 90 inlinevoid libtrace_zero_slidingwindow(libtrace_slidingwindow_t * sw)90 void libtrace_zero_slidingwindow(libtrace_slidingwindow_t * sw) 91 91 { 92 92 sw->start = 0; -
lib/data-struct/sliding_window.h
read9478 r5ba34eb 18 18 19 19 void libtrace_slidingwindow_init(libtrace_slidingwindow_t * sw, size_t size, uint64_t start_number); 20 inlinevoid libtrace_zero_slidingwindow(libtrace_slidingwindow_t * sw);20 void libtrace_zero_slidingwindow(libtrace_slidingwindow_t * sw); 21 21 void libtrace_slidingwindow_destroy(libtrace_slidingwindow_t * sw); 22 22 … … 32 32 int libtrace_slidingwindow_try_read(libtrace_slidingwindow_t *sw, void ** value, uint64_t *number); 33 33 34 inlineuint64_t libtrace_slidingwindow_read_ready(libtrace_slidingwindow_t *sw);34 uint64_t libtrace_slidingwindow_read_ready(libtrace_slidingwindow_t *sw); 35 35 /* 36 36 void libtrace_slidingwindow_swrite(libtrace_slidingwindow_t * sw, void* value); -
lib/format_linux.c
rb13b939 re3a639a 1260 1260 struct tpacket2_hdr *header; 1261 1261 int ret; 1262 unsigned int snaplen; 1262 1263 1263 1264 ring_release_frame(libtrace, packet); … … 1310 1311 1311 1312 packet->buffer = header; 1313 1314 /* If a snaplen was configured, automatically truncate the packet to 1315 * the desired length. 1316 */ 1317 snaplen=LIBTRACE_MIN( 1318 (int)LIBTRACE_PACKET_BUFSIZE-(int)sizeof(*header), 1319 (int)FORMAT(libtrace->format_data)->snaplen); 1320 1321 TO_TP_HDR(packet->buffer)->tp_snaplen = LIBTRACE_MIN((unsigned int)snaplen, TO_TP_HDR(packet->buffer)->tp_len); 1312 1322 1313 1323 /* Move to next buffer */ -
lib/hash_toeplitz.c
r8c42377 r5ba34eb 70 70 } 71 71 72 inlinevoid toeplitz_init_config(toeplitz_conf_t *conf, bool bidirectional)72 void toeplitz_init_config(toeplitz_conf_t *conf, bool bidirectional) 73 73 { 74 74 if (bidirectional) { … … 83 83 * n is bits 84 84 */ 85 inlineuint32_t toeplitz_hash(const toeplitz_conf_t *tc, const uint8_t *data, size_t offset, size_t n, uint32_t result)85 uint32_t toeplitz_hash(const toeplitz_conf_t *tc, const uint8_t *data, size_t offset, size_t n, uint32_t result) 86 86 { 87 87 size_t byte; … … 97 97 } 98 98 99 inlineuint32_t toeplitz_first_hash(const toeplitz_conf_t *tc, const uint8_t *data, size_t n)99 uint32_t toeplitz_first_hash(const toeplitz_conf_t *tc, const uint8_t *data, size_t n) 100 100 { 101 101 return toeplitz_hash(tc, data, 0, n, 0); 102 102 } 103 103 104 inlineuint64_t toeplitz_hash_packet(const libtrace_packet_t * pkt, const toeplitz_conf_t *cnf) {104 uint64_t toeplitz_hash_packet(const libtrace_packet_t * pkt, const toeplitz_conf_t *cnf) { 105 105 uint8_t proto; 106 106 uint16_t eth_type; -
lib/hash_toeplitz.h
r29bbef0 r5ba34eb 28 28 29 29 void toeplitz_hash_expand_key(toeplitz_conf_t *conf); 30 inlineuint32_t toeplitz_hash(const toeplitz_conf_t *tc, const uint8_t *data, size_t offset, size_t n, uint32_t result);31 inlineuint32_t toeplitz_first_hash(const toeplitz_conf_t *tc, const uint8_t *data, size_t n);32 inlinevoid toeplitz_init_config(toeplitz_conf_t *conf, bool bidirectional);33 inlineuint64_t toeplitz_hash_packet(const libtrace_packet_t * pkt, const toeplitz_conf_t *cnf);30 uint32_t toeplitz_hash(const toeplitz_conf_t *tc, const uint8_t *data, size_t offset, size_t n, uint32_t result); 31 uint32_t toeplitz_first_hash(const toeplitz_conf_t *tc, const uint8_t *data, size_t n); 32 void toeplitz_init_config(toeplitz_conf_t *conf, bool bidirectional); 33 uint64_t toeplitz_hash_packet(const libtrace_packet_t * pkt, const toeplitz_conf_t *cnf); 34 34 void toeplitz_create_bikey(uint8_t *key); 35 35 void toeplitz_create_unikey(uint8_t *key); … … 47 47 #pragma pack(pop) /* restore original alignment from stack */ 48 48 49 50 inline toeplitz_ipv4_only_t make_toeplitz_ipv4(uint8_t *src_ip4, uint8_t *dest_ip4);51 52 49 #endif -
lib/libtrace.h.in
r8c42377 red81f74 80 80 #if defined(LITTLE_ENDIAN) && !defined(__LITTLE_ENDIAN) 81 81 #define __LITTLE_ENDIAN LITTLE_ENDIAN 82 #endif83 84 #ifdef _MSC_VER85 /* define the following from MSVC's internal types */86 typedef __int8 int8_t;87 typedef __int16 int16_t;88 typedef __int32 int32_t;89 typedef __int64 int64_t;90 typedef unsigned __int8 uint8_t;91 typedef unsigned __int16 uint16_t;92 typedef unsigned __int32 uint32_t;93 typedef unsigned __int64 uint64_t;94 #ifdef LT_BUILDING_DLL95 #define DLLEXPORT __declspec(dllexport)96 #else97 #define DLLEXPORT __declspec(dllimport)98 #endif99 #define DLLLOCAL100 /* Windows pads bitfields out to to the size of their parent type101 * however gcc warns that this doesn't meet with the iso C specification102 * so produces warnings for this behaviour. sigh.103 */104 #define LT_BITFIELD8 uint8_t105 #define LT_BITFIELD16 uint16_t106 #define LT_BITFIELD32 uint32_t107 #define LT_BITFIELD64 uint64_t108 #else109 #ifdef HAVE_STDINT_H110 # include <stdint.h>111 #endif112 #if __GNUC__ >= 4113 #ifdef LT_BUILDING_DLL114 #define DLLEXPORT __attribute__ ((visibility("default")))115 #define DLLLOCAL __attribute__ ((visibility("hidden")))116 #else117 #define DLLEXPORT118 #define DLLLOCAL119 #endif120 #else121 #define DLLEXPORT122 #define DLLLOCAL123 #endif124 /* GCC warns if the bitfield type is not "unsigned int", however windows125 * generates incorrect code for this (see above), so we define these126 * macros. How Hideous. So much for C's portability.127 */128 #define LT_BITFIELD8 unsigned int129 #define LT_BITFIELD16 unsigned int130 #define LT_BITFIELD32 unsigned int131 #define LT_BITFIELD64 unsigned int132 82 #endif 133 83 … … 170 120 #endif 171 121 172 /* Function does not depend on anything but its 173 * parameters, used to hint gcc's optimisations 174 */ 175 #if __GNUC__ >= 3 122 #ifdef _MSC_VER 123 /* define the following from MSVC's internal types */ 124 typedef __int8 int8_t; 125 typedef __int16 int16_t; 126 typedef __int32 int32_t; 127 typedef __int64 int64_t; 128 typedef unsigned __int8 uint8_t; 129 typedef unsigned __int16 uint16_t; 130 typedef unsigned __int32 uint32_t; 131 typedef unsigned __int64 uint64_t; 132 133 /* Windows pads bitfields out to to the size of their parent type 134 * however gcc warns that this doesn't meet with the iso C specification 135 * so produces warnings for this behaviour. sigh. 136 */ 137 #define LT_BITFIELD8 uint8_t 138 #define LT_BITFIELD16 uint16_t 139 #define LT_BITFIELD32 uint32_t 140 #define LT_BITFIELD64 uint64_t 141 #else 142 #ifdef HAVE_STDINT_H 143 # include <stdint.h> 144 #endif 145 /* GCC warns if the bitfield type is not "unsigned int", however windows 146 * generates incorrect code for this (see above), so we define these 147 * macros. How Hideous. So much for C's portability. 148 */ 149 #define LT_BITFIELD8 unsigned int 150 #define LT_BITFIELD16 unsigned int 151 #define LT_BITFIELD32 unsigned int 152 #define LT_BITFIELD64 unsigned int 153 #endif 154 155 /* Ensure these gcc optimisation attributes are defined consistently, 156 * without requiring users to need to have access to the config.h 157 * generated by running configure. 158 */ 159 160 #define LT_USE_PACKED @HAVE_ATTRIBUTE_PACKED@ 161 #define LT_USE_UNUSED @HAVE_ATTRIBUTE_UNUSED@ 162 #define LT_USE_DEPRECATED @HAVE_ATTRIBUTE_DEPRECATED@ 163 #define LT_USE_PURE @HAVE_ATTRIBUTE_PURE@ 164 #define LT_USE_PRINTF @HAVE_ATTRIBUTE_FORMAT@ 165 #define LT_USE_VISIBILITY @HAVE_VISIBILITY@ 166 167 #if LT_USE_PACKED 168 # define PACKED __attribute__((packed)) 169 #else 170 # define PACKED 171 #endif 172 173 #if LT_USE_UNUSED 174 # define UNUSED __attribute__((unused)) 175 #else 176 # define UNUSED 177 #endif 178 179 #if LT_USE_DEPRECATED 176 180 # define DEPRECATED __attribute__((deprecated)) 177 # define SIMPLE_FUNCTION __attribute__((pure))178 # define UNUSED __attribute__((unused))179 # define PACKED __attribute__((packed))180 # define PRINTF(formatpos,argpos) __attribute__((format(printf,formatpos,argpos)))181 181 #else 182 182 # define DEPRECATED 183 #endif 184 185 #if LT_USE_PURE 186 # define SIMPLE_FUNCTION __attribute__((pure)) 187 #else 183 188 # define SIMPLE_FUNCTION 184 # define UNUSED185 # define PACKED186 # define PRINTF(formatpos,argpos)187 189 #endif 190 191 #if LT_USE_PRINTF 192 # define PRINTF(formatpos, argpos) __attribute__((format(printf,formatpos, argpos))) 193 #else 194 # define PRINTF(formatpos, argpos) 195 #endif 196 197 #ifdef _MSC_VER 198 #ifdef LT_BUILDING_DLL 199 #define DLLEXPORT __declspec(dllexport) 200 #else 201 #define DLLEXPORT __declspec(dllimport) 202 #endif 203 #define DLLLOCAL 204 #else 205 #ifndef DLLEXPORT 206 #if LT_USE_VISIBILITY && LT_BUILDING_DLL 207 #define DLLEXPORT __attribute__ ((visibility("default"))) 208 #define DLLLOCAL __attribute__ ((visibility("hidden"))) 209 #else 210 #define DLLEXPORT 211 #define DLLLOCAL 212 #endif 213 #endif 214 #endif 215 188 216 189 217 /** Opaque structure holding information about an output trace */ -
lib/libtrace_int.h
r8c42377 r5ba34eb 351 351 352 352 void trace_fin_packet(libtrace_packet_t *packet); 353 inlinevoid libtrace_zero_thread(libtrace_thread_t * t);354 inlinevoid store_first_packet(libtrace_t *libtrace, libtrace_packet_t *packet, libtrace_thread_t *t);353 void libtrace_zero_thread(libtrace_thread_t * t); 354 void store_first_packet(libtrace_t *libtrace, libtrace_packet_t *packet, libtrace_thread_t *t); 355 355 libtrace_thread_t * get_thread_table(libtrace_t *libtrace); 356 356 int get_thread_table_num(libtrace_t *libtrace); -
lib/protocols_ospf.c
r8753bb8 r10f924c 32 32 */ 33 33 34 #include "libtrace_int.h" 34 35 #include "libtrace.h" 35 36 #include "protocols.h" -
lib/protocols_transport.c
rc909fad r10f924c 33 33 34 34 35 #include "libtrace_int.h" 35 36 #include "libtrace.h" 36 37 #include "protocols.h" -
lib/trace_parallel.c
r85e87b5 r5ba34eb 140 140 } 141 141 142 inlinevoid libtrace_zero_thread(libtrace_thread_t * t) {142 void libtrace_zero_thread(libtrace_thread_t * t) { 143 143 t->trace = NULL; 144 144 t->ret = NULL; … … 828 828 * results out every XXX seconds. 829 829 */ 830 inlinevoid store_first_packet(libtrace_t *libtrace, libtrace_packet_t *packet, libtrace_thread_t *t)830 void store_first_packet(libtrace_t *libtrace, libtrace_packet_t *packet, libtrace_thread_t *t) 831 831 { 832 832 if (!t->recorded_first) { -
libpacketdump/Makefile.am
r8b49230 rbd119b3 172 172 dist_plugin_DATA = $(TXT_PROTOCOLS) 173 173 174 INCLUDES= @ADD_INCLS@ -I../lib -I../libwandio174 AM_CPPFLAGS= @ADD_INCLS@ -I../lib -I../libwandio 175 175 176 176 # NOTE: You CANNOT add @LEXLIBS@ here, as they are statically compiled … … 182 182 @ADD_LDFLAGS@ 183 183 184 AM_CXXFLAGS=-g -Wall -DDIRNAME=\"$(plugindir)\" $( INCLUDES)184 AM_CXXFLAGS=-g -Wall -DDIRNAME=\"$(plugindir)\" $(AM_CPPFLAGS) 185 185 BUILT_SOURCES=parser.h 186 186 AM_YFLAGS=-d -
libwandio/Makefile.am
r60f3c4c rbd119b3 3 3 include_HEADERS=wandio.h 4 4 5 AM_CFLAGS=@LIBCFLAGS@ 6 AM_CXXFLAGS=@LIBCXXFLAGS@ 5 AM_CFLAGS=@LIBCFLAGS@ @CFLAG_VISIBILITY@ 6 AM_CXXFLAGS=@LIBCXXFLAGS@ @CFLAG_VISIBILITY@ 7 7 8 8 if HAVE_ZLIB … … 25 25 26 26 libwandio_la_SOURCES=wandio.c ior-peek.c ior-stdio.c ior-thread.c \ 27 iow-stdio.c iow-thread.c wandio.h \27 iow-stdio.c iow-thread.c wandio.h wandio_internal.h \ 28 28 $(LIBTRACEIO_ZLIB) $(LIBTRACEIO_BZLIB) $(LIBTRACEIO_LZO) 29 29 30 INCLUDES = @ADD_INCLS@30 AM_CPPFLAGS = @ADD_INCLS@ 31 31 libwandio_la_LIBADD = @LIBWANDIO_LIBS@ 32 32 libwandio_la_LDFLAGS=-version-info 1:0:0 @ADD_LDFLAGS@ -
libwandio/ior-stdio.c
r60f3c4c r10f924c 34 34 35 35 #define _GNU_SOURCE 1 36 #include "wandio_internal.h" 36 37 #include "wandio.h" 37 38 #include <sys/types.h> -
libwandio/ior-thread.c
r954577b9 r10f924c 34 34 35 35 #include "config.h" 36 #include "wandio_internal.h" 36 37 #include "wandio.h" 37 38 #include <sys/types.h> -
libwandio/iow-lzo.c
r4a2529b r2a7047c 41 41 42 42 #include <lzo/lzo1x.h> 43 #include "wandio_internal.h" 43 44 #include "wandio.h" 44 45 #include "config.h" -
libwandio/iow-stdio.c
r60f3c4c r10f924c 34 34 35 35 #define _GNU_SOURCE 1 36 #include "wandio_internal.h" 36 37 #include "wandio.h" 37 38 #include <sys/types.h> -
libwandio/iow-thread.c
r954577b9 r10f924c 34 34 #include "config.h" 35 35 #include "wandio.h" 36 #include "wandio_internal.h" 36 37 #include <sys/types.h> 37 38 #include <sys/stat.h> -
libwandio/wandio.c
r808eeef r10f924c 34 34 35 35 #include "config.h" 36 #include "wandio_internal.h" 36 37 #include "wandio.h" 37 38 #include <stdlib.h> -
libwandio/wandio.h
r0acfd1e rc7021d9 34 34 #ifndef IO_H 35 35 #define IO_H 1 /**< Guard Define */ 36 #include "config.h"37 36 #include <sys/types.h> 38 37 #include <stdio.h> … … 40 39 #include <stdbool.h> 41 40 42 #if __GNUC__ >= 4 43 #ifdef LT_BUILDING_DLL 44 #define DLLEXPORT __attribute__ ((visibility("default"))) 45 #define DLLLOCAL __attribute__ ((visibility("hidden"))) 46 #else 47 #define DLLEXPORT 48 #define DLLLOCAL 49 #endif 50 #else 51 #define DLLEXPORT 52 #define DLLLOCAL 41 42 #ifndef DLLEXPORT 43 #if HAVE_VISIBILITY && LT_BUILDING_DLL 44 #define DLLEXPORT __attribute__ ((visibility("default"))) 45 #define DLLLOCAL __attribute__ ((visibility("hidden"))) 46 #else 47 #define DLLEXPORT 48 #define DLLLOCAL 49 #endif 53 50 #endif 54 51 55 #if __GNUC__ >= 3 56 # define DEPRECATED __attribute__((deprecated)) 57 # define SIMPLE_FUNCTION __attribute__((pure)) 58 # define UNUSED __attribute__((unused)) 59 # define PACKED __attribute__((packed)) 60 # define PRINTF(formatpos,argpos) __attribute__((format(printf,formatpos,argpos))) 61 #else 62 # define DEPRECATED 63 # define SIMPLE_FUNCTION 64 # define UNUSED 65 # define PACKED 66 # define PRINTF(formatpos,argpos) 67 #endif 68 52 // TODO: Use a proper check for these attribute rather than gcc version check 69 53 70 54 /** @file … … 330 314 /** @} */ 331 315 332 /** @name libtraceio options333 * @{ */334 extern int force_directio_read;335 extern int force_directio_write;336 extern uint64_t write_waits;337 extern uint64_t read_waits;338 extern unsigned int use_threads;339 extern unsigned int max_buffers;340 /* @} */341 342 316 #endif -
test/do-tests.sh
r47e927a r5692bc4 77 77 78 78 echo \* Testing time conversions 79 do_test ./test-time 79 echo \* ERF 80 do_test ./test-time erf 81 echo \* pcapfile 82 do_test ./test-time pcapfile 83 echo \* pcapfilens 84 do_test ./test-time pcapfilens 85 echo \* legacyatm 86 do_test ./test-time legacyatm 87 echo \* legacypos 88 do_test ./test-time legacypos 89 echo \* legacyeth 90 do_test ./test-time legacyeth 91 echo \* pcap 92 do_test ./test-time pcap 93 echo \* rawerf 94 do_test ./test-time rawerf 95 echo \* tsh 96 do_test ./test-time tsh 80 97 81 98 echo \* Testing directions -
test/test-time.c
rd5a27e8 r6a38a7e 51 51 struct libtrace_t *trace; 52 52 53 const char *lookup_uri(const char *type) { 54 if (strchr(type,':')) 55 return type; 56 if (!strcmp(type,"erf")) 57 return "erf:traces/100_packets.erf"; 58 if (!strcmp(type,"rawerf")) 59 return "rawerf:traces/100_packets.erf"; 60 if (!strcmp(type,"pcap")) 61 return "pcap:traces/100_packets.pcap"; 62 if (!strcmp(type,"wtf")) 63 return "wtf:traces/wed.wtf"; 64 if (!strcmp(type,"rtclient")) 65 return "rtclient:chasm"; 66 if (!strcmp(type,"pcapfile")) 67 return "pcapfile:traces/100_packets.pcap"; 68 if (!strcmp(type,"pcapfilens")) 69 return "pcapfile:traces/100_packetsns.pcap"; 70 if (!strcmp(type, "duck")) 71 return "duck:traces/100_packets.duck"; 72 if (!strcmp(type, "legacyatm")) 73 return "legacyatm:traces/legacyatm.gz"; 74 if (!strcmp(type, "legacypos")) 75 return "legacypos:traces/legacypos.gz"; 76 if (!strcmp(type, "legacyeth")) 77 return "legacyeth:traces/legacyeth.gz"; 78 if (!strcmp(type, "tsh")) 79 return "tsh:traces/10_packets.tsh.gz"; 80 return type; 81 } 82 53 83 void iferr(libtrace_t *trace) 54 84 { … … 61 91 62 92 int main(int argc, char *argv[]) { 63 char *uri = "erf:traces/100_packets.erf";93 char *uri = lookup_uri(argv[1]); 64 94 int psize = 0; 65 95 int error = 0; … … 76 106 for (;;) { 77 107 double ts; 108 double tsdiff; 78 109 struct timeval tv; 79 110 if ((psize = trace_read_packet(trace, packet)) <0) { … … 88 119 tv=trace_get_timeval(packet); 89 120 ts=trace_get_seconds(packet); 90 assert((tv.tv_sec+tv.tv_usec/1000000.0)-ts<.000001); 121 tsdiff = (tv.tv_sec+tv.tv_usec/1000000.0)-ts; 122 assert(tsdiff > -0.001 && tsdiff < 0.001); 123 91 124 } 92 125 trace_destroy_packet(packet);
Note: See TracChangeset
for help on using the changeset viewer.