From e1cfbc4c53470d1b423812b2b237bf81d3d4001f Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=B8ren=20Sandmann=20Pedersen?= Date: Mon, 7 Sep 2009 10:14:01 -0400 Subject: [PATCH] Add code to append map and process events --- tracker.c | 39 +++++++++++++++++++++++++++++++++++++-- tracker.h | 13 +++++++++++-- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/tracker.c b/tracker.c index fee8d15..b5cbfe0 100644 --- a/tracker.c +++ b/tracker.c @@ -86,14 +86,49 @@ tracker_free (tracker_t *tracker) } +#define COPY_STRING(dest, src) \ + do \ + { \ + strncpy (dest, src, sizeof (dest) - 1); \ + dest[sizeof (dest) - 1] = 0; \ + } \ + while (0) + + void -tracker_add_process (tracker_t *tracker) +tracker_add_process (tracker_t * tracker, + pid_t pid, + const char *command_line) { + new_process_t event; + + event.type = NEW_PROCESS; + event.pid = pid; + COPY_STRING (event.command_line, command_line); + + tracker_append (tracker, &event, sizeof (event)); } void -tracker_add_map (tracker_t *tracker) +tracker_add_map (tracker_t * tracker, + pid_t pid, + uint64_t start, + uint64_t end, + uint64_t offset, + uint64_t inode, + const char *filename) { + new_map_t event; + + event.type = NEW_MAP; + event.pid = pid; + COPY_STRING (event.file_name, filename); + event.start = start; + event.end = end; + event.offset = offset; + event.inode = inode; + + tracker_append (tracker, &event, sizeof (event)); } void diff --git a/tracker.h b/tracker.h index 839ccf8..e4caf60 100644 --- a/tracker.h +++ b/tracker.h @@ -6,8 +6,17 @@ typedef struct tracker_t tracker_t; tracker_t *tracker_new (void); void tracker_free (tracker_t *); -void tracker_add_process (tracker_t *tracker); -void tracker_add_map (tracker_t *tracker); +void tracker_add_process (tracker_t *tracker, + pid_t pid, + const char *command_line); +void +tracker_add_map (tracker_t * tracker, + pid_t pid, + uint64_t start, + uint64_t end, + uint64_t offset, + uint64_t inode, + const char *filename); void tracker_add_sample (tracker_t *tracker, pid_t pid, uint64_t *ips, -- 2.7.4