The open source OpenXR runtime
1// Copyright 2020, Collabora, Ltd.
2// Copyright 2024-2025, NVIDIA CORPORATION.
3// SPDX-License-Identifier: BSL-1.0
4/*!
5 * @file
6 * @brief Main file for Monado service.
7 * @author Pete Black <pblack@collabora.com>
8 * @author Jakob Bornecrantz <jakob@collabora.com>
9 * @ingroup ipc
10 */
11
12#include "xrt/xrt_config_os.h"
13
14#include "util/u_debug.h"
15#include "util/u_metrics.h"
16#include "util/u_logging.h"
17#include "util/u_trace_marker.h"
18
19#ifdef XRT_OS_WINDOWS
20#include "util/u_windows.h"
21#endif
22
23#include "server/ipc_server_interface.h"
24
25#include "target_lists.h"
26
27DEBUG_GET_ONCE_BOOL_OPTION(exit_on_disconnect, "IPC_EXIT_ON_DISCONNECT", false)
28
29
30// Insert the on load constructor to init trace marker.
31U_TRACE_TARGET_SETUP(U_TRACE_WHICH_SERVICE)
32
33
34int
35main(int argc, char *argv[])
36{
37#ifdef XRT_OS_WINDOWS
38 u_win_try_privilege_or_priority_from_args(U_LOGGING_INFO, argc, argv);
39#endif
40
41 u_trace_marker_init();
42 u_metrics_init();
43
44 struct ipc_server_main_info ismi = {
45 .udgci =
46 {
47 .window_title = "Monado! ✨⚡🔥",
48 .open = U_DEBUG_GUI_OPEN_AUTO,
49 },
50 .exit_on_disconnect = debug_get_bool_option_exit_on_disconnect(),
51 };
52
53 int ret = ipc_server_main(argc, argv, &ismi);
54
55 u_metrics_close();
56
57 return ret;
58}