XenevaOS
Loading...
Searching...
No Matches
Functions | Variables
x86_64_exception.cpp File Reference
#include <Hal/x86_64_exception.h>
#include <Hal/x86_64_sched.h>
#include <Hal/x86_64_cpu.h>
#include <Hal/x86_64_gdt.h>
#include <Hal/pcpu.h>
#include <process.h>
#include <Hal/x86_64_lowlevel.h>
#include <aucon.h>
#include <Mm/vmmngr.h>
#include <Mm/vmarea.h>
#include <Mm/pmmngr.h>
#include <_null.h>
#include <Hal/x86_64_idt.h>
#include <loader.h>
#include <Mm/kmalloc.h>
#include <Hal/x86_64_signal.h>
#include <Serv/sysserv.h>
#include <Hal/serial.h>
Include dependency graph for x86_64_exception.cpp:

Functions

void panic (const char *msg,...)
 
void divide_by_zero_fault (size_t vector, void *param)
 
void single_step_trap (size_t vector, void *param)
 
void nmi_trap (size_t vector, void *param)
 
void breakpoint_trap (size_t vector, void *param)
 exception function breakpoint_trap
 
void overflow_trap (size_t v, void *p)
 exception function – overflow_trap
 
void bounds_check_fault (size_t v, void *p)
 exception function – bounds_check_fault
 
void invalid_opcode_fault (size_t v, void *p)
 exception function – invalid_opcode_fault
 
void no_device_fault (size_t v, void *p)
 exception function – no device fault
 
void double_fault_abort (size_t v, void *p)
 exception function – double fault abort
 
void invalid_tss_fault (size_t v, void *p)
 exception function – invalid tss fault
 
void no_segment_fault (size_t v, void *p)
 exception function – no_segment_fault
 
void stack_fault (size_t v, void *p)
 exception function – stack_fault
 
void general_protection_fault (size_t v, void *p)
 exception function — general protection fault
 
void page_fault (size_t vector, void *param)
 
void fpu_fault (size_t vector, void *p)
 exception function – fpu_fault
 
void alignment_check_fault (size_t v, void *p)
 exception function – alignment_check_fault
 
void machine_check_abort (size_t v, void *p)
 exception function – machine_check_abort
 
void simd_fpu_fault (size_t v, void *p)
 exception function – simd related fault handler
 
void x86_64_exception_init ()
 

Variables

bool _signal_debug
 
bool syscall_debug
 

Function Documentation

◆ alignment_check_fault()

void alignment_check_fault ( size_t  v,
void *  p 
)

exception function – alignment_check_fault

◆ bounds_check_fault()

void bounds_check_fault ( size_t  v,
void *  p 
)

exception function – bounds_check_fault

◆ breakpoint_trap()

void breakpoint_trap ( size_t  vector,
void *  param 
)

exception function breakpoint_trap

◆ divide_by_zero_fault()

void divide_by_zero_fault ( size_t  vector,
void *  param 
)

◆ double_fault_abort()

void double_fault_abort ( size_t  v,
void *  p 
)

exception function – double fault abort

◆ fpu_fault()

void fpu_fault ( size_t  vector,
void *  p 
)

exception function – fpu_fault

◆ general_protection_fault()

void general_protection_fault ( size_t  v,
void *  p 
)

exception function — general protection fault

◆ invalid_opcode_fault()

void invalid_opcode_fault ( size_t  v,
void *  p 
)

exception function – invalid_opcode_fault

◆ invalid_tss_fault()

void invalid_tss_fault ( size_t  v,
void *  p 
)

exception function – invalid tss fault

◆ machine_check_abort()

void machine_check_abort ( size_t  v,
void *  p 
)

exception function – machine_check_abort

◆ nmi_trap()

void nmi_trap ( size_t  vector,
void *  param 
)

◆ no_device_fault()

void no_device_fault ( size_t  v,
void *  p 
)

exception function – no device fault

◆ no_segment_fault()

void no_segment_fault ( size_t  v,
void *  p 
)

exception function – no_segment_fault

◆ overflow_trap()

void overflow_trap ( size_t  v,
void *  p 
)

exception function – overflow_trap

◆ page_fault()

void page_fault ( size_t  vector,
void *  param 
)

Most important for good performance is page fault! whenever any memory related errors occurs it get fired and new page swapping process should be allocated

◆ panic()

void panic ( const char *  msg,
  ... 
)

BSD 2-Clause License

Copyright (c) 2022, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

◆ simd_fpu_fault()

void simd_fpu_fault ( size_t  v,
void *  p 
)

exception function – simd related fault handler

◆ single_step_trap()

void single_step_trap ( size_t  vector,
void *  param 
)

◆ stack_fault()

void stack_fault ( size_t  v,
void *  p 
)

exception function – stack_fault

◆ x86_64_exception_init()

void x86_64_exception_init ( )

BSD 2-Clause License

Copyright (c) 2022-2023, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Variable Documentation

◆ _signal_debug

bool _signal_debug

◆ syscall_debug

bool syscall_debug