Xyris  0.5
gcc.cpp File Reference
#include <Locking/Mutex.hpp>
#include <Arch/Arch.hpp>
#include <Panic.hpp>
#include <stddef.h>
#include <stdint.h>
+ Include dependency graph for gcc.cpp:

Go to the source code of this file.

Data Structures

struct  __cxxabiv1::cxaguard
 

Namespaces

 __cxxabiv1
 

Typedefs

typedef typedef__extension__ struct cxaguard __cxxabiv1::__guard
 

Functions

void __stack_chk_fail (void)
 
void __cxa_pure_virtual ()
 
int __cxxabiv1::__cxa_guard_acquire (__guard *g)
 
void __cxxabiv1::__cxa_guard_release (__guard *g)
 
void __cxxabiv1::__cxa_guard_abort (__guard *g)
 

Variables

uintptr_t __stack_chk_guard = 0xDEADC0DE
 
Mutex __cxxabiv1::cxaGuard ("cxaguard")
 

Function Documentation

◆ __cxa_pure_virtual()

void __cxa_pure_virtual ( )

Definition at line 44 of file gcc.cpp.

45 {
46  panic("Pure virtual called!");
47 }
+ Here is the call graph for this function:

◆ __stack_chk_fail()

void __stack_chk_fail ( void  )

Definition at line 39 of file gcc.cpp.

40 {
41  panic("Smashed stack detected.");
42 }
+ Here is the call graph for this function:

Variable Documentation

◆ __stack_chk_guard

uintptr_t __stack_chk_guard = 0xDEADC0DE

This function is the global handler for all stack protection. GCC will automatically write the canary code and use this function as the handler for when a smashed stack is detected.

Definition at line 27 of file gcc.cpp.

panic
void panic(const char *msg)
Halt the system and print the provided message on the panic screen.
Definition: Panic.cpp:82