[kernel] Add get_caller function

Added a function to get the callsite of the current function invocation.
This commit is contained in:
2020-08-22 16:34:58 -07:00
parent 4819920b4e
commit d63a30728c
2 changed files with 7 additions and 0 deletions

View File

@@ -7,6 +7,7 @@
extern "C" {
uintptr_t get_rsp();
uintptr_t get_rip();
uintptr_t get_caller();
uintptr_t get_frame(int frame);
uintptr_t get_gsbase();
void _halt();

View File

@@ -8,6 +8,12 @@ get_rip:
pop rax ; do the same thing as 'ret', except with 'jmp'
jmp rax ; with the return address still in rax
global get_caller
get_caller:
; No prelude - don't touch rsp or rbp
mov rax, [rbp+8]
ret
global get_gsbase
get_gsbase:
rdgsbase rax