1# Copyright (c) 2024 BayLibre SAS
2#
3# SPDX-License-Identifier: Apache-2.0
4
5menu "POSIX memory"
6
7config POSIX_PAGE_SIZE
8	hex
9	# TODO: something similar and arch-independent for MPUs
10	default MMU_PAGE_SIZE if MMU
11	default 0x40
12	help
13	  This option is not user-configurable.
14
15config POSIX_SHARED_MEMORY_OBJECTS
16	bool "POSIX shared memory objects"
17	select SYS_HASH_FUNC32
18	select SYS_HASH_FUNC32_DJB2
19	select FDTABLE
20	select POSIX_MAPPED_FILES
21	help
22	  Select 'y' here and Zephyr will provide implementations of shm_open() and shm_unlink().
23
24	  For more information, please see
25	  https://pubs.opengroup.org/onlinepubs/9699919799.orig/functions/V2_chap02.html
26	  https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_port.html#tag_24_03_04
27
28config POSIX_MAPPED_FILES
29	bool "POSIX memory-mapped files"
30	imply MMU
31	help
32	  Select 'y' here and Zephyr will provide support for mmap(), msync(), and munmap().
33
34	  For more information, please see
35	  https://pubs.opengroup.org/onlinepubs/9699919799.orig/functions/V2_chap02.html
36	  https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_port.html#tag_24_03_04
37
38if POSIX_MAPPED_FILES
39
40config POSIX_MEMLOCK
41	bool "POSIX memory locking"
42	help
43	  Select 'y' here and Zephyr will provide support for mlockall() and munlockall().
44
45	  For more information, please see
46	  https://pubs.opengroup.org/onlinepubs/9699919799.orig/functions/V2_chap02.html
47	  https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_port.html#tag_24_03_04
48
49config POSIX_MEMLOCK_RANGE
50	bool "POSIX range memory locking"
51	imply MMU
52	imply DEMAND_PAGING
53	help
54	  Select 'y' here and Zephyr will provide support for mlock() and munlock().
55
56	  For more information, please see
57	  https://pubs.opengroup.org/onlinepubs/9699919799.orig/functions/V2_chap02.html
58	  https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_port.html#tag_24_03_04
59
60endif
61
62config POSIX_MEMORY_PROTECTION
63	bool "POSIX memory protection"
64	help
65	  Select 'y' here and Zephyr will provide support for mprotect().
66
67	  For more information, please see
68	  https://pubs.opengroup.org/onlinepubs/9699919799.orig/functions/V2_chap02.html
69	  https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_port.html#tag_24_03_04
70
71endmenu
72