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 #ifndef OPAL_SYS_CMA_H
19 #define OPAL_SYS_CMA_H 1
20
21 #if !defined(OPAL_ASSEMBLY_ARCH)
22
23 #include "opal_config.h"
24 #endif
25
26 #include "opal/sys/architecture.h"
27
28 #ifdef HAVE_SYS_TYPES_H
29 #include <sys/types.h>
30 #endif
31
32 #ifdef HAVE_UNISTD_H
33 #include <sys/unistd.h>
34 #endif
35
36 #ifdef __linux__
37
38
39
40 #if OPAL_ASSEMBLY_ARCH == OPAL_X86_64
41 #define __NR_process_vm_readv 310
42 #define __NR_process_vm_writev 311
43 #elif OPAL_ASSEMBLY_ARCH == OPAL_IA32
44 #define __NR_process_vm_readv 347
45 #define __NR_process_vm_writev 348
46 #elif OPAL_ASSEMBLY_ARCH == OPAL_IA64
47 #define __NR_process_vm_readv 1332
48 #define __NR_process_vm_writev 1333
49 #elif OPAL_ASSEMBLY_ARCH == OPAL_POWERPC32
50 #define __NR_process_vm_readv 351
51 #define __NR_process_vm_writev 352
52 #elif OPAL_ASSEMBLY_ARCH == OPAL_POWERPC64
53 #define __NR_process_vm_readv 351
54 #define __NR_process_vm_writev 352
55 #elif OPAL_ASSEMBLY_ARCH == OPAL_ARM
56
57 #define __NR_process_vm_readv 376
58 #define __NR_process_vm_writev 377
59
60 #elif OPAL_ASSEMBLY_ARCH == OPAL_ARM64
61
62
63
64 #define __NR_process_vm_readv 270
65 #define __NR_process_vm_writev 271
66
67 #elif OPAL_ASSEMBLY_ARCH == OPAL_MIPS
68
69 #if _MIPS_SIM == _MIPS_SIM_ABI64
70
71 #define __NR_process_vm_readv 5304
72 #define __NR_process_vm_writev 5305
73
74 #elif _MIPS_SIM == _MIPS_SIM_NABI32
75
76 #define __NR_process_vm_readv 6309
77 #define __NR_process_vm_writev 6310
78
79 #else
80
81 #error "Unsupported MIPS architecture for process_vm_readv and process_vm_writev syscalls"
82
83 #endif
84
85 #elif OPAL_ASSEMBLY_ARCH == OPAL_S390
86
87 #define __NR_process_vm_readv 340
88 #define __NR_process_vm_writev 341
89
90 #elif OPAL_ASSEMBLY_ARCH == OPAL_S390X
91
92 #define __NR_process_vm_readv 340
93 #define __NR_process_vm_writev 341
94
95 #else
96 #error "Unsupported architecture for process_vm_readv and process_vm_writev syscalls"
97 #endif
98
99
100 static inline ssize_t
101 process_vm_readv(pid_t pid,
102 const struct iovec *lvec,
103 unsigned long liovcnt,
104 const struct iovec *rvec,
105 unsigned long riovcnt,
106 unsigned long flags)
107 {
108 return syscall(__NR_process_vm_readv, pid, lvec, liovcnt, rvec, riovcnt, flags);
109 }
110
111 static inline ssize_t
112 process_vm_writev(pid_t pid,
113 const struct iovec *lvec,
114 unsigned long liovcnt,
115 const struct iovec *rvec,
116 unsigned long riovcnt,
117 unsigned long flags)
118 {
119 return syscall(__NR_process_vm_writev, pid, lvec, liovcnt, rvec, riovcnt, flags);
120 }
121
122 #endif
123
124 #endif