feat(server): Add Embedded HTTP Server & REST API, Systemd Service Manager, Multi-User Auth, Syslog, Crond, and Server Metrics

This commit is contained in:
subhobhai943 committed 2026-08-17 13:05:44 +05:30
1 parent 2f1f785cee
commit eb71ebfefb
18 files changed
+1091 -41

No files matched your search

+28
View File
@@ -0,0 +1,28 @@
#ifndef _KERNEL_CRON_H
#define _KERNEL_CRON_H
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#define MAX_CRON_JOBS 16
typedef struct cron_job {
uint32_t id;
char command[128];
uint32_t interval_sec;
uint64_t last_run_tick;
uint32_t run_count;
bool enabled;
bool in_use;
} cron_job_t;
void cron_init(void);
int cron_add_job(const char* command, uint32_t interval_sec);
int cron_remove_job(uint32_t id);
void cron_tick(void);
size_t cron_get_job_count(void);
const cron_job_t* cron_get_job(size_t index);
#endif // _KERNEL_CRON_H
+25
View File
@@ -0,0 +1,25 @@
#ifndef _KERNEL_METRICS_H
#define _KERNEL_METRICS_H
#include <stdint.h>
#include <stddef.h>
typedef struct system_metrics {
uint32_t cpu_user_pct;
uint32_t cpu_system_pct;
uint32_t cpu_idle_pct;
uint64_t mem_total_kb;
uint64_t mem_used_kb;
uint64_t mem_free_kb;
uint64_t net_rx_bytes;
uint64_t net_tx_bytes;
uint64_t net_rx_packets;
uint64_t net_tx_packets;
uint64_t disk_read_sectors;
uint64_t disk_written_sectors;
} system_metrics_t;
void metrics_init(void);
void metrics_sample(system_metrics_t* out);
#endif // _KERNEL_METRICS_H
+39
View File
@@ -0,0 +1,39 @@
#ifndef _KERNEL_SYSLOG_H
#define _KERNEL_SYSLOG_H
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#define LOG_EMERG 0
#define LOG_ALERT 1
#define LOG_CRIT 2
#define LOG_ERR 3
#define LOG_WARNING 4
#define LOG_NOTICE 5
#define LOG_INFO 6
#define LOG_DEBUG 7
#define LOG_KERN (0<<3)
#define LOG_USER (1<<3)
#define LOG_DAEMON (3<<3)
#define LOG_AUTH (4<<3)
#define LOG_SYSLOG (5<<3)
#define SYSLOG_BUFFER_SIZE 128
#define SYSLOG_MSG_MAX 128
typedef struct syslog_entry {
uint64_t timestamp;
uint8_t priority;
char facility_str[12];
char ident[24];
char message[SYSLOG_MSG_MAX];
} syslog_entry_t;
void syslog_init(void);
void syslog_write(int priority, const char* ident, const char* message);
size_t syslog_get_count(void);
const syslog_entry_t* syslog_get_entry(size_t index);
#endif // _KERNEL_SYSLOG_H