// Copyright 2020 Fuzhou Rockchip Electronics Co., Ltd. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include #include #include #include #include #include #include #include #include #include #include #include "call_fun_ipc.h" #include "common.h" int examples(void* data); struct FunMap map[] = { {"examples", &examples} }; static void main_exit(void) { printf("server %s\n", __func__); call_fun_ipc_server_deinit(); } void signal_crash_handler(int sig) { exit(-1); } void signal_exit_handler(int sig) { exit(0); } int examples(void* data) { struct Examples_s *para = data; printf("%s r = %d, g = %d, b = %d\n", __func__, para->r, para->g, para->b); para->ret = 100; } int main( int argc , char ** argv) { GMainLoop *main_loop; atexit(main_exit); signal(SIGTERM, signal_exit_handler); signal(SIGINT, signal_exit_handler); signal(SIGPIPE, SIG_IGN); signal(SIGBUS, signal_crash_handler); signal(SIGSEGV, signal_crash_handler); signal(SIGFPE, signal_crash_handler); signal(SIGABRT, signal_crash_handler); call_fun_ipc_server_init(map, sizeof(map) / sizeof(struct FunMap), DBUS_NAME, DBUS_IF, DBUS_PATH, 0); main_loop = g_main_loop_new(NULL, FALSE); printf("call_fun_ipc_demo_server init\n"); g_main_loop_run(main_loop); if (main_loop) g_main_loop_unref(main_loop); return 0; }