mirror of
https://github.com/subhobhai943/SUB-OS.git
synced 2026-10-26 00:52:50 +00:00
feat(server): Add Embedded HTTP Server & REST API, Systemd Service Manager, Multi-User Auth, Syslog, Crond, and Server Metrics
This commit is contained in:
1 parent
2f1f785cee
commit
eb71ebfefb
18 files changed
+1091
-41
No files matched your search
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in new issue
Block a user