summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorguanglei <guanglei>2006-10-24 07:47:47 +0000
committerguanglei <guanglei>2006-10-24 07:47:47 +0000
commitab953d260854a140e8255e987609bc00adf7919e (patch)
tree20fa1ffbf4a99db6de480ca7f88c997b6a7ef244 /runtime
parent1b78aef5258d6681b6224c5a8e8e623449ccc11e (diff)
downloadsystemtap-steved-ab953d260854a140e8255e987609bc00adf7919e.tar.gz
systemtap-steved-ab953d260854a140e8255e987609bc00adf7919e.tar.xz
systemtap-steved-ab953d260854a140e8255e987609bc00adf7919e.zip
sync lket-b2a with LKET hookid rearrangement
Diffstat (limited to 'runtime')
-rw-r--r--runtime/ChangeLog5
-rw-r--r--runtime/lket/b2a/lket_b2a.c43
-rw-r--r--runtime/lket/b2a/lket_b2a.h2
3 files changed, 28 insertions, 22 deletions
diff --git a/runtime/ChangeLog b/runtime/ChangeLog
index 1b6ffcf0..5872fc44 100644
--- a/runtime/ChangeLog
+++ b/runtime/ChangeLog
@@ -1,3 +1,8 @@
+2006-10-24 Li Guanglei <guanglei@cn.ibm.com>
+
+ * runtime/lket/b2a/lket_b2a.[ch]: be sync with LKET hookid
+ rearrangement.
+
2006-10-23 Li Guanglei <guanglei@cn.ibm.com>
* runtime/lket/b2a/lket_b2a.c: bugfix of event description
data insert.
diff --git a/runtime/lket/b2a/lket_b2a.c b/runtime/lket/b2a/lket_b2a.c
index a5f4e457..9169537a 100644
--- a/runtime/lket/b2a/lket_b2a.c
+++ b/runtime/lket/b2a/lket_b2a.c
@@ -144,6 +144,7 @@ int main(int argc, char *argv[])
if(into_file) {
if(strnlen(outfilename, MAX_STRINGLEN) == 0)
strncpy(outfilename, DEFAULT_OUTFILE_NAME, MAX_STRINGLEN);
+
outfp = fopen(outfilename, "w");
if(outfp == NULL) {
fprintf(stderr,"Unable to create %s\n", outfilename);
@@ -284,9 +285,9 @@ failed:
for(i=1; i<MAX_GRPID; i++)
for(j=1; j<MAX_HOOKID; j++) {
- if(events_des[1][i][j] != NULL) {
+ if(events_des[_HOOKID_REGSYSEVT][i][j] != NULL) {
#ifdef HAS_MYSQL
- if(events_des[1][i][j]->flag == 0 && into_db) {
+ if(events_des[_HOOKID_REGSYSEVT][i][j]->flag == 0 && into_db) {
snprintf(sql, 256, "drop table %d_%d",i,j);
if(mysql_query(&mysql,sql)) {
fprintf(stderr, "Failed to exec sql: %s, Error: %s\n",
@@ -300,8 +301,9 @@ failed:
exit(-1);
}
}
- if(events_des[1][i][j]->entrytime) /* destroy entrytime tree */
- g_tree_destroy(events_des[1][i][j]->entrytime);
+ /* destroy entrytime tree */
+ if(events_des[_HOOKID_REGSYSEVT][i][j]->entrytime)
+ g_tree_destroy(events_des[_HOOKID_REGSYSEVT][i][j]->entrytime);
#endif
}
}
@@ -348,7 +350,7 @@ void register_appname(int i, FILE *fp, lket_pkt_header *phdr)
appname = (char *)malloc(512);
location = ftell(fp);
- if(HDR_HookID(phdr) ==1 ) { /* process_snapshot */
+ if(HDR_HookID(phdr) == _HOOKID_PROCESS_SNAPSHOT ) { /* process_snapshot */
fseek(fp, 4, SEEK_CUR); /* skip tid */
fread(&pid, 1, 4, fp); /* read pid */
fseek(fp, 4, SEEK_CUR); /* skip ppid */
@@ -372,7 +374,7 @@ void register_appname(int i, FILE *fp, lket_pkt_header *phdr)
}
#endif
//fseek(fp, 0-len, SEEK_CUR);
- } else if (HDR_HookID(phdr) == 2) { /* process.execve */
+ } else if (HDR_HookID(phdr) == _HOOKID_PROCESS_EXECVE) { /* process.execve */
fread(&pid, 1, 4, fp); /* read pid */
c = fgetc_unlocked(fp);
@@ -546,9 +548,7 @@ int get_pkt_header(FILE *fp, lket_pkt_header *phdr)
phdr->sys_size -= sizeof(lket_pkt_header)-sizeof(phdr->total_size)-sizeof(phdr->sys_size);
phdr->total_size -= sizeof(lket_pkt_header)-sizeof(phdr->total_size)-sizeof(phdr->sys_size);
-
return 0;
-
bad:
memset(phdr, 0, sizeof(lket_pkt_header));
return -1;
@@ -589,7 +589,7 @@ void print_pkt_header(lket_pkt_header *phdr)
if(!(hookid%2)) { // return type event
long long *entrytime;
long long entryusecs;
- entrytime = g_tree_lookup(events_des[1][grpid][hookid-1]->entrytime,
+ entrytime = g_tree_lookup(events_des[_HOOKID_REGSYSEVT][grpid][hookid-1]->entrytime,
(gconstpointer)((long)pid));
if(entrytime==NULL) // key not found
entryusecs = 0;
@@ -608,7 +608,7 @@ void print_pkt_header(lket_pkt_header *phdr)
if(hookid%2) {
char *entrytime = malloc(sizeof(long long));
*((long long *)entrytime) = usecs;
- g_tree_insert(events_des[1][grpid][hookid]->entrytime,
+ g_tree_insert(events_des[_HOOKID_REGSYSEVT][grpid][hookid]->entrytime,
(gpointer)((long)pid), (gpointer)entrytime);
}
}
@@ -645,10 +645,11 @@ void register_evt_desc(FILE *infp, size_t size)
grpid = *(int8_t *)evt_body;
hookid = *(int8_t *)(evt_body+1);
- if(!events_des[1][grpid][hookid])
- events_des[1][grpid][hookid] = malloc(sizeof(event_desc));
+ if(!events_des[_HOOKID_REGSYSEVT][grpid][hookid])
+ events_des[_HOOKID_REGSYSEVT][grpid][hookid] = malloc(sizeof(event_desc));
+
#ifdef HAS_MYSQL
- events_des[1][grpid][hookid]->entrytime = g_tree_new_full(
+ events_des[_HOOKID_REGSYSEVT][grpid][hookid]->entrytime = g_tree_new_full(
compareFunc, NULL, NULL, destroyTreeData);
if(into_db) {
if(!has_table) {
@@ -699,7 +700,7 @@ void register_events(int evt_type, FILE *infp, size_t size)
#ifdef HAS_MYSQL
if(into_db) {
- if(evt_type==1) { /* if sys event, create a table */
+ if(evt_type==_HOOKID_REGSYSEVT) { /* if sys event, create a table */
if(!(hookid%2)) {/* if this is a return type event, should record
the entry time of this event */
snprintf(sql, 1024, "create table %d_%d \
@@ -713,7 +714,7 @@ void register_events(int evt_type, FILE *infp, size_t size)
cpu_id TINYINT,", grpid, hookid);
}
}
- if(evt_type==2) { /* if user event, alter an existing table */
+ if(evt_type==_HOOKID_REGUSREVT) { /* if user event, alter an existing table */
snprintf(sql, 1024, "alter table %d_%d ", grpid, hookid);
}
}
@@ -739,14 +740,14 @@ void register_events(int evt_type, FILE *infp, size_t size)
while(fmt!=NULL && name!=NULL) {
#ifdef HAS_MYSQL
if(into_db) {
- if(evt_type==1) {
+ if(evt_type==_HOOKID_REGSYSEVT) {
strcat(sql, "`");
strcat(sql, name);
strcat(sql, "` ");
strcat(sql, get_sqltype(fmt));
strcat(sql, ",");
}
- if(evt_type==2) {
+ if(evt_type==_HOOKID_REGUSREVT) {
strcat(sql, "add ");
strcat(sql, "`");
strcat(sql, name);
@@ -771,9 +772,9 @@ void register_events(int evt_type, FILE *infp, size_t size)
#ifdef HAS_MYSQL
gen_sql:
if(into_db) {
- if(evt_type==1)
+ if(evt_type==_HOOKID_REGSYSEVT)
sql[strlen(sql)-1]=')';
- if(evt_type==2)
+ if(evt_type==_HOOKID_REGUSREVT)
sql[strlen(sql)-1]='\0';
if(mysql_query(&mysql, sql)) {
@@ -822,10 +823,10 @@ int dump_data(lket_pkt_header header, FILE *infp)
/* if the data contains user appended extra data */
if(header.total_size != header.sys_size)
- evt_num = 2;
+ evt_num = 3;
/* iterate the sys and user event */
- for(j=1; j<= evt_num; j++) {
+ for(j=1; j<= evt_num; j+=2) {
readbytes = 0;
diff --git a/runtime/lket/b2a/lket_b2a.h b/runtime/lket/b2a/lket_b2a.h
index 2415c717..6b28efb1 100644
--- a/runtime/lket/b2a/lket_b2a.h
+++ b/runtime/lket/b2a/lket_b2a.h
@@ -13,7 +13,7 @@
#define MAX_GRPID 255
#define MAX_HOOKID 255
-#define MAX_EVT_TYPES 2
+#define MAX_EVT_TYPES 3
#define DEFAULT_OUTFILE_NAME "lket.out"