Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Mar 2013 22:06:01 GMT
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 223025 for review
Message-ID:  <201303182206.r2IM617E045671@skunkworks.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@223025?ac=10

Change 223025 by rwatson@rwatson_cinnamon on 2013/03/18 22:05:51

	Properly merge userspace libtesla DTrace changes; I have clearly
	wielded P4 incorrectly when looping back changes.

Affected files ...

.. //depot/projects/ctsrd/tesla/src/sys/libtesla/tesla_dtrace.c#3 edit

Differences ...

==== //depot/projects/ctsrd/tesla/src/sys/libtesla/tesla_dtrace.c#3 (text+ko) ====

@@ -43,39 +43,66 @@
     "struct tesla_instance *");
 SDT_PROBE_DEFINE2(tesla, kernel, assert, pass, pass, "struct tesla_class *",
     "struct tesla_instance *");
-#endif
 
-/*
- * XXXRW: Several of these functions might want additional state-related
- * arguments -- e.g., next-state for transition, etc.
- */
 void
 tesla_state_transition_dtrace(struct tesla_class *tcp,
-    struct tesla_instance *tip)
+    struct tesla_instance *tip,
+    __unused const struct tesla_transitions *transp,
+    __unused uint32_t transition_index)
 {
 
-#ifdef _KERNEL
 	SDT_PROBE(tesla, kernel, , state_transition, tcp, tip, 0, 0, 0);
-#else
-#endif
 }
 
 void
-tesla_assert_fail_dtrace(struct tesla_class *tcp, struct tesla_instance *tip)
+tesla_assert_fail_dtrace(struct tesla_class *tcp, struct tesla_instance *tip,
+    __unused const struct tesla_transitions *transp)
 {
 
-#ifdef _KERNEL
-	SDT_PROBE(tesla, kernel, assert, fail, tcp, tip, 0, 0, 0);
-#else
-#endif
+	if (tip)
+	    SDT_PROBE(tesla, kernel, assert, fail, tcp, tip, 0, 0, 0);
+
+	/* XXXRW:
+	 * 'tip' could be NULL if we failed to match any automaton instances
+	 * to go with a supplied key; perhaps a separate probe?
+	 */
 }
 
 void
 tesla_assert_pass_dtrace(struct tesla_class *tcp, struct tesla_instance *tip)
 {
 
-#ifdef _KERNEL
 	SDT_PROBE(tesla, kernel, assert, pass, tcp, tip, 0, 0, 0);
-#else
-#endif
+}
+
+#else /* !_KERNEL */
+
+void
+tesla_state_transition_dtrace(__unused struct tesla_class *tcp,
+    __unused struct tesla_instance *tip,
+    __unused const struct tesla_transitions *transp,
+    __unused uint32_t transition_index)
+{
+
+	assert(0 && "DTrace not implemented in userspace");
+}
+
+void
+tesla_assert_fail_dtrace(__unused struct tesla_class *tcp,
+    __unused struct tesla_instance *tip,
+    __unused const struct tesla_transitions *transp)
+{
+
+	assert(0 && "DTrace not implemented in userspace");
+}
+
+void
+tesla_assert_pass_dtrace(__unused struct tesla_class *tcp,
+    __unused struct tesla_instance *tip)
+{
+
+	assert(0 && "DTrace not implemented in userspace");
 }
+
+#endif /* _KERNEL */
+



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201303182206.r2IM617E045671>