aboutsummaryrefslogtreecommitdiff
path: root/pk/usermem.h
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2021-02-10 17:03:03 -0800
committerAndrew Waterman <andrew@sifive.com>2021-03-25 22:21:06 -0700
commit817e7d0dfea820a369a5b5c2d5d729942b7daf42 (patch)
treea725081a6966d928cb9ddacdd2172251ef1691f9 /pk/usermem.h
parentb7f64fe5584094a6fe65d94d5e2382ff9289cbda (diff)
downloadriscv-pk-817e7d0dfea820a369a5b5c2d5d729942b7daf42.zip
riscv-pk-817e7d0dfea820a369a5b5c2d5d729942b7daf42.tar.gz
riscv-pk-817e7d0dfea820a369a5b5c2d5d729942b7daf42.tar.bz2
pk: only access user memory through explicit accessors
Enforced with sstatus.SUM.
Diffstat (limited to 'pk/usermem.h')
-rw-r--r--pk/usermem.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/pk/usermem.h b/pk/usermem.h
new file mode 100644
index 0000000..3cb3ed0
--- /dev/null
+++ b/pk/usermem.h
@@ -0,0 +1,14 @@
+// See LICENSE for license details.
+
+#ifndef _PK_USERMEM_H
+#define _PK_USERMEM_H
+
+#include <stdbool.h>
+#include <stddef.h>
+
+void memset_user(void* dst, int ch, size_t n);
+void memcpy_to_user(void* dst, const void* src, size_t n);
+void memcpy_from_user(void* dst, const void* src, size_t n);
+bool strcpy_from_user(char* dst, const char* src, size_t n);
+
+#endif