summaryrefslogtreecommitdiff
path: root/sys/src/9/port/dtracysys.c
diff options
context:
space:
mode:
authoraiju <devnull@localhost>2018-12-13 10:42:49 +0000
committeraiju <devnull@localhost>2018-12-13 10:42:49 +0000
commitc7304ea03caf68cf035d14f50f6e24e0c16ccdfe (patch)
treef4b5e8047078c41caa0d98cc0ea3d5012c4d17f9 /sys/src/9/port/dtracysys.c
parentdae5a44111dfb21a714824a5cec2abee4f9f9080 (diff)
dtracy: get rid of DTName struct, support more than three parts in a probe name, wildcard matching
Diffstat (limited to 'sys/src/9/port/dtracysys.c')
-rw-r--r--sys/src/9/port/dtracysys.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/sys/src/9/port/dtracysys.c b/sys/src/9/port/dtracysys.c
index 859dd9f84..1e525052d 100644
--- a/sys/src/9/port/dtracysys.c
+++ b/sys/src/9/port/dtracysys.c
@@ -215,14 +215,11 @@ static Syscall *wraptab[]={
};
static void
-sysprovide(DTProvider *prov, DTName)
+sysprovide(DTProvider *prov)
{
- static int provided;
- char buf[32];
+ char buf[32], pname[32];
int i;
- if(provided) return;
- provided = 1;
dtpsysentry = smalloc(sizeof(Syscall *) * nsyscall);
dtpsysreturn = smalloc(sizeof(Syscall *) * nsyscall);
for(i = 0; i < nsyscall; i++){
@@ -230,8 +227,10 @@ sysprovide(DTProvider *prov, DTName)
strecpy(buf, buf + sizeof(buf), sysctab[i]);
if(isupper(buf[0])) buf[0] += 'a' - 'A';
if(i == SYSR1) strcpy(buf, "r1");
- dtpsysentry[i] = dtpnew((DTName){"sys", buf, "entry"}, prov, (void *) i);
- dtpsysreturn[i] = dtpnew((DTName){"sys", buf, "return"}, prov, (void *) i);
+ snprint(pname, sizeof(pname), "sys:%s:entry", buf);
+ dtpsysentry[i] = dtpnew(pname, prov, (void *) i);
+ snprint(pname, sizeof(pname), "sys:%s:return", buf);
+ dtpsysreturn[i] = dtpnew(pname, prov, (void *) i);
}
}