#ifndef APP_RUNTIME_H
#define APP_RUNTIME_H

#include <stdint.h>
#include "FreeRTOS.h"
#include "queue.h"
#include "semphr.h"
#include "task.h"
#include "config.h"

#ifdef __cplusplus
extern "C" {
#endif

extern QueueHandle_t xTcpRxQueue;
extern QueueHandle_t xConfigQueue;
extern QueueHandle_t xLinkTxQueues[CONFIG_LINK_COUNT];
extern SemaphoreHandle_t xNetSemaphore;

extern TaskHandle_t xUartRxTaskHandle;
extern TaskHandle_t xConfigTaskHandle;
extern volatile BaseType_t g_netif_ready;
extern volatile uint32_t g_netif_phase;
extern volatile int32_t g_netif_add_err;
extern volatile int32_t g_netif_set_default_err;
extern volatile int32_t g_netif_set_link_down_err;
extern volatile int32_t g_netif_set_up_err;
extern volatile int32_t g_netif_init_ok;

void app_start_network_tasks(void);

#ifdef __cplusplus
}
#endif

#endif
