diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | tapset/system_calls.stp | 103 |
2 files changed, 58 insertions, 50 deletions
@@ -1,3 +1,8 @@ +2005-09-30 Frank Ch. Eigler <fche@elastic.org> + + * tapset/system_calls.stp (*_str): Simplified boolean test logic + throughout, fixed some typos. + 2005-09-28 Frank Ch. Eigler <fche@elastic.org> PR 1182. diff --git a/tapset/system_calls.stp b/tapset/system_calls.stp index 22dedf9d..4399f0e4 100644 --- a/tapset/system_calls.stp +++ b/tapset/system_calls.stp @@ -1,5 +1,6 @@ // syscalls tapset // Copyright (C) 2005 IBM Corp. +// Copyright (C) 2005 Red Hat Inc. // // This file is part of systemtap, and is free software. You can // redistribute it and/or modify it under the terms of the GNU General @@ -3587,51 +3588,54 @@ probe kernel.syscall.rt_sigaction.return = representation of the f param, based on the function arg. */ -function __decf(f,mask){ return ((f-mask)>=0) ? (f-mask) : f } - /* `man 2 open` for more information */ function _sys_open_flag_str(f) { - if((f-8192)>=0 && (f=__decf(f,8192))>=0) bs="O_ASYNC|".bs - if((f-4096)>=0 && (f=__decf(f,4096))>=0) bs="O_SYNC|".bs - if((f-2048)>=0 && (f=__decf(f,2048))>=0) bs="O_NONBLOCK|".bs - if((f-1024)>=0 && (f=__decf(f,1024))>=0) bs="O_APPEND|".bs - if((f-512)>=0 && (f=__decf(f,512))>=0) bs="O_TRUNC|".bs - if((f-256)>=0 && (f=__decf(f,256))>=0) bs="O_NDCTTY|".bs - if((f-128)>=0 && (f=__decf(f,128))>=0) bs="O_EXCL|".bs - if((f-64)>=0 && (f=__decf(f,64))>=0) bs="O_CREAT|".bs - if((f-2)>=0 && (f=__decf(f,2))>=0) - return substr("O_RDWR|".bs,0,strlen("O_RDWR|".bs)-1) - if((f-1)>=0 && (f=__decf(f,1))>=0) - return substr("O_WRONLY|".bs,0,strlen("O_WRONLY|".bs)-1) - return substr("O_RDONLY|".bs,0,strlen("O_RDONLY|".bs)-1) + if(f & 8192) bs="O_ASYNC|".bs + if(f & 4096) bs="O_SYNC|".bs + if(f & 2048) bs="O_NONBLOCK|".bs + if(f & 1024) bs="O_APPEND|".bs + if(f & 512) bs="O_TRUNC|".bs + if(f & 256) bs="O_NDCTTY|".bs + if(f & 128) bs="O_EXCL|".bs + if(f & 64) bs="O_CREAT|".bs + if ((f & 3) == 2) bs="O_RDWR|".bs + else if ((f & 3) == 1) bs="O_WRONLY|".bs + else if ((f & 3) == 0) bs="O_RDONLY|".bs + return substr(bs,0,strlen(bs)-1) } /* `man 2 open` for more information */ function _sys_open_mode_str(f) { - if((f-448)>=0 && (f=__decf(f,448))>=0) bs="S_IRWXU|".bs - if((f-256)>=0 && (f=__decf(f,256))>=0) bs="S_IRUSR|".bs - if((f-128)>=0 && (f=__decf(f,128))>=0) bs="S_IWUSR|".bs - if((f-64)>=0 && (f=__decf(f,64))>=0) bs="S_IXUSR|".bs - if((f-56)>=0 && (f=__decf(f,56))>=0) bs="S_IRWXG|".bs - if((f-32)>=0 && (f=__decf(f,32))>=0) bs="S_IRGRP|".bs - if((f-16)>=0 && (f=__decf(f,16))>=0) bs="S_IWGRP|".bs - if((f-8)>=0 && (f=__decf(f,8))>=0) bs="S_IXGRP|".bs - if((f-7)>=0 && (f=__decf(f,7))>=0) bs="S_IRWXO|".bs - if((f-4)>=0 && (f=__decf(f,4))>=0) bs="S_IROTH|".bs - if((f-2)>=0 && (f=__decf(f,2))>=0) bs="S_IWOTH|".bs - if((f-1)>=0 && (f=__decf(f,1))>=0) bs="S_IXOTH|".bs + if((f & 448) == 448) bs="S_IRWXU|".bs + else { + if(f & 256) bs="S_IRUSR|".bs + if(f & 128) bs="S_IWUSR|".bs + if(f & 64) bs="S_IXUSR|".bs + } + if((f & 56) == 56) bs="S_IRWXG|".bs + else { + if(f & 32) bs="S_IRGRP|".bs + if(f & 16) bs="S_IWGRP|".bs + if(f & 8) bs="S_IXGRP|".bs + } + if ((f & 7) == 7) bs="S_IRWXO|".bs + else { + if(f & 4) bs="S_IROTH|".bs + if(f & 2) bs="S_IWOTH|".bs + if(f & 1) bs="S_IXOTH|".bs + } return substr(bs,0,strlen(bs)-1) } /* `man adjtimex` for more information */ function _sys_adjtimex_mode_str(f) { - if((f-32769)>=0 && (f=__decf(f,32769))>=0) bs="ADJ_OFFSET_SINGLESHOT|".bs - if((f-16384)>=0 && (f=__decf(f,16384))>=0) bs="ADJ_TICK|".bs - if((f-32)>=0 && (f=__decf(f,32))>=0) bs="ADJ_TIMECONST|".bs - if((f-16)>=0 && (f=__decf(f,16))>=0) bs="ADJ_STATUS|".bs - if((f-8)>=0 && (f=__decf(f,8))>=0) bs="ADJ_ESTERROR|".bs - if((f-3)>=0 && (f=__decf(f,3))>=0) bs="ADJ_MAXERROR|".bs - if((f-2)>=0 && (f=__decf(f,2))>=0) bs="ADJ_FREQUENCY|".bs - if((f-1)>=0 && (f=__decf(f,1))>=0) bs="ADJ_OFFSET|".bs + if((f & 32769) == 32769) bs="ADJ_OFFSET_SINGLESHOT|".bs + if(f & 16384) bs="ADJ_TICK|".bs + if(f & 32) bs="ADJ_TIMECONST|".bs + if(f & 16) bs="ADJ_STATUS|".bs + if(f & 8) bs="ADJ_ESTERROR|".bs + if(f & 4) bs="ADJ_MAXERROR|".bs + if(f & 2) bs="ADJ_FREQUENCY|".bs + if(f & 1 && ((f & 32769) != 32769)) bs="ADJ_OFFSET|".bs return substr(bs,0,strlen(bs)-1) } @@ -3681,24 +3685,25 @@ function _shutdown_how_str(how) { } function _reboot_magic_str(magic) { - if(magic==-18751827) return "LINUX_REBOOT_MAGIC1" + if(magic==0xFEE1DEAD) return "LINUX_REBOOT_MAGIC1" if(magic==672274793) return "LINUX_REBOOT_MAGIC2" if(magic==85072278) return "LINUX_REBOOT_MAGIC2A" if(magic==369367448) return "LINUX_REBOOT_MAGIC2B" + if(magic==537993216) return "LINUX_REBOOT_MAGIC2C" return "" } function _reboot_flag_str(flag) { - if(flag==19088743) return "LINUX_REBOOT_CMD_RESTART" - if(flag==-839974621) return "LINUX_REBOOT_CMD_HALT" - if(flag==1126301404) return "LINUX_REBOOT_CMD_POWER_OFF" - if(flag==-1582119980) return "LINUX_REBOOT_CMD_RESTART2" - if(flag==-1985229329) return "LINUX_REBOOT_CMD_CAD_ON" - if(flag==0) return "LINUX_REBOOT_CMD_CAD_OFF" + if(flag==0x01234567) return "LINUX_REBOOT_CMD_RESTART" + if(flag==0xCDEF0123) return "LINUX_REBOOT_CMD_HALT" + if(flag==0x4321FEDC) return "LINUX_REBOOT_CMD_POWER_OFF" + if(flag==0xA1B2C3D4) return "LINUX_REBOOT_CMD_RESTART2" + if(flag==0x89ABCDEF) return "LINUX_REBOOT_CMD_CAD_ON" + if(flag==0x00000000) return "LINUX_REBOOT_CMD_CAD_OFF" return "" } -function _waitid_which_str(which) { +function _waitid_which_str(flag) { if(flag==0) return "P_ALL" if(flag==1) return "P_PID" if(flag==2) return "P_PGID" @@ -3706,12 +3711,10 @@ function _waitid_which_str(which) { } function _wait4_opt_str(f) { - if((f-16777216)>=0 && (f=__decf(f,16777216))>=0) - bs="WNOWAIT|".bs - if((f-8)>=0 && (f=__decf(f,8))>=0) bs="WCONTINUED|".bs - if((f-4)>=0 && (f=__decf(f,4))>=0) bs="WEXITED|".bs - if((f-2)>=0 && (f=__decf(f,2))>=0) bs="WSTOPPED|".bs - if((f-1)>=0 && (f=__decf(f,1))>=0) bs="WNOHANG|".bs + if(f & 0x01000000) bs="WNOWAIT|".bs + if(f & 8) bs="WCONTINUED|".bs + if(f & 4) bs="WEXITED|".bs + if(f & 2) bs="WSTOPPED|".bs + if(f & 1) bs="WNOHANG|".bs return substr(bs,0,strlen(bs)-1) } - |