Remove things that are defined in elf_machdep.h now.
This commit is contained in:
parent
96bf37a78f
commit
750052a46f
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: machdep.c,v 1.100 2001/01/23 20:31:28 martin Exp $ */
|
/* $NetBSD: machdep.c,v 1.101 2001/02/11 00:37:22 eeh Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
|
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
|
||||||
@ -374,14 +374,6 @@ setregs(p, pack, stack)
|
|||||||
*/
|
*/
|
||||||
#ifdef __arch64__
|
#ifdef __arch64__
|
||||||
/* Check what memory model is requested */
|
/* Check what memory model is requested */
|
||||||
#define EF_SPARCV9_MM 0x3
|
|
||||||
#define EF_SPARCV9_TSO 0x0
|
|
||||||
#define EF_SPARCV9_PSO 0x1
|
|
||||||
#define EF_SPARCV9_RMO 0x2
|
|
||||||
#define EF_SPARC_SUN_US1 0x000200
|
|
||||||
#define EF_SPARC_HAL_R1 0x000400
|
|
||||||
#define EF_SPARC_SUN_US3 0x000800
|
|
||||||
|
|
||||||
switch ((eh->e_flags & EF_SPARCV9_MM)) {
|
switch ((eh->e_flags & EF_SPARCV9_MM)) {
|
||||||
default:
|
default:
|
||||||
printf("Unknown memory model %d\n",
|
printf("Unknown memory model %d\n",
|
||||||
@ -1246,6 +1238,10 @@ _bus_dmamap_load_mbuf(t, map, m, flags)
|
|||||||
int i;
|
int i;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
|
/* Record mbuf for *_unload */
|
||||||
|
map->_dm_type = _DM_TYPE_MBUF;
|
||||||
|
map->_dm_source = (void *)m;
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
len = 0;
|
len = 0;
|
||||||
while (m) {
|
while (m) {
|
||||||
@ -1276,10 +1272,12 @@ _bus_dmamap_load_mbuf(t, map, m, flags)
|
|||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
m = m->m_next;
|
m = m->m_next;
|
||||||
if (m && i >= MAX_DMA_SEGS)
|
if (m && i >= MAX_DMA_SEGS) {
|
||||||
/* Exceeded the size of our dmamap */
|
/* Exceeded the size of our dmamap */
|
||||||
|
map->_dm_type = 0;
|
||||||
|
map->_dm_source = NULL;
|
||||||
return E2BIG;
|
return E2BIG;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return (bus_dmamap_load_raw(t, map, segs, i,
|
return (bus_dmamap_load_raw(t, map, segs, i,
|
||||||
@ -1300,16 +1298,32 @@ _bus_dmamap_load_uio(t, map, uio, flags)
|
|||||||
struct uio *uio;
|
struct uio *uio;
|
||||||
int flags;
|
int flags;
|
||||||
{
|
{
|
||||||
#if 1
|
/*
|
||||||
|
* XXXXXXX The problem with this routine is that it needs to
|
||||||
|
* lock the user address space that is being loaded, but there
|
||||||
|
* is no real way for us to unlock it during the unload process.
|
||||||
|
*/
|
||||||
|
#if 0
|
||||||
bus_dma_segment_t segs[MAX_DMA_SEGS];
|
bus_dma_segment_t segs[MAX_DMA_SEGS];
|
||||||
int i, j;
|
int i, j;
|
||||||
size_t len;
|
size_t len;
|
||||||
struct proc *p = uio->uio_procp;
|
struct proc *p = uio->uio_procp;
|
||||||
struct pmap *pm;
|
struct pmap *pm;
|
||||||
|
|
||||||
if (uio->uio_segflg == UIO_USERSPACE)
|
/*
|
||||||
|
* Check user read/write access to the data buffer.
|
||||||
|
*/
|
||||||
|
if (uio->uio_segflg == UIO_USERSPACE) {
|
||||||
pm = p->p_vmspace->vm_map.pmap;
|
pm = p->p_vmspace->vm_map.pmap;
|
||||||
else
|
for (i = 0; i < uio->uio_iovcnt; i++) {
|
||||||
|
/* XXXCDC: map not locked, rethink */
|
||||||
|
if (__predict_false(!uvm_useracc(uio->uio_iov[i].iov_base,
|
||||||
|
uio->uio_iov[i].iov_len,
|
||||||
|
/* XXX is UIO_WRITE correct? */
|
||||||
|
(uio->uio_rw == UIO_WRITE) ? B_WRITE : B_READ)))
|
||||||
|
return (EFAULT);
|
||||||
|
}
|
||||||
|
} else
|
||||||
pm = pmap_kernel();
|
pm = pmap_kernel();
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
@ -1319,6 +1333,18 @@ _bus_dmamap_load_uio(t, map, uio, flags)
|
|||||||
vaddr_t vaddr = (vaddr_t)iov->iov_base;
|
vaddr_t vaddr = (vaddr_t)iov->iov_base;
|
||||||
bus_size_t buflen = iov->iov_len;
|
bus_size_t buflen = iov->iov_len;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Lock the part of the user address space involved
|
||||||
|
* in the transfer.
|
||||||
|
*/
|
||||||
|
PHOLD(p);
|
||||||
|
if (__predict_false(uvm_vslock(p, vaddr, buflen,
|
||||||
|
(uio->uio_rw == UIO_WRITE) ?
|
||||||
|
VM_PROT_READ | VM_PROT_WRITE : VM_PROT_READ)
|
||||||
|
!= KERN_SUCCESS)) {
|
||||||
|
goto after_vsunlock;
|
||||||
|
}
|
||||||
|
|
||||||
len += buflen;
|
len += buflen;
|
||||||
while (buflen > 0 && i < MAX_DMA_SEGS) {
|
while (buflen > 0 && i < MAX_DMA_SEGS) {
|
||||||
paddr_t pa;
|
paddr_t pa;
|
||||||
@ -1345,10 +1371,14 @@ _bus_dmamap_load_uio(t, map, uio, flags)
|
|||||||
segs[i]._ds_mlist = NULL;
|
segs[i]._ds_mlist = NULL;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
if (buflen > 0 && i >= MAX_DMA_SEGS)
|
uvm_vsunlock(p, bp->b_data, todo);
|
||||||
|
PRELE(p);
|
||||||
|
if (buflen > 0 && i >= MAX_DMA_SEGS)
|
||||||
/* Exceeded the size of our dmamap */
|
/* Exceeded the size of our dmamap */
|
||||||
return E2BIG;
|
return E2BIG;
|
||||||
}
|
}
|
||||||
|
map->_dm_type = DM_TYPE_UIO;
|
||||||
|
map->_dm_source = (void *)uio;
|
||||||
return (bus_dmamap_load_raw(t, map, segs, i,
|
return (bus_dmamap_load_raw(t, map, segs, i,
|
||||||
(bus_size_t)len, flags));
|
(bus_size_t)len, flags));
|
||||||
#endif
|
#endif
|
||||||
@ -1386,11 +1416,6 @@ _bus_dmamap_unload(t, map)
|
|||||||
struct pglist *mlist;
|
struct pglist *mlist;
|
||||||
paddr_t pa;
|
paddr_t pa;
|
||||||
|
|
||||||
#if 0 /* no longer valid */
|
|
||||||
if (map->dm_nsegs != 1)
|
|
||||||
panic("_bus_dmamap_unload: nsegs = %d", map->dm_nsegs);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (i=0; i<map->dm_nsegs; i++) {
|
for (i=0; i<map->dm_nsegs; i++) {
|
||||||
if ((mlist = map->dm_segs[i]._ds_mlist) == NULL) {
|
if ((mlist = map->dm_segs[i]._ds_mlist) == NULL) {
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user