|
@@ -99,4 +99,41 @@ static inline abi_long do_bsd_msync(abi_long addr, abi_long len, abi_long flags)
|
|
|
return get_errno(msync(g2h_untagged(addr), len, flags));
|
|
|
}
|
|
|
|
|
|
+/* mlock(2) */
|
|
|
+static inline abi_long do_bsd_mlock(abi_long arg1, abi_long arg2)
|
|
|
+{
|
|
|
+ if (!guest_range_valid_untagged(arg1, arg2)) {
|
|
|
+ return -TARGET_EINVAL;
|
|
|
+ }
|
|
|
+ return get_errno(mlock(g2h_untagged(arg1), arg2));
|
|
|
+}
|
|
|
+
|
|
|
+/* munlock(2) */
|
|
|
+static inline abi_long do_bsd_munlock(abi_long arg1, abi_long arg2)
|
|
|
+{
|
|
|
+ if (!guest_range_valid_untagged(arg1, arg2)) {
|
|
|
+ return -TARGET_EINVAL;
|
|
|
+ }
|
|
|
+ return get_errno(munlock(g2h_untagged(arg1), arg2));
|
|
|
+}
|
|
|
+
|
|
|
+/* mlockall(2) */
|
|
|
+static inline abi_long do_bsd_mlockall(abi_long arg1)
|
|
|
+{
|
|
|
+ return get_errno(mlockall(arg1));
|
|
|
+}
|
|
|
+
|
|
|
+/* munlockall(2) */
|
|
|
+static inline abi_long do_bsd_munlockall(void)
|
|
|
+{
|
|
|
+ return get_errno(munlockall());
|
|
|
+}
|
|
|
+
|
|
|
+/* minherit(2) */
|
|
|
+static inline abi_long do_bsd_minherit(abi_long addr, abi_long len,
|
|
|
+ abi_long inherit)
|
|
|
+{
|
|
|
+ return get_errno(minherit(g2h_untagged(addr), len, inherit));
|
|
|
+}
|
|
|
+
|
|
|
#endif /* BSD_USER_BSD_MEM_H */
|