X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=tests%2Fkernel%2Fprobe.c;h=5f2c484b0a0b40802a63d7525c254357a15f7c8e;hb=31efe1f8304f09a4f4139c387a98d3215cd423c9;hp=6c6b28d400a6dae4b79c3083cdbe9d7b47adc159;hpb=abfc20167f6cf648f80e35b88d2d4e02b9da991e;p=lttv.git diff --git a/tests/kernel/probe.c b/tests/kernel/probe.c index 6c6b28d4..5f2c484b 100644 --- a/tests/kernel/probe.c +++ b/tests/kernel/probe.c @@ -14,25 +14,43 @@ /* function to install */ #define DO_MARK1_FORMAT "%d" -asmlinkage void do_mark1(const char *format, int value) +void do_mark1(const char *format, ...) { - __mark_check_format(DO_MARK1_FORMAT, value); + va_list ap; + int value; + + va_start(ap, format); + value = va_arg(ap, int); printk("value is %d\n", value); + + va_end(ap); } -#define DO_MARK2_FORMAT "%d %s" -asmlinkage void do_mark2(const char *format, int value, const char *string) +void do_mark2(const char *format, ...) { - __mark_check_format(DO_MARK2_FORMAT, value, string); - printk("value is %d %s\n", value, string); + va_list ap; + + va_start(ap, format); + vprintk(format, ap); + va_end(ap); + printk("\n"); } #define DO_MARK3_FORMAT "%d %s %s" -asmlinkage void do_mark3(const char *format, int value, const char *s1, - const char *s2) +void do_mark3(const char *format, ...) { - __mark_check_format(DO_MARK3_FORMAT, value, s1, s2); - printk("value is %d %s %s\n", value, s1, s2); + va_list ap; + int value; + const char *s1, *s2; + + va_start(ap, format); + value = va_arg(ap, int); + s1 = va_arg(ap, const char*); + s2 = va_arg(ap, const char *); + + printk("value is %d %s %s\n", + value, s1, s2); + va_end(ap); } int init_module(void) @@ -40,32 +58,31 @@ int init_module(void) int result; result = marker_set_probe("subsys_mark1", DO_MARK1_FORMAT, (marker_probe_func*)do_mark1); - if(result) goto end; - result = marker_set_probe("subsys_mark2", DO_MARK2_FORMAT, + if(!result) goto end; + result = marker_set_probe("subsys_mark2", NULL, (marker_probe_func*)do_mark2); - if(result) goto cleanup1; + if(!result) goto cleanup1; result = marker_set_probe("subsys_mark3", DO_MARK3_FORMAT, (marker_probe_func*)do_mark3); - if(result) goto cleanup2; + if(!result) goto cleanup2; - return -result; + return 0; cleanup2: - marker_disable_probe("subsys_mark2", (marker_probe_func*)do_mark2); + marker_remove_probe((marker_probe_func*)do_mark2); cleanup1: - marker_disable_probe("subsys_mark1", (marker_probe_func*)do_mark1); + marker_remove_probe((marker_probe_func*)do_mark1); end: - return -result; + return -EPERM; } void cleanup_module(void) { - marker_disable_probe("subsys_mark1", (marker_probe_func*)do_mark1); - marker_disable_probe("subsys_mark2", (marker_probe_func*)do_mark2); - marker_disable_probe("subsys_mark3", (marker_probe_func*)do_mark3); + marker_remove_probe((marker_probe_func*)do_mark1); + marker_remove_probe((marker_probe_func*)do_mark2); + marker_remove_probe((marker_probe_func*)do_mark3); } MODULE_LICENSE("GPL"); MODULE_AUTHOR("Mathieu Desnoyers"); MODULE_DESCRIPTION("Probe"); -