mirror of
https://github.com/Leonmmcoset/cleonos.git
synced 2026-04-21 10:40:00 +00:00
38 lines
846 B
C
38 lines
846 B
C
#ifndef CLKS_SERVICE_H
|
|
#define CLKS_SERVICE_H
|
|
|
|
#include <clks/types.h>
|
|
|
|
#define CLKS_SERVICE_NAME_MAX 24U
|
|
|
|
enum clks_service_id {
|
|
CLKS_SERVICE_LOG = 1,
|
|
CLKS_SERVICE_MEM = 2,
|
|
CLKS_SERVICE_FS = 3,
|
|
CLKS_SERVICE_DRIVER = 4,
|
|
CLKS_SERVICE_SCHED = 5,
|
|
CLKS_SERVICE_KELF = 6,
|
|
};
|
|
|
|
enum clks_service_state {
|
|
CLKS_SERVICE_STATE_OFFLINE = 0,
|
|
CLKS_SERVICE_STATE_READY = 1,
|
|
CLKS_SERVICE_STATE_DEGRADED = 2,
|
|
};
|
|
|
|
struct clks_service_info {
|
|
u32 id;
|
|
char name[CLKS_SERVICE_NAME_MAX];
|
|
enum clks_service_state state;
|
|
u64 heartbeat_count;
|
|
u64 last_heartbeat_tick;
|
|
};
|
|
|
|
void clks_service_init(void);
|
|
clks_bool clks_service_heartbeat(u32 service_id, u64 tick);
|
|
u64 clks_service_count(void);
|
|
u64 clks_service_ready_count(void);
|
|
clks_bool clks_service_get(u32 service_id, struct clks_service_info *out_info);
|
|
|
|
#endif
|