Skip to content

Commit 51e2b41

Browse files
committed
#110124: Add support for process_mrelease syscall
1 parent 0a6d797 commit 51e2b41

File tree

12 files changed

+420
-329
lines changed

12 files changed

+420
-329
lines changed

libc/config/linux/aarch64/entrypoints.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,7 @@ set(TARGET_LIBC_ENTRYPOINTS
252252
libc.src.sys.mman.munlockall
253253
libc.src.sys.mman.munmap
254254
libc.src.sys.mman.remap_file_pages
255+
libc.src.sys.mman.process_mrelease
255256
libc.src.sys.mman.posix_madvise
256257
libc.src.sys.mman.shm_open
257258
libc.src.sys.mman.shm_unlink

libc/config/linux/riscv/entrypoints.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ set(TARGET_LIBC_ENTRYPOINTS
251251
libc.src.sys.mman.munmap
252252
libc.src.sys.mman.remap_file_pages
253253
libc.src.sys.mman.posix_madvise
254+
libc.src.sys.mman.process_mrelease
254255
libc.src.sys.mman.shm_open
255256
libc.src.sys.mman.shm_unlink
256257

libc/config/linux/x86_64/entrypoints.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,7 @@ set(TARGET_LIBC_ENTRYPOINTS
252252
libc.src.sys.mman.munmap
253253
libc.src.sys.mman.remap_file_pages
254254
libc.src.sys.mman.posix_madvise
255+
libc.src.sys.mman.process_mrelease
255256
libc.src.sys.mman.shm_open
256257
libc.src.sys.mman.shm_unlink
257258

libc/include/sys/syscall.h.def

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2349,5 +2349,12 @@
23492349
#define SYS_writev __NR_writev
23502350
#endif
23512351

2352+
#ifdef __NR_process_mrelease
2353+
#define SYS_process_mrelease __NR_process_mrelease
2354+
#endif
2355+
2356+
#ifdef __NR_pidfd_open
2357+
#define SYS_pidfd_open __NR_pidfd_open
2358+
#endif
23522359

23532360
#endif // LLVM_LIBC_SYS_SYSCALL_H

libc/newhdrgen/yaml/sys/mman.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,10 @@ functions:
132132
return_type: int
133133
arguments:
134134
- type: const char *
135+
- name: process_mrelease
136+
standards:
137+
- Linux
138+
return_type: int
139+
arguments:
140+
- type: int
141+
- type: unsigned int

libc/spec/linux.td

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,12 @@ def Linux : StandardSpec<"Linux"> {
112112
ArgSpec<IntType>,
113113
ArgSpec<SizeTType>,
114114
ArgSpec<IntType>,
115+
FunctionSpec<
116+
"process_mrelease",
117+
RetValSpec<IntType>,
118+
[
119+
ArgSpec<IntType>,
120+
ArgSpec<UnsignedIntType>
115121
]
116122
>,
117123
FunctionSpec<

libc/src/sys/mman/CMakeLists.txt

Lines changed: 36 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -2,114 +2,39 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS})
22
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS})
33
endif()
44

5-
add_entrypoint_object(
6-
madvise
7-
ALIAS
8-
DEPENDS
9-
.${LIBC_TARGET_OS}.madvise
10-
)
11-
12-
add_entrypoint_object(
13-
mmap
14-
ALIAS
15-
DEPENDS
16-
.${LIBC_TARGET_OS}.mmap
17-
)
18-
19-
add_entrypoint_object(
20-
munmap
21-
ALIAS
22-
DEPENDS
23-
.${LIBC_TARGET_OS}.munmap
24-
)
25-
26-
add_entrypoint_object(
27-
mprotect
28-
ALIAS
29-
DEPENDS
30-
.${LIBC_TARGET_OS}.mprotect
31-
)
32-
33-
add_entrypoint_object(
34-
posix_madvise
35-
ALIAS
36-
DEPENDS
37-
.${LIBC_TARGET_OS}.posix_madvise
38-
)
39-
40-
add_entrypoint_object(
41-
mincore
42-
ALIAS
43-
DEPENDS
44-
.${LIBC_TARGET_OS}.mincore
45-
)
46-
47-
add_entrypoint_object(
48-
mlock
49-
ALIAS
50-
DEPENDS
51-
.${LIBC_TARGET_OS}.mlock
52-
)
53-
54-
add_entrypoint_object(
55-
mlock2
56-
ALIAS
57-
DEPENDS
58-
.${LIBC_TARGET_OS}.mlock2
59-
)
60-
61-
add_entrypoint_object(
62-
munlock
63-
ALIAS
64-
DEPENDS
65-
.${LIBC_TARGET_OS}.munlock
66-
)
67-
68-
add_entrypoint_object(
69-
mlockall
70-
ALIAS
71-
DEPENDS
72-
.${LIBC_TARGET_OS}.mlockall
73-
)
74-
75-
add_entrypoint_object(
76-
munlockall
77-
ALIAS
78-
DEPENDS
79-
.${LIBC_TARGET_OS}.munlockall
80-
)
81-
82-
add_entrypoint_object(
83-
msync
84-
ALIAS
85-
DEPENDS
86-
.${LIBC_TARGET_OS}.msync
87-
)
88-
89-
add_entrypoint_object(
90-
remap_file_pages
91-
ALIAS
92-
DEPENDS
93-
.${LIBC_TARGET_OS}.remap_file_pages
94-
)
95-
96-
add_entrypoint_object(
97-
shm_open
98-
ALIAS
99-
DEPENDS
100-
.${LIBC_TARGET_OS}.shm_open
101-
)
102-
103-
add_entrypoint_object(
104-
shm_unlink
105-
ALIAS
106-
DEPENDS
107-
.${LIBC_TARGET_OS}.shm_unlink
108-
)
109-
110-
add_entrypoint_object(
111-
mremap
112-
ALIAS
113-
DEPENDS
114-
.${LIBC_TARGET_OS}.mremap
115-
)
5+
add_entrypoint_object(madvise ALIAS DEPENDS .${LIBC_TARGET_OS}.madvise)
6+
7+
add_entrypoint_object(mmap ALIAS DEPENDS .${LIBC_TARGET_OS}.mmap)
8+
9+
add_entrypoint_object(munmap ALIAS DEPENDS .${LIBC_TARGET_OS}.munmap)
10+
11+
add_entrypoint_object(mprotect ALIAS DEPENDS .${LIBC_TARGET_OS}.mprotect)
12+
13+
add_entrypoint_object(posix_madvise ALIAS DEPENDS
14+
.${LIBC_TARGET_OS}.posix_madvise)
15+
16+
add_entrypoint_object(mincore ALIAS DEPENDS .${LIBC_TARGET_OS}.mincore)
17+
18+
add_entrypoint_object(mlock ALIAS DEPENDS .${LIBC_TARGET_OS}.mlock)
19+
20+
add_entrypoint_object(mlock2 ALIAS DEPENDS .${LIBC_TARGET_OS}.mlock2)
21+
22+
add_entrypoint_object(munlock ALIAS DEPENDS .${LIBC_TARGET_OS}.munlock)
23+
24+
add_entrypoint_object(mlockall ALIAS DEPENDS .${LIBC_TARGET_OS}.mlockall)
25+
26+
add_entrypoint_object(munlockall ALIAS DEPENDS .${LIBC_TARGET_OS}.munlockall)
27+
28+
add_entrypoint_object(msync ALIAS DEPENDS .${LIBC_TARGET_OS}.msync)
29+
30+
add_entrypoint_object(remap_file_pages ALIAS DEPENDS
31+
.${LIBC_TARGET_OS}.remap_file_pages)
32+
33+
add_entrypoint_object(shm_open ALIAS DEPENDS .${LIBC_TARGET_OS}.shm_open)
34+
35+
add_entrypoint_object(shm_unlink ALIAS DEPENDS .${LIBC_TARGET_OS}.shm_unlink)
36+
37+
add_entrypoint_object(mremap ALIAS DEPENDS .${LIBC_TARGET_OS}.mremap)
38+
39+
add_entrypoint_object(process_mrelease ALIAS DEPENDS
40+
.${LIBC_TARGET_OS}.process_mrelease)

0 commit comments

Comments
 (0)