Module Name:    src
Committed By:   hannken
Date:           Tue Jul 16 07:27:35 UTC 2019

Modified Files:
        src/external/cddl/osnet/dist/tools/ctf/cvt: fixup_tdescs.c

Log Message:
XXX: A crude hack to bring down the number of types for a
GENRIC kernel below 2**15-1 (from ~34000 to ~29800).

Remove the type attributes "volatile", "const" and "restrict",
for DTRACE these attributes are of little value.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
    src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c
diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.4 src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.5
--- src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.4	Tue Jul 16 07:26:41 2019
+++ src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c	Tue Jul 16 07:27:35 2019
@@ -41,6 +41,7 @@
 #include "ctftools.h"
 #include "hash.h"
 #include "memory.h"
+#include "traverse.h"
 
 /*
  * Due to 4432619, the 6.1 compiler will sometimes incorrectly generate pointer
@@ -320,6 +321,55 @@ fix_kmutex_private(tdata_t *td, size_t p
 	}
 }
 
+/*
+ * XXX: A crude hack to bring down the number of types for a
+ * GENRIC kernel below 2**15-1 (from ~34000 to ~29800).
+ *
+ * Remove the type attributes "volatile", "const" and "restrict",
+ * for DTRACE these attributes are of little value.
+ */
+
+static int
+fix_kill_attr_cb(tdesc_t *tdp, tdesc_t **tdpp, void *private __unused)
+{
+
+	while (tdp->t_type == VOLATILE ||
+	    tdp->t_type == RESTRICT ||
+	    tdp->t_type == CONST)
+		tdp = tdp->t_tdesc;
+
+	*tdpp = tdp;
+
+	return 1;
+}
+
+static tdtrav_cb_f fix_kill_attr_tab[] = {
+	NULL,
+	NULL,			/* intrinsic */
+	NULL,			/* pointer */
+	NULL,			/* reference */
+	NULL,			/* array */
+	NULL,			/* function */
+	NULL,			/* struct */
+	NULL,			/* union */
+	NULL,			/* class */
+	NULL,			/* enum */
+	NULL		,	/* forward */
+	NULL,			/* typedef */
+	NULL,			/* typedef unres */
+	fix_kill_attr_cb,	/* volatile */
+	fix_kill_attr_cb,	/* const */
+	fix_kill_attr_cb,	/* restrict */
+};
+
+static void
+fix_kill_attr(tdata_t *td, size_t ptrsize)
+{
+
+	(void) iitraverse_hash(td->td_iihash, &td->td_curvgen,
+	    fix_kill_attr_tab, NULL, NULL, NULL);
+}
+
 #endif /* __NetBSD__ */
 
 void
@@ -328,5 +378,6 @@ cvt_fixups(tdata_t *td, size_t ptrsize)
 	fix_small_cpu_struct(td, ptrsize);
 #ifdef __NetBSD__
 	fix_kmutex_private(td, ptrsize);
+	fix_kill_attr(td, ptrsize);
 #endif
 }

Reply via email to