diff options
author | aiju <devnull@localhost> | 2018-12-13 10:42:49 +0000 |
---|---|---|
committer | aiju <devnull@localhost> | 2018-12-13 10:42:49 +0000 |
commit | c7304ea03caf68cf035d14f50f6e24e0c16ccdfe (patch) | |
tree | f4b5e8047078c41caa0d98cc0ea3d5012c4d17f9 /sys/src/9/port/dtracysys.c | |
parent | dae5a44111dfb21a714824a5cec2abee4f9f9080 (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.c | 13 |
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); } } |