Handle pending signals even when resuming current_uthread
[akaros.git] / kern / include / umem.h
index ce050a1..13269d2 100644 (file)
  * is paged out or even an unmapped region: simply if it is in part of the
  * address space that could be RW user.  Will also check for len bytes. */
 static inline bool is_user_rwaddr(void *addr, size_t len);
-
-/* Can they use the area in the manner of perm? */
-void *user_mem_check(struct proc *p, const void *DANGEROUS va, size_t len,
-                     size_t align, int perm);
-/* Kills them if they can't use the area in the manner of perm */
-void *user_mem_assert(struct proc *p, const void *DANGEROUS va, size_t len, 
-                      size_t align, int perm);
+/* Same deal, but read-only */
+static inline bool is_user_raddr(void *addr, size_t len);
 
 /* Copy from proc p into the kernel's dest from src */
 int memcpy_from_user(struct proc *p, void *dest, const void *DANGEROUS va,
@@ -53,3 +48,12 @@ static inline bool is_user_rwaddr(void *addr, size_t len)
        else
                return FALSE;
 }
+
+/* ULIM is defined as virtual address below which a process can read */
+static inline bool is_user_raddr(void *addr, size_t len)
+{
+       if (((uintptr_t)addr < ULIM) && ((uintptr_t)addr + len <= ULIM))
+               return TRUE;
+       else
+               return FALSE;
+}