From c85cbd0c01c90582aac4451af528210f4994b6f5 Mon Sep 17 00:00:00 2001 From: kamkow1 Date: Sun, 21 Dec 2025 23:03:56 +0100 Subject: [PATCH] Use prettier #defines for attributes --- kernel/amd64/bootmain.c | 4 ++-- kernel/amd64/init.c | 13 ++++++------- kernel/amd64/intr.c | 8 ++++---- kernel/amd64/intr.h | 3 ++- kernel/amd64/tss.c | 3 ++- kernel/amd64/tss.h | 3 ++- kernel/aux/compiler.h | 8 ++++++++ kernel/limine/requests.c | 21 ++++++++++----------- 8 files changed, 36 insertions(+), 27 deletions(-) create mode 100644 kernel/aux/compiler.h diff --git a/kernel/amd64/bootmain.c b/kernel/amd64/bootmain.c index aaa5ccd..db766f6 100644 --- a/kernel/amd64/bootmain.c +++ b/kernel/amd64/bootmain.c @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -7,8 +8,7 @@ #define UACPI_MEMORY_BUFFER_MAX 4096 -__attribute__ (( - aligned (16))) static uint8_t uacpi_memory_buffer[UACPI_MEMORY_BUFFER_MAX]; +ALIGNED (16) static uint8_t uacpi_memory_buffer[UACPI_MEMORY_BUFFER_MAX]; void bootmain (void) { amd64_init (); diff --git a/kernel/amd64/init.c b/kernel/amd64/init.c index e6ee777..bd70ff7 100644 --- a/kernel/amd64/init.c +++ b/kernel/amd64/init.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -23,23 +24,21 @@ struct gdt_entry { uint8_t access; uint8_t gran; uint8_t basehigh; -} __attribute__ ((packed)); +} PACKED; struct gdt_ptr { uint16_t limit; uint64_t base; -} __attribute__ ((packed)); +} PACKED; struct gdt_extended { struct gdt_entry old[5]; struct gdt_entry tsslow; struct gdt_entry tsshigh; -} __attribute__ ((packed)); +} PACKED; -/* clang-format off */ -__attribute__ ((aligned (16))) static volatile uint8_t kernel_stack[KSTACK_SIZE]; -__attribute__ ((aligned (16))) static volatile struct gdt_extended gdt; -/* clang-format on */ +ALIGNED (16) static volatile uint8_t kernel_stack[KSTACK_SIZE]; +ALIGNED (16) static volatile struct gdt_extended gdt; static void amd64_gdt_set (volatile struct gdt_entry* ent, uint32_t base, uint32_t limit, uint8_t acc, uint8_t gran) { diff --git a/kernel/amd64/intr.c b/kernel/amd64/intr.c index 02ee19d..dc1823f 100644 --- a/kernel/amd64/intr.c +++ b/kernel/amd64/intr.c @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -39,15 +40,14 @@ struct idt_entry { uint16_t intrmid; uint32_t intrhigh; uint32_t resv; -} __attribute__ ((packed)); +} PACKED; struct idt { uint16_t limit; uint64_t base; -} __attribute__ ((packed)); +} PACKED; -__attribute__ ((aligned ( - 16))) static volatile struct idt_entry idt_entries[IDT_ENTRIES_MAX]; +ALIGNED (16) static volatile struct idt_entry idt_entries[IDT_ENTRIES_MAX]; static volatile struct idt idt; extern void amd64_spin (void); diff --git a/kernel/amd64/intr.h b/kernel/amd64/intr.h index 66583cd..db7e3f2 100644 --- a/kernel/amd64/intr.h +++ b/kernel/amd64/intr.h @@ -1,6 +1,7 @@ #ifndef _KERNEL_AMD64_INTR_H #define _KERNEL_AMD64_INTR_H +#include #include struct saved_regs { @@ -28,7 +29,7 @@ struct saved_regs { uint64_t rflags; uint64_t rsp; uint64_t ss; -} __attribute__ ((packed)); +} PACKED; void amd64_intr_init (void); diff --git a/kernel/amd64/tss.c b/kernel/amd64/tss.c index 75bd930..5d96c67 100644 --- a/kernel/amd64/tss.c +++ b/kernel/amd64/tss.c @@ -1,6 +1,7 @@ #include +#include #include -__attribute__ ((aligned (16))) static volatile struct tss tss; +ALIGNED (16) static volatile struct tss tss; volatile struct tss* amd64_get_tss (void) { return &tss; } diff --git a/kernel/amd64/tss.h b/kernel/amd64/tss.h index b3c4935..af39949 100644 --- a/kernel/amd64/tss.h +++ b/kernel/amd64/tss.h @@ -1,6 +1,7 @@ #ifndef _KERNEL_AMD64_TSS_H #define _KERNEL_AMD64_TSS_H +#include #include struct tss { @@ -13,7 +14,7 @@ struct tss { uint64_t resv2; uint16_t resv3; uint16_t iopb_off; -} __attribute__ ((packed)); +} PACKED; volatile struct tss* amd64_get_tss (void); diff --git a/kernel/aux/compiler.h b/kernel/aux/compiler.h new file mode 100644 index 0000000..5faf993 --- /dev/null +++ b/kernel/aux/compiler.h @@ -0,0 +1,8 @@ +#ifndef _KERNEL_AUX_COMPILER_H +#define _KERNEL_AUX_COMPILER_H + +#define PACKED __attribute__((packed)) +#define ALIGNED(N) __attribute__((aligned((N)))) +#define SECTION(name) __attribute__((section(name))) + +#endif // _KERNEL_AUX_COMPILER_H diff --git a/kernel/limine/requests.c b/kernel/limine/requests.c index 119afce..435a25e 100644 --- a/kernel/limine/requests.c +++ b/kernel/limine/requests.c @@ -1,20 +1,19 @@ +#include #include #define DECL_REQ(small, big) \ - __attribute__ (( \ - used, section (".limine_requests"))) struct limine_##small##_request \ - limine_##small##_request = { \ - .id = LIMINE_##big##_REQUEST_ID, .revision = 4} + SECTION (".limine_requests") \ + struct limine_##small##_request limine_##small##_request = { \ + .id = LIMINE_##big##_REQUEST_ID, .revision = 4} -__attribute__ ((used, - section (".limine_requests"))) volatile uint64_t limine_base_revision[] = - LIMINE_BASE_REVISION (4); +SECTION (".limine_requests") +volatile uint64_t limine_base_revision[] = LIMINE_BASE_REVISION (4); -__attribute__ ((used, section (".limine_requests_start"))) volatile uint64_t - limine_requests_start_marker[] = LIMINE_REQUESTS_START_MARKER; +SECTION (".limine_requests_start") +volatile uint64_t limine_requests_start_marker[] = LIMINE_REQUESTS_START_MARKER; -__attribute__ ((used, section (".limine_requests_end"))) volatile uint64_t - limine_requests_end_marker[] = LIMINE_REQUESTS_END_MARKER; +SECTION (".limine_requests_end") +volatile uint64_t limine_requests_end_marker[] = LIMINE_REQUESTS_END_MARKER; DECL_REQ (hhdm, HHDM); DECL_REQ (memmap, MEMMAP);