diff options
-rw-r--r-- | sys/arch/hppa/dev/apic.c | 6 | ||||
-rw-r--r-- | sys/arch/hppa/dev/astro.c | 3 | ||||
-rw-r--r-- | sys/arch/hppa/dev/elroy.c | 156 | ||||
-rw-r--r-- | sys/arch/hppa/dev/mongoose.c | 53 | ||||
-rw-r--r-- | sys/arch/hppa/hppa/autoconf.c | 4 | ||||
-rw-r--r-- | sys/arch/hppa/hppa/db_disasm.c | 4 | ||||
-rw-r--r-- | sys/arch/hppa/hppa/hpux_machdep.c | 3 | ||||
-rw-r--r-- | sys/arch/hppa/hppa/intr.c | 4 | ||||
-rw-r--r-- | sys/arch/hppa/hppa/machdep.c | 4 | ||||
-rw-r--r-- | sys/arch/hppa/hppa/mainbus.c | 148 | ||||
-rw-r--r-- | sys/arch/hppa/hppa/pmap.c | 11 | ||||
-rw-r--r-- | sys/arch/hppa/hppa/trap.c | 9 |
12 files changed, 363 insertions, 42 deletions
diff --git a/sys/arch/hppa/dev/apic.c b/sys/arch/hppa/dev/apic.c index 5870a29ec88..3cffc4bf40e 100644 --- a/sys/arch/hppa/dev/apic.c +++ b/sys/arch/hppa/dev/apic.c @@ -1,4 +1,4 @@ -/* $OpenBSD: apic.c,v 1.9 2010/04/01 22:53:49 kettenis Exp $ */ +/* $OpenBSD: apic.c,v 1.10 2010/05/24 15:04:53 deraadt Exp $ */ /* * Copyright (c) 2005 Michael Shalayeff @@ -77,6 +77,10 @@ u_int32_t apic_get_int_ent0(struct elroy_softc *, int); void apic_dump(struct elroy_softc *); #endif +void apic_write(volatile struct elroy_regs *r, u_int32_t reg, + u_int32_t val); +u_int32_t apic_read(volatile struct elroy_regs *r, u_int32_t reg); + void apic_write(volatile struct elroy_regs *r, u_int32_t reg, u_int32_t val) { diff --git a/sys/arch/hppa/dev/astro.c b/sys/arch/hppa/dev/astro.c index 70318e804a4..0e326375297 100644 --- a/sys/arch/hppa/dev/astro.c +++ b/sys/arch/hppa/dev/astro.c @@ -1,4 +1,4 @@ -/* $OpenBSD: astro.c,v 1.10 2010/04/29 13:48:29 jsing Exp $ */ +/* $OpenBSD: astro.c,v 1.11 2010/05/24 15:04:53 deraadt Exp $ */ /* * Copyright (c) 2007 Mark Kettenis @@ -165,6 +165,7 @@ int iommu_dvmamap_create(void *, bus_size_t, int, bus_size_t, bus_size_t, void iommu_dvmamap_destroy(void *, bus_dmamap_t); int iommu_dvmamap_load(void *, bus_dmamap_t, void *, bus_size_t, struct proc *, int); +int iommu_iomap_load_map(struct astro_softc *, bus_dmamap_t, int); int iommu_dvmamap_load_mbuf(void *, bus_dmamap_t, struct mbuf *, int); int iommu_dvmamap_load_uio(void *, bus_dmamap_t, struct uio *, int); int iommu_dvmamap_load_raw(void *, bus_dmamap_t, bus_dma_segment_t *, diff --git a/sys/arch/hppa/dev/elroy.c b/sys/arch/hppa/dev/elroy.c index 207303f855d..2d72384e6fc 100644 --- a/sys/arch/hppa/dev/elroy.c +++ b/sys/arch/hppa/dev/elroy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: elroy.c,v 1.5 2009/03/30 21:24:57 kettenis Exp $ */ +/* $OpenBSD: elroy.c,v 1.6 2010/05/24 15:04:53 deraadt Exp $ */ /* * Copyright (c) 2005 Michael Shalayeff @@ -57,6 +57,129 @@ struct cfdriver elroy_cd = { NULL, "elroy", DV_DULL }; +void elroy_attach_hook(struct device *parent, struct device *self, + struct pcibus_attach_args *pba); +int elroy_maxdevs(void *v, int bus); +pcitag_t elroy_make_tag(void *v, int bus, int dev, int func); +void elroy_decompose_tag(void *v, pcitag_t tag, int *bus, + int *dev, int *func); +pcireg_t elroy_conf_read(void *v, pcitag_t tag, int reg); +void elroy_conf_write(void *v, pcitag_t tag, int reg, + pcireg_t data); +int elroy_iomap(void *v, bus_addr_t bpa, bus_size_t size, + int flags, bus_space_handle_t *bshp); +int elroy_memmap(void *v, bus_addr_t bpa, bus_size_t size, + int flags, bus_space_handle_t *bshp); +int elroy_subregion(void *v, bus_space_handle_t bsh, + bus_size_t offset, bus_size_t size, + bus_space_handle_t *nbshp); +int elroy_ioalloc(void *v, bus_addr_t rstart, bus_addr_t rend, + bus_size_t size, bus_size_t align, bus_size_t boundary, + int flags, bus_addr_t *addrp, bus_space_handle_t *bshp); +int elroy_memalloc(void *v, bus_addr_t rstart, bus_addr_t rend, + bus_size_t size, bus_size_t align, bus_size_t boundary, + int flags, bus_addr_t *addrp, bus_space_handle_t *bshp); +void elroy_unmap(void *v, bus_space_handle_t bsh, + bus_size_t size); +void elroy_free(void *v, bus_space_handle_t bh, bus_size_t size); +void elroy_barrier(void *v, bus_space_handle_t h, bus_size_t o, + bus_size_t l, int op); +void * elroy_alloc_parent(struct device *self, + struct pci_attach_args *pa, int io); +void * elroy_vaddr(void *v, bus_space_handle_t h); +u_int8_t elroy_r1(void *v, bus_space_handle_t h, bus_size_t o); +u_int16_t elroy_r2(void *v, bus_space_handle_t h, bus_size_t o); +u_int32_t elroy_r4(void *v, bus_space_handle_t h, bus_size_t o); +u_int64_t elroy_r8(void *v, bus_space_handle_t h, bus_size_t o); +void elroy_w1(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t vv); +void elroy_w2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t vv); +void elroy_w4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t vv); +void elroy_w8(void *v, bus_space_handle_t h, bus_size_t o, + u_int64_t vv); +void elroy_rm_1(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t *a, bus_size_t c); +void elroy_rm_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t *a, bus_size_t c); +void elroy_rm_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t *a, bus_size_t c); +void elroy_rm_8(void *v, bus_space_handle_t h, bus_size_t o, + u_int64_t *a, bus_size_t c); +void elroy_wm_1(void *v, bus_space_handle_t h, bus_size_t o, + const u_int8_t *a, bus_size_t c); +void elroy_wm_2(void *v, bus_space_handle_t h, bus_size_t o, + const u_int16_t *a, bus_size_t c); +void elroy_wm_4(void *v, bus_space_handle_t h, bus_size_t o, + const u_int32_t *a, bus_size_t c); +void elroy_wm_8(void *v, bus_space_handle_t h, bus_size_t o, + const u_int64_t *a, bus_size_t c); +void elroy_sm_1(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t vv, bus_size_t c); +void elroy_sm_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t vv, bus_size_t c); +void elroy_sm_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t vv, bus_size_t c); +void elroy_sm_8(void *v, bus_space_handle_t h, bus_size_t o, + u_int64_t vv, bus_size_t c); +void elroy_rrm_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t *a, bus_size_t c); +void elroy_rrm_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t *a, bus_size_t c); +void elroy_rrm_8(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t *a, bus_size_t c); +void elroy_wrm_2(void *v, bus_space_handle_t h, bus_size_t o, + const u_int8_t *a, bus_size_t c); +void elroy_wrm_4(void *v, bus_space_handle_t h, bus_size_t o, + const u_int8_t *a, bus_size_t c); +void elroy_wrm_8(void *v, bus_space_handle_t h, bus_size_t o, + const u_int8_t *a, bus_size_t c); +void elroy_rr_1(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t *a, bus_size_t c); +void elroy_rr_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t *a, bus_size_t c); +void elroy_rr_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t *a, bus_size_t c); +void elroy_rr_8(void *v, bus_space_handle_t h, bus_size_t o, + u_int64_t *a, bus_size_t c); +void elroy_wr_1(void *v, bus_space_handle_t h, bus_size_t o, + const u_int8_t *a, bus_size_t c); +void elroy_wr_2(void *v, bus_space_handle_t h, bus_size_t o, + const u_int16_t *a, bus_size_t c); +void elroy_wr_4(void *v, bus_space_handle_t h, bus_size_t o, + const u_int32_t *a, bus_size_t c); +void elroy_wr_8(void *v, bus_space_handle_t h, bus_size_t o, + const u_int64_t *a, bus_size_t c); +void elroy_rrr_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t *a, bus_size_t c); +void elroy_rrr_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t *a, bus_size_t c); +void elroy_rrr_8(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t *a, bus_size_t c); +void elroy_wrr_2(void *v, bus_space_handle_t h, bus_size_t o, + const u_int8_t *a, bus_size_t c); +void elroy_wrr_4(void *v, bus_space_handle_t h, bus_size_t o, + const u_int8_t *a, bus_size_t c); +void elroy_wrr_8(void *v, bus_space_handle_t h, bus_size_t o, + const u_int8_t *a, bus_size_t c); +void elroy_sr_1(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t vv, bus_size_t c); +void elroy_sr_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t vv, bus_size_t c); +void elroy_sr_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t vv, bus_size_t c); +void elroy_sr_8(void *v, bus_space_handle_t h, bus_size_t o, + u_int64_t vv, bus_size_t c); +void elroy_cp_1(void *v, bus_space_handle_t h1, bus_size_t o1, + bus_space_handle_t h2, bus_size_t o2, bus_size_t c); +void elroy_cp_2(void *v, bus_space_handle_t h1, bus_size_t o1, + bus_space_handle_t h2, bus_size_t o2, bus_size_t c); +void elroy_cp_4(void *v, bus_space_handle_t h1, bus_size_t o1, + bus_space_handle_t h2, bus_size_t o2, bus_size_t c); +void elroy_cp_8(void *v, bus_space_handle_t h1, bus_size_t o1, + bus_space_handle_t h2, bus_size_t o2, bus_size_t c); + int elroy_match(struct device *parent, void *cfdata, void *aux) { @@ -927,6 +1050,35 @@ const struct hppa_bus_space_tag elroy_iomemt = { elroy_cp_1, elroy_cp_2, elroy_cp_4, elroy_cp_8 }; +int elroy_dmamap_create(void *v, bus_size_t size, + int nsegments, bus_size_t maxsegsz, + bus_size_t boundary, int flags, + bus_dmamap_t *dmamp); +void elroy_dmamap_destroy(void *v, bus_dmamap_t map); +int elroy_dmamap_load(void *v, bus_dmamap_t map, + void *addr, bus_size_t size, + struct proc *p, int flags); +int elroy_dmamap_load_mbuf(void *v, bus_dmamap_t map, + struct mbuf *m, int flags); +int elroy_dmamap_load_uio(void *v, bus_dmamap_t map, + struct uio *uio, int flags); +int elroy_dmamap_load_raw(void *v, bus_dmamap_t map, + bus_dma_segment_t *segs, + int nsegs, bus_size_t size, int flags); +void elroy_dmamap_unload(void *v, bus_dmamap_t map); +void elroy_dmamap_sync(void *v, bus_dmamap_t map, bus_addr_t off, + bus_size_t len, int ops); +int elroy_dmamem_alloc(void *v, bus_size_t size, + bus_size_t alignment, bus_size_t boundary, + bus_dma_segment_t *segs, int nsegs, int *rsegs, int flags); +void elroy_dmamem_free(void *v, bus_dma_segment_t *segs, + int nsegs); +int elroy_dmamem_map(void *v, bus_dma_segment_t *segs, int nsegs, + size_t size, caddr_t *kvap, int flags); +void elroy_dmamem_unmap(void *v, caddr_t kva, size_t size); +paddr_t elroy_dmamem_mmap(void *v, bus_dma_segment_t *segs, + int nsegs, off_t off, int prot, int flags); + int elroy_dmamap_create(void *v, bus_size_t size, int nsegments, bus_size_t maxsegsz, bus_size_t boundary, int flags, bus_dmamap_t *dmamp) @@ -1067,6 +1219,8 @@ const struct hppa_pci_chipset_tag elroy_pc = { #endif }; +int elroy_print(void *aux, const char *pnp); + int elroy_print(void *aux, const char *pnp) { diff --git a/sys/arch/hppa/dev/mongoose.c b/sys/arch/hppa/dev/mongoose.c index be66db5a73d..d4836daa796 100644 --- a/sys/arch/hppa/dev/mongoose.c +++ b/sys/arch/hppa/dev/mongoose.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mongoose.c,v 1.20 2010/04/27 18:29:39 kettenis Exp $ */ +/* $OpenBSD: mongoose.c,v 1.21 2010/05/24 15:04:53 deraadt Exp $ */ /* * Copyright (c) 1998-2003 Michael Shalayeff @@ -58,6 +58,57 @@ struct cfdriver mongoose_cd = { NULL, "mongoose", DV_DULL }; +void mg_eisa_attach_hook(struct device *parent, + struct device *self, + struct eisabus_attach_args *mg); +int mg_intr_map(void *v, u_int irq, eisa_intr_handle_t *ehp); +const char *mg_intr_string(void *v, int irq); +void mg_isa_attach_hook(struct device *parent, + struct device *self, + struct isabus_attach_args *iba); +void *mg_intr_establish(void *v, int irq, int type, int pri, + int (*handler)(void *), void *arg, const char *name); +void mg_intr_disestablish(void *v, void *cookie); +int mg_intr_check(void *v, int irq, int type); +int mg_eisa_iomap(void *v, bus_addr_t addr, bus_size_t size, + int flags, bus_space_handle_t *bshp); +int mg_eisa_memmap(void *v, bus_addr_t addr, bus_size_t size, + int flags, bus_space_handle_t *bshp); +void mg_eisa_memunmap(void *v, bus_space_handle_t bsh, + bus_size_t size); +void mg_isa_barrier(void *v, bus_space_handle_t h, bus_size_t o, + bus_size_t l, int op); +u_int16_t mg_isa_r2(void *v, bus_space_handle_t h, bus_size_t o); +u_int32_t mg_isa_r4(void *v, bus_space_handle_t h, bus_size_t o); +void mg_isa_w2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t vv); +void mg_isa_w4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t vv); +void mg_isa_rm_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t *a, bus_size_t c); +void mg_isa_rm_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t *a, bus_size_t c); +void mg_isa_wm_2(void *v, bus_space_handle_t h, bus_size_t o, + const u_int16_t *a, bus_size_t c); +void mg_isa_wm_4(void *v, bus_space_handle_t h, bus_size_t o, + const u_int32_t *a, bus_size_t c); +void mg_isa_sm_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t vv, bus_size_t c); +void mg_isa_sm_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t vv, bus_size_t c); +void mg_isa_rr_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t *a, bus_size_t c); +void mg_isa_rr_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t *a, bus_size_t c); +void mg_isa_wr_2(void *v, bus_space_handle_t h, bus_size_t o, + const u_int16_t *a, bus_size_t c); +void mg_isa_wr_4(void *v, bus_space_handle_t h, bus_size_t o, + const u_int32_t *a, bus_size_t c); +void mg_isa_sr_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t vv, bus_size_t c); +void mg_isa_sr_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t vv, bus_size_t c); + /* TODO: DMA guts */ void diff --git a/sys/arch/hppa/hppa/autoconf.c b/sys/arch/hppa/hppa/autoconf.c index ae9470906f8..0c3ce4a256f 100644 --- a/sys/arch/hppa/hppa/autoconf.c +++ b/sys/arch/hppa/hppa/autoconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: autoconf.c,v 1.55 2010/05/06 14:39:52 jsing Exp $ */ +/* $OpenBSD: autoconf.c,v 1.56 2010/05/24 15:04:54 deraadt Exp $ */ /* * Copyright (c) 1998-2003 Michael Shalayeff @@ -172,6 +172,8 @@ dumpconf(void) dumpsize = physmem; } +void print_devpath(const char *label, struct pz_device *pz); + void print_devpath(const char *label, struct pz_device *pz) { diff --git a/sys/arch/hppa/hppa/db_disasm.c b/sys/arch/hppa/hppa/db_disasm.c index b7e77da8a52..f4ecf0f5c08 100644 --- a/sys/arch/hppa/hppa/db_disasm.c +++ b/sys/arch/hppa/hppa/db_disasm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: db_disasm.c,v 1.18 2006/02/06 17:19:30 jmc Exp $ */ +/* $OpenBSD: db_disasm.c,v 1.19 2010/05/24 15:04:54 deraadt Exp $ */ /* TODO parse 64bit insns or rewrite */ @@ -1222,6 +1222,8 @@ static struct majoropcode majopcs[NMAJOPCS] = { #undef NENTS #undef ILLEG +int iExInit(void); + /*-------------------------------------------------------------------------- * instruction$ExecutionInitialize - Initialize the instruction execution * data structures. diff --git a/sys/arch/hppa/hppa/hpux_machdep.c b/sys/arch/hppa/hppa/hpux_machdep.c index ffcad83594b..fa22421b955 100644 --- a/sys/arch/hppa/hppa/hpux_machdep.c +++ b/sys/arch/hppa/hppa/hpux_machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: hpux_machdep.c,v 1.3 2009/07/29 18:31:11 kettenis Exp $ */ +/* $OpenBSD: hpux_machdep.c,v 1.4 2010/05/24 15:04:54 deraadt Exp $ */ /* * Copyright (c) 2005 Michael Shalayeff @@ -37,6 +37,7 @@ #include <compat/hpux/hpux_util.h> #include <compat/hpux/hpux_syscallargs.h> +#include <machine/hpux_machdep.h> #include <machine/cpufunc.h> #include <machine/frame.h> diff --git a/sys/arch/hppa/hppa/intr.c b/sys/arch/hppa/hppa/intr.c index 47df804c9ed..dee14c28721 100644 --- a/sys/arch/hppa/hppa/intr.c +++ b/sys/arch/hppa/hppa/intr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: intr.c,v 1.32 2010/05/21 15:24:29 jsing Exp $ */ +/* $OpenBSD: intr.c,v 1.33 2010/05/24 15:04:54 deraadt Exp $ */ /* * Copyright (c) 2002-2004 Michael Shalayeff @@ -252,6 +252,8 @@ cpu_intr_establish(int pri, int irq, int (*handler)(void *), void *arg, return (iv); } +int fls(u_int mask); + int fls(u_int mask) { diff --git a/sys/arch/hppa/hppa/machdep.c b/sys/arch/hppa/hppa/machdep.c index 1cd969bff6f..2536b8bdc3b 100644 --- a/sys/arch/hppa/hppa/machdep.c +++ b/sys/arch/hppa/hppa/machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: machdep.c,v 1.184 2010/05/09 17:37:33 kettenis Exp $ */ +/* $OpenBSD: machdep.c,v 1.185 2010/05/24 15:04:55 deraadt Exp $ */ /* * Copyright (c) 1999-2003 Michael Shalayeff @@ -273,6 +273,8 @@ const struct hppa_cpu_typed { { "", 0 } }; +int hppa_cpuspeed(int *mhz); + int hppa_cpuspeed(int *mhz) { diff --git a/sys/arch/hppa/hppa/mainbus.c b/sys/arch/hppa/hppa/mainbus.c index 61d29e49526..efed4e01f1c 100644 --- a/sys/arch/hppa/hppa/mainbus.c +++ b/sys/arch/hppa/hppa/mainbus.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mainbus.c,v 1.79 2010/05/06 14:39:52 jsing Exp $ */ +/* $OpenBSD: mainbus.c,v 1.80 2010/05/24 15:04:55 deraadt Exp $ */ /* * Copyright (c) 1998-2004 Michael Shalayeff @@ -75,6 +75,91 @@ struct pdc_chassis_lcd pdc_chassis_lcd PDC_ALIGNMENT; extern struct extent *hppa_ex; extern struct pdc_btlb pdc_btlb; +int mbus_add_mapping(bus_addr_t bpa, bus_size_t size, int flags, + bus_space_handle_t *bshp); +int mbus_map(void *v, bus_addr_t bpa, bus_size_t size, + int flags, bus_space_handle_t *bshp); +void mbus_unmap(void *v, bus_space_handle_t bsh, bus_size_t size); +int mbus_alloc(void *v, bus_addr_t rstart, bus_addr_t rend, + bus_size_t size, bus_size_t align, bus_size_t boundary, + int flags, bus_addr_t *addrp, bus_space_handle_t *bshp); +void mbus_free(void *v, bus_space_handle_t h, bus_size_t size); +int mbus_subregion(void *v, bus_space_handle_t bsh, + bus_size_t offset, bus_size_t size, + bus_space_handle_t *nbshp); +void mbus_barrier(void *v, bus_space_handle_t h, bus_size_t o, + bus_size_t l, int op); +void *mbus_vaddr(void *v, bus_space_handle_t h); +u_int8_t mbus_r1(void *v, bus_space_handle_t h, bus_size_t o); +u_int16_t mbus_r2(void *v, bus_space_handle_t h, bus_size_t o); +u_int32_t mbus_r4(void *v, bus_space_handle_t h, bus_size_t o); +u_int64_t mbus_r8(void *v, bus_space_handle_t h, bus_size_t o); +void mbus_w1(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t vv); +void mbus_w2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t vv); +void mbus_w4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t vv); +void mbus_w8(void *v, bus_space_handle_t h, bus_size_t o, + u_int64_t vv); +void mbus_rm_1(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t *a, bus_size_t c); +void mbus_rm_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t *a, bus_size_t c); +void mbus_rm_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t *a, bus_size_t c); +void mbus_rm_8(void *v, bus_space_handle_t h, bus_size_t o, + u_int64_t *a, bus_size_t c); +void mbus_wm_1(void *v, bus_space_handle_t h, bus_size_t o, + const u_int8_t *a, bus_size_t c); +void mbus_wm_2(void *v, bus_space_handle_t h, bus_size_t o, + const u_int16_t *a, bus_size_t c); +void mbus_wm_4(void *v, bus_space_handle_t h, bus_size_t o, + const u_int32_t *a, bus_size_t c); +void mbus_wm_8(void *v, bus_space_handle_t h, bus_size_t o, + const u_int64_t *a, bus_size_t c); +void mbus_sm_1(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t vv, bus_size_t c); +void mbus_sm_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t vv, bus_size_t c); +void mbus_sm_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t vv, bus_size_t c); +void mbus_sm_8(void *v, bus_space_handle_t h, bus_size_t o, + u_int64_t vv, bus_size_t c); + +void mbus_rr_1(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t *a, bus_size_t c); +void mbus_rr_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t *a, bus_size_t c); +void mbus_rr_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t *a, bus_size_t c); +void mbus_rr_8(void *v, bus_space_handle_t h, bus_size_t o, + u_int64_t *a, bus_size_t c); +void mbus_wr_1(void *v, bus_space_handle_t h, bus_size_t o, + const u_int8_t *a, bus_size_t c); +void mbus_wr_2(void *v, bus_space_handle_t h, bus_size_t o, + const u_int16_t *a, bus_size_t c); +void mbus_wr_4(void *v, bus_space_handle_t h, bus_size_t o, + const u_int32_t *a, bus_size_t c); +void mbus_wr_8(void *v, bus_space_handle_t h, bus_size_t o, + const u_int64_t *a, bus_size_t c); +void mbus_sr_1(void *v, bus_space_handle_t h, bus_size_t o, + u_int8_t vv, bus_size_t c); +void mbus_sr_2(void *v, bus_space_handle_t h, bus_size_t o, + u_int16_t vv, bus_size_t c); +void mbus_sr_4(void *v, bus_space_handle_t h, bus_size_t o, + u_int32_t vv, bus_size_t c); +void mbus_sr_8(void *v, bus_space_handle_t h, bus_size_t o, + u_int64_t vv, bus_size_t c); +void mbus_cp_1(void *v, bus_space_handle_t h1, bus_size_t o1, + bus_space_handle_t h2, bus_size_t o2, bus_size_t c); +void mbus_cp_2(void *v, bus_space_handle_t h1, bus_size_t o1, + bus_space_handle_t h2, bus_size_t o2, bus_size_t c); +void mbus_cp_4(void *v, bus_space_handle_t h1, bus_size_t o1, + bus_space_handle_t h2, bus_size_t o2, bus_size_t c); +void mbus_cp_8(void *v, bus_space_handle_t h1, bus_size_t o1, + bus_space_handle_t h2, bus_size_t o2, bus_size_t c); + int mbus_add_mapping(bus_addr_t bpa, bus_size_t size, int flags, bus_space_handle_t *bshp) @@ -232,8 +317,8 @@ mbus_unmap(void *v, bus_space_handle_t bsh, bus_size_t size) int mbus_alloc(void *v, bus_addr_t rstart, bus_addr_t rend, bus_size_t size, - bus_size_t align, bus_size_t boundary, int flags, - bus_addr_t *addrp, bus_space_handle_t *bshp) + bus_size_t align, bus_size_t boundary, int flags, + bus_addr_t *addrp, bus_space_handle_t *bshp) { u_long bpa; int error; @@ -429,20 +514,6 @@ mbus_sm_8(void *v, bus_space_handle_t h, bus_size_t o, u_int64_t vv, bus_size_t *(volatile u_int64_t *)h = vv; } -void mbus_rrm_2(void *v, bus_space_handle_t h, - bus_size_t o, u_int16_t*a, bus_size_t c); -void mbus_rrm_4(void *v, bus_space_handle_t h, - bus_size_t o, u_int32_t*a, bus_size_t c); -void mbus_rrm_8(void *v, bus_space_handle_t h, - bus_size_t o, u_int64_t*a, bus_size_t c); - -void mbus_wrm_2(void *v, bus_space_handle_t h, - bus_size_t o, const u_int16_t *a, bus_size_t c); -void mbus_wrm_4(void *v, bus_space_handle_t h, - bus_size_t o, const u_int32_t *a, bus_size_t c); -void mbus_wrm_8(void *v, bus_space_handle_t h, - bus_size_t o, const u_int64_t *a, bus_size_t c); - void mbus_rr_1(void *v, bus_space_handle_t h, bus_size_t o, u_int8_t *a, bus_size_t c) { @@ -515,20 +586,6 @@ mbus_wr_8(void *v, bus_space_handle_t h, bus_size_t o, const u_int64_t *a, bus_s *p++ = *a++; } -void mbus_rrr_2(void *v, bus_space_handle_t h, - bus_size_t o, u_int16_t *a, bus_size_t c); -void mbus_rrr_4(void *v, bus_space_handle_t h, - bus_size_t o, u_int32_t *a, bus_size_t c); -void mbus_rrr_8(void *v, bus_space_handle_t h, - bus_size_t o, u_int64_t *a, bus_size_t c); - -void mbus_wrr_2(void *v, bus_space_handle_t h, - bus_size_t o, const u_int16_t *a, bus_size_t c); -void mbus_wrr_4(void *v, bus_space_handle_t h, - bus_size_t o, const u_int32_t *a, bus_size_t c); -void mbus_wrr_8(void *v, bus_space_handle_t h, - bus_size_t o, const u_int64_t *a, bus_size_t c); - void mbus_sr_1(void *v, bus_space_handle_t h, bus_size_t o, u_int8_t vv, bus_size_t c) { @@ -636,6 +693,35 @@ const struct hppa_bus_space_tag hppa_bustag = { mbus_cp_1, mbus_cp_2, mbus_cp_4, mbus_cp_8 }; +int mbus_dmamap_create(void *v, bus_size_t size, int nsegments, + bus_size_t maxsegsz, bus_size_t boundary, int flags, + bus_dmamap_t *dmamp); +void mbus_dmamap_unload(void *v, bus_dmamap_t map); +void mbus_dmamap_destroy(void *v, bus_dmamap_t map); +int _bus_dmamap_load_buffer(bus_dma_tag_t t, bus_dmamap_t map, + void *buf, bus_size_t buflen, struct proc *p, int flags, + paddr_t *lastaddrp, int *segp, int first); +int mbus_dmamap_load(void *v, bus_dmamap_t map, void *addr, + bus_size_t size, struct proc *p, int flags); +int mbus_dmamap_load_mbuf(void *v, bus_dmamap_t map, + struct mbuf *m0, int flags); +int mbus_dmamap_load_uio(void *v, bus_dmamap_t map, + struct uio *uio, int flags); +int mbus_dmamap_load_raw(void *v, bus_dmamap_t map, + bus_dma_segment_t *segs, int nsegs, bus_size_t size, + int flags); +void mbus_dmamap_sync(void *v, bus_dmamap_t map, bus_addr_t off, + bus_size_t len, int ops); +int mbus_dmamem_alloc(void *v, bus_size_t size, + bus_size_t alignment, bus_size_t boundary, + bus_dma_segment_t *segs, int nsegs, int *rsegs, int flags); +void mbus_dmamem_free(void *v, bus_dma_segment_t *segs, int nsegs); +int mbus_dmamem_map(void *v, bus_dma_segment_t *segs, int nsegs, + size_t size, caddr_t *kvap, int flags); +void mbus_dmamem_unmap(void *v, caddr_t kva, size_t size); +paddr_t mbus_dmamem_mmap(void *v, bus_dma_segment_t *segs, int nsegs, + off_t off, int prot, int flags); + int mbus_dmamap_create(void *v, bus_size_t size, int nsegments, bus_size_t maxsegsz, bus_size_t boundary, int flags, diff --git a/sys/arch/hppa/hppa/pmap.c b/sys/arch/hppa/hppa/pmap.c index 04b6f9bc2ba..75eae16412f 100644 --- a/sys/arch/hppa/hppa/pmap.c +++ b/sys/arch/hppa/hppa/pmap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pmap.c,v 1.154 2010/05/22 22:12:42 kettenis Exp $ */ +/* $OpenBSD: pmap.c,v 1.155 2010/05/24 15:04:55 deraadt Exp $ */ /* * Copyright (c) 1998-2004 Michael Shalayeff @@ -107,6 +107,15 @@ u_int hppa_prot[8]; #define pmap_pvh_attrs(a) \ (((a) & PTE_PROT(TLB_DIRTY)) | ((a) ^ PTE_PROT(TLB_REFTRAP))) +struct vm_page *pmap_pagealloc(struct uvm_object *obj, voff_t off); +void pmap_pte_flush(struct pmap *pmap, vaddr_t va, pt_entry_t pte); +#ifdef DDB +void pmap_dump_table(pa_space_t space, vaddr_t sva); +void pmap_dump_pv(paddr_t pa); +#endif +int pmap_check_alias(struct pv_entry *pve, vaddr_t va, + pt_entry_t pte); + struct vm_page * pmap_pagealloc(struct uvm_object *obj, voff_t off) { diff --git a/sys/arch/hppa/hppa/trap.c b/sys/arch/hppa/hppa/trap.c index 8dd4ae2404b..54b449951ca 100644 --- a/sys/arch/hppa/hppa/trap.c +++ b/sys/arch/hppa/hppa/trap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: trap.c,v 1.107 2010/05/09 17:14:20 kettenis Exp $ */ +/* $OpenBSD: trap.c,v 1.108 2010/05/24 15:04:55 deraadt Exp $ */ /* * Copyright (c) 1998-2004 Michael Shalayeff @@ -129,6 +129,8 @@ u_char hppa_regmap[32] = { offsetof(struct trapframe, tf_r31) / 4, }; +void userret(struct proc *p); + void userret(struct proc *p) { @@ -662,6 +664,9 @@ child_return(void *arg) #include <sys/ptrace.h> +int ss_get_value(struct proc *p, vaddr_t addr, u_int *value); +int ss_put_value(struct proc *p, vaddr_t addr, u_int value); + int ss_get_value(struct proc *p, vaddr_t addr, u_int *value) { @@ -760,6 +765,8 @@ process_sstep(struct proc *p, int sstep) #endif /* PTRACE */ +void syscall(struct trapframe *frame); + /* * call actual syscall routine */ |