kernel: remove everything that is related to device/fs management

this is now a microkernel.
This commit is contained in:
2024-09-17 17:47:50 +01:00
parent 9b00f83ff1
commit 3f992d84fb
66 changed files with 213 additions and 65447 deletions

View File

@@ -1,39 +1,22 @@
#include <socks/pmap.h>
#include <socks/device.h>
#include <socks/arg.h>
#include <socks/tty.h>
#include <socks/kext.h>
#include <socks/clock.h>
#include <socks/types.h>
#include <socks/object.h>
#include <arch/e820.h>
#include <socks/init.h>
#include <socks/percpu.h>
#include <socks/cpu.h>
#include <socks/memblock.h>
#include <socks/vm.h>
#include <socks/printk.h>
#include <socks/arg.h>
#include <socks/clock.h>
#include <socks/console.h>
#include <socks/machine/cpu.h>
#include <socks/cpu.h>
#include <socks/init.h>
#include <socks/libc/stdio.h>
#ifdef KEXT_NET_DOORSTUCK_SOCKS_ACPI
#include <arch/acpi.h>
#endif
#ifdef KEXT_NET_DOORSTUCK_SOCKS_FBCON
#include <socks/fbcon.h>
#endif
#ifdef KEXT_NET_DOORSTUCK_SOCKS_SERIALCON
#include <socks/serialcon.h>
#endif
#include <socks/machine/cpu.h>
#include <socks/memblock.h>
#include <socks/object.h>
#include <socks/percpu.h>
#include <socks/pmap.h>
#include <socks/printk.h>
#include <socks/types.h>
#include <socks/vm.h>
#define PTR32(x) ((void *)((uintptr_t)(x)))
static ml_cpu_block g_bootstrap_cpu = {0};
static struct framebuffer_varinfo __bootfb_varinfo;
static struct framebuffer_fixedinfo __bootfb_fixedinfo;
/* start and end of kernel image (physical addresses) */
extern char __pstart[], __pend[];
@@ -52,10 +35,14 @@ static void early_vm_init(void)
uintptr_t alloc_end = VM_KERNEL_VOFFSET + 0x7fffffff;
memblock_init(alloc_start, alloc_end, VM_KERNEL_VOFFSET);
printk("memblock: allocating from [0x%llx-0x%llx]", alloc_start, alloc_end);
printk("memblock: allocating from [0x%llx-0x%llx]",
alloc_start,
alloc_end);
memblock_reserve(0x00, (uintptr_t)__pend);
printk("memblock: reserved bios+kernel at [0x%016llx-0x%016llx]", 0, (uintptr_t)__pend);
printk("memblock: reserved bios+kernel at [0x%016llx-0x%016llx]",
0,
(uintptr_t)__pend);
}
void early_console_init(void)
@@ -64,60 +51,10 @@ void early_console_init(void)
if (!dest) {
return;
}
#ifdef KEXT_NET_DOORSTUCK_SOCKS_FBCON
if (!strcmp(dest, "tty0")) {
early_vgacon_init();
}
#endif
#ifdef KEXT_NET_DOORSTUCK_SOCKS_SERIALCON
if (!strncmp(dest, "ttyS0", 5)) {
/* TODO allow specifying baud rate from command line */
unsigned int baud = 115200;
early_serialcon_init(baud);
}
#endif
}
static void init_bootfb(multiboot_info_t *mb)
{
__bootfb_varinfo.fb_xres = mb->framebuffer_width;
__bootfb_varinfo.fb_yres = mb->framebuffer_height;
__bootfb_varinfo.fb_bpp = mb->framebuffer_bpp;
__bootfb_varinfo.fb_stride = mb->framebuffer_pitch;
__bootfb_fixedinfo.fb_baseptr = mb->framebuffer_addr;
switch (mb->framebuffer_type) {
case MULTIBOOT_FRAMEBUFFER_TYPE_INDEXED:
__bootfb_varinfo.fb_flags = FB_MODE_PALETTE;
__bootfb_varinfo.fb_palette_addr = mb->framebuffer_palette_addr;
__bootfb_varinfo.fb_palette_nr_colours = mb->framebuffer_palette_num_colors;
break;
case MULTIBOOT_FRAMEBUFFER_TYPE_RGB:
__bootfb_varinfo.fb_flags = FB_MODE_RGB;
__bootfb_varinfo.fb_red.b_length = mb->framebuffer_red_mask_size;
__bootfb_varinfo.fb_red.b_offset = mb->framebuffer_red_field_position;
__bootfb_varinfo.fb_green.b_length = mb->framebuffer_green_mask_size;
__bootfb_varinfo.fb_green.b_offset = mb->framebuffer_green_field_position;
__bootfb_varinfo.fb_blue.b_length = mb->framebuffer_blue_mask_size;
__bootfb_varinfo.fb_blue.b_offset = mb->framebuffer_blue_field_position;
__bootfb_varinfo.fb_alpha.b_length = 0;
__bootfb_varinfo.fb_alpha.b_offset = 0;
break;
case MULTIBOOT_FRAMEBUFFER_TYPE_EGA_TEXT:
__bootfb_fixedinfo.fb_baseptr = 0xb8000;
__bootfb_varinfo.fb_flags = FB_MODE_VGATEXT;
__bootfb_varinfo.fb_xcells = 80;
__bootfb_varinfo.fb_ycells = 25;
break;
default:
break;
}
}
static void use_uniprocessor_topology(void)
@@ -142,17 +79,15 @@ int ml_init(uintptr_t arg)
print_kernel_banner();
early_vm_init();
printk("video mode: %ux%u", mb->framebuffer_width, mb->framebuffer_height);
printk("video mode: %ux%u",
mb->framebuffer_width,
mb->framebuffer_height);
e820_scan(PTR32(mb->mmap_addr), mb->mmap_length);
pmap_bootstrap();
#ifdef KEXT_NET_DOORSTUCK_SOCKS_ACPI
acpi_scan_cpu_topology();
#else
use_uniprocessor_topology();
#endif
init_per_cpu_areas();
@@ -165,36 +100,25 @@ int ml_init(uintptr_t arg)
put_cpu(this_cpu);
struct vm_zone_descriptor vm_zones[] = {
{ .zd_id = VM_ZONE_DMA, .zd_node = 0, .zd_name = "dma", .zd_base = 0x00, .zd_limit = 0xffffff },
{ .zd_id = VM_ZONE_NORMAL, .zd_node = 0, .zd_name = "normal", .zd_base = 0x1000000, .zd_limit = UINTPTR_MAX },
{.zd_id = VM_ZONE_DMA,
.zd_node = 0,
.zd_name = "dma",
.zd_base = 0x00,
.zd_limit = 0xffffff},
{.zd_id = VM_ZONE_NORMAL,
.zd_node = 0,
.zd_name = "normal",
.zd_base = 0x1000000,
.zd_limit = UINTPTR_MAX},
};
vm_bootstrap(vm_zones, sizeof vm_zones / sizeof vm_zones[0]);
object_bootstrap();
init_kernel_kext();
sched_init();
device_init();
#ifdef KEXT_NET_DOORSTUCK_SOCKS_ACPI
acpi_init();
#endif
tty_bootstrap();
ml_int_enable();
return 0;
}
const struct framebuffer_varinfo *bootfb_varinfo(void)
{
return &__bootfb_varinfo;
}
const struct framebuffer_fixedinfo *bootfb_fixedinfo(void)
{
return &__bootfb_fixedinfo;
}

View File

@@ -1,17 +1,13 @@
#include <arch/irq.h>
#include <arch/ports.h>
#include <socks/sched.h>
#include <socks/cpu.h>
#include <socks/panic.h>
#include <socks/libc/string.h>
#include <socks/machine/irq.h>
#include <socks/machine/cpu.h>
#include <socks/machine/irq.h>
#include <socks/panic.h>
#include <socks/sched.h>
#include <stddef.h>
#ifdef KEXT_NET_DOORSTUCK_SOCKS_ACPI
#include <arch/acpi.h>
#endif
#define MAX_ISR_HANDLERS 16
extern void syscall_gate();
@@ -24,33 +20,49 @@ static struct idt idt;
static int idt_initialised = 0;
static uintptr_t int_entry_points[NR_IDT_ENTRIES];
static void set_idt_gate(struct idt *idt, uint8_t index, uintptr_t base, uint16_t sel, uint8_t flags)
static void set_idt_gate(
struct idt *idt,
uint8_t index,
uintptr_t base,
uint16_t sel,
uint8_t flags)
{
idt->i_entries[index].base_low = base & 0xFFFF;
idt->i_entries[index].base_low = base & 0xFFFF;
idt->i_entries[index].base_middle = (base >> 16) & 0xFFFF;
idt->i_entries[index].base_high = (base >> 32) & 0xFFFFFFFF;
idt->i_entries[index].selector = sel;
idt->i_entries[index].always0 = 0;
idt->i_entries[index].present = 1;
idt->i_entries[index].dpl = 3;
idt->i_entries[index].zero = 0;
idt->i_entries[index].type = 0xE;
idt->i_entries[index].reserved = 0;
idt->i_entries[index].base_high = (base >> 32) & 0xFFFFFFFF;
idt->i_entries[index].selector = sel;
idt->i_entries[index].always0 = 0;
idt->i_entries[index].present = 1;
idt->i_entries[index].dpl = 3;
idt->i_entries[index].zero = 0;
idt->i_entries[index].type = 0xE;
idt->i_entries[index].reserved = 0;
}
static void gpf_handler(struct cpu_context *regs)
{
int ext = regs->err_no & 1;
int ext = regs->err_no & 1;
int table = (regs->err_no >> 1) & 0x03;
int index = (regs->err_no >> 3) & 0x1FFF;
panic_irq(regs, "general protection fault (%016llx %02x %02x %04x %016llx)",
regs->err_no, ext, table, index, regs->rip);
panic_irq(
regs,
"general protection fault (%016llx %02x %02x %04x %016llx)",
regs->err_no,
ext,
table,
index,
regs->rip);
}
static void pf_handler(struct cpu_context *regs)
{
panic_irq(regs, "page fault (%016llx %016llx %016llx)", pf_faultptr(), regs->rip, regs->err_no);
panic_irq(
regs,
"page fault (%016llx %016llx %016llx)",
pf_faultptr(),
regs->rip,
regs->err_no);
}
#if 0
@@ -118,14 +130,14 @@ int idt_init(struct idt_ptr *ptr)
}
ptr->i_limit = sizeof(idt) - 1;
ptr->i_base = (uintptr_t)&idt;
ptr->i_base = (uintptr_t)&idt;
return 0;
}
int idt_load(struct idt_ptr *ptr)
{
__asm__ __volatile__("lidt (%0)" ::"r" (ptr));
__asm__ __volatile__("lidt (%0)" ::"r"(ptr));
return 0;
}
@@ -139,7 +151,6 @@ void isr_dispatch(struct cpu_context *regs)
}
}
#ifndef KEXT_NET_DOORSTUCK_SOCKS_ACPI
void irq_ack(unsigned int vec)
{
if (vec >= 40) {
@@ -148,7 +159,6 @@ void irq_ack(unsigned int vec)
outportb(0x20, 0x20);
}
#endif
void irq_dispatch(struct cpu_context *regs)
{
@@ -156,7 +166,8 @@ void irq_dispatch(struct cpu_context *regs)
irq_ack(regs->int_no);
struct queue *hooks = &irq_hooks[regs->int_no - IRQ0];
queue_foreach(struct irq_hook, hook, hooks, irq_entry) {
queue_foreach(struct irq_hook, hook, hooks, irq_entry)
{
hook->irq_callback();
}
@@ -169,7 +180,6 @@ void irq_dispatch(struct cpu_context *regs)
void syscall_dispatch(struct cpu_context *regs)
{
}
void hook_irq(enum irq_vector vec, struct irq_hook *hook)
@@ -443,260 +453,132 @@ extern void _irq222();
extern void _irq223();
static uintptr_t int_entry_points[NR_IDT_ENTRIES] = {
[0] = (uintptr_t)_isr0,
[1] = (uintptr_t)_isr1,
[2] = (uintptr_t)_isr2,
[3] = (uintptr_t)_isr3,
[4] = (uintptr_t)_isr4,
[5] = (uintptr_t)_isr5,
[6] = (uintptr_t)_isr6,
[7] = (uintptr_t)_isr7,
[8] = (uintptr_t)_isr8,
[9] = (uintptr_t)_isr9,
[10] = (uintptr_t)_isr10,
[11] = (uintptr_t)_isr11,
[12] = (uintptr_t)_isr12,
[13] = (uintptr_t)_isr13,
[14] = (uintptr_t)_isr14,
[15] = (uintptr_t)_isr15,
[16] = (uintptr_t)_isr16,
[17] = (uintptr_t)_isr17,
[18] = (uintptr_t)_isr18,
[19] = (uintptr_t)_isr19,
[20] = (uintptr_t)_isr20,
[21] = (uintptr_t)_isr21,
[22] = (uintptr_t)_isr22,
[23] = (uintptr_t)_isr23,
[24] = (uintptr_t)_isr24,
[25] = (uintptr_t)_isr25,
[26] = (uintptr_t)_isr26,
[27] = (uintptr_t)_isr27,
[28] = (uintptr_t)_isr28,
[29] = (uintptr_t)_isr29,
[30] = (uintptr_t)_isr30,
[31] = (uintptr_t)_isr31,
[32] = (uintptr_t)_irq0,
[33] = (uintptr_t)_irq1,
[34] = (uintptr_t)_irq2,
[35] = (uintptr_t)_irq3,
[36] = (uintptr_t)_irq4,
[37] = (uintptr_t)_irq5,
[38] = (uintptr_t)_irq6,
[39] = (uintptr_t)_irq7,
[40] = (uintptr_t)_irq8,
[41] = (uintptr_t)_irq9,
[42] = (uintptr_t)_irq10,
[43] = (uintptr_t)_irq11,
[44] = (uintptr_t)_irq12,
[45] = (uintptr_t)_irq13,
[46] = (uintptr_t)_irq14,
[47] = (uintptr_t)_irq15,
[48] = (uintptr_t)_irq16,
[49] = (uintptr_t)_irq17,
[50] = (uintptr_t)_irq18,
[51] = (uintptr_t)_irq19,
[52] = (uintptr_t)_irq20,
[53] = (uintptr_t)_irq21,
[54] = (uintptr_t)_irq22,
[55] = (uintptr_t)_irq23,
[56] = (uintptr_t)_irq24,
[57] = (uintptr_t)_irq25,
[58] = (uintptr_t)_irq26,
[59] = (uintptr_t)_irq27,
[60] = (uintptr_t)_irq28,
[61] = (uintptr_t)_irq29,
[62] = (uintptr_t)_irq30,
[63] = (uintptr_t)_irq31,
[64] = (uintptr_t)_irq32,
[65] = (uintptr_t)_irq33,
[66] = (uintptr_t)_irq34,
[67] = (uintptr_t)_irq35,
[68] = (uintptr_t)_irq36,
[69] = (uintptr_t)_irq37,
[70] = (uintptr_t)_irq38,
[71] = (uintptr_t)_irq39,
[72] = (uintptr_t)_irq40,
[73] = (uintptr_t)_irq41,
[74] = (uintptr_t)_irq42,
[75] = (uintptr_t)_irq43,
[76] = (uintptr_t)_irq44,
[77] = (uintptr_t)_irq45,
[78] = (uintptr_t)_irq46,
[79] = (uintptr_t)_irq47,
[80] = (uintptr_t)_irq48,
[81] = (uintptr_t)_irq49,
[82] = (uintptr_t)_irq50,
[83] = (uintptr_t)_irq51,
[84] = (uintptr_t)_irq52,
[85] = (uintptr_t)_irq53,
[86] = (uintptr_t)_irq54,
[87] = (uintptr_t)_irq55,
[88] = (uintptr_t)_irq56,
[89] = (uintptr_t)_irq57,
[90] = (uintptr_t)_irq58,
[91] = (uintptr_t)_irq59,
[92] = (uintptr_t)_irq60,
[93] = (uintptr_t)_irq61,
[94] = (uintptr_t)_irq62,
[95] = (uintptr_t)_irq63,
[96] = (uintptr_t)_irq64,
[97] = (uintptr_t)_irq65,
[98] = (uintptr_t)_irq66,
[99] = (uintptr_t)_irq67,
[100] = (uintptr_t)_irq68,
[101] = (uintptr_t)_irq69,
[102] = (uintptr_t)_irq70,
[103] = (uintptr_t)_irq71,
[104] = (uintptr_t)_irq72,
[105] = (uintptr_t)_irq73,
[106] = (uintptr_t)_irq74,
[107] = (uintptr_t)_irq75,
[108] = (uintptr_t)_irq76,
[109] = (uintptr_t)_irq77,
[110] = (uintptr_t)_irq78,
[111] = (uintptr_t)_irq79,
[112] = (uintptr_t)_irq80,
[113] = (uintptr_t)_irq81,
[114] = (uintptr_t)_irq82,
[115] = (uintptr_t)_irq83,
[116] = (uintptr_t)_irq84,
[117] = (uintptr_t)_irq85,
[118] = (uintptr_t)_irq86,
[119] = (uintptr_t)_irq87,
[120] = (uintptr_t)_irq88,
[121] = (uintptr_t)_irq89,
[122] = (uintptr_t)_irq90,
[123] = (uintptr_t)_irq91,
[124] = (uintptr_t)_irq92,
[125] = (uintptr_t)_irq93,
[126] = (uintptr_t)_irq94,
[127] = (uintptr_t)_irq95,
[128] = (uintptr_t)_irq96,
[129] = (uintptr_t)_irq97,
[130] = (uintptr_t)_irq98,
[131] = (uintptr_t)_irq99,
[132] = (uintptr_t)_irq100,
[133] = (uintptr_t)_irq101,
[134] = (uintptr_t)_irq102,
[135] = (uintptr_t)_irq103,
[136] = (uintptr_t)_irq104,
[137] = (uintptr_t)_irq105,
[138] = (uintptr_t)_irq106,
[139] = (uintptr_t)_irq107,
[140] = (uintptr_t)_irq108,
[141] = (uintptr_t)_irq109,
[142] = (uintptr_t)_irq110,
[143] = (uintptr_t)_irq111,
[144] = (uintptr_t)_irq112,
[145] = (uintptr_t)_irq113,
[146] = (uintptr_t)_irq114,
[147] = (uintptr_t)_irq115,
[148] = (uintptr_t)_irq116,
[149] = (uintptr_t)_irq117,
[150] = (uintptr_t)_irq118,
[151] = (uintptr_t)_irq119,
[152] = (uintptr_t)_irq120,
[153] = (uintptr_t)_irq121,
[154] = (uintptr_t)_irq122,
[155] = (uintptr_t)_irq123,
[156] = (uintptr_t)_irq124,
[157] = (uintptr_t)_irq125,
[158] = (uintptr_t)_irq126,
[159] = (uintptr_t)_irq127,
[160] = (uintptr_t)_irq128,
[161] = (uintptr_t)_irq129,
[162] = (uintptr_t)_irq130,
[163] = (uintptr_t)_irq131,
[164] = (uintptr_t)_irq132,
[165] = (uintptr_t)_irq133,
[166] = (uintptr_t)_irq134,
[167] = (uintptr_t)_irq135,
[168] = (uintptr_t)_irq136,
[169] = (uintptr_t)_irq137,
[170] = (uintptr_t)_irq138,
[171] = (uintptr_t)_irq139,
[172] = (uintptr_t)_irq140,
[173] = (uintptr_t)_irq141,
[174] = (uintptr_t)_irq142,
[175] = (uintptr_t)_irq143,
[176] = (uintptr_t)_irq144,
[177] = (uintptr_t)_irq145,
[178] = (uintptr_t)_irq146,
[179] = (uintptr_t)_irq147,
[180] = (uintptr_t)_irq148,
[181] = (uintptr_t)_irq149,
[182] = (uintptr_t)_irq150,
[183] = (uintptr_t)_irq151,
[184] = (uintptr_t)_irq152,
[185] = (uintptr_t)_irq153,
[186] = (uintptr_t)_irq154,
[187] = (uintptr_t)_irq155,
[188] = (uintptr_t)_irq156,
[189] = (uintptr_t)_irq157,
[190] = (uintptr_t)_irq158,
[191] = (uintptr_t)_irq159,
[192] = (uintptr_t)_irq160,
[193] = (uintptr_t)_irq161,
[194] = (uintptr_t)_irq162,
[195] = (uintptr_t)_irq163,
[196] = (uintptr_t)_irq164,
[197] = (uintptr_t)_irq165,
[198] = (uintptr_t)_irq166,
[199] = (uintptr_t)_irq167,
[200] = (uintptr_t)_irq168,
[201] = (uintptr_t)_irq169,
[202] = (uintptr_t)_irq170,
[203] = (uintptr_t)_irq171,
[204] = (uintptr_t)_irq172,
[205] = (uintptr_t)_irq173,
[206] = (uintptr_t)_irq174,
[207] = (uintptr_t)_irq175,
[208] = (uintptr_t)_irq176,
[209] = (uintptr_t)_irq177,
[210] = (uintptr_t)_irq178,
[211] = (uintptr_t)_irq179,
[212] = (uintptr_t)_irq180,
[213] = (uintptr_t)_irq181,
[214] = (uintptr_t)_irq182,
[215] = (uintptr_t)_irq183,
[216] = (uintptr_t)_irq184,
[217] = (uintptr_t)_irq185,
[218] = (uintptr_t)_irq186,
[219] = (uintptr_t)_irq187,
[220] = (uintptr_t)_irq188,
[221] = (uintptr_t)_irq189,
[222] = (uintptr_t)_irq190,
[223] = (uintptr_t)_irq191,
[224] = (uintptr_t)_irq192,
[225] = (uintptr_t)_irq193,
[226] = (uintptr_t)_irq194,
[227] = (uintptr_t)_irq195,
[228] = (uintptr_t)_irq196,
[229] = (uintptr_t)_irq197,
[230] = (uintptr_t)_irq198,
[231] = (uintptr_t)_irq199,
[232] = (uintptr_t)_irq200,
[233] = (uintptr_t)_irq201,
[234] = (uintptr_t)_irq202,
[235] = (uintptr_t)_irq203,
[236] = (uintptr_t)_irq204,
[237] = (uintptr_t)_irq205,
[238] = (uintptr_t)_irq206,
[239] = (uintptr_t)_irq207,
[240] = (uintptr_t)_irq208,
[241] = (uintptr_t)_irq209,
[242] = (uintptr_t)_irq210,
[243] = (uintptr_t)_irq211,
[244] = (uintptr_t)_irq212,
[245] = (uintptr_t)_irq213,
[246] = (uintptr_t)_irq214,
[247] = (uintptr_t)_irq215,
[248] = (uintptr_t)_irq216,
[249] = (uintptr_t)_irq217,
[250] = (uintptr_t)_irq218,
[251] = (uintptr_t)_irq219,
[252] = (uintptr_t)_irq220,
[253] = (uintptr_t)_irq221,
[254] = (uintptr_t)_irq222,
[255] = (uintptr_t)_irq223,
[0] = (uintptr_t)_isr0, [1] = (uintptr_t)_isr1,
[2] = (uintptr_t)_isr2, [3] = (uintptr_t)_isr3,
[4] = (uintptr_t)_isr4, [5] = (uintptr_t)_isr5,
[6] = (uintptr_t)_isr6, [7] = (uintptr_t)_isr7,
[8] = (uintptr_t)_isr8, [9] = (uintptr_t)_isr9,
[10] = (uintptr_t)_isr10, [11] = (uintptr_t)_isr11,
[12] = (uintptr_t)_isr12, [13] = (uintptr_t)_isr13,
[14] = (uintptr_t)_isr14, [15] = (uintptr_t)_isr15,
[16] = (uintptr_t)_isr16, [17] = (uintptr_t)_isr17,
[18] = (uintptr_t)_isr18, [19] = (uintptr_t)_isr19,
[20] = (uintptr_t)_isr20, [21] = (uintptr_t)_isr21,
[22] = (uintptr_t)_isr22, [23] = (uintptr_t)_isr23,
[24] = (uintptr_t)_isr24, [25] = (uintptr_t)_isr25,
[26] = (uintptr_t)_isr26, [27] = (uintptr_t)_isr27,
[28] = (uintptr_t)_isr28, [29] = (uintptr_t)_isr29,
[30] = (uintptr_t)_isr30, [31] = (uintptr_t)_isr31,
[32] = (uintptr_t)_irq0, [33] = (uintptr_t)_irq1,
[34] = (uintptr_t)_irq2, [35] = (uintptr_t)_irq3,
[36] = (uintptr_t)_irq4, [37] = (uintptr_t)_irq5,
[38] = (uintptr_t)_irq6, [39] = (uintptr_t)_irq7,
[40] = (uintptr_t)_irq8, [41] = (uintptr_t)_irq9,
[42] = (uintptr_t)_irq10, [43] = (uintptr_t)_irq11,
[44] = (uintptr_t)_irq12, [45] = (uintptr_t)_irq13,
[46] = (uintptr_t)_irq14, [47] = (uintptr_t)_irq15,
[48] = (uintptr_t)_irq16, [49] = (uintptr_t)_irq17,
[50] = (uintptr_t)_irq18, [51] = (uintptr_t)_irq19,
[52] = (uintptr_t)_irq20, [53] = (uintptr_t)_irq21,
[54] = (uintptr_t)_irq22, [55] = (uintptr_t)_irq23,
[56] = (uintptr_t)_irq24, [57] = (uintptr_t)_irq25,
[58] = (uintptr_t)_irq26, [59] = (uintptr_t)_irq27,
[60] = (uintptr_t)_irq28, [61] = (uintptr_t)_irq29,
[62] = (uintptr_t)_irq30, [63] = (uintptr_t)_irq31,
[64] = (uintptr_t)_irq32, [65] = (uintptr_t)_irq33,
[66] = (uintptr_t)_irq34, [67] = (uintptr_t)_irq35,
[68] = (uintptr_t)_irq36, [69] = (uintptr_t)_irq37,
[70] = (uintptr_t)_irq38, [71] = (uintptr_t)_irq39,
[72] = (uintptr_t)_irq40, [73] = (uintptr_t)_irq41,
[74] = (uintptr_t)_irq42, [75] = (uintptr_t)_irq43,
[76] = (uintptr_t)_irq44, [77] = (uintptr_t)_irq45,
[78] = (uintptr_t)_irq46, [79] = (uintptr_t)_irq47,
[80] = (uintptr_t)_irq48, [81] = (uintptr_t)_irq49,
[82] = (uintptr_t)_irq50, [83] = (uintptr_t)_irq51,
[84] = (uintptr_t)_irq52, [85] = (uintptr_t)_irq53,
[86] = (uintptr_t)_irq54, [87] = (uintptr_t)_irq55,
[88] = (uintptr_t)_irq56, [89] = (uintptr_t)_irq57,
[90] = (uintptr_t)_irq58, [91] = (uintptr_t)_irq59,
[92] = (uintptr_t)_irq60, [93] = (uintptr_t)_irq61,
[94] = (uintptr_t)_irq62, [95] = (uintptr_t)_irq63,
[96] = (uintptr_t)_irq64, [97] = (uintptr_t)_irq65,
[98] = (uintptr_t)_irq66, [99] = (uintptr_t)_irq67,
[100] = (uintptr_t)_irq68, [101] = (uintptr_t)_irq69,
[102] = (uintptr_t)_irq70, [103] = (uintptr_t)_irq71,
[104] = (uintptr_t)_irq72, [105] = (uintptr_t)_irq73,
[106] = (uintptr_t)_irq74, [107] = (uintptr_t)_irq75,
[108] = (uintptr_t)_irq76, [109] = (uintptr_t)_irq77,
[110] = (uintptr_t)_irq78, [111] = (uintptr_t)_irq79,
[112] = (uintptr_t)_irq80, [113] = (uintptr_t)_irq81,
[114] = (uintptr_t)_irq82, [115] = (uintptr_t)_irq83,
[116] = (uintptr_t)_irq84, [117] = (uintptr_t)_irq85,
[118] = (uintptr_t)_irq86, [119] = (uintptr_t)_irq87,
[120] = (uintptr_t)_irq88, [121] = (uintptr_t)_irq89,
[122] = (uintptr_t)_irq90, [123] = (uintptr_t)_irq91,
[124] = (uintptr_t)_irq92, [125] = (uintptr_t)_irq93,
[126] = (uintptr_t)_irq94, [127] = (uintptr_t)_irq95,
[128] = (uintptr_t)_irq96, [129] = (uintptr_t)_irq97,
[130] = (uintptr_t)_irq98, [131] = (uintptr_t)_irq99,
[132] = (uintptr_t)_irq100, [133] = (uintptr_t)_irq101,
[134] = (uintptr_t)_irq102, [135] = (uintptr_t)_irq103,
[136] = (uintptr_t)_irq104, [137] = (uintptr_t)_irq105,
[138] = (uintptr_t)_irq106, [139] = (uintptr_t)_irq107,
[140] = (uintptr_t)_irq108, [141] = (uintptr_t)_irq109,
[142] = (uintptr_t)_irq110, [143] = (uintptr_t)_irq111,
[144] = (uintptr_t)_irq112, [145] = (uintptr_t)_irq113,
[146] = (uintptr_t)_irq114, [147] = (uintptr_t)_irq115,
[148] = (uintptr_t)_irq116, [149] = (uintptr_t)_irq117,
[150] = (uintptr_t)_irq118, [151] = (uintptr_t)_irq119,
[152] = (uintptr_t)_irq120, [153] = (uintptr_t)_irq121,
[154] = (uintptr_t)_irq122, [155] = (uintptr_t)_irq123,
[156] = (uintptr_t)_irq124, [157] = (uintptr_t)_irq125,
[158] = (uintptr_t)_irq126, [159] = (uintptr_t)_irq127,
[160] = (uintptr_t)_irq128, [161] = (uintptr_t)_irq129,
[162] = (uintptr_t)_irq130, [163] = (uintptr_t)_irq131,
[164] = (uintptr_t)_irq132, [165] = (uintptr_t)_irq133,
[166] = (uintptr_t)_irq134, [167] = (uintptr_t)_irq135,
[168] = (uintptr_t)_irq136, [169] = (uintptr_t)_irq137,
[170] = (uintptr_t)_irq138, [171] = (uintptr_t)_irq139,
[172] = (uintptr_t)_irq140, [173] = (uintptr_t)_irq141,
[174] = (uintptr_t)_irq142, [175] = (uintptr_t)_irq143,
[176] = (uintptr_t)_irq144, [177] = (uintptr_t)_irq145,
[178] = (uintptr_t)_irq146, [179] = (uintptr_t)_irq147,
[180] = (uintptr_t)_irq148, [181] = (uintptr_t)_irq149,
[182] = (uintptr_t)_irq150, [183] = (uintptr_t)_irq151,
[184] = (uintptr_t)_irq152, [185] = (uintptr_t)_irq153,
[186] = (uintptr_t)_irq154, [187] = (uintptr_t)_irq155,
[188] = (uintptr_t)_irq156, [189] = (uintptr_t)_irq157,
[190] = (uintptr_t)_irq158, [191] = (uintptr_t)_irq159,
[192] = (uintptr_t)_irq160, [193] = (uintptr_t)_irq161,
[194] = (uintptr_t)_irq162, [195] = (uintptr_t)_irq163,
[196] = (uintptr_t)_irq164, [197] = (uintptr_t)_irq165,
[198] = (uintptr_t)_irq166, [199] = (uintptr_t)_irq167,
[200] = (uintptr_t)_irq168, [201] = (uintptr_t)_irq169,
[202] = (uintptr_t)_irq170, [203] = (uintptr_t)_irq171,
[204] = (uintptr_t)_irq172, [205] = (uintptr_t)_irq173,
[206] = (uintptr_t)_irq174, [207] = (uintptr_t)_irq175,
[208] = (uintptr_t)_irq176, [209] = (uintptr_t)_irq177,
[210] = (uintptr_t)_irq178, [211] = (uintptr_t)_irq179,
[212] = (uintptr_t)_irq180, [213] = (uintptr_t)_irq181,
[214] = (uintptr_t)_irq182, [215] = (uintptr_t)_irq183,
[216] = (uintptr_t)_irq184, [217] = (uintptr_t)_irq185,
[218] = (uintptr_t)_irq186, [219] = (uintptr_t)_irq187,
[220] = (uintptr_t)_irq188, [221] = (uintptr_t)_irq189,
[222] = (uintptr_t)_irq190, [223] = (uintptr_t)_irq191,
[224] = (uintptr_t)_irq192, [225] = (uintptr_t)_irq193,
[226] = (uintptr_t)_irq194, [227] = (uintptr_t)_irq195,
[228] = (uintptr_t)_irq196, [229] = (uintptr_t)_irq197,
[230] = (uintptr_t)_irq198, [231] = (uintptr_t)_irq199,
[232] = (uintptr_t)_irq200, [233] = (uintptr_t)_irq201,
[234] = (uintptr_t)_irq202, [235] = (uintptr_t)_irq203,
[236] = (uintptr_t)_irq204, [237] = (uintptr_t)_irq205,
[238] = (uintptr_t)_irq206, [239] = (uintptr_t)_irq207,
[240] = (uintptr_t)_irq208, [241] = (uintptr_t)_irq209,
[242] = (uintptr_t)_irq210, [243] = (uintptr_t)_irq211,
[244] = (uintptr_t)_irq212, [245] = (uintptr_t)_irq213,
[246] = (uintptr_t)_irq214, [247] = (uintptr_t)_irq215,
[248] = (uintptr_t)_irq216, [249] = (uintptr_t)_irq217,
[250] = (uintptr_t)_irq218, [251] = (uintptr_t)_irq219,
[252] = (uintptr_t)_irq220, [253] = (uintptr_t)_irq221,
[254] = (uintptr_t)_irq222, [255] = (uintptr_t)_irq223,
};

View File

@@ -37,13 +37,6 @@ SECTIONS {
*(.rodata*)
}
.kexts ALIGN(4K) : AT(ADDR(.kexts) - KERNEL_VMA)
{
__kexts_start = .;
*(.kextinfo)
__kexts_end = .;
}
.data.percpu ALIGN(4K) : AT(ADDR(.data.percpu) - KERNEL_VMA)
{
__percpu_start = .;