X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=lttv%2Flttv%2Fsync%2Fdata_structures.h;h=1f70ade4877a82ae782bfe4695d16d7375895683;hb=76be6fc24daf61767bf7f0c2e64f4691fbb56c63;hp=765967ffda75d2e018906fc6b9cd5d3d638c55dd;hpb=f6691532b67cb6911749118e3da8d74de876380c;p=lttv.git diff --git a/lttv/lttv/sync/data_structures.h b/lttv/lttv/sync/data_structures.h index 765967ff..1f70ade4 100644 --- a/lttv/lttv/sync/data_structures.h +++ b/lttv/lttv/sync/data_structures.h @@ -25,6 +25,20 @@ #include + +enum Direction +{ + OUT, + IN, +}; + +enum EventType +{ + TCP, + UDP, + TYPE_COUNT // This must be the last field +}; + // Stage 1 to 2: These structures are passed from processing to matching modules // TCP events typedef struct @@ -43,19 +57,6 @@ typedef struct uint8_t ack, rst, syn, fin; } SegmentKey; -enum Direction -{ - OUT, - IN, -}; - -enum EventType -{ - TCP, - UDP, - TYPE_COUNT, -}; - typedef struct { enum Direction direction; @@ -78,10 +79,17 @@ typedef struct bool unicast; } UDPEvent; +typedef struct +{ + uint32_t seconds; + uint32_t nanosec; +} WallTime; + typedef struct _Event { unsigned long traceNum; - uint64_t time; + uint64_t cpuTime; + WallTime wallTime; // specific event structures and functions could be in separate files and // type could be an int @@ -134,12 +142,18 @@ void gdnConnectionKeyDestroy(gpointer data); guint ghfSegmentKeyHash(gconstpointer key); gboolean gefSegmentKeyEqual(gconstpointer a, gconstpointer b); +// DatagramKey-related functions +guint ghfDatagramKeyHash(gconstpointer key); +gboolean gefDatagramKeyEqual(gconstpointer a, gconstpointer b); +void gdnDestroyDatagramKey(gpointer data); + // Event-related functions void gdnDestroyEvent(gpointer data); void destroyEvent(Event* const event); void destroyTCPEvent(Event* const event); void destroyUDPEvent(Event* const event); void gfDestroyEvent(gpointer data, gpointer user_data); +double wallTimeSub(const WallTime const* tA, const WallTime const* tB); // Message-related functions void printTCPSegment(const Message* const segment);