[refactor] Organize INT

This commit is contained in:
2026-06-05 18:29:11 +08:00
Unverified
parent 7c66610c13
commit da03b301fb
17 changed files with 79 additions and 59 deletions
+11 -11
View File
@@ -216,7 +216,7 @@ static EFI_STATUS find_mbr_partition(struct block_dev *dev, UINT64 *StartLBA) {
struct MBRPart *Parts = (struct MBRPart*)(Buf + 446);
// Verify at least one non-zero partition entry exists
BOOLEAN has_part = FALSE;
for (int i = 0; i < 4; i++) {
for (SSINT32 i = 0; i < 4; i++) {
if (Parts[i].Type != 0x00 && Parts[i].Type != 0xEE) {
has_part = TRUE;
break;
@@ -224,7 +224,7 @@ static EFI_STATUS find_mbr_partition(struct block_dev *dev, UINT64 *StartLBA) {
}
if (!has_part) { kfree(Buf); return EFI_NOT_FOUND; }
for (int i = 0; i < 4; i++) {
for (SSINT32 i = 0; i < 4; i++) {
UINT8 t = Parts[i].Type;
if (t == 0x00 || t == 0xEE) continue;
if (t == MBR_TYPE_FAT12 || t == MBR_TYPE_FAT16 ||
@@ -238,7 +238,7 @@ static EFI_STATUS find_mbr_partition(struct block_dev *dev, UINT64 *StartLBA) {
}
// Fallback: first non-empty partition
for (int i = 0; i < 4; i++) {
for (SSINT32 i = 0; i < 4; i++) {
if (Parts[i].Type != 0x00) {
*StartLBA = Parts[i].LBABegin;
kfree(Buf);
@@ -361,7 +361,7 @@ static EFI_STATUS fat_init(struct fat_fs *fs, struct block_dev *dev, UINT64 Part
static UINT8 lfn_checksum(const UINT8 *SFN) {
UINT8 sum = 0;
for (int i = 0; i < 11; i++)
for (SSINT32 i = 0; i < 11; i++)
sum = ((sum & 1) ? 0x80 : 0) + (sum >> 1) + SFN[i];
return sum;
}
@@ -381,17 +381,17 @@ static void lfn_reset(struct lfn_state *lfn) {
static void lfn_add(struct lfn_state *lfn, const UINT8 *E) {
if (lfn->count >= LFN_MAX_FRAGS) return;
UINTN pos = 0;
for (int i = 0; i < 5 && pos < LFN_FRAG_SIZE; i++) {
for (SSINT32 i = 0; i < 5 && pos < LFN_FRAG_SIZE; i++) {
CHAR16 c = *(const UINT16*)(E + 1 + i * 2);
if (c == 0x0000 || c == 0xFFFF) { lfn->frags[lfn->count][pos] = 0; return; }
lfn->frags[lfn->count][pos++] = c;
}
for (int i = 0; i < 6 && pos < LFN_FRAG_SIZE; i++) {
for (SSINT32 i = 0; i < 6 && pos < LFN_FRAG_SIZE; i++) {
CHAR16 c = *(const UINT16*)(E + 14 + i * 2);
if (c == 0x0000 || c == 0xFFFF) { lfn->frags[lfn->count][pos] = 0; return; }
lfn->frags[lfn->count][pos++] = c;
}
for (int i = 0; i < 2 && pos < LFN_FRAG_SIZE; i++) {
for (SSINT32 i = 0; i < 2 && pos < LFN_FRAG_SIZE; i++) {
CHAR16 c = *(const UINT16*)(E + 28 + i * 2);
if (c == 0x0000 || c == 0xFFFF) { lfn->frags[lfn->count][pos] = 0; return; }
lfn->frags[lfn->count][pos++] = c;
@@ -413,11 +413,11 @@ static void lfn_build(struct lfn_state *lfn, CHAR16 *out, UINTN out_size) {
static void sfn_to_name(const UINT8 *E, CHAR16 *out, UINTN out_size) {
UINTN pos = 0;
for (int i = 0; i < 8 && pos < out_size - 1; i++)
for (SSINT32 i = 0; i < 8 && pos < out_size - 1; i++)
if (E[i] != ' ') out[pos++] = E[i];
UINTN ext_start = pos;
BOOLEAN has_ext = FALSE;
for (int i = 8; i < 11 && pos < out_size - 1; i++) {
for (SSINT32 i = 8; i < 11 && pos < out_size - 1; i++) {
if (E[i] != ' ') {
if (!has_ext) { out[pos++] = '.'; has_ext = TRUE; ext_start = pos; }
out[pos++] = E[i];
@@ -533,7 +533,7 @@ static BOOLEAN g_fs_inited = FALSE;
struct list_ctx {
struct fat_fs *fs;
int depth;
SSINT32 depth;
};
static void name_to_ascii(const CHAR16 *Name, char *Ascii, UINTN ascii_sz) {
@@ -550,7 +550,7 @@ static void name_to_ascii(const CHAR16 *Name, char *Ascii, UINTN ascii_sz) {
static void list_callback(void *ctx, const CHAR16 *Name, UINT8 Attr,
UINT32 Size, UINT32 FirstClus) {
struct list_ctx *lc = (struct list_ctx*)ctx;
for (int i = 0; i < lc->depth; i++) serial_write(" ");
for (SSINT32 i = 0; i < lc->depth; i++) serial_write(" ");
serial_write(Attr & 0x10 ? "[DIR] " : "[FILE] ");
+7 -7
View File
@@ -86,7 +86,7 @@ layer_t* layer_create(const char* name, layer_type_t type, UINT32 w, UINT32 h) {
const char* s = name;
char* d = layer->name;
for (int i = 0; i < LAYER_NAME_LEN - 1 && *s; i++) {
for (SSINT32 i = 0; i < LAYER_NAME_LEN - 1 && *s; i++) {
*d++ = *s++;
}
*d = '\0';
@@ -149,14 +149,14 @@ layer_t* layer_get_focused(void) {
return g_focused;
}
void layer_set_z(layer_t* layer, int z) {
void layer_set_z(layer_t* layer, SSINT32 z) {
if (!layer) return;
layer_remove(layer);
layer->z = z;
layer_insert_sorted(layer);
}
void layer_set_pos(layer_t* layer, int x, int y) {
void layer_set_pos(layer_t* layer, SSINT32 x, SSINT32 y) {
if (!layer) return;
layer->x = x;
layer->y = y;
@@ -281,14 +281,14 @@ void layer_compositor_task(void) {
layer_t* cur = g_layer_list;
while (cur) {
if (cur->visible && cur->buffer) {
int sx = 0, sy = 0;
int dx = cur->x, dy = cur->y;
SSINT32 sx = 0, sy = 0;
SSINT32 dx = cur->x, dy = cur->y;
UINT32 sw = cur->w, sh = cur->h;
if (dx < 0) { sx = -dx; sw -= sx; dx = 0; }
if (dy < 0) { sy = -dy; sh -= sy; dy = 0; }
if (dx + (int)sw > (int)hr) sw = hr - dx;
if (dy + (int)sh > (int)vr) sh = vr - dy;
if (dx + (SSINT32)sw > (SSINT32)hr) sw = hr - dx;
if (dy + (SSINT32)sh > (SSINT32)vr) sh = vr - dy;
if (sw == 0 || sh == 0) { cur = cur->next; continue; }
for (UINT32 row = 0; row < sh; row++) {
+1 -1
View File
@@ -41,7 +41,7 @@ static void tss_set_descriptor(UINT32 index) {
void gdt_init(void) {
serial_write("GDT: initializing\n");
for (int i = 0; i < 7; i++) {
for (SSINT32 i = 0; i < 7; i++) {
g_gdt[i] = {0};
}
+2 -2
View File
@@ -47,13 +47,13 @@ void idt_init(void) {
serial_write("IDT: initializing 256 entries\n");
// Clear IDT
for (int i = 0; i < 256; i++) {
for (SSINT32 i = 0; i < 256; i++) {
g_idt[i] = {0};
g_handlers[i] = NULL;
}
// Install all 256 ISR stubs
for (int i = 0; i < 256; i++) {
for (SSINT32 i = 0; i < 256; i++) {
idt_set_entry(i, (UINT64)isr_stub_table[i]);
}
+2 -2
View File
@@ -173,7 +173,7 @@ extern "C" void kernel_main() {
// Create window 1 (centered)
layer_t* win1 = layer_create("window_1", LAYER_TYPE_WINDOW, 300, 200);
if (win1) {
layer_set_pos(win1, (int)(g_gfx.hr / 2) - 150, (int)(g_gfx.vr / 2) - 100);
layer_set_pos(win1, (SSINT32)(g_gfx.hr / 2) - 150, (SSINT32)(g_gfx.vr / 2) - 100);
layer_set_z(win1, 1);
EFI_GRAPHICS_OUTPUT_BLT_PIXEL win_color = {200, 200, 200, 0};
draw_set_target(win1->buffer, 300, 200);
@@ -184,7 +184,7 @@ extern "C" void kernel_main() {
// Create window 2 (offset from center)
layer_t* win2 = layer_create("window_2", LAYER_TYPE_WINDOW, 250, 180);
if (win2) {
layer_set_pos(win2, (int)(g_gfx.hr / 2) - 50, (int)(g_gfx.vr / 2) - 40);
layer_set_pos(win2, (SSINT32)(g_gfx.hr / 2) - 50, (SSINT32)(g_gfx.vr / 2) - 40);
layer_set_z(win2, 2);
EFI_GRAPHICS_OUTPUT_BLT_PIXEL win2_color = {180, 220, 140, 0};
draw_set_target(win2->buffer, 250, 180);
+1 -1
View File
@@ -55,7 +55,7 @@ task_t* task_create(const char* name, void (*entry)(void)) {
// Copy name
const char* s = name;
char* d = task->name;
for (int i = 0; i < TASK_NAME_LEN - 1 && *s; i++) {
for (SSINT32 i = 0; i < TASK_NAME_LEN - 1 && *s; i++) {
*d++ = *s++;
}
*d = '\0';
+2 -1
View File
@@ -1,4 +1,5 @@
#include <serial.h>
#include <common.h>
extern EFI_SYSTEM_TABLE *ST;
@@ -34,7 +35,7 @@ void serial_write(const char *str) {
void serial_write_hex(UINTN val) {
char buf[19];
buf[0] = '0'; buf[1] = 'x';
for (int i = 17; i >= 2; i--) {
for (SSINT32 i = 17; i >= 2; i--) {
UINTN digit = val & 0xF;
buf[i] = digit < 10 ? '0' + digit : 'A' + digit - 10;
val >>= 4;