summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tapset/ChangeLog5
-rw-r--r--tapset/socket.stp20
2 files changed, 17 insertions, 8 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog
index 54391bc3..ac879021 100644
--- a/tapset/ChangeLog
+++ b/tapset/ChangeLog
@@ -1,5 +1,10 @@
2007-01-23 Mike Mason <mmlnx@us.ibm.com>
+ * socket.stp: Fixed bit checking method in sock_flags_num2str()
+ to match how it's done in the kernel.
+
+2007-01-23 Mike Mason <mmlnx@us.ibm.com>
+
* socket.stp: New sockets tapset.
2007-01-23 Mike Mason <mmlnx@us.ibm.com>
diff --git a/tapset/socket.stp b/tapset/socket.stp
index 61eee6dc..49eca217 100644
--- a/tapset/socket.stp
+++ b/tapset/socket.stp
@@ -8,6 +8,7 @@
%{
#include <net/sock.h>
+#include <asm/bitops.h>
%}
#################
@@ -52,7 +53,7 @@ probe socket.send = socket.sendmsg.return,
*
* Variables:
* name Name of this probe
- * size Size of message sent (in bytes) or
+ * size Size of message received (in bytes) or
* error code if success = 0
* protocol Protocol value
* family Protocol family value
@@ -511,13 +512,16 @@ function sock_flags_num2str:string (flags:long)
char str[60];
str[0] = '\0';
-
- if (THIS->flags & SOCK_ASYNC_NOSPACE) strcat (str, "ASYNC_NOSPACE|");
- if (THIS->flags & SOCK_ASYNC_WAITDATA) strcat (str, "ASYNC_WAITDATA|");
- if (THIS->flags & SOCK_NOSPACE) strcat (str, "NOSPACE|");
- if (THIS->flags & SOCK_PASSCRED) strcat (str, "PASSCRED|");
- if (THIS->flags & SOCK_PASSSEC) strcat (str, "PASSSEC|");
-
+ if (test_bit (SOCK_ASYNC_NOSPACE, &THIS->flags))
+ strcat (str, "ASYNC_NOSPACE|");
+ if (test_bit (SOCK_ASYNC_WAITDATA, &THIS->flags))
+ strcat (str, "ASYNC_WAITDATA|");
+ if (test_bit (SOCK_NOSPACE, &THIS->flags))
+ strcat (str, "NOSPACE|");
+ if (test_bit (SOCK_PASSCRED, &THIS->flags))
+ strcat (str, "PASSCRED|");
+ if (test_bit (SOCK_PASSSEC, &THIS->flags))
+ strcat (str, "PASSSEC|");
if (str[0] != '\0') str[strlen(str)-1] = '\0';
strlcpy (THIS->__retvalue, str, MAXSTRINGLEN);
%}