perf: Clean up perf_{session,alloc} management
[akaros.git] / kern / include / umem.h
index 108af94..1bd7c0f 100644 (file)
@@ -17,6 +17,8 @@ static inline bool is_user_rwaddr(const void *addr, size_t len);
 /* Same deal, but read-only */
 static inline bool is_user_raddr(const void *addr, size_t len);
 
+#include <arch/uaccess.h>
+
 int strcpy_from_user(struct proc *p, char *dst, const char *src);
 int strcpy_to_user(struct proc *p, char *dst, const char *src);
 
@@ -53,7 +55,7 @@ int memcpy_to_user(struct proc *p, void *dest, const void *src, size_t len);
 /* Same as above, but sets errno */
 int memcpy_from_user_errno(struct proc *p, void *dst, const void *src, int len);
 int memcpy_to_user_errno(struct proc *p, void *dst, const void *src, int len);
-                 
+
 /* Creates a buffer (kmalloc) and safely copies into it from va.  Can return an
  * error code.  Check its response with IS_ERR().  Must be paired with
  * user_memdup_free() if this succeeded. */
@@ -68,7 +70,9 @@ char *copy_in_path(struct proc *p, const char *path, size_t path_l);
 void free_path(struct proc *p, char *t_path);
 void *kmalloc_errno(int len);
 bool uva_is_kva(struct proc *p, void *uva, void *kva);
-uintptr_t uva2kva(struct proc *p, void *uva);
+uintptr_t uva2kva(struct proc *p, void *uva, size_t len, int prot);
+/* In arch/pmap{64}.c */
+uintptr_t gva2gpa(struct proc *p, uintptr_t cr3, uintptr_t gva);
 
 /* Helper for is_user_r{w,}addr.
  *