Coverage Report

Created: 2026-05-16 07:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/qtbase/src/3rdparty/forkfd/forkfd.h
Line
Count
Source
1
/****************************************************************************
2
**
3
** Copyright (C) 2019 Intel Corporation.
4
**
5
** Permission is hereby granted, free of charge, to any person obtaining a copy
6
** of this software and associated documentation files (the "Software"), to deal
7
** in the Software without restriction, including without limitation the rights
8
** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
** copies of the Software, and to permit persons to whom the Software is
10
** furnished to do so, subject to the following conditions:
11
**
12
** The above copyright notice and this permission notice shall be included in
13
** all copies or substantial portions of the Software.
14
**
15
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
** THE SOFTWARE.
22
**
23
****************************************************************************/
24
25
#ifndef FORKFD_H
26
#define FORKFD_H
27
28
#include <fcntl.h>
29
#include <stdint.h>
30
#include <sys/wait.h>
31
#include <unistd.h> // to get the POSIX flags
32
33
#if _POSIX_SPAWN > 0
34
#  include <spawn.h>
35
#endif
36
37
#ifdef __cplusplus
38
extern "C" {
39
#endif
40
41
0
#define FFD_CLOEXEC             1
42
0
#define FFD_NONBLOCK            2
43
0
#define FFD_USE_FORK            4
44
45
0
#define FFD_CHILD_PROCESS (-2)
46
47
0
#define FFDW_NOHANG             1       /* WNOHANG */
48
0
#define FFDW_NOWAIT             2       /* WNOWAIT */
49
50
struct forkfd_info {
51
    int32_t code;
52
    int32_t status;
53
};
54
55
int forkfd(int flags, pid_t *ppid);
56
int vforkfd(int flags, pid_t *ppid, int (*childFn)(void *), void *token);
57
int forkfd_wait4(int ffd, struct forkfd_info *info, int options, struct rusage *rusage);
58
static inline int forkfd_wait(int ffd, struct forkfd_info *info, struct rusage *rusage)
59
0
{
60
0
    return forkfd_wait4(ffd, info, 0, rusage);
61
0
}
Unexecuted instantiation: qprocess_unix.cpp:forkfd_wait(int, forkfd_info*, rusage*)
Unexecuted instantiation: forkfd_qt.c:forkfd_wait
62
int forkfd_close(int ffd);
63
64
#if _POSIX_SPAWN > 0
65
/* only for spawnfd: */
66
#  define FFD_SPAWN_SEARCH_PATH   O_RDWR
67
68
int spawnfd(int flags, pid_t *ppid, const char *path, const posix_spawn_file_actions_t *file_actions,
69
            posix_spawnattr_t *attrp, char *const argv[], char *const envp[]);
70
#endif
71
72
#ifdef __cplusplus
73
}
74
#endif
75
76
#endif // FORKFD_H