AMD64 Support:
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 25 Aug 2008 17:01:42 +0000 (17:01 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 25 Aug 2008 17:01:42 +0000 (17:01 +0000)
* Adjust certain common prototypes to be amd64-compatible.

* Add DDB 'cont' support for amd64.

Submitted-by: Jordan Gordeev <jgordeev@dir.bg>
sys/cpu/i386/include/param.h
sys/ddb/db_run.c
sys/platform/pc32/i386/pmap.c
sys/platform/vkernel/platform/pmap.c
sys/vm/pmap.h
sys/vm/vm_page.c

index 8165c91..08dbecb 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     from: @(#)param.h       5.8 (Berkeley) 6/28/91
  * $FreeBSD: src/sys/i386/include/param.h,v 1.54.2.8 2002/08/31 21:15:55 dillon Exp $
- * $DragonFly: src/sys/cpu/i386/include/param.h,v 1.14 2007/07/02 03:44:08 dillon Exp $
+ * $DragonFly: src/sys/cpu/i386/include/param.h,v 1.15 2008/08/25 17:01:35 dillon Exp $
  */
 
 #ifndef _CPU_PARAM_H_
 #endif
 #define ptoa(x)                        ((x) << PAGE_SHIFT)
 
-#define i386_btop(x)           ((x) >> PAGE_SHIFT)
-#define i386_ptob(x)           ((x) << PAGE_SHIFT)
+#define i386_btop(x)           ((vm_pindex_t)((x) >> PAGE_SHIFT))
+#define i386_ptob(x)           ((vm_paddr_t)(x) << PAGE_SHIFT)
 
 #define        pgtok(x)                ((x) * (PAGE_SIZE / 1024))
 
index 532bd6a..52bf7a9 100644 (file)
@@ -24,7 +24,7 @@
  * rights to redistribute these changes.
  *
  * $FreeBSD: src/sys/ddb/db_run.c,v 1.18 1999/08/28 00:41:10 peter Exp $
- * $DragonFly: src/sys/ddb/db_run.c,v 1.7 2005/12/23 21:35:44 swildner Exp $
+ * $DragonFly: src/sys/ddb/db_run.c,v 1.8 2008/08/25 17:01:37 dillon Exp $
  */
 
 /*
@@ -106,6 +106,8 @@ db_stop_at_pc(boolean_t *is_breakpoint)
        } else if (*is_breakpoint) {
 #ifdef __i386__                        /* XXx */
                ddb_regs.tf_eip += 1;
+#elif defined(__amd64__)
+               ddb_regs.tf_rip += 1;
 #endif
        }
 
index e4d3942..c3e4fbc 100644 (file)
@@ -40,7 +40,7 @@
  *
  *     from:   @(#)pmap.c      7.7 (Berkeley)  5/12/91
  * $FreeBSD: src/sys/i386/i386/pmap.c,v 1.250.2.18 2002/03/06 22:48:53 silby Exp $
- * $DragonFly: src/sys/platform/pc32/i386/pmap.c,v 1.86 2008/06/05 18:06:32 swildner Exp $
+ * $DragonFly: src/sys/platform/pc32/i386/pmap.c,v 1.87 2008/08/25 17:01:38 dillon Exp $
  */
 
 /*
@@ -3053,7 +3053,7 @@ pmap_page_protect(vm_page_t m, vm_prot_t prot)
 }
 
 vm_paddr_t
-pmap_phys_address(int ppn)
+pmap_phys_address(vm_pindex_t ppn)
 {
        return (i386_ptob(ppn));
 }
index bb44b21..e9d3a96 100644 (file)
@@ -38,7 +38,7 @@
  * 
  * from:   @(#)pmap.c      7.7 (Berkeley)  5/12/91
  * $FreeBSD: src/sys/i386/i386/pmap.c,v 1.250.2.18 2002/03/06 22:48:53 silby Exp $
- * $DragonFly: src/sys/platform/vkernel/platform/pmap.c,v 1.30 2008/06/06 13:19:25 swildner Exp $
+ * $DragonFly: src/sys/platform/vkernel/platform/pmap.c,v 1.31 2008/08/25 17:01:40 dillon Exp $
  */
 /*
  * NOTE: PMAP_INVAL_ADD: In pc32 this function is called prior to adjusting
@@ -2793,7 +2793,7 @@ pmap_page_protect(vm_page_t m, vm_prot_t prot)
 }
 
 vm_paddr_t
-pmap_phys_address(int ppn)
+pmap_phys_address(vm_pindex_t ppn)
 {
        return (i386_ptob(ppn));
 }
index f18beed..0fdffb9 100644 (file)
@@ -62,7 +62,7 @@
  * rights to redistribute these changes.
  *
  * $FreeBSD: src/sys/vm/pmap.h,v 1.33.2.4 2002/03/06 22:44:24 silby Exp $
- * $DragonFly: src/sys/vm/pmap.h,v 1.28 2008/06/17 20:50:12 aggelos Exp $
+ * $DragonFly: src/sys/vm/pmap.h,v 1.29 2008/08/25 17:01:42 dillon Exp $
  */
 
 /*
@@ -150,7 +150,7 @@ void                 pmap_object_init_pt (pmap_t pmap, vm_offset_t addr,
                    vm_offset_t size, int pagelimit);
 boolean_t       pmap_page_exists_quick (pmap_t pmap, struct vm_page *m);
 void            pmap_page_protect (struct vm_page *m, vm_prot_t prot);
-vm_paddr_t      pmap_phys_address (int);
+vm_paddr_t      pmap_phys_address (vm_pindex_t);
 void            pmap_pinit (pmap_t);
 void            pmap_puninit (pmap_t);
 void            pmap_pinit0 (pmap_t);
index 3b35e20..6ce5fd5 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     from: @(#)vm_page.c     7.4 (Berkeley) 5/7/91
  * $FreeBSD: src/sys/vm/vm_page.c,v 1.147.2.18 2002/03/10 05:03:19 alc Exp $
- * $DragonFly: src/sys/vm/vm_page.c,v 1.39 2008/07/01 02:02:56 dillon Exp $
+ * $DragonFly: src/sys/vm/vm_page.c,v 1.40 2008/08/25 17:01:42 dillon Exp $
  */
 
 /*
@@ -672,6 +672,7 @@ vm_page_alloc(vm_object_t object, vm_pindex_t pindex, int page_req)
 {
        vm_page_t m = NULL;
 
+       KKASSERT(object != NULL);
        KASSERT(!vm_page_lookup(object, pindex),
                ("vm_page_alloc: page already allocated"));
        KKASSERT(page_req &