The Pedigree Project
0.1
src
modules
subsys
posix
PosixSyscallManager.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 POSIX_SYSCALL_MANAGER_H
21
#define POSIX_SYSCALL_MANAGER_H
22
23
#include "pedigree/kernel/process/Mutex.h"
24
#include "pedigree/kernel/processor/SyscallHandler.h"
25
#include "pedigree/kernel/processor/SyscallManager.h"
26
#include "pedigree/kernel/processor/types.h"
27
#include "pedigree/kernel/utilities/Tree.h"
28
29
class
PosixSyscallManager
:
public
SyscallHandler
{
30
public
:
31
bool
initialise();
32
bool
closeAdmission();
33
bool
finishShutdown();
34
bool
shutdown();
35
37
uintptr_t
call
(uintptr_t function, uintptr_t p1 = 0, uintptr_t p2 = 0, uintptr_t p3 = 0,
38
uintptr_t p4 = 0, uintptr_t p5 = 0);
39
41
virtual
uintptr_t
syscall
(SyscallState& state);
42
44
PosixSyscallManager
();
46
virtual
~PosixSyscallManager
();
47
48
private
:
49
static
uintptr_t syscallEntry(
SyscallHandler
* handler, SyscallState& state);
50
#if PEDIGREE_BENCHMARK_SYSCALL_TRACE
51
static
uintptr_t syscallDispatch(
SyscallHandler
* handler, SyscallState& state);
52
#endif
53
56
PosixSyscallManager
(
const
PosixSyscallManager
&);
59
PosixSyscallManager
&
operator=
(
const
PosixSyscallManager
&);
61
Tree<uint64_t, bool>
m_SeenUnsupportedSyscalls
;
62
Mutex
m_UnsupportedSyscallsLock;
63
SyscallManager::Registration
m_LinuxRegistration;
64
SyscallManager::Registration
m_PosixRegistration;
65
};
66
67
#endif
Mutex
Definition
Mutex.h:56
PosixSyscallManager
Definition
PosixSyscallManager.h:29
PosixSyscallManager::PosixSyscallManager
PosixSyscallManager()
Definition
PosixSyscallManager.cc:164
PosixSyscallManager::PosixSyscallManager
PosixSyscallManager(const PosixSyscallManager &)
PosixSyscallManager::call
uintptr_t call(uintptr_t function, uintptr_t p1=0, uintptr_t p2=0, uintptr_t p3=0, uintptr_t p4=0, uintptr_t p5=0)
Definition
PosixSyscallManager.cc:198
PosixSyscallManager::operator=
PosixSyscallManager & operator=(const PosixSyscallManager &)
PosixSyscallManager::syscall
virtual uintptr_t syscall(SyscallState &state)
Definition
PosixSyscallManager.cc:209
PosixSyscallManager::m_SeenUnsupportedSyscalls
Tree< uint64_t, bool > m_SeenUnsupportedSyscalls
Definition
PosixSyscallManager.h:61
PosixSyscallManager::~PosixSyscallManager
virtual ~PosixSyscallManager()
Definition
PosixSyscallManager.cc:166
SyscallHandler
Definition
SyscallHandler.h:32
SyscallManager::Registration
Definition
include/pedigree/kernel/processor/SyscallManager.h:62
Tree
A key/value dictionary.
Definition
Tree.h:33
Generated on Sat Oct 3 2026 06:38:05 for The Pedigree Project by
1.9.8