94 (void)setvbuf(stdout, NULL, _IONBF, 0);
96 status = rte_posix_osadapter_register_all();
97 if (status != RTE_STATUS_OK)
106 (void)fprintf(stderr,
"rte_posix_osadapter_register_all() failed: %s\n", rte_status_to_string(status));
116 (void)rte_platform_realtime_init(80U);
125 const char *lvl_env = getenv(
"RTE_RBC_LOG_LEVEL");
128 if ((lvl_env != NULL) && (rte_log_level_from_string(lvl_env, &lvl) == RTE_STATUS_OK))
130 rte_log_write_event(RTE_LOG_LEVEL_INFO,
"-", 0U,
"MAIN",
"-",
"LOG_LEVEL",
131 "set from RTE_RBC_LOG_LEVEL", lvl_env);
132 rte_log_set_level(lvl);
141 rte_posix_osadapter_reboot_set_argv(argc, argv);
149 if (status != RTE_STATUS_OK)
153 (void)snprintf(msg,
sizeof(msg),
"rte_checksum_crc64_init() failed: %s", rte_status_to_string(status));
154 rte_log_write(RTE_LOG_LEVEL_ERROR,
"MAIN", msg);
162 status = rte_watchdog_manager_initialize();
163 if (status != RTE_STATUS_OK)
167 (void)snprintf(msg,
sizeof(msg),
"rte_watchdog_manager_initialize() failed: %s",
168 rte_status_to_string(status));
169 rte_log_write(RTE_LOG_LEVEL_ERROR,
"MAIN", msg);
183 (void)rte_log_init();
192 status = rte_appmanager_install_default_signal_handlers();
193 if (status != RTE_STATUS_OK)
197 (void)snprintf(msg,
sizeof(msg),
"rte_appmanager_install_default_signal_handlers(): %s - continuing anyway",
198 rte_status_to_string(status));
199 rte_log_write(RTE_LOG_LEVEL_WARNING,
"MAIN", msg);
208 if (status != RTE_STATUS_OK)
212 (void)snprintf(msg,
sizeof(msg),
"rte_safestate_register_handler(REBOOT): %s - continuing anyway",
213 rte_status_to_string(status));
214 rte_log_write(RTE_LOG_LEVEL_WARNING,
"MAIN", msg);
218 if (status != RTE_STATUS_OK)
222 (void)snprintf(msg,
sizeof(msg),
"rte_safestate_register_handler(DEGRADED): %s - continuing anyway",
223 rte_status_to_string(status));
224 rte_log_write(RTE_LOG_LEVEL_WARNING,
"MAIN", msg);
231 if (status != RTE_STATUS_OK)
235 (void)snprintf(msg,
sizeof(msg),
"rte_safestate_register_handler(SAFE): %s - continuing anyway",
236 rte_status_to_string(status));
237 rte_log_write(RTE_LOG_LEVEL_WARNING,
"MAIN", msg);
240 return RTE_STATUS_OK;
247 int32_t line,
const char *message)
261 rte_log_write_event(RTE_LOG_LEVEL_WARNING,
"", 0U,
"REBOOT",
"-",
"REBOOT",
262 "FAULTED - simulating hardware reboot", extra);
268 (void)nanosleep(&ts, NULL);
276 (void)snprintf(extra,
sizeof(extra),
"Reason=%u", (
unsigned int)reason);
277 rte_log_write_event(RTE_LOG_LEVEL_WARNING,
"", 0U,
"REBOOT",
"-",
"REBOOT",
278 "REBOOT requested - re-execing process image", extra);
279 (void)rte_reboot_request((uint16_t)reason);
295 int32_t line,
const char *message)
298 const rte_log_level_t log_level =
299 (reason == RTE_SAFESTATE_REASON_SETUP_AFTER_INIT) ? RTE_LOG_LEVEL_ERROR : RTE_LOG_LEVEL_WARNING;
302 (void)snprintf(extra,
sizeof(extra),
"Reason=%u File=%s Line=%d", (
unsigned int)reason,
303 (file != NULL) ? file :
"?", (
int)line);
304 rte_log_write_event(log_level,
"", 0U,
"SAFESTATE",
"-",
"DEGRADED",
305 (message != NULL) ? message :
"DEGRADED reported", extra);
static void degraded_safestate_handler(rte_safestate_level_t level, rte_safestate_reason_t reason, const char *file, int32_t line, const char *message)
static void reboot_safestate_handler(rte_safestate_level_t level, rte_safestate_reason_t reason, const char *file, int32_t line, const char *message)
rte_status_t app_main_common_init(int argc, char **argv)
Runs this process's one-time runtime setup, common to every role: unbuffered stdout,...
static void safe_safestate_handler(rte_safestate_level_t level, rte_safestate_reason_t reason, const char *file, int32_t line, const char *message)
Process-wide runtime setup shared by every one of this example's binaries (main.c for A/B,...