diff options
author | guanglei <guanglei> | 2006-06-26 05:21:37 +0000 |
---|---|---|
committer | guanglei <guanglei> | 2006-06-26 05:21:37 +0000 |
commit | 0a1d4defa803f9c14c418fbbf6b84545056b4c6f (patch) | |
tree | 9a364677a01f39e7c65e682c432c41bb2f9712bb /runtime | |
parent | d469fede06253e1f77add32f93c3b22d7f504497 (diff) | |
download | systemtap-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.c | 13 | ||||
-rw-r--r-- | runtime/lket/b2a/lket_b2a.h | 65 |
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 |