summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorguanglei <guanglei>2006-06-26 05:21:37 +0000
committerguanglei <guanglei>2006-06-26 05:21:37 +0000
commit0a1d4defa803f9c14c418fbbf6b84545056b4c6f (patch)
tree9a364677a01f39e7c65e682c432c41bb2f9712bb /runtime
parentd469fede06253e1f77add32f93c3b22d7f504497 (diff)
downloadsystemtap-steved-0a1d4defa803f9c14c418fbbf6b84545056b4c6f.tar.gz
systemtap-steved-0a1d4defa803f9c14c418fbbf6b84545056b4c6f.tar.xz
systemtap-steved-0a1d4defa803f9c14c418fbbf6b84545056b4c6f.zip
aio.stp: new event hooks for AIO
register_events.stp, hookid_defs.stp: changes for aio.stp. register_events.stp, process.stp: bugfix for ascii tracing
Diffstat (limited to 'runtime')
-rw-r--r--runtime/lket/b2a/lket_b2a.c13
-rw-r--r--runtime/lket/b2a/lket_b2a.h65
2 files changed, 71 insertions, 7 deletions
diff --git a/runtime/lket/b2a/lket_b2a.c b/runtime/lket/b2a/lket_b2a.c
index 461a553e..f744ccb9 100644
--- a/runtime/lket/b2a/lket_b2a.c
+++ b/runtime/lket/b2a/lket_b2a.c
@@ -379,7 +379,7 @@ char *get_fmtstr(char *fmt)
return "";
}
-void ascii_print(lket_pkt_header header, FILE *infp, FILE *outfile, int evt_type)
+int ascii_print(lket_pkt_header header, FILE *infp, FILE *outfile, int evt_type)
{
int i, c;
int16_t stemp;
@@ -399,19 +399,19 @@ void ascii_print(lket_pkt_header header, FILE *infp, FILE *outfile, int evt_type
size = header.total_size - header.sys_size;
if(events_des[evt_type][grpid] == NULL)
- return;
+ return -1;
if(events_des[evt_type][grpid][hookid] == NULL)
- return;
+ return -1;
if(events_des[evt_type][grpid][hookid]->count <= 0 || !outfile)
- return;
+ return -1;
if(events_des[evt_type][grpid][hookid]->evt_fmt[0][0] == '\0') {
//no format is provided, dump in hex
buffer = malloc(size);
fread(buffer, size, 1, infp);
fwrite(buffer, size, 1, outfile);
- return;
+ return -1;
}
for(i=0; i<events_des[evt_type][grpid][hookid]->count; i++) {
@@ -448,7 +448,8 @@ void ascii_print(lket_pkt_header header, FILE *infp, FILE *outfile, int evt_type
continue;
}
else
- return;
+ return -1;
}
}
+ return readbytes;
}
diff --git a/runtime/lket/b2a/lket_b2a.h b/runtime/lket/b2a/lket_b2a.h
index 1dbfae53..8db5adb2 100644
--- a/runtime/lket/b2a/lket_b2a.h
+++ b/runtime/lket/b2a/lket_b2a.h
@@ -29,6 +29,8 @@ int _GROUP_TASK = 5;
int _GROUP_SCSI = 6;
int _GROUP_PAGEFAULT = 7;
int _GROUP_NETDEV = 8;
+int _GROUP_IOSYSCALL = 9;
+int _GROUP_AIO = 10;
/* hookIDs defined inside each group */
int _HOOKID_REGSYSEVT = 1;
@@ -58,6 +60,67 @@ int _HOOKID_PAGEFAULT = 1;
int _HOOKID_NETDEV_RECEIVE = 1;
int _HOOKID_NETDEV_TRANSMIT = 2;
+int _HOOKID_IOSYSCALL_OPEN_ENTRY = 1;
+int _HOOKID_IOSYSCALL_OPEN_RETURN = 2;
+
+int _HOOKID_IOSYSCALL_CLOSE_ENTRY = 3;
+int _HOOKID_IOSYSCALL_CLOSE_RETURN = 4;
+
+int _HOOKID_IOSYSCALL_READ_ENTRY = 5;
+int _HOOKID_IOSYSCALL_READ_RETURN = 6;
+
+int _HOOKID_IOSYSCALL_WRITE_ENTRY = 7;
+int _HOOKID_IOSYSCALL_WRITE_RETURN = 8;
+
+int _HOOKID_IOSYSCALL_READV_ENTRY = 9;
+int _HOOKID_IOSYSCALL_READV_RETURN = 10;
+
+int _HOOKID_IOSYSCALL_WRITEV_ENTRY = 11;
+int _HOOKID_IOSYSCALL_WRITEV_RETURN = 12;
+
+int _HOOKID_IOSYSCALL_PREAD64_ENTRY = 13;
+int _HOOKID_IOSYSCALL_PREAD64_RETURN = 14;
+
+int _HOOKID_IOSYSCALL_PWRITE64_ENTRY = 15;
+int _HOOKID_IOSYSCALL_PWRITE64_RETURN = 16;
+
+int _HOOKID_IOSYSCALL_READAHEAD_ENTRY = 17;
+int _HOOKID_IOSYSCALL_READAHEAD_RETURN = 18;
+
+int _HOOKID_IOSYSCALL_SENDFILE_ENTRY = 19;
+int _HOOKID_IOSYSCALL_SENDFILE_RETURN = 20;
+
+int _HOOKID_IOSYSCALL_LSEEK_ENTRY = 21;
+int _HOOKID_IOSYSCALL_LSEEK_RETURN = 22;
+
+int _HOOKID_IOSYSCALL_LLSEEK_ENTRY = 23;
+int _HOOKID_IOSYSCALL_LLSEEK_RETURN = 24;
+
+int _HOOKID_IOSYSCALL_SYNC_ENTRY = 25;
+int _HOOKID_IOSYSCALL_SYNC_RETURN = 26;
+
+int _HOOKID_IOSYSCALL_FSYNC_ENTRY = 27;
+int _HOOKID_IOSYSCALL_FSYNC_RETURN = 28;
+
+int _HOOKID_IOSYSCALL_FDATASYNC_ENTRY = 29;
+int _HOOKID_IOSYSCALL_FDATASYNC_RETURN = 30;
+
+int _HOOKID_IOSYSCALL_FLOCK_ENTRY = 31;
+int _HOOKID_IOSYSCALL_FLOCK_RETURN = 32;
+
+int _HOOKID_AIO_IO_SETUP_ENTRY = 1;
+int _HOOKID_AIO_IO_SETUP_RETURN = 2;
+int _HOOKID_AIO_IO_SUBMIT_ENTRY = 3;
+int _HOOKID_AIO_IO_SUBMIT_RETURN = 4;
+int _HOOKID_AIO_IO_SUBMIT_ONE_ENTRY = 5;
+int _HOOKID_AIO_IO_SUBMIT_ONE_RETURN = 6;
+int _HOOKID_AIO_IO_GETEVENTS_ENTRY = 7;
+int _HOOKID_AIO_IO_GETEVENTS_RETURN = 8;
+int _HOOKID_AIO_IO_DESTROY_ENTRY = 9;
+int _HOOKID_AIO_IO_DESTROY_RETURN = 10;
+int _HOOKID_AIO_IO_CANCEL_ENTRY = 11;
+int _HOOKID_AIO_IO_CANCEL_RETURN = 12;
+
typedef struct _lket_pkt_header {
int16_t total_size;
int16_t sys_size;
@@ -111,6 +174,6 @@ gint compareFunc(gconstpointer a, gconstpointer b, gpointer user_data);
void destroyAppName(gpointer data);
void register_events(int evt_type, FILE *infp, size_t size);
-void ascii_print(lket_pkt_header header, FILE *infp, FILE *outfile, int evt_type);
+int ascii_print(lket_pkt_header header, FILE *infp, FILE *outfile, int evt_type);
char *get_fmtstr(char *fmt);
#endif