The Pedigree Project
0.1
src
system
include
pedigree
kernel
processor
KernelCoreSyscallManager.h
1
/*
2
* Copyright (c) 2008-2014, Pedigree Developers
3
*
4
* Please see the CONTRIB file in the root of the source tree for a full
5
* list of contributors.
6
*
7
* Permission to use, copy, modify, and distribute this software for any
8
* purpose with or without fee is hereby granted, provided that the above
9
* copyright notice and this permission notice appear in all copies.
10
*
11
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
*/
19
20
#ifndef KERNEL_CORE_SYSCALL_MANAGER_H
21
#define KERNEL_CORE_SYSCALL_MANAGER_H
22
23
#include "pedigree/kernel/compiler.h"
24
#include "pedigree/kernel/processor/SyscallHandler.h"
25
#include "pedigree/kernel/processor/SyscallManager.h"
26
#include "pedigree/kernel/processor/state_forward.h"
27
#include "pedigree/kernel/processor/types.h"
28
29
class
EXPORTED_PUBLIC
KernelCoreSyscallManager
:
public
SyscallHandler
{
30
public
:
33
static
KernelCoreSyscallManager
&
instance
() {
34
return
m_Instance;
35
}
36
37
enum
Function_t
{
39
yield = 0,
40
44
link = 1,
45
46
sleep = 2,
47
49
functionEnd
50
};
51
52
void
initialise();
53
55
uintptr_t call(Function_t function, uintptr_t p1 = 0, uintptr_t p2 = 0, uintptr_t p3 = 0,
56
uintptr_t p4 = 0, uintptr_t p5 = 0);
57
59
virtual
uintptr_t
syscall
(SyscallState& state);
60
61
typedef
uintptr_t (*SyscallCallback)(SyscallState&);
62
64
uintptr_t registerSyscall(Function_t function, SyscallCallback func);
65
66
protected
:
68
inline
KernelCoreSyscallManager
();
70
inline
virtual
~KernelCoreSyscallManager
();
71
72
private
:
75
KernelCoreSyscallManager
(
const
KernelCoreSyscallManager
&);
78
KernelCoreSyscallManager
&
operator=
(
const
KernelCoreSyscallManager
&);
79
81
static
KernelCoreSyscallManager
m_Instance
;
82
84
SyscallCallback m_Functions[16];
85
SyscallManager::Registration
m_Registration;
86
};
87
88
#endif
KernelCoreSyscallManager
Definition
KernelCoreSyscallManager.h:29
KernelCoreSyscallManager::instance
static KernelCoreSyscallManager & instance()
Definition
KernelCoreSyscallManager.h:33
KernelCoreSyscallManager::Function_t
Function_t
Definition
KernelCoreSyscallManager.h:37
KernelCoreSyscallManager::KernelCoreSyscallManager
KernelCoreSyscallManager(const KernelCoreSyscallManager &)
KernelCoreSyscallManager::operator=
KernelCoreSyscallManager & operator=(const KernelCoreSyscallManager &)
KernelCoreSyscallManager::m_Instance
static KernelCoreSyscallManager m_Instance
Definition
KernelCoreSyscallManager.h:81
SyscallHandler
Definition
SyscallHandler.h:32
SyscallHandler::syscall
virtual uintptr_t syscall(SyscallState &State)=0
SyscallManager::Registration
Definition
include/pedigree/kernel/processor/SyscallManager.h:61
Generated on Thu Sep 24 2026 06:24:02 for The Pedigree Project by
1.9.8