vfs - kinda good vfs implementation

This commit is contained in:
RaphProductions 2025-05-16 20:53:35 +02:00
parent cfc9159ad9
commit 1e84bcedc9
13 changed files with 3650 additions and 12 deletions

56
kernel/src/dbg/sym.c Normal file
View file

@ -0,0 +1,56 @@
#include "dbg/sym.h"
#include "exec/elf.h"
#include "limine.h"
#include "sys/errhnd/panic.h"
#include "sys/log.h"
#include <lib/string.h>
#include <mm/liballoc/liballoc.h>
static Elf64_Sym *__ksym_symtab;
static char *__ksym_strtab;
static int __ksym_symcount = 0;
__attribute__((used, section(".limine_requests"))) static volatile struct
limine_executable_file_request exec_file_rq = {
.id = LIMINE_EXECUTABLE_FILE_REQUEST, .revision = 3};
void ksym_init() {
char *img = exec_file_rq.response->executable_file->address;
Elf64_Ehdr *ehdr = (Elf64_Ehdr *)img;
if (ehdr->e_ident[EI_MAG0] != ELFMAG0 || ehdr->e_ident[EI_MAG1] != ELFMAG1 ||
ehdr->e_ident[EI_MAG2] != ELFMAG2 || ehdr->e_ident[EI_MAG3] != ELFMAG3) {
panic("kernel - how did i even boot? *starts galaxy brain meme*");
}
Elf64_Shdr *shdr = (Elf64_Shdr *)(img + ehdr->e_shoff);
const char *shstrtab = (char *)img + shdr[ehdr->e_shstrndx].sh_offset;
for (int j = 0; j < ehdr->e_shnum; j++) {
if (shdr[j].sh_type == SHT_SYMTAB) {
__ksym_symtab = (Elf64_Sym *)(img + shdr[j].sh_offset);
__ksym_symcount = shdr[j].sh_size / shdr[j].sh_entsize;
} else if (shdr[j].sh_type == SHT_STRTAB &&
strcmp(shstrtab + shdr[j].sh_name, ".strtab") == 0) {
__ksym_strtab = (char *)(img + shdr[j].sh_offset);
}
}
log("kernel - loaded %d symbols\n", __ksym_symcount);
}
func *ksym_fromip(uint64_t ip) {
for (int i = 0; i < __ksym_symcount; i++) {
uint64_t value = __ksym_symtab[i].st_value;
uint64_t size = __ksym_symtab[i].st_size;
if (value <= ip && ip < (value + size)) {
func *f = malloc(sizeof(func));
f->base = value;
f->ip = ip;
f->name = (__ksym_strtab + __ksym_symtab[i].st_name);
return f;
}
}
return NULL;
}

12
kernel/src/dbg/sym.h Normal file
View file

@ -0,0 +1,12 @@
#pragma once
#include "mm/vmm.h"
typedef struct func {
uint64_t base;
uint64_t ip;
char *name;
} func;
void ksym_init();
func *ksym_fromip(uint64_t ip);

View file

@ -123,3 +123,31 @@ typedef struct {
} elf_program_t; } elf_program_t;
program_t *elf_load(char *data, int user); program_t *elf_load(char *data, int user);
// Those aren't used for loading, but used by
// the kernel to resolve symbols from an instruction
// pointer.
#define SHT_SYMTAB 2
#define SHT_STRTAB 3
typedef struct {
uint32_t st_name;
unsigned char st_info;
unsigned char st_other;
uint16_t st_shndx;
Elf64_Addr st_value;
uint64_t st_size;
} Elf64_Sym;
typedef struct {
uint32_t sh_name;
uint32_t sh_type;
uint64_t sh_flags;
Elf64_Addr sh_addr;
Elf64_Off sh_offset;
uint64_t sh_size;
uint32_t sh_link;
uint32_t sh_info;
uint64_t sh_addralign;
uint64_t sh_entsize;
} Elf64_Shdr;

101
kernel/src/fs/hellofs.c Normal file
View file

@ -0,0 +1,101 @@
#include "fs/hellofs.h"
#include "fs/vfs.h"
#include <mm/liballoc/liballoc.h>
#include <mm/memop.h>
#include <lib/string.h>
static int hellofs_read(vnode_t *vn, void *buf, size_t off, size_t size) {
if (!vn || !buf || size <= 0) {
return -1;
}
const char *hello = "hello";
const size_t hello_len = 5; // strlen("hello")
char *cbuf = (char *)buf;
size_t bytes_written = 0;
while (bytes_written < size) {
size_t pos = off % hello_len; // Position within "hello"
size_t remaining = hello_len - pos; // Remaining bytes in current "hello"
size_t to_copy = (size - bytes_written < remaining) ?
(size - bytes_written) : remaining;
memcpy(cbuf + bytes_written, hello + pos, to_copy);
bytes_written += to_copy;
off += to_copy;
}
return bytes_written;
}
vnode_ops_t hellofs_hello_ops = {
.read = hellofs_read,
.lookup = NULL,
};
static int hellofs_lookup(vnode_t *vn, const char *name, vnode_t **out) {
if (!vn || !name || !out) {
return -1;
}
if (strcmp(name, "hello") == 0) {
*out = vfs_create_node("hello", VN_FILE);
if (*out) {
(*out)->ops = &hellofs_hello_ops;
return 0;
}
return -1;
} else {
*out = NULL; // Not found
return -1;
}
}
vnode_ops_t hellofs_root_ops = {
.read = NULL,
.lookup = hellofs_lookup,
};
static int hellofs_mount(fs_t *fs, vnode_t *mountpoint) {
if (!fs || !mountpoint) {
return -1;
}
// mountpoint list isn't implemented.
/*mountpoint_t *mp = (mountpoint_t *)malloc(sizeof(mountpoint_t));
if (!mp) {
return -1;
}
memset(mp, 0, sizeof(mountpoint_t));
strncpy(mp->name, fs->name, sizeof(mp->name) - 1);
mp->fs = fs;
mp->mountpoint = mountpoint;*/
// Mounting is essentially just putting the file system's root directory operations
// on the mountpoint vnode.
mountpoint->ops = &hellofs_root_ops;
return 0;
}
fs_t *hellofs_init() {
fs_t *fs = (fs_t *)malloc(sizeof(fs_t));
if (!fs) {
return NULL;
}
memset(fs, 0, sizeof(fs_t));
strncpy(fs->name, "hellofs", sizeof(fs->name) - 1);
fs->mount = hellofs_mount;
fs->root = vfs_create_node("/", VN_DIR);
if (!fs->root) {
free(fs);
return NULL;
}
return fs;
}

5
kernel/src/fs/hellofs.h Normal file
View file

@ -0,0 +1,5 @@
#pragma once
#include <fs/vfs.h>
fs_t *hellofs_init(void);

View file

@ -2,6 +2,99 @@
#include "lib/string.h" #include "lib/string.h"
#include "mm/liballoc/liballoc.h" #include "mm/liballoc/liballoc.h"
#include "mm/memop.h" #include "mm/memop.h"
#include "sys/errhnd/panic.h"
vnode_t *root = NULL;
void vfs_init() {
root = vfs_create_node("/", VN_DIR);
if (!root) {
panic("vfs - failed to create root node");
}
root->parent = root; // Root's parent is itself
}
// Not worth adding to the header, since it should only lookup
// for files/directories in dir, without going deeper.
int vfs_lookup(vnode_t *dir, const char *name, vnode_t **out) {
if (!dir || !name)
return -1;
if (dir->ops && dir->ops->lookup) {
return dir->ops->lookup(dir, name, out);
}
return -1;
}
int vfs_open(vnode_t *curdir, const char *path, vnode_t **out) {
if (strcmp(path, ".") == 0) {
*out = curdir;
return 0;
}
if (strcmp(path, "..") == 0) {
*out = curdir->parent;
return 0;
}
char *path_copy = strdup(path);
if (!path_copy) {
*out = NULL;
return -1;
}
vnode_t *cur_node = path[0] == '/' ? root : curdir;
char *token = strtok(path_copy, "/");
while (token) {
vnode_t *next;
vfs_lookup(cur_node, token, &next);
if (!next) {
free(path_copy);
*out = NULL;
return -1;
}
cur_node = next;
token = strtok(NULL, "/");
}
free(path_copy);
*out = cur_node;
return 0;
}
int vfs_mount(char *path, fs_t *fs) {
if (!fs || !path) {
return -1;
}
vnode_t *mp;
if (strcmp(path, "/") == 0) {
mp = root;
} else {
vfs_open(root, path, &mp);
}
if (fs->mount == NULL)
return -1; // why allocating a fs without the capability to mount to a node? lmao
return fs->mount(fs, mp);
}
int vfs_unmount(char *path) {
(void)path;
return -1;
}
int vfs_read(vnode_t *vn, void *buf, size_t off, size_t size) {
if (!vn || !buf || off < 0 || size <= 0) {
return -1;
}
if (vn->ops && vn->ops->read) {
return vn->ops->read(vn, buf, off, size);
}
return -1;
}
vnode_t *vfs_create_node(char *name, vnode_type_t type) { vnode_t *vfs_create_node(char *name, vnode_type_t type) {
vnode_t *node = (vnode_t *)malloc(sizeof(vnode_t)); vnode_t *node = (vnode_t *)malloc(sizeof(vnode_t));

View file

@ -12,14 +12,14 @@ typedef uint32_t vnode_type_t;
typedef struct vnode_ops { typedef struct vnode_ops {
int (*read)(struct vnode *vn, void *buf, size_t off, size_t size); int (*read)(struct vnode *vn, void *buf, size_t off, size_t size);
struct vnode *(*lookup)(struct vnode *vn, const char *name); int (*lookup)(struct vnode *vn, const char *name, struct vnode **out);
} vnode_ops_t; } vnode_ops_t;
typedef struct vnode { typedef struct vnode {
char name[256]; char name[256];
vnode_type_t type; vnode_type_t type;
uint32_t refcount; uint32_t refcount;
// struct vnode* parent; struct vnode* parent; // If this vnode exists, then it's parent too.
// struct vnode* child; // struct vnode* child;
// struct vnode* next; // struct vnode* next;
@ -36,11 +36,12 @@ typedef struct mountpoint {
typedef struct fs { typedef struct fs {
char name[32]; char name[32];
struct vnode *root; struct vnode *root;
int (*mount)(struct vnode *mountpoint); int (*mount)(struct fs *fs, struct vnode *mountpoint);
} fs_t; } fs_t;
void vfs_init(void); void vfs_init(void);
int vfs_mount(char *path, fs_t *fs); int vfs_mount(char *path, fs_t *fs);
int vfs_unmount(char *path); int vfs_unmount(char *path);
int vfs_open(const char *path, vnode_t **result); int vfs_open(vnode_t *curdir, const char *path, vnode_t **out);
int vfs_read(vnode_t *vn, void *buf, size_t off, size_t size); int vfs_read(vnode_t *vn, void *buf, size_t off, size_t size);
vnode_t *vfs_create_node(char *name, vnode_type_t type);

View file

@ -1,7 +1,10 @@
#include <lib/string.h> #include <lib/string.h>
#include <mm/liballoc/liballoc.h> #include <mm/liballoc/liballoc.h>
#include <mm/memop.h>
#include <stddef.h> #include <stddef.h>
static char *olds;
int strlen(const char *str) { int strlen(const char *str) {
int len = 0; int len = 0;
while (str[len]) while (str[len])
@ -78,3 +81,54 @@ char *strncpy(char *dest, const char *src, size_t n) {
dest[i] = '\0'; dest[i] = '\0';
return dest; return dest;
} }
#define DICT_LEN 256
static int *create_delim_dict(char *delim) {
int *d = (int *)malloc(sizeof(int) * DICT_LEN);
memset((void *)d, 0, sizeof(int) * DICT_LEN);
int i;
for (i = 0; i < strlen(delim); i++) {
d[delim[i]] = 1;
}
return d;
}
char *strtok(char *str, char *delim) {
static char *last, *to_free;
int *deli_dict = create_delim_dict(delim);
if (!deli_dict) {
return NULL;
}
if (str) {
last = (char *)malloc(strlen(str) + 1);
if (!last) {
free(deli_dict);
}
to_free = last;
strcpy(last, str);
}
while (deli_dict[*last] && *last != '\0') {
last++;
}
str = last;
if (*last == '\0') {
free(deli_dict);
free(to_free);
return NULL;
}
while (*last != '\0' && !deli_dict[*last]) {
last++;
}
*last = '\0';
last++;
free(deli_dict);
return str;
}

View file

@ -9,3 +9,4 @@ char *strrchr(const char *s, int c);
int oct2bin(unsigned char *str, int size); int oct2bin(unsigned char *str, int size);
char *strdup(const char *str); char *strdup(const char *str);
char *strncpy(char *dest, const char *src, size_t n); char *strncpy(char *dest, const char *src, size_t n);
char *strtok(char *str, char *delim);

View file

@ -1,10 +1,12 @@
#include "arch/x86_64/pit.h" #include "arch/x86_64/pit.h"
#include "arch/x86_64/smp.h" #include "arch/x86_64/smp.h"
#include "arch/x86_64/sse.h" #include "arch/x86_64/sse.h"
#include "dbg/sym.h"
#include "dev/ioapic.h" #include "dev/ioapic.h"
#include "dev/lapic.h" #include "dev/lapic.h"
#include "exec/elf.h" #include "exec/elf.h"
#include "exec/exec.h" #include "exec/exec.h"
#include "fs/hellofs.h"
#include "mm/liballoc/liballoc.h" #include "mm/liballoc/liballoc.h"
#include "mm/pmm.h" #include "mm/pmm.h"
#include "mm/vma.h" #include "mm/vma.h"
@ -57,10 +59,6 @@ struct flanterm_context *ft_ctx;
char kstack[8192]; char kstack[8192];
void test3() { *((uint8_t*)0x0) = (uint8_t)0xFF; }
void test2() { test3();}
void test1() { test2(); }
void __kmain(void) { void __kmain(void) {
if (framebuffer_request.response != NULL) { if (framebuffer_request.response != NULL) {
@ -92,6 +90,14 @@ void __kmain(void) {
asm("hlt"); asm("hlt");
} }
ksym_init();
func *f = ksym_fromip((uint64_t)__kmain);
if (f) {
log("ksym: found %s at %p\n", f->name, f->ip);
} else {
log("ksym: not found\n");
}
acpi_init(); acpi_init();
madt_init(); madt_init();
ioapic_init(); ioapic_init();
@ -99,9 +105,22 @@ void __kmain(void) {
pit_init(); pit_init();
smp_init(); smp_init();
vfs_init();
fs_t *hellofs = hellofs_init();
vfs_mount("/", hellofs);
vnode_t *vn;
vfs_open(NULL, "/hello", &vn);
if (vn) {
char buf[100];
vfs_read(vn, buf, 2, sizeof(buf));
log("Read from /hello: %s\n", buf);
} else {
log("Failed to open /hello\n");
}
syscall_init(); syscall_init();
sched_init(); sched_init();
test1();
// vfs_init(); // vfs_init();

View file

@ -15,7 +15,7 @@ __attribute__((
.revision = 3, .revision = 3,
.mode = LIMINE_PAGING_MODE_X86_64_4LVL}; .mode = LIMINE_PAGING_MODE_X86_64_4LVL};
__attribute__((used, section(".limine_requests"))) static volatile struct __attribute__((used, section(".limine_requests"))) volatile struct
limine_executable_address_request karq = { limine_executable_address_request karq = {
.id = LIMINE_EXECUTABLE_ADDRESS_REQUEST, .id = LIMINE_EXECUTABLE_ADDRESS_REQUEST,
.revision = 0, .revision = 0,

2709
strings.txt Normal file

File diff suppressed because it is too large Load diff

559
txt.txt Normal file
View file

@ -0,0 +1,559 @@
En-tête ELF:
Magique: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Classe: ELF64
Données: complément à 2, système à octets de poids faible d'abord (little endian)
Version: 1 (actuelle)
OS/ABI: UNIX - System V
Version ABI: 0
Type: EXEC (fichier exécutable)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Adresse du point d'entrée: 0xffffffff8000d040
Début des en-têtes de programme : 64 (octets dans le fichier)
Début des en-têtes de section : 308160 (octets dans le fichier)
Fanions: 0x0
Taille de cet en-tête: 64 (octets)
Taille de l'en-tête du programme: 56 (octets)
Nombre d'en-tête du programme: 4
Taille des en-têtes de section: 64 (octets)
Nombre d'en-têtes de section: 18
Table d'index des chaînes d'en-tête de section: 17
En-têtes de section :
[Nr] Nom Type Adresse Décalage
Taille TaillEntrée Fanion Lien Info Alignement
[ 0] NULL 0000000000000000 00000000
0000000000000000 0000000000000000 0 0 0
[ 1] .text PROGBITS ffffffff80000000 00001000
000000000000d052 0000000000000000 AX 0 0 64
[ 2] .limine_requests PROGBITS ffffffff8000e000 0000f000
00000000000002a0 0000000000000000 WA 0 0 32
[ 3] .rodata PROGBITS ffffffff8000f000 00010000
0000000000004de0 0000000000000000 A 0 0 32
[ 4] .data PROGBITS ffffffff80014000 00015000
0000000000001060 0000000000000000 WA 0 0 32
[ 5] .bss NOBITS ffffffff80015060 00016060
00000000000e2f00 0000000000000000 WA 0 0 32
[ 6] .debug_info PROGBITS 0000000000000000 00016060
0000000000010054 0000000000000000 0 0 1
[ 7] .debug_abbrev PROGBITS 0000000000000000 000260b4
0000000000003d55 0000000000000000 0 0 1
[ 8] .debug_loclists PROGBITS 0000000000000000 00029e09
000000000000b554 0000000000000000 0 0 1
[ 9] .debug_aranges PROGBITS 0000000000000000 0003535d
0000000000000d70 0000000000000000 0 0 1
[10] .debug_rnglists PROGBITS 0000000000000000 000360cd
00000000000017ea 0000000000000000 0 0 1
[11] .debug_line PROGBITS 0000000000000000 000378b7
000000000000ce27 0000000000000000 0 0 1
[12] .debug_str PROGBITS 0000000000000000 000446de
0000000000002468 0000000000000001 MS 0 0 1
[13] .debug_line_str PROGBITS 0000000000000000 00046b46
0000000000000474 0000000000000001 MS 0 0 1
[14] .comment PROGBITS 0000000000000000 00046fba
000000000000001b 0000000000000001 MS 0 0 1
[15] .symtab SYMTAB 0000000000000000 00046fd8
0000000000002b68 0000000000000018 16 359 8
[16] .strtab STRTAB 0000000000000000 00049b40
00000000000017bc 0000000000000000 0 0 1
[17] .shstrtab STRTAB 0000000000000000 0004b2fc
00000000000000be 0000000000000000 0 0 1
Clé des fanions :
W (écriture), A (allocation), X (exécution), M (fusion), S (chaînes), I (info),
L (ordre des liens), O (traitement supplémentaire par l'OS requis), G (groupe),
T (TLS), C (compressé), x (inconnu), o (spécifique à l'OS), E (exclu),
D (mbind), l (grand), p (processor specific)
Il n'y a pas de groupe de section dans ce fichier.
En-têtes de programme :
Type Décalage Adr.virt Adr.phys.
Taille fichier Taille mémoire Fanion Alignement
LOAD 0x000000000000f000 0xffffffff8000e000 0xffffffff8000e000
0x00000000000002a0 0x00000000000002a0 RW 0x1000
LOAD 0x0000000000001000 0xffffffff80000000 0xffffffff80000000
0x000000000000d052 0x000000000000d052 R E 0x1000
LOAD 0x0000000000010000 0xffffffff8000f000 0xffffffff8000f000
0x0000000000004de0 0x0000000000004de0 R 0x1000
LOAD 0x0000000000015000 0xffffffff80014000 0xffffffff80014000
0x0000000000001060 0x00000000000e3f60 RW 0x1000
Correspondance section/segment :
Sections de segment...
00 .limine_requests
01 .text
02 .rodata
03 .data .bss
Il n'y a pas de section dynamique dans ce fichier.
Il n'y a pas de réadressages dans ce fichier.
Pas d'information de déroulement spécifique au processeur à décoder
La table de symboles « .symtab » contient 463 entrées :
Num: Valeur Tail Type Lien Vis Ndx Nom
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 0000000000000000 0 FILE LOCAL DEFAULT ABS gdt.c
2: 0000000000000000 0 FILE LOCAL DEFAULT ABS idt.c
3: ffffffff8001cb70 4096 OBJECT LOCAL DEFAULT 5 idt
4: ffffffff8001c760 1024 OBJECT LOCAL DEFAULT 5 vectors
5: ffffffff8001cb60 10 OBJECT LOCAL DEFAULT 5 idtr
6: 0000000000000000 0 FILE LOCAL DEFAULT ABS io.c
7: 0000000000000000 0 FILE LOCAL DEFAULT ABS pit.c
8: 0000000000000000 0 FILE LOCAL DEFAULT ABS smp.c
9: ffffffff8000e020 56 OBJECT LOCAL DEFAULT 2 smp_request
10: 0000000000000000 0 FILE LOCAL DEFAULT ABS syscall.c
11: 0000000000000000 0 FILE LOCAL DEFAULT ABS sym.c
12: ffffffff8000e060 48 OBJECT LOCAL DEFAULT 2 exec_file_rq
13: ffffffff8001db90 8 OBJECT LOCAL DEFAULT 5 __ksym_symtab
14: ffffffff8001db80 4 OBJECT LOCAL DEFAULT 5 __ksym_symcount
15: ffffffff8001db88 8 OBJECT LOCAL DEFAULT 5 __ksym_strtab
16: 0000000000000000 0 FILE LOCAL DEFAULT ABS ioapic.c
17: 0000000000000000 0 FILE LOCAL DEFAULT ABS lapic.c
18: 0000000000000000 0 FILE LOCAL DEFAULT ABS elf.c
19: 0000000000000000 0 FILE LOCAL DEFAULT ABS string.c
20: 0000000000000000 0 FILE LOCAL DEFAULT ABS main.c
21: ffffffff8000e0e0 48 OBJECT LOCAL DEFAULT 2 framebuffer_request
22: ffffffff8000e0a0 64 OBJECT LOCAL DEFAULT 2 module_request
23: ffffffff8000e290 16 OBJECT LOCAL DEFAULT 2 limine_requests_[...]
24: ffffffff8000e000 32 OBJECT LOCAL DEFAULT 2 limine_requests_[...]
25: ffffffff8000e110 24 OBJECT LOCAL DEFAULT 2 limine_base_revision
26: 0000000000000000 0 FILE LOCAL DEFAULT ABS liballoc.c
27: ffffffff80000fb0 129 FUNC LOCAL DEFAULT 1 allocate_new_page
28: ffffffff8001fbc0 8 OBJECT LOCAL DEFAULT 5 l_allocated
29: ffffffff8001fbb0 8 OBJECT LOCAL DEFAULT 5 l_warningCount
30: ffffffff8001fbd0 8 OBJECT LOCAL DEFAULT 5 l_memRoot
31: ffffffff8001fbc8 8 OBJECT LOCAL DEFAULT 5 l_bestBet
32: ffffffff8001fbb8 8 OBJECT LOCAL DEFAULT 5 l_inuse
33: 0000000000000000 0 FILE LOCAL DEFAULT ABS liballoc_soaplin.c
34: ffffffff8001fbd8 4 OBJECT LOCAL DEFAULT 5 liballoc_lock_var
35: 0000000000000000 0 FILE LOCAL DEFAULT ABS memop.c
36: 0000000000000000 0 FILE LOCAL DEFAULT ABS pmm.c
37: 0000000000000000 0 FILE LOCAL DEFAULT ABS vma.c
38: 0000000000000000 0 FILE LOCAL DEFAULT ABS vmm.c
39: ffffffff80001a20 144 FUNC LOCAL DEFAULT 1 __vmm_get_next_lvl
40: ffffffff8000e200 72 OBJECT LOCAL DEFAULT 2 pmrq
41: 0000000000000000 0 FILE LOCAL DEFAULT ABS sched.c
42: ffffffff80002050 254 FUNC LOCAL DEFAULT 1 schedule.part.0
43: 0000000000000000 0 FILE LOCAL DEFAULT ABS acpi.c
44: ffffffff8001fc40 8 OBJECT LOCAL DEFAULT 5 __acpi_rsdt_ptr
45: ffffffff8001fc48 4 OBJECT LOCAL DEFAULT 5 __acpi_uses_xsdt
46: ffffffff8000e260 48 OBJECT LOCAL DEFAULT 2 rsdp_req
47: 0000000000000000 0 FILE LOCAL DEFAULT ABS madt.c
48: 0000000000000000 0 FILE LOCAL DEFAULT ABS panic.c
49: ffffffff80002790 527 FUNC LOCAL DEFAULT 1 __panic_display_regs
50: ffffffff80020c60 176 OBJECT LOCAL DEFAULT 5 __panic_regdump
51: 0000000000000000 0 FILE LOCAL DEFAULT ABS fb.c
52: ffffffff80002cd0 75 FUNC LOCAL DEFAULT 1 bump_alloc
53: ffffffff80020d10 1 OBJECT LOCAL DEFAULT 5 base_offset_added.0
54: ffffffff80020d18 8 OBJECT LOCAL DEFAULT 5 bump_alloc_ptr
55: ffffffff80020d20 0xd5228 OBJECT LOCAL DEFAULT 5 bump_alloc_pool
56: ffffffff80002d20 43 FUNC LOCAL DEFAULT 1 flanterm_fb_save[...]
57: ffffffff80002d50 43 FUNC LOCAL DEFAULT 1 flanterm_fb_rest[...]
58: ffffffff80002d80 27 FUNC LOCAL DEFAULT 1 flanterm_fb_swap[...]
59: ffffffff80002da0 163 FUNC LOCAL DEFAULT 1 push_to_queue
60: ffffffff80002e50 211 FUNC LOCAL DEFAULT 1 flanterm_fb_revscroll
61: ffffffff80002f30 213 FUNC LOCAL DEFAULT 1 flanterm_fb_scroll
62: ffffffff80003010 69 FUNC LOCAL DEFAULT 1 flanterm_fb_set_[...]
63: ffffffff80003060 60 FUNC LOCAL DEFAULT 1 flanterm_fb_get_[...]
64: ffffffff800030a0 113 FUNC LOCAL DEFAULT 1 flanterm_fb_move[...]
65: ffffffff80003120 14 FUNC LOCAL DEFAULT 1 flanterm_fb_set_[...]
66: ffffffff80003130 14 FUNC LOCAL DEFAULT 1 flanterm_fb_set_[...]
67: ffffffff80003140 14 FUNC LOCAL DEFAULT 1 flanterm_fb_set_[...]
68: ffffffff80003150 14 FUNC LOCAL DEFAULT 1 flanterm_fb_set_[...]
69: ffffffff80003160 55 FUNC LOCAL DEFAULT 1 flanterm_fb_set_[...]
70: ffffffff800031a0 55 FUNC LOCAL DEFAULT 1 flanterm_fb_set_[...]
71: ffffffff800031e0 13 FUNC LOCAL DEFAULT 1 flanterm_fb_set_[...]
72: ffffffff800031f0 11 FUNC LOCAL DEFAULT 1 flanterm_fb_set_[...]
73: ffffffff80003200 13 FUNC LOCAL DEFAULT 1 flanterm_fb_set_[...]
74: ffffffff80003210 13 FUNC LOCAL DEFAULT 1 flanterm_fb_set_[...]
75: ffffffff80003220 238 FUNC LOCAL DEFAULT 1 draw_cursor
76: ffffffff80003310 346 FUNC LOCAL DEFAULT 1 flanterm_fb_doub[...]
77: ffffffff80003480 368 FUNC LOCAL DEFAULT 1 flanterm_fb_full[...]
78: ffffffff800035f0 185 FUNC LOCAL DEFAULT 1 flanterm_fb_deinit
79: ffffffff80020d11 1 OBJECT LOCAL DEFAULT 5 bump_allocated_i[...]
80: ffffffff800036b0 469 FUNC LOCAL DEFAULT 1 plot_char_scaled[...]
81: ffffffff80003890 289 FUNC LOCAL DEFAULT 1 plot_char_unscal[...]
82: ffffffff800039c0 311 FUNC LOCAL DEFAULT 1 plot_char_unscal[...]
83: ffffffff80003b00 416 FUNC LOCAL DEFAULT 1 plot_char_scaled[...]
84: ffffffff80003ca0 256 FUNC LOCAL DEFAULT 1 flanterm_fb_clear
85: ffffffff80003da0 395 FUNC LOCAL DEFAULT 1 flanterm_fb_raw_[...]
86: ffffffff8000ffa0 4096 OBJECT LOCAL DEFAULT 3 builtin_font
87: 0000000000000000 0 FILE LOCAL DEFAULT ABS flanterm.c
88: ffffffff80013100 1136 OBJECT LOCAL DEFAULT 3 combining.0
89: ffffffff80013580 960 OBJECT LOCAL DEFAULT 3 col256
90: 0000000000000000 0 FILE LOCAL DEFAULT ABS log.c
91: 0000000000000000 0 FILE LOCAL DEFAULT ABS printf.c
92: ffffffff80006c40 113 FUNC LOCAL DEFAULT 1 npf_utoa_rev
93: ffffffff80006cc0 26 FUNC LOCAL DEFAULT 1 npf_bufputc
94: ffffffff80006ce0 1 FUNC LOCAL DEFAULT 1 npf_bufputc_nop
95: 0000000000000000 0 FILE LOCAL DEFAULT ABS syscall.c
96: ffffffff800084e0 3 FUNC LOCAL DEFAULT 1 __syscall_undefined
97: ffffffff800f5f60 8192 OBJECT LOCAL DEFAULT 5 syscall_table
98: 0000000000000000 0 FILE LOCAL DEFAULT ABS syscalls_proc.c
99: 0000000000000000 0 FILE LOCAL DEFAULT ABS src/arch/x86_64/[...]
100: ffffffff80008660 0 NOTYPE LOCAL DEFAULT 1 isr_stub_0
101: ffffffff800086a0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_1
102: ffffffff800086e0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_2
103: ffffffff80008720 0 NOTYPE LOCAL DEFAULT 1 isr_stub_3
104: ffffffff80008760 0 NOTYPE LOCAL DEFAULT 1 isr_stub_4
105: ffffffff800087a0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_5
106: ffffffff800087e0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_6
107: ffffffff80008820 0 NOTYPE LOCAL DEFAULT 1 isr_stub_7
108: ffffffff80008860 0 NOTYPE LOCAL DEFAULT 1 isr_stub_8
109: ffffffff8000889e 0 NOTYPE LOCAL DEFAULT 1 isr_stub_9
110: ffffffff800088de 0 NOTYPE LOCAL DEFAULT 1 isr_stub_10
111: ffffffff8000891c 0 NOTYPE LOCAL DEFAULT 1 isr_stub_11
112: ffffffff8000895a 0 NOTYPE LOCAL DEFAULT 1 isr_stub_12
113: ffffffff80008998 0 NOTYPE LOCAL DEFAULT 1 isr_stub_13
114: ffffffff800089d6 0 NOTYPE LOCAL DEFAULT 1 isr_stub_14
115: ffffffff80008a14 0 NOTYPE LOCAL DEFAULT 1 isr_stub_15
116: ffffffff80008a54 0 NOTYPE LOCAL DEFAULT 1 isr_stub_16
117: ffffffff80008a94 0 NOTYPE LOCAL DEFAULT 1 isr_stub_17
118: ffffffff80008ad2 0 NOTYPE LOCAL DEFAULT 1 isr_stub_18
119: ffffffff80008b12 0 NOTYPE LOCAL DEFAULT 1 isr_stub_19
120: ffffffff80008b52 0 NOTYPE LOCAL DEFAULT 1 isr_stub_20
121: ffffffff80008b92 0 NOTYPE LOCAL DEFAULT 1 isr_stub_21
122: ffffffff80008bd2 0 NOTYPE LOCAL DEFAULT 1 isr_stub_22
123: ffffffff80008c12 0 NOTYPE LOCAL DEFAULT 1 isr_stub_23
124: ffffffff80008c52 0 NOTYPE LOCAL DEFAULT 1 isr_stub_24
125: ffffffff80008c92 0 NOTYPE LOCAL DEFAULT 1 isr_stub_25
126: ffffffff80008cd2 0 NOTYPE LOCAL DEFAULT 1 isr_stub_26
127: ffffffff80008d12 0 NOTYPE LOCAL DEFAULT 1 isr_stub_27
128: ffffffff80008d52 0 NOTYPE LOCAL DEFAULT 1 isr_stub_28
129: ffffffff80008d92 0 NOTYPE LOCAL DEFAULT 1 isr_stub_29
130: ffffffff80008dd2 0 NOTYPE LOCAL DEFAULT 1 isr_stub_30
131: ffffffff80008e10 0 NOTYPE LOCAL DEFAULT 1 isr_stub_31
132: ffffffff80008e50 0 NOTYPE LOCAL DEFAULT 1 isr_stub_32
133: ffffffff80008e90 0 NOTYPE LOCAL DEFAULT 1 isr_stub_33
134: ffffffff80008ed0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_34
135: ffffffff80008f10 0 NOTYPE LOCAL DEFAULT 1 isr_stub_35
136: ffffffff80008f50 0 NOTYPE LOCAL DEFAULT 1 isr_stub_36
137: ffffffff80008f90 0 NOTYPE LOCAL DEFAULT 1 isr_stub_37
138: ffffffff80008fd0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_38
139: ffffffff80009010 0 NOTYPE LOCAL DEFAULT 1 isr_stub_39
140: ffffffff80009050 0 NOTYPE LOCAL DEFAULT 1 isr_stub_40
141: ffffffff80009090 0 NOTYPE LOCAL DEFAULT 1 isr_stub_41
142: ffffffff800090d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_42
143: ffffffff80009110 0 NOTYPE LOCAL DEFAULT 1 isr_stub_43
144: ffffffff80009150 0 NOTYPE LOCAL DEFAULT 1 isr_stub_44
145: ffffffff80009190 0 NOTYPE LOCAL DEFAULT 1 isr_stub_45
146: ffffffff800091d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_46
147: ffffffff80009210 0 NOTYPE LOCAL DEFAULT 1 isr_stub_47
148: ffffffff80009250 0 NOTYPE LOCAL DEFAULT 1 isr_stub_48
149: ffffffff80009290 0 NOTYPE LOCAL DEFAULT 1 isr_stub_49
150: ffffffff800092d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_50
151: ffffffff80009310 0 NOTYPE LOCAL DEFAULT 1 isr_stub_51
152: ffffffff80009350 0 NOTYPE LOCAL DEFAULT 1 isr_stub_52
153: ffffffff80009390 0 NOTYPE LOCAL DEFAULT 1 isr_stub_53
154: ffffffff800093d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_54
155: ffffffff80009410 0 NOTYPE LOCAL DEFAULT 1 isr_stub_55
156: ffffffff80009450 0 NOTYPE LOCAL DEFAULT 1 isr_stub_56
157: ffffffff80009490 0 NOTYPE LOCAL DEFAULT 1 isr_stub_57
158: ffffffff800094d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_58
159: ffffffff80009510 0 NOTYPE LOCAL DEFAULT 1 isr_stub_59
160: ffffffff80009550 0 NOTYPE LOCAL DEFAULT 1 isr_stub_60
161: ffffffff80009590 0 NOTYPE LOCAL DEFAULT 1 isr_stub_61
162: ffffffff800095d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_62
163: ffffffff80009610 0 NOTYPE LOCAL DEFAULT 1 isr_stub_63
164: ffffffff80009650 0 NOTYPE LOCAL DEFAULT 1 isr_stub_64
165: ffffffff80009690 0 NOTYPE LOCAL DEFAULT 1 isr_stub_65
166: ffffffff800096d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_66
167: ffffffff80009710 0 NOTYPE LOCAL DEFAULT 1 isr_stub_67
168: ffffffff80009750 0 NOTYPE LOCAL DEFAULT 1 isr_stub_68
169: ffffffff80009790 0 NOTYPE LOCAL DEFAULT 1 isr_stub_69
170: ffffffff800097d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_70
171: ffffffff80009810 0 NOTYPE LOCAL DEFAULT 1 isr_stub_71
172: ffffffff80009850 0 NOTYPE LOCAL DEFAULT 1 isr_stub_72
173: ffffffff80009890 0 NOTYPE LOCAL DEFAULT 1 isr_stub_73
174: ffffffff800098d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_74
175: ffffffff80009910 0 NOTYPE LOCAL DEFAULT 1 isr_stub_75
176: ffffffff80009950 0 NOTYPE LOCAL DEFAULT 1 isr_stub_76
177: ffffffff80009990 0 NOTYPE LOCAL DEFAULT 1 isr_stub_77
178: ffffffff800099d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_78
179: ffffffff80009a10 0 NOTYPE LOCAL DEFAULT 1 isr_stub_79
180: ffffffff80009a50 0 NOTYPE LOCAL DEFAULT 1 isr_stub_80
181: ffffffff80009a90 0 NOTYPE LOCAL DEFAULT 1 isr_stub_81
182: ffffffff80009ad0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_82
183: ffffffff80009b10 0 NOTYPE LOCAL DEFAULT 1 isr_stub_83
184: ffffffff80009b50 0 NOTYPE LOCAL DEFAULT 1 isr_stub_84
185: ffffffff80009b90 0 NOTYPE LOCAL DEFAULT 1 isr_stub_85
186: ffffffff80009bd0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_86
187: ffffffff80009c10 0 NOTYPE LOCAL DEFAULT 1 isr_stub_87
188: ffffffff80009c50 0 NOTYPE LOCAL DEFAULT 1 isr_stub_88
189: ffffffff80009c90 0 NOTYPE LOCAL DEFAULT 1 isr_stub_89
190: ffffffff80009cd0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_90
191: ffffffff80009d10 0 NOTYPE LOCAL DEFAULT 1 isr_stub_91
192: ffffffff80009d50 0 NOTYPE LOCAL DEFAULT 1 isr_stub_92
193: ffffffff80009d90 0 NOTYPE LOCAL DEFAULT 1 isr_stub_93
194: ffffffff80009dd0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_94
195: ffffffff80009e10 0 NOTYPE LOCAL DEFAULT 1 isr_stub_95
196: ffffffff80009e50 0 NOTYPE LOCAL DEFAULT 1 isr_stub_96
197: ffffffff80009e90 0 NOTYPE LOCAL DEFAULT 1 isr_stub_97
198: ffffffff80009ed0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_98
199: ffffffff80009f10 0 NOTYPE LOCAL DEFAULT 1 isr_stub_99
200: ffffffff80009f50 0 NOTYPE LOCAL DEFAULT 1 isr_stub_100
201: ffffffff80009f90 0 NOTYPE LOCAL DEFAULT 1 isr_stub_101
202: ffffffff80009fd0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_102
203: ffffffff8000a010 0 NOTYPE LOCAL DEFAULT 1 isr_stub_103
204: ffffffff8000a050 0 NOTYPE LOCAL DEFAULT 1 isr_stub_104
205: ffffffff8000a090 0 NOTYPE LOCAL DEFAULT 1 isr_stub_105
206: ffffffff8000a0d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_106
207: ffffffff8000a110 0 NOTYPE LOCAL DEFAULT 1 isr_stub_107
208: ffffffff8000a150 0 NOTYPE LOCAL DEFAULT 1 isr_stub_108
209: ffffffff8000a190 0 NOTYPE LOCAL DEFAULT 1 isr_stub_109
210: ffffffff8000a1d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_110
211: ffffffff8000a210 0 NOTYPE LOCAL DEFAULT 1 isr_stub_111
212: ffffffff8000a250 0 NOTYPE LOCAL DEFAULT 1 isr_stub_112
213: ffffffff8000a290 0 NOTYPE LOCAL DEFAULT 1 isr_stub_113
214: ffffffff8000a2d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_114
215: ffffffff8000a310 0 NOTYPE LOCAL DEFAULT 1 isr_stub_115
216: ffffffff8000a350 0 NOTYPE LOCAL DEFAULT 1 isr_stub_116
217: ffffffff8000a390 0 NOTYPE LOCAL DEFAULT 1 isr_stub_117
218: ffffffff8000a3d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_118
219: ffffffff8000a410 0 NOTYPE LOCAL DEFAULT 1 isr_stub_119
220: ffffffff8000a450 0 NOTYPE LOCAL DEFAULT 1 isr_stub_120
221: ffffffff8000a490 0 NOTYPE LOCAL DEFAULT 1 isr_stub_121
222: ffffffff8000a4d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_122
223: ffffffff8000a510 0 NOTYPE LOCAL DEFAULT 1 isr_stub_123
224: ffffffff8000a550 0 NOTYPE LOCAL DEFAULT 1 isr_stub_124
225: ffffffff8000a590 0 NOTYPE LOCAL DEFAULT 1 isr_stub_125
226: ffffffff8000a5d0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_126
227: ffffffff8000a610 0 NOTYPE LOCAL DEFAULT 1 isr_stub_127
228: ffffffff8000a650 0 NOTYPE LOCAL DEFAULT 1 isr_stub_128
229: ffffffff8000a693 0 NOTYPE LOCAL DEFAULT 1 isr_stub_129
230: ffffffff8000a6d6 0 NOTYPE LOCAL DEFAULT 1 isr_stub_130
231: ffffffff8000a719 0 NOTYPE LOCAL DEFAULT 1 isr_stub_131
232: ffffffff8000a75c 0 NOTYPE LOCAL DEFAULT 1 isr_stub_132
233: ffffffff8000a79f 0 NOTYPE LOCAL DEFAULT 1 isr_stub_133
234: ffffffff8000a7e2 0 NOTYPE LOCAL DEFAULT 1 isr_stub_134
235: ffffffff8000a825 0 NOTYPE LOCAL DEFAULT 1 isr_stub_135
236: ffffffff8000a868 0 NOTYPE LOCAL DEFAULT 1 isr_stub_136
237: ffffffff8000a8ab 0 NOTYPE LOCAL DEFAULT 1 isr_stub_137
238: ffffffff8000a8ee 0 NOTYPE LOCAL DEFAULT 1 isr_stub_138
239: ffffffff8000a931 0 NOTYPE LOCAL DEFAULT 1 isr_stub_139
240: ffffffff8000a974 0 NOTYPE LOCAL DEFAULT 1 isr_stub_140
241: ffffffff8000a9b7 0 NOTYPE LOCAL DEFAULT 1 isr_stub_141
242: ffffffff8000a9fa 0 NOTYPE LOCAL DEFAULT 1 isr_stub_142
243: ffffffff8000aa3d 0 NOTYPE LOCAL DEFAULT 1 isr_stub_143
244: ffffffff8000aa80 0 NOTYPE LOCAL DEFAULT 1 isr_stub_144
245: ffffffff8000aac3 0 NOTYPE LOCAL DEFAULT 1 isr_stub_145
246: ffffffff8000ab06 0 NOTYPE LOCAL DEFAULT 1 isr_stub_146
247: ffffffff8000ab49 0 NOTYPE LOCAL DEFAULT 1 isr_stub_147
248: ffffffff8000ab8c 0 NOTYPE LOCAL DEFAULT 1 isr_stub_148
249: ffffffff8000abcf 0 NOTYPE LOCAL DEFAULT 1 isr_stub_149
250: ffffffff8000ac12 0 NOTYPE LOCAL DEFAULT 1 isr_stub_150
251: ffffffff8000ac55 0 NOTYPE LOCAL DEFAULT 1 isr_stub_151
252: ffffffff8000ac98 0 NOTYPE LOCAL DEFAULT 1 isr_stub_152
253: ffffffff8000acdb 0 NOTYPE LOCAL DEFAULT 1 isr_stub_153
254: ffffffff8000ad1e 0 NOTYPE LOCAL DEFAULT 1 isr_stub_154
255: ffffffff8000ad61 0 NOTYPE LOCAL DEFAULT 1 isr_stub_155
256: ffffffff8000ada4 0 NOTYPE LOCAL DEFAULT 1 isr_stub_156
257: ffffffff8000ade7 0 NOTYPE LOCAL DEFAULT 1 isr_stub_157
258: ffffffff8000ae2a 0 NOTYPE LOCAL DEFAULT 1 isr_stub_158
259: ffffffff8000ae6d 0 NOTYPE LOCAL DEFAULT 1 isr_stub_159
260: ffffffff8000aeb0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_160
261: ffffffff8000aef3 0 NOTYPE LOCAL DEFAULT 1 isr_stub_161
262: ffffffff8000af36 0 NOTYPE LOCAL DEFAULT 1 isr_stub_162
263: ffffffff8000af79 0 NOTYPE LOCAL DEFAULT 1 isr_stub_163
264: ffffffff8000afbc 0 NOTYPE LOCAL DEFAULT 1 isr_stub_164
265: ffffffff8000afff 0 NOTYPE LOCAL DEFAULT 1 isr_stub_165
266: ffffffff8000b042 0 NOTYPE LOCAL DEFAULT 1 isr_stub_166
267: ffffffff8000b085 0 NOTYPE LOCAL DEFAULT 1 isr_stub_167
268: ffffffff8000b0c8 0 NOTYPE LOCAL DEFAULT 1 isr_stub_168
269: ffffffff8000b10b 0 NOTYPE LOCAL DEFAULT 1 isr_stub_169
270: ffffffff8000b14e 0 NOTYPE LOCAL DEFAULT 1 isr_stub_170
271: ffffffff8000b191 0 NOTYPE LOCAL DEFAULT 1 isr_stub_171
272: ffffffff8000b1d4 0 NOTYPE LOCAL DEFAULT 1 isr_stub_172
273: ffffffff8000b217 0 NOTYPE LOCAL DEFAULT 1 isr_stub_173
274: ffffffff8000b25a 0 NOTYPE LOCAL DEFAULT 1 isr_stub_174
275: ffffffff8000b29d 0 NOTYPE LOCAL DEFAULT 1 isr_stub_175
276: ffffffff8000b2e0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_176
277: ffffffff8000b323 0 NOTYPE LOCAL DEFAULT 1 isr_stub_177
278: ffffffff8000b366 0 NOTYPE LOCAL DEFAULT 1 isr_stub_178
279: ffffffff8000b3a9 0 NOTYPE LOCAL DEFAULT 1 isr_stub_179
280: ffffffff8000b3ec 0 NOTYPE LOCAL DEFAULT 1 isr_stub_180
281: ffffffff8000b42f 0 NOTYPE LOCAL DEFAULT 1 isr_stub_181
282: ffffffff8000b472 0 NOTYPE LOCAL DEFAULT 1 isr_stub_182
283: ffffffff8000b4b5 0 NOTYPE LOCAL DEFAULT 1 isr_stub_183
284: ffffffff8000b4f8 0 NOTYPE LOCAL DEFAULT 1 isr_stub_184
285: ffffffff8000b53b 0 NOTYPE LOCAL DEFAULT 1 isr_stub_185
286: ffffffff8000b57e 0 NOTYPE LOCAL DEFAULT 1 isr_stub_186
287: ffffffff8000b5c1 0 NOTYPE LOCAL DEFAULT 1 isr_stub_187
288: ffffffff8000b604 0 NOTYPE LOCAL DEFAULT 1 isr_stub_188
289: ffffffff8000b647 0 NOTYPE LOCAL DEFAULT 1 isr_stub_189
290: ffffffff8000b68a 0 NOTYPE LOCAL DEFAULT 1 isr_stub_190
291: ffffffff8000b6cd 0 NOTYPE LOCAL DEFAULT 1 isr_stub_191
292: ffffffff8000b710 0 NOTYPE LOCAL DEFAULT 1 isr_stub_192
293: ffffffff8000b753 0 NOTYPE LOCAL DEFAULT 1 isr_stub_193
294: ffffffff8000b796 0 NOTYPE LOCAL DEFAULT 1 isr_stub_194
295: ffffffff8000b7d9 0 NOTYPE LOCAL DEFAULT 1 isr_stub_195
296: ffffffff8000b81c 0 NOTYPE LOCAL DEFAULT 1 isr_stub_196
297: ffffffff8000b85f 0 NOTYPE LOCAL DEFAULT 1 isr_stub_197
298: ffffffff8000b8a2 0 NOTYPE LOCAL DEFAULT 1 isr_stub_198
299: ffffffff8000b8e5 0 NOTYPE LOCAL DEFAULT 1 isr_stub_199
300: ffffffff8000b928 0 NOTYPE LOCAL DEFAULT 1 isr_stub_200
301: ffffffff8000b96b 0 NOTYPE LOCAL DEFAULT 1 isr_stub_201
302: ffffffff8000b9ae 0 NOTYPE LOCAL DEFAULT 1 isr_stub_202
303: ffffffff8000b9f1 0 NOTYPE LOCAL DEFAULT 1 isr_stub_203
304: ffffffff8000ba34 0 NOTYPE LOCAL DEFAULT 1 isr_stub_204
305: ffffffff8000ba77 0 NOTYPE LOCAL DEFAULT 1 isr_stub_205
306: ffffffff8000baba 0 NOTYPE LOCAL DEFAULT 1 isr_stub_206
307: ffffffff8000bafd 0 NOTYPE LOCAL DEFAULT 1 isr_stub_207
308: ffffffff8000bb40 0 NOTYPE LOCAL DEFAULT 1 isr_stub_208
309: ffffffff8000bb83 0 NOTYPE LOCAL DEFAULT 1 isr_stub_209
310: ffffffff8000bbc6 0 NOTYPE LOCAL DEFAULT 1 isr_stub_210
311: ffffffff8000bc09 0 NOTYPE LOCAL DEFAULT 1 isr_stub_211
312: ffffffff8000bc4c 0 NOTYPE LOCAL DEFAULT 1 isr_stub_212
313: ffffffff8000bc8f 0 NOTYPE LOCAL DEFAULT 1 isr_stub_213
314: ffffffff8000bcd2 0 NOTYPE LOCAL DEFAULT 1 isr_stub_214
315: ffffffff8000bd15 0 NOTYPE LOCAL DEFAULT 1 isr_stub_215
316: ffffffff8000bd58 0 NOTYPE LOCAL DEFAULT 1 isr_stub_216
317: ffffffff8000bd9b 0 NOTYPE LOCAL DEFAULT 1 isr_stub_217
318: ffffffff8000bdde 0 NOTYPE LOCAL DEFAULT 1 isr_stub_218
319: ffffffff8000be21 0 NOTYPE LOCAL DEFAULT 1 isr_stub_219
320: ffffffff8000be64 0 NOTYPE LOCAL DEFAULT 1 isr_stub_220
321: ffffffff8000bea7 0 NOTYPE LOCAL DEFAULT 1 isr_stub_221
322: ffffffff8000beea 0 NOTYPE LOCAL DEFAULT 1 isr_stub_222
323: ffffffff8000bf2d 0 NOTYPE LOCAL DEFAULT 1 isr_stub_223
324: ffffffff8000bf70 0 NOTYPE LOCAL DEFAULT 1 isr_stub_224
325: ffffffff8000bfb3 0 NOTYPE LOCAL DEFAULT 1 isr_stub_225
326: ffffffff8000bff6 0 NOTYPE LOCAL DEFAULT 1 isr_stub_226
327: ffffffff8000c039 0 NOTYPE LOCAL DEFAULT 1 isr_stub_227
328: ffffffff8000c07c 0 NOTYPE LOCAL DEFAULT 1 isr_stub_228
329: ffffffff8000c0bf 0 NOTYPE LOCAL DEFAULT 1 isr_stub_229
330: ffffffff8000c102 0 NOTYPE LOCAL DEFAULT 1 isr_stub_230
331: ffffffff8000c145 0 NOTYPE LOCAL DEFAULT 1 isr_stub_231
332: ffffffff8000c188 0 NOTYPE LOCAL DEFAULT 1 isr_stub_232
333: ffffffff8000c1cb 0 NOTYPE LOCAL DEFAULT 1 isr_stub_233
334: ffffffff8000c20e 0 NOTYPE LOCAL DEFAULT 1 isr_stub_234
335: ffffffff8000c251 0 NOTYPE LOCAL DEFAULT 1 isr_stub_235
336: ffffffff8000c294 0 NOTYPE LOCAL DEFAULT 1 isr_stub_236
337: ffffffff8000c2d7 0 NOTYPE LOCAL DEFAULT 1 isr_stub_237
338: ffffffff8000c31a 0 NOTYPE LOCAL DEFAULT 1 isr_stub_238
339: ffffffff8000c35d 0 NOTYPE LOCAL DEFAULT 1 isr_stub_239
340: ffffffff8000c3a0 0 NOTYPE LOCAL DEFAULT 1 isr_stub_240
341: ffffffff8000c3e3 0 NOTYPE LOCAL DEFAULT 1 isr_stub_241
342: ffffffff8000c426 0 NOTYPE LOCAL DEFAULT 1 isr_stub_242
343: ffffffff8000c469 0 NOTYPE LOCAL DEFAULT 1 isr_stub_243
344: ffffffff8000c4ac 0 NOTYPE LOCAL DEFAULT 1 isr_stub_244
345: ffffffff8000c4ef 0 NOTYPE LOCAL DEFAULT 1 isr_stub_245
346: ffffffff8000c532 0 NOTYPE LOCAL DEFAULT 1 isr_stub_246
347: ffffffff8000c575 0 NOTYPE LOCAL DEFAULT 1 isr_stub_247
348: ffffffff8000c5b8 0 NOTYPE LOCAL DEFAULT 1 isr_stub_248
349: ffffffff8000c5fb 0 NOTYPE LOCAL DEFAULT 1 isr_stub_249
350: ffffffff8000c63e 0 NOTYPE LOCAL DEFAULT 1 isr_stub_250
351: ffffffff8000c681 0 NOTYPE LOCAL DEFAULT 1 isr_stub_251
352: ffffffff8000c6c4 0 NOTYPE LOCAL DEFAULT 1 isr_stub_252
353: ffffffff8000c707 0 NOTYPE LOCAL DEFAULT 1 isr_stub_253
354: ffffffff8000c74a 0 NOTYPE LOCAL DEFAULT 1 isr_stub_254
355: ffffffff8000c78d 0 NOTYPE LOCAL DEFAULT 1 isr_stub_255
356: 0000000000000000 0 FILE LOCAL DEFAULT ABS src/arch/x86_64/[...]
357: 0000000000000000 0 FILE LOCAL DEFAULT ABS src/premain.asm
358: 0000000000000000 0 FILE LOCAL DEFAULT ABS font.c
359: ffffffff80000350 236 FUNC GLOBAL DEFAULT 1 smp_init
360: ffffffff80006af0 285 FUNC GLOBAL DEFAULT 1 log
361: ffffffff80008420 189 FUNC GLOBAL DEFAULT 1 printf
362: ffffffff8001fc58 4 OBJECT GLOBAL DEFAULT 5 acpi_madt_iso_length
363: ffffffff80003f40 3011 FUNC GLOBAL DEFAULT 1 flanterm_fb_init
364: ffffffff80013de0 0 NOTYPE GLOBAL DEFAULT 3 rodata_end_ld
365: ffffffff800084f0 184 FUNC GLOBAL DEFAULT 1 syscall_handle
366: ffffffff800024c0 78 FUNC GLOBAL DEFAULT 1 sched_exit
367: ffffffff8001fc08 8 OBJECT GLOBAL DEFAULT 5 kernel_vma_context
368: ffffffff80001400 13 FUNC GLOBAL DEFAULT 1 liballoc_unlock
369: ffffffff80000920 19 FUNC GLOBAL DEFAULT 1 lapic_eoi
370: ffffffff8001fc38 8 OBJECT GLOBAL DEFAULT 5 proc_list
371: ffffffff8001fbe0 8 OBJECT GLOBAL DEFAULT 5 hhdm_offset
372: ffffffff80020460 2048 OBJECT GLOBAL DEFAULT 5 acpi_madt_ioapic_list
373: ffffffff80001ce0 721 FUNC GLOBAL DEFAULT 1 vmm_init
374: ffffffff80001430 36 FUNC GLOBAL DEFAULT 1 memcpy
375: ffffffff8001db74 4 OBJECT GLOBAL DEFAULT 5 ctr
376: ffffffff80002600 134 FUNC GLOBAL DEFAULT 1 acpi_init
377: ffffffff80000760 102 FUNC GLOBAL DEFAULT 1 ioapic_get_gsi
378: ffffffff80001040 904 FUNC GLOBAL DEFAULT 1 malloc
379: ffffffff800008f0 38 FUNC GLOBAL DEFAULT 1 lapic_init
380: ffffffff800017d0 249 FUNC GLOBAL DEFAULT 1 vma_create_context
381: ffffffff8001fc28 4 OBJECT GLOBAL DEFAULT 5 standby
382: ffffffff8000e1c0 48 OBJECT GLOBAL DEFAULT 2 karq
383: ffffffff8000e2a0 0 NOTYPE GLOBAL DEFAULT 2 reqs_end_ld
384: ffffffff80001ac0 157 FUNC GLOBAL DEFAULT 1 vmm_alloc_pm
385: ffffffff80000000 183 FUNC GLOBAL DEFAULT 1 gdt_init
386: ffffffff8000f000 0 NOTYPE GLOBAL DEFAULT 3 rodata_start_ld
387: ffffffff80000650 257 FUNC GLOBAL DEFAULT 1 ioapic_init
388: ffffffff80000df0 435 FUNC GLOBAL DEFAULT 1 __kmain
389: ffffffff8001fc30 8 OBJECT GLOBAL DEFAULT 5 curr_proc
390: ffffffff800004a0 283 FUNC GLOBAL DEFAULT 1 ksym_init
391: ffffffff80000880 111 FUNC GLOBAL DEFAULT 1 ioapic_redirect_irq
392: ffffffff8001fbf0 24 OBJECT GLOBAL DEFAULT 5 stack
393: ffffffff80002510 27 FUNC GLOBAL DEFAULT 1 schedule
394: ffffffff8001db7c 4 OBJECT GLOBAL DEFAULT 5 bootstrap_lapic_id
395: ffffffff8001fba8 8 OBJECT GLOBAL DEFAULT 5 fb
396: ffffffff80000300 20 FUNC GLOBAL DEFAULT 1 pit_enable
397: ffffffff80001bc0 144 FUNC GLOBAL DEFAULT 1 virt_to_phys
398: ffffffff800013d0 35 FUNC GLOBAL DEFAULT 1 liballoc_lock
399: ffffffff800002c0 51 FUNC GLOBAL DEFAULT 1 pit_init
400: ffffffff800083a0 127 FUNC GLOBAL DEFAULT 1 npf_vsnprintf
401: ffffffff800018e0 316 FUNC GLOBAL DEFAULT 1 vma_alloc
402: ffffffff80000120 246 FUNC GLOBAL DEFAULT 1 idt_init
403: ffffffff80000320 33 FUNC GLOBAL DEFAULT 1 smp_entry
404: ffffffff80001710 104 FUNC GLOBAL DEFAULT 1 pmm_request_page
405: ffffffff80001c50 140 FUNC GLOBAL DEFAULT 1 vmm_map
406: ffffffff8001fc5c 4 OBJECT GLOBAL DEFAULT 5 acpi_madt_ioapic[...]
407: ffffffff8000e140 48 OBJECT GLOBAL DEFAULT 2 hhdm_req
408: ffffffff8001fc60 2048 OBJECT GLOBAL DEFAULT 5 acpi_madt_iso_list
409: ffffffff80002b40 393 FUNC GLOBAL DEFAULT 1 panic_ctx
410: ffffffff8001fc2c 4 OBJECT GLOBAL DEFAULT 5 current_pid
411: ffffffff80004d00 7649 FUNC GLOBAL DEFAULT 1 flanterm_write
412: ffffffff80001b60 64 FUNC GLOBAL DEFAULT 1 vmm_release_pm
413: ffffffff8001c060 1792 OBJECT GLOBAL DEFAULT 5 irq_handler_table
414: ffffffff80001410 26 FUNC GLOBAL DEFAULT 1 liballoc_alloc
415: ffffffff80000440 84 FUNC GLOBAL DEFAULT 1 __x86_64_syscall_init
416: ffffffff800029a0 90 FUNC GLOBAL DEFAULT 1 __panic_display_[...]
417: ffffffff80008650 13 FUNC GLOBAL DEFAULT 1 syscall_exit
418: ffffffff80006d00 5792 FUNC GLOBAL DEFAULT 1 npf_vpprintf
419: ffffffff80002a00 307 FUNC GLOBAL DEFAULT 1 panic
420: ffffffff8001fc10 4 OBJECT GLOBAL DEFAULT 5 vmm_kernel_pm_exists
421: ffffffff800014c0 67 FUNC GLOBAL DEFAULT 1 memcmp
422: ffffffff800021d0 752 FUNC GLOBAL DEFAULT 1 sched_create
423: ffffffff8001db70 4 OBJECT GLOBAL DEFAULT 5 tick
424: ffffffff8001fc20 8 OBJECT GLOBAL DEFAULT 5 vmm_kernel_pm
425: ffffffff800005c0 144 FUNC GLOBAL DEFAULT 1 ksym_fromip
426: ffffffff800085c0 138 FUNC GLOBAL DEFAULT 1 syscall_init
427: ffffffff80000290 6 FUNC GLOBAL DEFAULT 1 outb
428: ffffffff80014000 88 OBJECT GLOBAL DEFAULT 4 def_table
429: ffffffff8001fba0 8 OBJECT GLOBAL DEFAULT 5 ft_ctx
430: ffffffff80001460 68 FUNC GLOBAL DEFAULT 1 memset
431: ffffffff80001780 76 FUNC GLOBAL DEFAULT 1 pmm_free_page
432: ffffffff80000220 101 FUNC GLOBAL DEFAULT 1 idt_int_handler
433: ffffffff8001fc50 8 OBJECT GLOBAL DEFAULT 5 acpi_lapic_addr
434: ffffffff80004b10 136 FUNC GLOBAL DEFAULT 1 flanterm_context[...]
435: ffffffff80000da0 80 FUNC GLOBAL DEFAULT 1 strcmp
436: ffffffff80001fc0 137 FUNC GLOBAL DEFAULT 1 vmm_map_user
437: ffffffff80002530 206 FUNC GLOBAL DEFAULT 1 acpi_find_table
438: ffffffff800000c0 88 FUNC GLOBAL DEFAULT 1 idt_register_irq
439: ffffffff80014060 4096 OBJECT GLOBAL DEFAULT 4 VGA8
440: ffffffff8000d052 0 NOTYPE GLOBAL DEFAULT 1 text_end_ld
441: ffffffff80001540 451 FUNC GLOBAL DEFAULT 1 pmm_init
442: ffffffff800007d0 156 FUNC GLOBAL DEFAULT 1 ioapic_redirect_gsi
443: ffffffff8000e000 0 NOTYPE GLOBAL DEFAULT 2 reqs_start_ld
444: ffffffff800002a0 18 FUNC GLOBAL DEFAULT 1 pit_handler
445: ffffffff8001db78 4 OBJECT GLOBAL DEFAULT 5 smp_cpu_count
446: ffffffff8001fc18 8 OBJECT GLOBAL DEFAULT 5 vmm_current_pm
447: ffffffff80015060 28672 OBJECT GLOBAL DEFAULT 5 tss_list
448: ffffffff8000c7d0 0 NOTYPE GLOBAL DEFAULT 1 isr_stub_table
449: ffffffff80014000 0 NOTYPE GLOBAL DEFAULT 4 data_start_ld
450: ffffffff80001ba0 31 FUNC GLOBAL DEFAULT 1 vmm_load_pagemap
451: ffffffff80004ba0 331 FUNC GLOBAL DEFAULT 1 mk_wcwidth
452: ffffffff800f7f60 0 NOTYPE GLOBAL DEFAULT 5 data_end_ld
453: ffffffff8000d040 0 NOTYPE GLOBAL DEFAULT 1 kmain
454: ffffffff80002150 123 FUNC GLOBAL DEFAULT 1 sched_init
455: ffffffff80000d60 35 FUNC GLOBAL DEFAULT 1 strlen
456: ffffffff800026a0 233 FUNC GLOBAL DEFAULT 1 madt_init
457: ffffffff80000000 0 NOTYPE GLOBAL DEFAULT 1 text_start_ld
458: ffffffff8000e180 48 OBJECT GLOBAL DEFAULT 2 mm_req
459: ffffffff8000cfd0 0 NOTYPE GLOBAL DEFAULT 1 syscall_entry
460: ffffffff80000940 1050 FUNC GLOBAL DEFAULT 1 elf_load
461: ffffffff8001dba0 8192 OBJECT GLOBAL DEFAULT 5 kstack
462: ffffffff8001fbe8 8 OBJECT GLOBAL DEFAULT 5 _memmap
Aucune information de version repérée dans ce fichier.