Removed references to intptr_t
authorKevin Klues <klueska@ros-dev.(none)>
Wed, 24 Mar 2010 07:09:31 +0000 (00:09 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:37 +0000 (17:35 -0700)
It's unnecessary and leads to arithmetic bugs

kern/arch/i686/env.c
kern/arch/sparc/arch.h
kern/arch/sparc/env.c
kern/include/ros/procdata.h
kern/include/syscall.h
kern/src/frontend.c
kern/src/mm.c
kern/src/string.c
lib/parlib/hart.c
tools/compilers/gcc-glibc/glibc-2.11.1-ros/sysdeps/ros/execve.c

index 33f8d1f..1e4f1c2 100644 (file)
@@ -93,7 +93,7 @@ int env_user_mem_walk(env_t* e, void* start, size_t len,
        uint32_t pdeno, pteno;
        physaddr_t pa;
 
-       assert((intptr_t)start % PGSIZE == 0 && len % PGSIZE == 0);
+       assert((uintptr_t)start % PGSIZE == 0 && len % PGSIZE == 0);
        void* end = (char*)start+len;
        uint32_t pdeno_start = PDX(start);
        uint32_t pdeno_end = PDX(ROUNDUP(end,PTSIZE));
index 575d644..5361579 100644 (file)
@@ -47,7 +47,7 @@ breakpoint(void)
 static __inline void 
 invlpg(void *addr)
 { 
-       store_alternate(((intptr_t)addr) & ~0xFFF,3,0);
+       store_alternate(((uintptr_t)addr) & ~0xFFF,3,0);
 }  
 
 static __inline void
@@ -115,7 +115,7 @@ static __inline uint64_t
 read_perfctr(uint32_t cpu, uint32_t which)
 {
        register uint32_t hi asm("o0"), lo asm("o1");
-       intptr_t addr = cpu<<10 | which<<3;
+       uintptr_t addr = cpu<<10 | which<<3;
 
        #ifdef ROS_KERNEL
                int8_t state = 0;
index 7e5b98a..1eed111 100644 (file)
@@ -97,7 +97,7 @@ env_user_mem_walk(env_t* e, void* start, size_t len,
 {
        pte_t *l1pt = e->env_pgdir;
 
-       assert((intptr_t)start % PGSIZE == 0 && len % PGSIZE == 0);
+       assert((uintptr_t)start % PGSIZE == 0 && len % PGSIZE == 0);
        void* end = (char*)start+len;
 
        int l1x_start = L1X(start);
index 7d072a9..a76c689 100644 (file)
@@ -21,7 +21,7 @@ typedef struct procdata {
        segdesc_t *ldt;
 #endif
 
-       intptr_t stack_pointers[MAX_NUM_CPUS];
+       uintptr_t stack_pointers[MAX_NUM_CPUS];
 } procdata_t;
 #define PROCDATA_NUM_PAGES  ((sizeof(procdata_t)-1)/PGSIZE + 1)
 
index 4d22e31..565543e 100644 (file)
@@ -7,9 +7,9 @@
 #include <ros/syscall.h>
 #include <process.h>
 
-#define ERR_PTR(err)  ((void *)((intptr_t)(err)))
-#define PTR_ERR(ptr)  ((intptr_t)(ptr))
-#define IS_ERR(ptr)   ((uintptr_t)-(intptr_t)(ptr) < 512)
+#define ERR_PTR(err)  ((void *)((uintptr_t)(err)))
+#define PTR_ERR(ptr)  ((uintptr_t)(ptr))
+#define IS_ERR(ptr)   ((uintptr_t)-(uintptr_t)(ptr) < 512)
 
 
 intreg_t syscall(struct proc *p, uintreg_t num, uintreg_t a1, uintreg_t a2,
index fd9cf78..e3d2b97 100644 (file)
@@ -74,7 +74,7 @@ char* user_strdup(struct proc* p, const char* va0, int max)
        const char* va = va0;
        while(max > 0 && len == 0)
        {
-               int thislen = MIN(PGSIZE-(intptr_t)va%PGSIZE,max);
+               int thislen = MIN(PGSIZE-(uintptr_t)va%PGSIZE,max);
                if(memcpy_from_user(p,kbuf,va,thislen))
                {
                        kfree(kbuf);
index 75e6c14..3f2eb9a 100644 (file)
 void *mmap(struct proc *p, uintptr_t addr, size_t len, int prot, int flags,
            int fd, size_t offset)
 {
-       printd("mmap(addr %x, len %x, prot %x, flags %x, fd %x, off %x)\n", addr,
+       printk("mmap(addr %x, len %x, prot %x, flags %x, fd %x, off %x)\n", addr,
               len, prot, flags, fd, offset);
-       #ifdef __i386__
-       if (fd >= 0 || offset || !(flags & MAP_ANON)) {
-               printk("[kernel] mmap() does not support files yet.\n");
-               return (void*SAFE)TC(-1);
-       }
-       #endif
        if (fd >= 0 && (flags & MAP_SHARED)) {
                printk("[kernel] mmap() for files requires !MAP_SHARED.\n");
                return (void*)-1;
@@ -66,7 +60,6 @@ void *mmap(struct proc *p, uintptr_t addr, size_t len, int prot, int flags,
                if (upage_alloc(p, &a_page, 1))
                        goto mmap_abort;
 
-               #ifndef __i386__
                // This is dumb--should not read until faulted in.
                // This is just to get it correct at first
                if(!(flags & MAP_ANON))
@@ -78,7 +71,6 @@ void *mmap(struct proc *p, uintptr_t addr, size_t len, int prot, int flags,
                        if(len % PGSIZE && i == num_pages-1)
                                memset(page2kva(a_page)+len%PGSIZE,0,PGSIZE-len%PGSIZE);
                }
-               #endif
 
                // TODO: TLB shootdown if replacing an old mapping
                // TODO: handle all PROT flags
@@ -91,6 +83,7 @@ void *mmap(struct proc *p, uintptr_t addr, size_t len, int prot, int flags,
 
        // TODO: release the appropriate mm_lock
        spin_unlock_irqsave(&p->proc_lock);
+       printk("mmap returned %p\n",addr);
        return (void*SAFE)TC(addr);
 
        // TODO: if there's a failure, we should go back through the addr+len range
@@ -108,7 +101,7 @@ void *mmap(struct proc *p, uintptr_t addr, size_t len, int prot, int flags,
 int mprotect(struct proc* p, void* addr, size_t len, int prot)
 {
        printd("mprotect(addr %x, len %x, prot %x)\n",addr,len,prot);
-       if((intptr_t)addr % PGSIZE || (len == 0 && (prot & PROT_UNMAP)))
+       if((uintptr_t)addr % PGSIZE || (len == 0 && (prot & PROT_UNMAP)))
        {
                set_errno(current_tf,EINVAL);
                return -1;
index eb84198..8cde851 100644 (file)
@@ -141,7 +141,7 @@ memset16(uint32_t *COUNT(n/sizeof(uint32_t)) _v, uint32_t c, size_t n)
        v = _v;
        c = c | c<<8 | c<<16 | c<<24;
 
-       if(n >= 64 && ((intptr_t)v) % 8 == 0)
+       if(n >= 64 && ((uintptr_t)v) % 8 == 0)
        {
                uint64_t* v64 = (uint64_t*)v;
                uint64_t c64 = c | ((uint64_t)c)<<32;
index 805f8c0..54bfe3f 100644 (file)
@@ -46,7 +46,7 @@ static int hart_allocate_stack(int id)
        if(__procdata.stack_pointers[id])
                return 0; // reuse old stack
 
-       if(!(__procdata.stack_pointers[id] = (intptr_t)malloc(HART_STACK_SIZE)))
+       if(!(__procdata.stack_pointers[id] = (uintptr_t)malloc(HART_STACK_SIZE)))
        {
                errno = ENOMEM;
                return -1;
index 0cb94b6..bc167e7 100644 (file)
@@ -47,6 +47,6 @@ __execve (path, argv, envp)
     return -1;
   }
 
-  return syscall(SYS_exec,(intptr_t)name,(intptr_t)&pi,0,0,0);
+  return syscall(SYS_exec,(uintptr_t)name,(uintptr_t)&pi,0,0,0);
 }
 weak_alias (__execve, execve)