feat: Add Process Manager, Limine Framebuffer GUI, RTL8139 Net stack, and extended UNIX commands

This commit is contained in:
RarDog
2026-09-02 20:10:02 +03:00
parent 521f7ed9ce
commit aa32cffd15
24 changed files with 1446 additions and 72 deletions
+47
View File
@@ -0,0 +1,47 @@
#pragma once
#include "stdint.h"
#include "stddef.h"
#ifdef __cplusplus
extern "C" {
#endif
// 32-bit ARGB Color Palette Helpers
#define FB_COLOR(r, g, b) (((uint32_t)(r) << 16) | ((uint32_t)(g) << 8) | (uint32_t)(b))
#define FB_BLACK FB_COLOR(15, 17, 23)
#define FB_WHITE FB_COLOR(240, 246, 252)
#define FB_DARK_GRAY FB_COLOR(33, 38, 45)
#define FB_LIGHT_GRAY FB_COLOR(139, 148, 158)
#define FB_BLUE FB_COLOR(88, 166, 255)
#define FB_NAVY FB_COLOR(22, 27, 34)
#define FB_GREEN FB_COLOR(63, 185, 80)
#define FB_RED FB_COLOR(248, 81, 73)
#define FB_ORANGE FB_COLOR(210, 153, 34)
#define FB_PURPLE FB_COLOR(188, 140, 255)
#define FB_CYAN FB_COLOR(56, 189, 248)
typedef struct {
uint32_t *buffer;
uint32_t width;
uint32_t height;
uint32_t pitch;
uint32_t bpp;
int is_initialized;
} fb_context_t;
extern fb_context_t g_fb;
// Framebuffer API
int fb_init(void);
void fb_clear(uint32_t color);
void fb_draw_pixel(int x, int y, uint32_t color);
void fb_fill_rect(int x, int y, int w, int h, uint32_t color);
void fb_draw_rect(int x, int y, int w, int h, uint32_t color);
void fb_draw_char(int x, int y, char c, uint32_t fg, uint32_t bg);
void fb_draw_string(int x, int y, const char *str, uint32_t fg, uint32_t bg);
void fb_draw_window(int x, int y, int w, int h, const char *title);
void fb_demo_desktop(void);
#ifdef __cplusplus
}
#endif
+6
View File
@@ -0,0 +1,6 @@
#pragma once
#include "stdint.h"
// Standard 8x16 VGA bitmap font for characters 32 (' ') to 127
// Each character is 16 bytes (1 byte per row, 8 bits wide)
extern const uint8_t font8x16_data[96][16];
+31
View File
@@ -0,0 +1,31 @@
#pragma once
#include "stdint.h"
#include "stddef.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
uint16_t io_base;
uint8_t mac[6];
uint8_t rx_buffer[8192 + 16 + 1500] __attribute__((aligned(4)));
uint8_t tx_buffers[4][1536] __attribute__((aligned(4)));
uint8_t tx_cur;
int is_initialized;
uint64_t rx_packets;
uint64_t tx_packets;
uint64_t rx_bytes;
uint64_t tx_bytes;
} rtl8139_dev_t;
extern rtl8139_dev_t g_rtl8139;
// RTL8139 API
int rtl8139_init(void);
int rtl8139_send_packet(const void *data, uint16_t len);
int rtl8139_poll_packet(void *out_buf, uint16_t max_len);
#ifdef __cplusplus
}
#endif