1 /*
2  * Copyright (c) 2024, Tenstorrent AI ULC
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #include <stddef.h>
8 
9 #include <zephyr/kernel.h>
10 #include <zephyr/posix/sys/mman.h>
11 
12 #include <zephyr/kernel/mm/demand_paging.h>
13 
mlock(const void * addr,size_t len)14 int mlock(const void *addr, size_t len)
15 {
16 	if (IS_ENABLED(CONFIG_DEMAND_PAGING)) {
17 		void *const _addr = (void *)addr;
18 
19 		k_mem_pin(_addr, len);
20 
21 		return 0;
22 	}
23 
24 	errno = ENOTSUP;
25 	return -1;
26 }
27 
munlock(const void * addr,size_t len)28 int munlock(const void *addr, size_t len)
29 {
30 	if (IS_ENABLED(CONFIG_DEMAND_PAGING)) {
31 		void *const _addr = (void *)addr;
32 
33 		k_mem_unpin(_addr, len);
34 
35 		return 0;
36 	}
37 
38 	errno = ENOTSUP;
39 	return -1;
40 }
41