blob: 9d20a0f3c516d6039c1f5145ef839ed78da8540f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
/* -------------------------------------------
Copyright ZKA Technologies.
------------------------------------------- */
#include <ArchKit/ArchKit.hxx>
#include <HALKit/AXP/Processor.hxx>
/// @brief Internal call for syscall, to work with C++.
/// @param stack
/// @return nothing.
EXTERN_C void rt_syscall_handle(Kernel::HAL::StackFrame* stack)
{
if (stack->Rcx <= (kSyscalls.Count() - 1))
{
Kernel::kcout << "newoskrnl: syscall: enter.\r";
if (kSyscalls[stack->Rcx].Leak().Leak().fHooked)
(kSyscalls[stack->Rcx].Leak().Leak().fProc)(stack);
Kernel::kcout << "newoskrnl: syscall: exit.\r";
}
}
|