magic kernel: call do_function_direct