summaryrefslogtreecommitdiffstats
path: root/sys/amd64/include
diff options
context:
space:
mode:
Diffstat (limited to 'sys/amd64/include')
-rw-r--r--sys/amd64/include/cpufunc.h53
-rw-r--r--sys/amd64/include/frame.h4
-rw-r--r--sys/amd64/include/pmap.h28
-rw-r--r--sys/amd64/include/vmparam.h32
4 files changed, 83 insertions, 34 deletions
diff --git a/sys/amd64/include/cpufunc.h b/sys/amd64/include/cpufunc.h
index adaa70c..2c2b307 100644
--- a/sys/amd64/include/cpufunc.h
+++ b/sys/amd64/include/cpufunc.h
@@ -2,7 +2,7 @@
* Functions to provide access to special i386 instructions.
* XXX - bezillions more are defined in locore.s but are not declared anywhere.
*
- * $Id: cpufunc.h,v 1.4 1993/11/07 17:42:47 wollman Exp $
+ * $Id: cpufunc.h,v 1.5 1993/11/25 01:31:07 wollman Exp $
*/
#ifndef _MACHINE_CPUFUNC_H_
@@ -177,7 +177,34 @@ strlen(s1)
return (len);
}
+struct quehead {
+ struct quehead *qh_link;
+ struct quehead *qh_rlink;
+};
+
+static inline void
+insque(void *a, void *b)
+{
+ register struct quehead *element = a, *head = b;
+ element->qh_link = head->qh_link;
+ head->qh_link = (struct quehead *)element;
+ element->qh_rlink = (struct quehead *)head;
+ ((struct quehead *)(element->qh_link))->qh_rlink
+ = (struct quehead *)element;
+}
+
+static inline void
+remque(void *a)
+{
+ register struct quehead *element = a;
+ ((struct quehead *)(element->qh_link))->qh_rlink = element->qh_rlink;
+ ((struct quehead *)(element->qh_rlink))->qh_link = element->qh_link;
+ element->qh_rlink = 0;
+}
+
#else /* not __GNUC__ */
+extern void insque __P((void *, void *));
+extern void remque __P((void *));
int bdb __P((void));
void disable_intr __P((void));
@@ -187,17 +214,19 @@ void outb __P((u_int port, u_int data)); /* XXX - incompat */
#endif /* __GNUC__ */
-#define really_u_int int /* XXX */
-#define really_void int /* XXX */
-
void load_cr0 __P((u_int cr0));
-really_u_int rcr0 __P((void));
-
-#ifdef notyet
-really_void setidt __P((int idx, /*XXX*/caddr_t func, int typ, int dpl));
-#endif
-
-#undef really_u_int
-#undef really_void
+u_int rcr0 __P((void));
+void load_cr3(u_long);
+u_long rcr3(void);
+u_long rcr2(void);
+
+void setidt __P((int, void (*)(), int, int));
+extern u_long kvtop(void *);
+extern void tlbflush(void);
+extern void outw(int /*u_short*/, int /*u_short*/); /* XXX inline!*/
+extern void outsb(int /*u_short*/, caddr_t, size_t);
+extern void outsw(int /*u_short*/, caddr_t, size_t);
+extern void insw(int /*u_short*/, caddr_t, size_t);
+extern void fillw(int /*u_short*/, caddr_t, size_t);
#endif /* _MACHINE_CPUFUNC_H_ */
diff --git a/sys/amd64/include/frame.h b/sys/amd64/include/frame.h
index a7455b6..c61d179 100644
--- a/sys/amd64/include/frame.h
+++ b/sys/amd64/include/frame.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)frame.h 5.2 (Berkeley) 1/18/91
- * $Id: frame.h,v 1.4 1993/11/17 23:25:03 wollman Exp $
+ * $Id: frame.h,v 1.5 1993/12/03 05:10:00 alm Exp $
*/
#ifndef _MACHINE_FRAME_H_
@@ -72,6 +72,8 @@ struct trapframe {
int tf_ss;
};
+extern int kdb_trap(int, int, struct trapframe *);
+
/* Interrupt stack frame */
struct intrframe {
diff --git a/sys/amd64/include/pmap.h b/sys/amd64/include/pmap.h
index 9feb23c..f71c276 100644
--- a/sys/amd64/include/pmap.h
+++ b/sys/amd64/include/pmap.h
@@ -42,7 +42,7 @@
*
* from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90
* from: @(#)pmap.h 7.4 (Berkeley) 5/12/91
- * $Id: pmap.h,v 1.5 1993/11/07 17:43:02 wollman Exp $
+ * $Id: pmap.h,v 1.6 1993/11/13 02:25:16 davidg Exp $
*/
#ifndef _PMAP_MACHINE_
@@ -65,8 +65,8 @@ unsigned int
pd_pfnum:20; /* physical page frame number of pte's*/
};
-#define PD_MASK 0xffc00000 /* page directory address bits */
-#define PT_MASK 0x003ff000 /* page table address bits */
+#define PD_MASK 0xffc00000UL /* page directory address bits */
+#define PT_MASK 0x003ff000UL /* page table address bits */
#define PD_SHIFT 22 /* page directory address shift */
#define PG_SHIFT 12 /* page table address shift */
@@ -94,7 +94,7 @@ unsigned int
#define PG_N 0x00000800 /* Non-cacheable */
#define PG_M 0x00000040
#define PG_U 0x00000020
-#define PG_FRAME 0xfffff000
+#define PG_FRAME 0xfffff000UL
#define PG_NOACC 0
#define PG_KR 0x00000000
@@ -199,7 +199,7 @@ extern pmap_t kernel_pmap;
#define PMAP_ACTIVATE(pmapp, pcbp) \
if ((pmapp) != NULL /*&& (pmapp)->pm_pdchanged */) { \
(pcbp)->pcb_cr3 = \
- pmap_extract(kernel_pmap, (pmapp)->pm_pdir); \
+ pmap_extract(kernel_pmap, (vm_offset_t)(pmapp)->pm_pdir); \
if ((pmapp) == &curproc->p_vmspace->vm_pmap) \
load_cr3((pcbp)->pcb_cr3); \
(pmapp)->pm_pdchanged = FALSE; \
@@ -232,6 +232,24 @@ pv_entry_t pv_table; /* array of entries, one per page */
#define pmap_resident_count(pmap) ((pmap)->pm_stats.resident_count)
+extern pmap_t pmap_create(vm_size_t);
+extern void pmap_pinit(struct pmap *);
+extern void pmap_destroy(pmap_t);
+extern void pmap_release(struct pmap *);
+extern void pmap_reference(pmap_t);
+extern void pmap_remove(struct pmap *, vm_offset_t, vm_offset_t);
+extern void pmap_protect(struct pmap *, vm_offset_t, vm_offset_t, vm_prot_t);
+extern void pmap_enter(pmap_t, vm_offset_t, vm_offset_t, vm_prot_t, boolean_t);
+extern void pmap_change_wiring(pmap_t, vm_offset_t, boolean_t);
+extern struct pte *pmap_pte(pmap_t, vm_offset_t);
+extern vm_offset_t pmap_extract(pmap_t, vm_offset_t);
+extern void pmap_copy(pmap_t, pmap_t, vm_offset_t, vm_size_t, vm_offset_t);
+extern void pmap_collect(pmap_t);
+struct pcb; extern void pmap_activate(pmap_t, struct pcb *);
+extern pmap_t pmap_kernel(void);
+extern void pmap_pageable(pmap_t, vm_offset_t, vm_offset_t, boolean_t);
+
+
#endif /* KERNEL */
#endif /* _PMAP_MACHINE_ */
diff --git a/sys/amd64/include/vmparam.h b/sys/amd64/include/vmparam.h
index a43615d..b7a3561 100644
--- a/sys/amd64/include/vmparam.h
+++ b/sys/amd64/include/vmparam.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91
- * $Id: vmparam.h,v 1.7 1993/10/15 10:07:45 rgrimes Exp $
+ * $Id: vmparam.h,v 1.8 1993/11/07 17:43:17 wollman Exp $
*/
@@ -56,27 +56,27 @@
* Immediately after the user structure is the page table map, and then
* kernal address space.
*/
-#define USRTEXT 0
-#define USRSTACK 0xFDBFE000
+#define USRTEXT 0UL
+#define USRSTACK 0xFDBFE000UL
#define BTOPUSRSTACK (0xFDC00-(UPAGES)) /* btop(USRSTACK) */
-#define LOWPAGES 0
+#define LOWPAGES 0UL
#define HIGHPAGES UPAGES
/*
* Virtual memory related constants, all in bytes
*/
-#define MAXTSIZ (6*1024*1024) /* max text size */
+#define MAXTSIZ (6UL*1024*1024) /* max text size */
#ifndef DFLDSIZ
-#define DFLDSIZ (16*1024*1024) /* initial data size limit */
+#define DFLDSIZ (16UL*1024*1024) /* initial data size limit */
#endif
#ifndef MAXDSIZ
-#define MAXDSIZ (32*1024*1024) /* max data size */
+#define MAXDSIZ (32UL*1024*1024) /* max data size */
#endif
#ifndef DFLSSIZ
-#define DFLSSIZ (512*1024) /* initial stack size limit */
+#define DFLSSIZ (512UL*1024) /* initial stack size limit */
#endif
#ifndef MAXSSIZ
-#define MAXSSIZ (8*1024*1024) /* max stack size */
+#define MAXSSIZ (8UL*1024*1024) /* max stack size */
#endif
/*
@@ -211,15 +211,15 @@
/* user/kernel map constants */
#define VM_MIN_ADDRESS ((vm_offset_t)0)
-#define VM_MAXUSER_ADDRESS ((vm_offset_t)0xFDBFE000)
-#define UPT_MIN_ADDRESS ((vm_offset_t)0xFDC00000)
-#define UPT_MAX_ADDRESS ((vm_offset_t)0xFDFF7000)
+#define VM_MAXUSER_ADDRESS ((vm_offset_t)0xFDBFE000UL)
+#define UPT_MIN_ADDRESS ((vm_offset_t)0xFDC00000UL)
+#define UPT_MAX_ADDRESS ((vm_offset_t)0xFDFF7000UL)
#define VM_MAX_ADDRESS UPT_MAX_ADDRESS
-#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)0xFDFF7000)
+#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)0xFDFF7000UL)
#define UPDT VM_MIN_KERNEL_ADDRESS
-#define KPT_MIN_ADDRESS ((vm_offset_t)0xFDFF8000)
-#define KPT_MAX_ADDRESS ((vm_offset_t)0xFDFFF000)
-#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)0xFF7FF000)
+#define KPT_MIN_ADDRESS ((vm_offset_t)0xFDFF8000UL)
+#define KPT_MAX_ADDRESS ((vm_offset_t)0xFDFFF000UL)
+#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)0xFF7FF000UL)
/* virtual sizes (bytes) for various kernel submaps */
#define VM_MBUF_SIZE (NMBCLUSTERS*MCLBYTES)
OpenPOWER on IntegriCloud