Skip to content

Commit 7997079

Browse files
gh-113868: Add a number of MAP_* flags from macOS to module mmap (#113869)
The new flags were extracted from the macOS 14.2 SDK. Co-authored-by: Serhiy Storchaka <[email protected]>
1 parent 8aa0088 commit 7997079

File tree

3 files changed

+63
-6
lines changed

3 files changed

+63
-6
lines changed

Doc/library/mmap.rst

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -372,14 +372,25 @@ MAP_* Constants
372372

373373
.. data:: MAP_SHARED
374374
MAP_PRIVATE
375-
MAP_DENYWRITE
376-
MAP_EXECUTABLE
375+
MAP_32BIT
376+
MAP_ALIGNED_SUPER
377377
MAP_ANON
378378
MAP_ANONYMOUS
379+
MAP_CONCEAL
380+
MAP_DENYWRITE
381+
MAP_EXECUTABLE
382+
MAP_HASSEMAPHORE
383+
MAP_JIT
384+
MAP_NOCACHE
385+
MAP_NOEXTEND
386+
MAP_NORESERVE
379387
MAP_POPULATE
388+
MAP_RESILIENT_CODESIGN
389+
MAP_RESILIENT_MEDIA
380390
MAP_STACK
381-
MAP_ALIGNED_SUPER
382-
MAP_CONCEAL
391+
MAP_TPRO
392+
MAP_TRANSLATED_ALLOW_EXECUTE
393+
MAP_UNIX03
383394

384395
These are the various flags that can be passed to :meth:`mmap.mmap`. :data:`MAP_ALIGNED_SUPER`
385396
is only available at FreeBSD and :data:`MAP_CONCEAL` is only available at OpenBSD. Note
@@ -392,5 +403,12 @@ MAP_* Constants
392403
Added :data:`MAP_STACK` constant.
393404

394405
.. versionadded:: 3.12
395-
Added :data:`MAP_ALIGNED_SUPER` constant.
396-
Added :data:`MAP_CONCEAL` constant.
406+
Added :data:`MAP_ALIGNED_SUPER` and :data:`MAP_CONCEAL` constants.
407+
408+
.. versionadded:: 3.13
409+
Added :data:`MAP_32BIT`, :data:`MAP_HASSEMAPHORE`, :data:`MAP_JIT`,
410+
:data:`MAP_NOCACHE`, :data:`MAP_NOEXTEND`, :data:`MAP_NORESERVE`,
411+
:data:`MAP_RESILIENT_CODESIGN`, :data:`MAP_RESILIENT_MEDIA`,
412+
:data:`MAP_TPRO`, :data:`MAP_TRANSLATED_ALLOW_EXECUTE`, and
413+
:data:`MAP_UNIX03` constants.
414+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Added :data:`mmap.MAP_NORESERVE`, :data:`mmap.MAP_NOEXTEND`,
2+
:data:`mmap.MAP_HASSEMAPHORE`, :data:`mmap.MAP_NOCACHE`,
3+
:data:`mmap.MAP_JIT`, :data:`mmap.MAP_RESILIENT_CODESIGN`,
4+
:data:`mmap.MAP_RESILIENT_MEDIA`, :data:`mmap.MAP_32BIT`,
5+
:data:`mmap.MAP_TRANSLATED_ALLOW_EXECUTE`, :data:`mmap.MAP_UNIX03` and
6+
:data:`mmap.MAP_TPRO`. All of them are ``mmap(2)`` flags on macOS.

Modules/mmapmodule.c

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1653,6 +1653,39 @@ mmap_exec(PyObject *module)
16531653
#endif
16541654
#ifdef MAP_CONCEAL
16551655
ADD_INT_MACRO(module, MAP_CONCEAL);
1656+
#endif
1657+
#ifdef MAP_NORESERVE
1658+
ADD_INT_MACRO(module, MAP_NORESERVE);
1659+
#endif
1660+
#ifdef MAP_NOEXTEND
1661+
ADD_INT_MACRO(module, MAP_NOEXTEND);
1662+
#endif
1663+
#ifdef MAP_HASSEMAPHORE
1664+
ADD_INT_MACRO(module, MAP_HASSEMAPHORE);
1665+
#endif
1666+
#ifdef MAP_NOCACHE
1667+
ADD_INT_MACRO(module, MAP_NOCACHE);
1668+
#endif
1669+
#ifdef MAP_JIT
1670+
ADD_INT_MACRO(module, MAP_JIT);
1671+
#endif
1672+
#ifdef MAP_RESILIENT_CODESIGN
1673+
ADD_INT_MACRO(module, MAP_RESILIENT_CODESIGN);
1674+
#endif
1675+
#ifdef MAP_RESILIENT_MEDIA
1676+
ADD_INT_MACRO(module, MAP_RESILIENT_MEDIA);
1677+
#endif
1678+
#ifdef MAP_32BIT
1679+
ADD_INT_MACRO(module, MAP_32BIT);
1680+
#endif
1681+
#ifdef MAP_TRANSLATED_ALLOW_EXECUTE
1682+
ADD_INT_MACRO(module, MAP_TRANSLATED_ALLOW_EXECUTE);
1683+
#endif
1684+
#ifdef MAP_UNIX03
1685+
ADD_INT_MACRO(module, MAP_UNIX03);
1686+
#endif
1687+
#ifdef MAP_TPRO
1688+
ADD_INT_MACRO(module, MAP_TPRO);
16561689
#endif
16571690
if (PyModule_AddIntConstant(module, "PAGESIZE", (long)my_getpagesize()) < 0 ) {
16581691
return -1;

0 commit comments

Comments
 (0)