-static
-int init_type_callstack_kernel(void)
-{
- unsigned long func;
- const char *func_name = "stack_trace_save";
-
- if (save_func_kernel)
- return 0;
- func = kallsyms_lookup_funcptr(func_name);
- if (!func) {
- printk(KERN_WARNING "LTTng: symbol lookup failed: %s\n",
- func_name);
- return -EINVAL;
- }
- save_func_kernel = (void *) func;
- return 0;
-}
-
-static
-int init_type_callstack_user(void)
-{
- unsigned long func;
- const char *func_name = "stack_trace_save_user";
-
- if (save_func_user)
- return 0;
- func = kallsyms_lookup_funcptr(func_name);
- if (!func) {
- printk(KERN_WARNING "LTTng: symbol lookup failed: %s\n",
- func_name);
- return -EINVAL;
- }
- save_func_user = (void *) func;
- return 0;
-}
-
-static
-int init_type(enum lttng_cs_ctx_modes mode)
-{
- switch (mode) {
- case CALLSTACK_KERNEL:
- return init_type_callstack_kernel();
- case CALLSTACK_USER:
- return init_type_callstack_user();
- default:
- return -EINVAL;
- }
-}
-