Remove types.c/.h, use klibc headers, amend stdbool.h, reimplement cpuid()

This commit is contained in:
vmttmv
2026-01-12 02:42:02 +02:00
parent 86608ef48c
commit 841892398a
9 changed files with 20 additions and 69 deletions

View File

@@ -3,6 +3,14 @@
#include "terminal.h"
#include "utils.h"
void cpuid(uint32_t leaf, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx) {
__asm__(
"cpuid"
: "=a"(*eax), "=b"(*ebx), "=c"(*ecx), "=d"(*edx)
: "a"(leaf)
);
}
// Helper to print a labeled decimal value
void print_val(const char* label, uint32_t val) {
char buf[12];

View File

@@ -1,7 +1,7 @@
#ifndef IRQ_H
#define IRQ_H
#include "types.h"
#include <stdint.h>
void irq_remap(void);
void irq_install(void);

View File

@@ -1,3 +1,4 @@
#include <stdbool.h>
#include "terminal.h"
#include "serial.h"
#include "isr.h"

View File

@@ -1,7 +1,7 @@
#ifndef PRINT_H
#define PRINT_H
#include "types.h"
#include <stdint.h>
void print_string(const char *str);
void my_printf(const char *format, ...);

View File

@@ -1,9 +1,9 @@
#include <stdbool.h>
#include <stdint.h>
#include "malloc.h"
#include "print.h"
#include "threading.h"
#include "types.h"
#include "utils.h"
#include <stdint.h>
#define MAX_THREADS 16 // Maximum number of threads
#define THREAD_STACK_SIZE 8192 // Stack size for each thread

View File

@@ -1 +0,0 @@
#include "types.h"

View File

@@ -1,61 +0,0 @@
#ifndef TYPES_H
#define TYPES_H
// ----------------------------
// Fixed-width integer types
// ----------------------------
typedef unsigned char uint8_t;
typedef signed char int8_t;
typedef unsigned short uint16_t;
typedef signed short int16_t;
typedef unsigned int uint32_t;
typedef signed int int32_t;
typedef unsigned long long uint64_t;
typedef signed long long int64_t;
// ----------------------------
// Boolean & NULL definitions
// ----------------------------
#ifndef __cplusplus
typedef enum { false = 0, true = 1 } bool;
#endif
#ifndef NULL
#define NULL ((void*)0)
#endif
// ----------------------------
// OS subsystem types
// ----------------------------
typedef int32_t ssize_t;
typedef uint32_t phys_addr_t; // Physical address
typedef uint32_t virt_addr_t; // Virtual address
typedef uint32_t pid_t; // Process ID
typedef uint32_t tid_t; // Thread ID
// ----------------------------
// Bitfield & utility macros
// ----------------------------
#define BIT(n) (1U << (n))
#define BITS(m, n) (((1U << ((n) - (m) + 1)) - 1) << (m))
// Align value to next multiple of alignment
#define ALIGN_UP(val, align) (((val) + ((align)-1)) & ~((align)-1))
#define ALIGN_DOWN(val, align) ((val) & ~((align)-1))
// ----------------------------
// Attributes for structures
// ----------------------------
#define PACKED __attribute__((packed))
#define ALIGN(x) __attribute__((aligned(x)))
// ----------------------------
// Likely/unlikely branch hints
// (for future optimization use)
// ----------------------------
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif // TYPES_H

View File

@@ -3,8 +3,6 @@
#include <stddef.h>
#include "types.h"
// Convert integer to string (base is typically 10, 16, etc.)
char* itoa(int value, char* str, int base);