This source file includes following definitions.
- process_vm_readv
- process_vm_writev
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #ifndef PMIX_SYS_CMA_H
20 #define PMIX_SYS_CMA_H 1
21
22 #if !defined(PMIX_ASSEMBLY_ARCH)
23
24 #include "pmix_config.h"
25 #endif
26
27 #include "src/atomics/sys/architecture.h"
28
29 #ifdef HAVE_SYS_TYPES_H
30 #include <sys/types.h>
31 #endif
32
33 #ifdef HAVE_UNISTD_H
34 #include <sys/unistd.h>
35 #endif
36
37 #ifdef __linux__
38
39
40
41 #if PMIX_ASSEMBLY_ARCH == PMIX_X86_64
42 #define __NR_process_vm_readv 310
43 #define __NR_process_vm_writev 311
44 #elif PMIX_ASSEMBLY_ARCH == PMIX_IA32
45 #define __NR_process_vm_readv 347
46 #define __NR_process_vm_writev 348
47 #elif PMIX_ASSEMBLY_ARCH == PMIX_IA64
48 #define __NR_process_vm_readv 1332
49 #define __NR_process_vm_writev 1333
50 #elif PMIX_ASSEMBLY_ARCH == PMIX_POWERPC32
51 #define __NR_process_vm_readv 351
52 #define __NR_process_vm_writev 352
53 #elif PMIX_ASSEMBLY_ARCH == PMIX_POWERPC64
54 #define __NR_process_vm_readv 351
55 #define __NR_process_vm_writev 352
56 #elif PMIX_ASSEMBLY_ARCH == PMIX_ARM
57
58 #define __NR_process_vm_readv 376
59 #define __NR_process_vm_writev 377
60
61 #elif PMIX_ASSEMBLY_ARCH == PMIX_ARM64
62
63
64
65 #define __NR_process_vm_readv 270
66 #define __NR_process_vm_writev 271
67
68 #elif PMIX_ASSEMBLY_ARCH == PMIX_MIPS
69
70 #if _MIPS_SIM == _MIPS_SIM_ABI64
71
72 #define __NR_process_vm_readv 5304
73 #define __NR_process_vm_writev 5305
74
75 #elif _MIPS_SIM == _MIPS_SIM_NABI32
76
77 #define __NR_process_vm_readv 6309
78 #define __NR_process_vm_writev 6310
79
80 #else
81
82 #error "Unsupported MIPS architecture for process_vm_readv and process_vm_writev syscalls"
83
84 #endif
85
86 #elif PMIX_ASSEMBLY_ARCH == PMIX_S390
87
88 #define __NR_process_vm_readv 340
89 #define __NR_process_vm_writev 341
90
91 #elif PMIX_ASSEMBLY_ARCH == PMIX_S390X
92
93 #define __NR_process_vm_readv 340
94 #define __NR_process_vm_writev 341
95
96 #else
97 #error "Unsupported architecture for process_vm_readv and process_vm_writev syscalls"
98 #endif
99
100
101 static inline ssize_t
102 process_vm_readv(pid_t pid,
103 const struct iovec *lvec,
104 unsigned long liovcnt,
105 const struct iovec *rvec,
106 unsigned long riovcnt,
107 unsigned long flags)
108 {
109 return syscall(__NR_process_vm_readv, pid, lvec, liovcnt, rvec, riovcnt, flags);
110 }
111
112 static inline ssize_t
113 process_vm_writev(pid_t pid,
114 const struct iovec *lvec,
115 unsigned long liovcnt,
116 const struct iovec *rvec,
117 unsigned long riovcnt,
118 unsigned long flags)
119 {
120 return syscall(__NR_process_vm_writev, pid, lvec, liovcnt, rvec, riovcnt, flags);
121 }
122
123 #endif
124
125 #endif