|
Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
|
#include "hal/cpu/paging.h"#include "libk/debug/debug.h"#include "libk/executable/elf.h"#include "libk/serial.h"#include "memory/kalloc.h"#include "memory/memory_utils.h"#include "memory/phys_base_allocator.h"#include "memory/vm_manager.h"#include "modules/kernel_reader.h"#include "procc/workqueue.h"#include "vfs/enum.h"#include <modules/voxmo.h>#include <str.h>#include <string.h>#include <type.h>#include <vector.h>#include <vfs/dentry.h>#include <vfs/vnode.h>Go to the source code of this file.
Functions | |
| static voxmo_loaded_module_t_ptr | vxGetVoxmoModule (kstring name) |
| static void | proccess_elf (voxmo_loaded_module_t_ptr module) |
| void | vxVoxmoInstall (const char *path) |
| void | vxSetDefaultVoxmoPath (const char *path) |
| static void | vxVoxmoProbe (kstring name) |
| void | vxVoxmoReload () |
Variables | |
| static kstring | default_voxmo_path |
| static voxmo_loaded_module_t_ptr | voxmo_modules |
| static spinlock_t | voxmo_list_lock = {0} |
|
static |
Definition at line 39 of file voxmo.c.
References ALIGN_UP, base_addr, BLOCK_SIZE, data, vector_symbols_ptr::data, Elf64_Ehdr::e_phnum, Elf64_Ehdr::e_type, elf_call_init_array(), elf_count_load_size(), elf_dyn_map_all(), elf_find_symbol(), elf_get_phdr_dynamic(), elf_gnu_hash_parse(), elf_load(), elf_relocate_dyn(), elf_section_map_all(), ET_DYN, get_kernel_vmm_page(), elf_section_map::gnuhash, symbols::items, kalloc(), kernel_get_symbols(), kfree2(), LOG2_ERROR, LOG_INFO, memcopy(), symbols::name, elf_dynamic_map::needed, paging_get_highest_page_map(), queue, vector_symbols_item::size, vector_symbols_ptr::size, vector_uint64_t::size, spin_acquire(), spin_release(), elf_dynamic_map::strtab, vector, vector_init, vector_push_back, vma_lookup_free_vaddr(), VMA_REGION_KMODULE, vxAddWorkqueueTask(), and vxGetVoxmoModule().
Referenced by vxVoxmoProbe().
|
static |
Definition at line 24 of file voxmo.c.
References LOG2_ERROR, name, NULL, spin_acquire(), spin_release(), stringcmp(), voxmo_list_lock, and voxmo_modules.
Referenced by proccess_elf(), and vxVoxmoProbe().
| void vxSetDefaultVoxmoPath | ( | const char * | path | ) |
Definition at line 317 of file voxmo.c.
References default_voxmo_path, path, and str().
Referenced by __attribute__().
| void vxVoxmoInstall | ( | const char * | path | ) |
Definition at line 180 of file voxmo.c.
References kstring::c_str, cap, data, DEBUG_LEVEL_OK, default_voxmo_path, dentry_put(), header, kalloc(), KDEBUG, kfree(), LOG2_ERROR, LOG_INFO, main_data, voxmo_metadata_header::main_file, memcopy(), memset(), vnode::ops, path, voxmo_metadata_string::pos, resolve_dentry(), vnode::size, spin_acquire(), spin_release(), str_concat(), str_release(), str_trim(), strncmp(), VFS_OK, dentry::vnode, voxmo_list_lock, and voxmo_modules.
Referenced by __attribute__().
|
static |
Definition at line 319 of file voxmo.c.
References LOG2_ERROR, LOG_INFO, name, proccess_elf(), vxGetVoxmoModule(), and vxVoxmoProbe().
Referenced by vxVoxmoProbe(), and vxVoxmoReload().
| void vxVoxmoReload | ( | ) |
Definition at line 344 of file voxmo.c.
References LOG_INFO, spin_acquire(), spin_release(), voxmo_list_lock, voxmo_modules, and vxVoxmoProbe().
Referenced by __attribute__().
|
static |
Definition at line 20 of file voxmo.c.
Referenced by vxSetDefaultVoxmoPath(), and vxVoxmoInstall().
|
static |
Definition at line 22 of file voxmo.c.
Referenced by vxGetVoxmoModule(), vxVoxmoInstall(), and vxVoxmoReload().
|
static |
Definition at line 21 of file voxmo.c.
Referenced by vxGetVoxmoModule(), vxVoxmoInstall(), and vxVoxmoReload().