From 74f2951cc3b5d4f3716e23d284a2b3a0767eb5c2 Mon Sep 17 00:00:00 2001 From: Przemyslaw Pawelczyk Date: Sat, 13 Jun 2009 16:58:30 +0200 Subject: Add pgrp() context tapset function. Describe sid(). * tapset/context.stp: Add pgrp() function. * testsuite/buildok/context_test.stp: Add pgrp() call. * stapfuncs.3stap.in: Describe pgrp() and sid(). Signed-off-by: Josh Stone --- stapfuncs.3stap.in | 6 ++++++ tapset/context.stp | 13 +++++++++++++ testsuite/buildok/context_test.stp | 1 + 3 files changed, 20 insertions(+) diff --git a/stapfuncs.3stap.in b/stapfuncs.3stap.in index b9326fde..518ff2bb 100644 --- a/stapfuncs.3stap.in +++ b/stapfuncs.3stap.in @@ -210,6 +210,12 @@ Return the id of the current process. ppid:long () Return the id of the parent process. .TP +pgrp:long () +Return the pgrp of the current process. +.TP +sid:long () +Return the sid of the current process. +.TP uid:long () Return the uid of the current process. .TP diff --git a/tapset/context.stp b/tapset/context.stp index 468421ae..5be9f21f 100644 --- a/tapset/context.stp +++ b/tapset/context.stp @@ -63,6 +63,19 @@ function ppid:long () %{ /* pure */ #endif %} +/** + * sfunction pgrp - Returns the process group ID of the current process. + */ +function pgrp:long () %{ /* pure */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24) + struct signal_struct *ss = kread( &(current->signal) ); + THIS->__retvalue = kread ( &(ss->pgrp) ); + CATCH_DEREF_FAULT(); +#else + THIS->__retvalue = task_pgrp_nr_ns(current, &init_pid_ns); +#endif +%} + /** * sfunction sid - Returns the session ID of the current process. * diff --git a/testsuite/buildok/context_test.stp b/testsuite/buildok/context_test.stp index acc4ea07..e58c8997 100755 --- a/testsuite/buildok/context_test.stp +++ b/testsuite/buildok/context_test.stp @@ -18,5 +18,6 @@ probe begin { printf("gid is %d\n", gid()) printf("egid is %d\n", egid()) printf("pp is %s\n", pp()) + printf("pgrp is %d\n", pgrp()) printf("sid is %d\n", sid()) } -- cgit