The Pedigree Project
0.1
src
modules
subsys
posix
select-syscalls.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 SELECT_SYSCALLS_H
21
#define SELECT_SYSCALLS_H
22
23
#include "pedigree/kernel/process/Event.h"
24
#include "pedigree/kernel/process/eventNumbers.h"
25
26
#include "file-syscalls.h"
27
#include "linux-wait-abi.h"
28
30
class
SelectEvent
:
public
Event
{
31
public
:
34
SelectEvent
();
35
SelectEvent
(
Semaphore
* pSemaphore, fd_set* pFdSet,
size_t
fdIdx,
File
* pFile);
36
virtual
~SelectEvent
();
37
38
void
fire();
39
40
File
* getFile() {
41
return
m_pFile;
42
}
43
44
//
45
// Event interface
46
//
47
virtual
size_t
serialize
(uint8_t* pBuffer);
48
static
bool
unserialize(uint8_t* pBuffer,
SelectEvent
& event);
49
virtual
size_t
getNumber
() {
50
return
EventNumbers::SelectEvent;
51
}
52
53
private
:
54
Semaphore
* m_pSemaphore;
55
fd_set* m_pFdSet;
56
size_t
m_FdIdx;
57
File
* m_pFile;
58
};
59
60
int
posix_select(
int
nfds, fd_set* readfds, fd_set* writefds, fd_set* errorfds, timeval* timeout);
61
int
posix_pselect6(
int
nfds, fd_set* readfds, fd_set* writefds, fd_set* errorfds,
62
LinuxKernelTimespec
* timeout,
const
LinuxPselectSigsetArgument
* signalArgument);
63
64
#endif
Event
Definition
Event.h:49
File
Definition
File.h:74
SelectEvent
Definition
select-syscalls.h:30
SelectEvent::serialize
virtual size_t serialize(uint8_t *pBuffer)
SelectEvent::getNumber
virtual size_t getNumber()
Definition
select-syscalls.h:49
SelectEvent::SelectEvent
SelectEvent()
Semaphore
Definition
Semaphore.h:36
LinuxKernelTimespec
Definition
linux-wait-abi.h:15
LinuxPselectSigsetArgument
Definition
linux-wait-abi.h:34
Generated on Thu Sep 24 2026 06:23:59 for The Pedigree Project by
1.9.8