PERFORCE change 100842 for review
Marcel Moolenaar
marcel at FreeBSD.org
Fri Jul 7 05:24:05 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=100842
Change 100842 by marcel at marcel_nfs on 2006/07/07 05:23:10
IFC @100834
Affected files ...
.. //depot/projects/uart/Makefile#7 integrate
.. //depot/projects/uart/amd64/amd64/pmap.c#40 integrate
.. //depot/projects/uart/amd64/conf/GENERIC#22 integrate
.. //depot/projects/uart/amd64/conf/NOTES#11 integrate
.. //depot/projects/uart/amd64/linux32/linux32_proto.h#8 integrate
.. //depot/projects/uart/amd64/linux32/linux32_syscall.h#8 integrate
.. //depot/projects/uart/amd64/linux32/linux32_sysent.c#8 integrate
.. //depot/projects/uart/amd64/linux32/syscalls.master#8 integrate
.. //depot/projects/uart/arm/arm/elf_trampoline.c#6 integrate
.. //depot/projects/uart/arm/at91/at91_pio.c#2 integrate
.. //depot/projects/uart/arm/at91/at91_pio_rm9200.h#1 branch
.. //depot/projects/uart/arm/at91/at91_piovar.h#1 branch
.. //depot/projects/uart/arm/at91/files.at91#3 integrate
.. //depot/projects/uart/arm/at91/uart_dev_at91usart.c#6 integrate
.. //depot/projects/uart/bsm/audit_kevents.h#4 integrate
.. //depot/projects/uart/bsm/audit_record.h#3 integrate
.. //depot/projects/uart/cam/cam_xpt.c#13 integrate
.. //depot/projects/uart/compat/freebsd32/freebsd32_proto.h#15 integrate
.. //depot/projects/uart/compat/freebsd32/freebsd32_syscall.h#15 integrate
.. //depot/projects/uart/compat/freebsd32/freebsd32_syscalls.c#15 integrate
.. //depot/projects/uart/compat/freebsd32/freebsd32_sysent.c#15 integrate
.. //depot/projects/uart/compat/freebsd32/syscalls.master#14 integrate
.. //depot/projects/uart/compat/linprocfs/linprocfs.c#19 integrate
.. //depot/projects/uart/compat/linux/linux_ioctl.c#11 integrate
.. //depot/projects/uart/compat/linux/linux_ipc.c#7 integrate
.. //depot/projects/uart/compat/linux/linux_misc.c#16 integrate
.. //depot/projects/uart/compat/linux/linux_util.h#7 integrate
.. //depot/projects/uart/compat/ndis/kern_ndis.c#8 integrate
.. //depot/projects/uart/compat/svr4/Makefile#2 integrate
.. //depot/projects/uart/compat/svr4/svr4_ipc.c#6 integrate
.. //depot/projects/uart/compat/svr4/svr4_misc.c#10 integrate
.. //depot/projects/uart/compat/svr4/svr4_proto.h#5 integrate
.. //depot/projects/uart/compat/svr4/svr4_syscall.h#5 integrate
.. //depot/projects/uart/compat/svr4/svr4_syscallnames.c#5 integrate
.. //depot/projects/uart/compat/svr4/svr4_sysent.c#5 integrate
.. //depot/projects/uart/compat/svr4/syscalls.master#5 integrate
.. //depot/projects/uart/conf/NOTES#41 integrate
.. //depot/projects/uart/conf/files#73 integrate
.. //depot/projects/uart/conf/files.amd64#24 integrate
.. //depot/projects/uart/conf/files.i386#29 integrate
.. //depot/projects/uart/conf/files.ia64#18 integrate
.. //depot/projects/uart/conf/kern.mk#8 integrate
.. //depot/projects/uart/conf/kern.pre.mk#12 integrate
.. //depot/projects/uart/conf/kmod.mk#22 integrate
.. //depot/projects/uart/conf/options#39 integrate
.. //depot/projects/uart/dev/acpica/acpi_dock.c#2 integrate
.. //depot/projects/uart/dev/ata/ata-all.h#15 integrate
.. //depot/projects/uart/dev/ata/ata-chipset.c#21 integrate
.. //depot/projects/uart/dev/ata/ata-lowlevel.c#20 integrate
.. //depot/projects/uart/dev/ata/ata-pci.h#15 integrate
.. //depot/projects/uart/dev/ata/atapi-cd.c#19 integrate
.. //depot/projects/uart/dev/ath/if_ath.c#32 integrate
.. //depot/projects/uart/dev/ath/if_athioctl.h#10 integrate
.. //depot/projects/uart/dev/ath/if_athvar.h#21 integrate
.. //depot/projects/uart/dev/atkbdc/atkbdc_isa.c#4 integrate
.. //depot/projects/uart/dev/bge/if_bge.c#29 integrate
.. //depot/projects/uart/dev/bge/if_bgereg.h#19 integrate
.. //depot/projects/uart/dev/bktr/CHANGELOG.TXT#3 integrate
.. //depot/projects/uart/dev/fdc/fdc.c#11 integrate
.. //depot/projects/uart/dev/ic/nec765.h#3 integrate
.. //depot/projects/uart/dev/isp/isp.c#13 integrate
.. //depot/projects/uart/dev/isp/isp_pci.c#14 integrate
.. //depot/projects/uart/dev/isp/ispmbox.h#8 integrate
.. //depot/projects/uart/dev/isp/ispreg.h#5 integrate
.. //depot/projects/uart/dev/isp/ispvar.h#12 integrate
.. //depot/projects/uart/dev/ispfw/asm_2322.h#1 branch
.. //depot/projects/uart/dev/ispfw/ispfw.c#6 integrate
.. //depot/projects/uart/dev/mfi/mfi.c#6 integrate
.. //depot/projects/uart/dev/mii/acphy.c#6 integrate
.. //depot/projects/uart/dev/mii/amphy.c#6 integrate
.. //depot/projects/uart/dev/mii/bmtphy.c#6 integrate
.. //depot/projects/uart/dev/mii/brgphy.c#15 integrate
.. //depot/projects/uart/dev/mii/ciphy.c#5 integrate
.. //depot/projects/uart/dev/mii/e1000phy.c#7 integrate
.. //depot/projects/uart/dev/mii/exphy.c#6 integrate
.. //depot/projects/uart/dev/mii/inphy.c#4 integrate
.. //depot/projects/uart/dev/mii/lxtphy.c#6 integrate
.. //depot/projects/uart/dev/mii/mii_physubr.c#7 integrate
.. //depot/projects/uart/dev/mii/mlphy.c#5 integrate
.. //depot/projects/uart/dev/mii/nsgphy.c#7 integrate
.. //depot/projects/uart/dev/mii/nsphy.c#6 integrate
.. //depot/projects/uart/dev/mii/pnaphy.c#6 integrate
.. //depot/projects/uart/dev/mii/qsphy.c#6 integrate
.. //depot/projects/uart/dev/mii/rgephy.c#7 integrate
.. //depot/projects/uart/dev/mii/rlphy.c#7 integrate
.. //depot/projects/uart/dev/mii/ruephy.c#4 integrate
.. //depot/projects/uart/dev/mii/tdkphy.c#7 integrate
.. //depot/projects/uart/dev/mii/tlphy.c#6 integrate
.. //depot/projects/uart/dev/mii/ukphy.c#6 integrate
.. //depot/projects/uart/dev/mii/xmphy.c#6 integrate
.. //depot/projects/uart/dev/mpt/mpt.c#18 integrate
.. //depot/projects/uart/dev/mpt/mpt.h#16 integrate
.. //depot/projects/uart/dev/mpt/mpt_cam.c#17 integrate
.. //depot/projects/uart/dev/mpt/mpt_pci.c#21 integrate
.. //depot/projects/uart/dev/nfe/if_nfe.c#1 branch
.. //depot/projects/uart/dev/nfe/if_nfereg.h#1 branch
.. //depot/projects/uart/dev/nfe/if_nfevar.h#1 branch
.. //depot/projects/uart/dev/puc/puc.c#43 integrate
.. //depot/projects/uart/dev/puc/puc_cfg.c#9 integrate
.. //depot/projects/uart/dev/puc/puc_pccard.c#6 integrate
.. //depot/projects/uart/dev/puc/puc_pci.c#14 integrate
.. //depot/projects/uart/dev/puc/pucdata.c#48 integrate
.. //depot/projects/uart/dev/re/if_re.c#19 integrate
.. //depot/projects/uart/dev/sio/sio.c#17 integrate
.. //depot/projects/uart/dev/sk/if_sk.c#9 integrate
.. //depot/projects/uart/dev/sound/pci/solo.c#10 integrate
.. //depot/projects/uart/dev/usb/if_aue.c#12 integrate
.. //depot/projects/uart/dev/usb/if_ural.c#9 integrate
.. //depot/projects/uart/dev/usb/uplcom.c#15 integrate
.. //depot/projects/uart/dev/usb/usbdevs#24 integrate
.. //depot/projects/uart/fs/devfs/devfs_vfsops.c#10 integrate
.. //depot/projects/uart/fs/devfs/devfs_vnops.c#15 integrate
.. //depot/projects/uart/fs/pseudofs/pseudofs_vnops.c#13 integrate
.. //depot/projects/uart/fs/udf/udf_vfsops.c#14 integrate
.. //depot/projects/uart/fs/unionfs/union_vnops.c#10 integrate
.. //depot/projects/uart/geom/geom_gpt.c#8 integrate
.. //depot/projects/uart/geom/mirror/g_mirror.c#16 integrate
.. //depot/projects/uart/geom/raid3/g_raid3.c#19 integrate
.. //depot/projects/uart/i386/conf/GENERIC#21 integrate
.. //depot/projects/uart/i386/conf/NOTES#22 integrate
.. //depot/projects/uart/i386/conf/XBOX#5 integrate
.. //depot/projects/uart/i386/i386/pmap.c#41 integrate
.. //depot/projects/uart/i386/ibcs2/ibcs2_misc.c#9 integrate
.. //depot/projects/uart/i386/ibcs2/ibcs2_msg.c#4 integrate
.. //depot/projects/uart/i386/ibcs2/ibcs2_poll.h#3 delete
.. //depot/projects/uart/i386/ibcs2/ibcs2_proto.h#6 integrate
.. //depot/projects/uart/i386/ibcs2/ibcs2_syscall.h#6 integrate
.. //depot/projects/uart/i386/ibcs2/ibcs2_sysent.c#6 integrate
.. //depot/projects/uart/i386/ibcs2/ibcs2_xenix.h#5 integrate
.. //depot/projects/uart/i386/ibcs2/ibcs2_xenix_syscall.h#5 integrate
.. //depot/projects/uart/i386/ibcs2/ibcs2_xenix_sysent.c#5 integrate
.. //depot/projects/uart/i386/ibcs2/syscalls.master#6 integrate
.. //depot/projects/uart/i386/ibcs2/syscalls.xenix#5 integrate
.. //depot/projects/uart/i386/linux/linux_proto.h#10 integrate
.. //depot/projects/uart/i386/linux/linux_syscall.h#10 integrate
.. //depot/projects/uart/i386/linux/linux_sysent.c#10 integrate
.. //depot/projects/uart/i386/linux/syscalls.master#10 integrate
.. //depot/projects/uart/ia64/conf/GENERIC#13 integrate
.. //depot/projects/uart/ia64/disasm/disasm.h#3 integrate
.. //depot/projects/uart/ia64/disasm/disasm_decode.c#3 integrate
.. //depot/projects/uart/ia64/disasm/disasm_extract.c#3 integrate
.. //depot/projects/uart/ia64/disasm/disasm_format.c#3 integrate
.. //depot/projects/uart/ia64/disasm/disasm_int.h#3 integrate
.. //depot/projects/uart/ia64/ia64/emulate.c#1 branch
.. //depot/projects/uart/ia64/ia64/machdep.c#26 integrate
.. //depot/projects/uart/ia64/ia64/pmap.c#24 integrate
.. //depot/projects/uart/ia64/ia64/trap.c#16 integrate
.. //depot/projects/uart/ia64/include/ieeefp.h#3 integrate
.. //depot/projects/uart/ia64/include/md_var.h#7 integrate
.. //depot/projects/uart/kern/init_sysent.c#17 integrate
.. //depot/projects/uart/kern/kern_acl.c#5 integrate
.. //depot/projects/uart/kern/kern_descrip.c#23 integrate
.. //depot/projects/uart/kern/kern_fork.c#16 integrate
.. //depot/projects/uart/kern/kern_ktrace.c#12 integrate
.. //depot/projects/uart/kern/kern_linker.c#10 integrate
.. //depot/projects/uart/kern/kern_module.c#7 integrate
.. //depot/projects/uart/kern/kern_prot.c#12 integrate
.. //depot/projects/uart/kern/kern_thread.c#22 integrate
.. //depot/projects/uart/kern/sched_4bsd.c#14 integrate
.. //depot/projects/uart/kern/sched_core.c#2 integrate
.. //depot/projects/uart/kern/subr_acl_posix1e.c#1 branch
.. //depot/projects/uart/kern/subr_firmware.c#4 integrate
.. //depot/projects/uart/kern/syscalls.c#17 integrate
.. //depot/projects/uart/kern/syscalls.master#18 integrate
.. //depot/projects/uart/kern/sysv_sem.c#11 integrate
.. //depot/projects/uart/kern/uipc_socket2.c#15 integrate
.. //depot/projects/uart/kern/uipc_usrreq.c#15 integrate
.. //depot/projects/uart/kern/vfs_init.c#7 integrate
.. //depot/projects/uart/kern/vfs_mount.c#27 integrate
.. //depot/projects/uart/kern/vfs_subr.c#33 integrate
.. //depot/projects/uart/kern/vfs_syscalls.c#26 integrate
.. //depot/projects/uart/kern/vfs_vnops.c#20 integrate
.. //depot/projects/uart/modules/Makefile#39 integrate
.. //depot/projects/uart/modules/bktr/bktr_mem/Makefile#2 integrate
.. //depot/projects/uart/modules/netgraph/Makefile#9 integrate
.. //depot/projects/uart/modules/netgraph/tag/Makefile#1 branch
.. //depot/projects/uart/modules/nfe/Makefile#1 branch
.. //depot/projects/uart/modules/streams/Makefile#3 integrate
.. //depot/projects/uart/modules/svr4/Makefile#4 integrate
.. //depot/projects/uart/net/bpf.c#16 integrate
.. //depot/projects/uart/net/if.c#21 integrate
.. //depot/projects/uart/net/if_atmsubr.c#7 integrate
.. //depot/projects/uart/net/if_enc.c#1 branch
.. //depot/projects/uart/net/if_gif.c#9 integrate
.. //depot/projects/uart/net/if_stf.c#10 integrate
.. //depot/projects/uart/net/if_tun.c#9 integrate
.. //depot/projects/uart/net/if_types.h#7 integrate
.. //depot/projects/uart/net/if_vlan.c#16 integrate
.. //depot/projects/uart/net/rtsock.c#12 integrate
.. //depot/projects/uart/net80211/ieee80211_freebsd.c#7 integrate
.. //depot/projects/uart/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c#8 integrate
.. //depot/projects/uart/netgraph/bluetooth/drivers/bt3c/ng_bt3c_var.h#3 integrate
.. //depot/projects/uart/netgraph/ng_tag.c#1 branch
.. //depot/projects/uart/netgraph/ng_tag.h#1 branch
.. //depot/projects/uart/netinet/if_ether.c#14 integrate
.. //depot/projects/uart/netinet/in_pcb.c#19 integrate
.. //depot/projects/uart/netinet/in_rmx.c#7 integrate
.. //depot/projects/uart/netinet/ip_divert.c#13 integrate
.. //depot/projects/uart/netinet/ip_fw2.c#26 integrate
.. //depot/projects/uart/netinet/ip_ipsec.c#3 integrate
.. //depot/projects/uart/netinet/ip_output.c#17 integrate
.. //depot/projects/uart/netinet/libalias/libalias.3#3 integrate
.. //depot/projects/uart/netinet/tcp_input.c#25 integrate
.. //depot/projects/uart/netinet/tcp_syncache.c#17 integrate
.. //depot/projects/uart/netinet/tcp_usrreq.c#15 integrate
.. //depot/projects/uart/netinet/tcp_var.h#13 integrate
.. //depot/projects/uart/netinet6/in6.c#12 integrate
.. //depot/projects/uart/netinet6/in6_cksum.c#7 integrate
.. //depot/projects/uart/netinet6/in6_pcb.c#14 integrate
.. //depot/projects/uart/netinet6/in6_rmx.c#7 integrate
.. //depot/projects/uart/netinet6/in6_var.h#8 integrate
.. //depot/projects/uart/netinet6/ipsec.c#10 integrate
.. //depot/projects/uart/netinet6/raw_ip6.c#12 integrate
.. //depot/projects/uart/netipsec/ipsec.h#8 integrate
.. //depot/projects/uart/netipsec/ipsec_input.c#8 integrate
.. //depot/projects/uart/netipsec/ipsec_osdep.h#3 integrate
.. //depot/projects/uart/netipsec/ipsec_output.c#7 integrate
.. //depot/projects/uart/netipsec/xform_ipip.c#6 integrate
.. //depot/projects/uart/nfsclient/bootp_subr.c#9 integrate
.. //depot/projects/uart/nfsclient/nfs_diskless.c#8 integrate
.. //depot/projects/uart/nfsserver/nfs_srvcache.c#4 integrate
.. //depot/projects/uart/nfsserver/nfsrvcache.h#5 integrate
.. //depot/projects/uart/pc98/conf/GENERIC#16 integrate
.. //depot/projects/uart/pci/agp_i810.c#10 integrate
.. //depot/projects/uart/pci/if_rlreg.h#17 integrate
.. //depot/projects/uart/powerpc/conf/GENERIC#11 integrate
.. //depot/projects/uart/powerpc/powerpc/mmu_oea.c#4 integrate
.. //depot/projects/uart/security/audit/audit.h#3 integrate
.. //depot/projects/uart/security/audit/audit_arg.c#4 integrate
.. //depot/projects/uart/security/audit/audit_bsm.c#5 integrate
.. //depot/projects/uart/sparc64/conf/GENERIC#22 integrate
.. //depot/projects/uart/sys/gpt.h#5 integrate
.. //depot/projects/uart/sys/rwlock.h#4 integrate
.. //depot/projects/uart/sys/syscall.h#16 integrate
.. //depot/projects/uart/sys/syscall.mk#16 integrate
.. //depot/projects/uart/sys/syscallsubr.h#12 integrate
.. //depot/projects/uart/sys/sysproto.h#17 integrate
.. //depot/projects/uart/vm/vm_page.c#22 integrate
.. //depot/projects/uart/vm/vm_pageq.c#9 integrate
Differences ...
==== //depot/projects/uart/Makefile#7 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/Makefile,v 1.36 2006/05/29 19:29:41 maxim Exp $
+# $FreeBSD: src/sys/Makefile,v 1.37 2006/07/04 14:14:16 maxim Exp $
.include <bsd.own.mk>
@@ -10,7 +10,7 @@
.endif
# Directories to include in cscope name file and TAGS.
-CSCOPEDIRS= coda compat conf contrib crypto ddb dev fs gnu i4b isa \
+CSCOPEDIRS= coda compat conf contrib crypto ddb dev fs geom gnu i4b isa \
isofs kern libkern modules net net80211 netatalk netatm \
netgraph netinet netinet6 netipx netkey netnatm netncp \
netsmb nfs nfsclient nfs4client rpc pccard pci posix4 sys \
==== //depot/projects/uart/amd64/amd64/pmap.c#40 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.558 2006/06/20 20:52:10 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.565 2006/07/06 06:17:08 alc Exp $");
/*
* Manages physical address maps.
@@ -207,7 +207,7 @@
static void free_pv_entry(pmap_t pmap, pv_entry_t pv);
static pv_entry_t get_pv_entry(pmap_t locked_pmap, int try);
-static void pmap_clear_ptes(vm_page_t m, long bit);
+static void pmap_clear_write(vm_page_t m);
static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va,
vm_page_t m, vm_prot_t prot, vm_page_t mpte);
@@ -490,8 +490,7 @@
* (physical) address starting relative to 0]
*/
void
-pmap_bootstrap(firstaddr)
- vm_paddr_t *firstaddr;
+pmap_bootstrap(vm_paddr_t *firstaddr)
{
vm_offset_t va;
pt_entry_t *pte, *unused;
@@ -1132,8 +1131,7 @@
}
void
-pmap_pinit0(pmap)
- struct pmap *pmap;
+pmap_pinit0(pmap_t pmap)
{
PMAP_LOCK_INIT(pmap);
@@ -1148,8 +1146,7 @@
* such as one in a vmspace structure.
*/
void
-pmap_pinit(pmap)
- register struct pmap *pmap;
+pmap_pinit(pmap_t pmap)
{
vm_page_t pml4pg;
static vm_pindex_t color;
@@ -1611,9 +1608,9 @@
vm_page_flag_clear(m, PG_WRITEABLE);
m->md.pv_list_count--;
pmap_unuse_pt(pmap, va, ptepde);
+ free_pv_entry(pmap, pv);
if (pmap != locked_pmap)
PMAP_UNLOCK(pmap);
- free_pv_entry(locked_pmap, pv);
}
}
}
@@ -1979,7 +1976,7 @@
void
pmap_remove_all(vm_page_t m)
{
- register pv_entry_t pv;
+ pv_entry_t pv;
pmap_t pmap;
pt_entry_t *pte, tpte;
pd_entry_t ptepde;
@@ -2145,7 +2142,7 @@
{
vm_paddr_t pa;
pd_entry_t *pde;
- register pt_entry_t *pte;
+ pt_entry_t *pte;
vm_paddr_t opa;
pt_entry_t origpte, newpte;
vm_page_t mpte, om;
@@ -2582,12 +2579,9 @@
* The mapping must already exist in the pmap.
*/
void
-pmap_change_wiring(pmap, va, wired)
- register pmap_t pmap;
- vm_offset_t va;
- boolean_t wired;
+pmap_change_wiring(pmap_t pmap, vm_offset_t va, boolean_t wired)
{
- register pt_entry_t *pte;
+ pt_entry_t *pte;
/*
* Wiring is not a hardware characteristic so there is no need to
@@ -2674,7 +2668,7 @@
PHYS_TO_DMAP(VM_PAGE_TO_PHYS(dstmpde));
pde = &pde[pmap_pde_index(addr)];
if (*pde == 0) {
- *pde = srcptepaddr;
+ *pde = srcptepaddr & ~PG_W;
dst_pmap->pm_stats.resident_count +=
NBPDR / PAGE_SIZE;
} else
@@ -2697,11 +2691,6 @@
* we only virtual copy managed pages
*/
if ((ptetemp & PG_MANAGED) != 0) {
- /*
- * We have to check after allocpte for the
- * pte still being around... allocpte can
- * block.
- */
dstmpte = pmap_allocpte(dst_pmap, addr,
M_NOWAIT);
if (dstmpte == NULL)
@@ -2713,14 +2702,16 @@
pmap_try_insert_pv_entry(dst_pmap, addr,
PHYS_TO_VM_PAGE(ptetemp & PG_FRAME))) {
/*
- * Clear the modified and
+ * Clear the wired, modified, and
* accessed (referenced) bits
* during the copy.
*/
- *dst_pte = ptetemp & ~(PG_M | PG_A);
+ *dst_pte = ptetemp & ~(PG_W | PG_M |
+ PG_A);
dst_pmap->pm_stats.resident_count++;
} else
- pmap_unwire_pte_hold(dst_pmap, addr, dstmpte);
+ pmap_unwire_pte_hold(dst_pmap, addr,
+ dstmpte);
if (dstmpte->wire_count >= srcmpte->wire_count)
break;
}
@@ -2799,9 +2790,7 @@
* subset of pmaps for proper page aging.
*/
boolean_t
-pmap_page_exists_quick(pmap, m)
- pmap_t pmap;
- vm_page_t m;
+pmap_page_exists_quick(pmap_t pmap, vm_page_t m)
{
pv_entry_t pv;
int loops = 0;
@@ -2980,47 +2969,36 @@
}
/*
- * Clear the given bit in each of the given page's ptes.
+ * Clear the write and modified bits in each of the given page's mappings.
*/
static __inline void
-pmap_clear_ptes(vm_page_t m, long bit)
+pmap_clear_write(vm_page_t m)
{
- register pv_entry_t pv;
+ pv_entry_t pv;
pmap_t pmap;
- pt_entry_t pbits, *pte;
+ pt_entry_t oldpte, *pte;
- if ((m->flags & PG_FICTITIOUS) ||
- (bit == PG_RW && (m->flags & PG_WRITEABLE) == 0))
+ if ((m->flags & PG_FICTITIOUS) != 0 ||
+ (m->flags & PG_WRITEABLE) == 0)
return;
-
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
- /*
- * Loop over all current mappings setting/clearing as appropos If
- * setting RO do we need to clear the VAC?
- */
TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
pmap = PV_PMAP(pv);
PMAP_LOCK(pmap);
pte = pmap_pte(pmap, pv->pv_va);
retry:
- pbits = *pte;
- if (pbits & bit) {
- if (bit == PG_RW) {
- if (!atomic_cmpset_long(pte, pbits,
- pbits & ~(PG_RW | PG_M)))
- goto retry;
- if (pbits & PG_M) {
- vm_page_dirty(m);
- }
- } else {
- atomic_clear_long(pte, bit);
- }
+ oldpte = *pte;
+ if (oldpte & PG_RW) {
+ if (!atomic_cmpset_long(pte, oldpte, oldpte &
+ ~(PG_RW | PG_M)))
+ goto retry;
+ if ((oldpte & PG_M) != 0)
+ vm_page_dirty(m);
pmap_invalidate_page(pmap, pv->pv_va);
}
PMAP_UNLOCK(pmap);
}
- if (bit == PG_RW)
- vm_page_flag_clear(m, PG_WRITEABLE);
+ vm_page_flag_clear(m, PG_WRITEABLE);
}
/*
@@ -3033,7 +3011,7 @@
{
if ((prot & VM_PROT_WRITE) == 0) {
if (prot & (VM_PROT_READ | VM_PROT_EXECUTE)) {
- pmap_clear_ptes(m, PG_RW);
+ pmap_clear_write(m);
} else {
pmap_remove_all(m);
}
@@ -3055,45 +3033,33 @@
int
pmap_ts_referenced(vm_page_t m)
{
- register pv_entry_t pv, pvf, pvn;
+ pv_entry_t pv, pvf, pvn;
pmap_t pmap;
pt_entry_t *pte;
- pt_entry_t v;
int rtval = 0;
if (m->flags & PG_FICTITIOUS)
return (rtval);
-
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
if ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) {
-
pvf = pv;
-
do {
pvn = TAILQ_NEXT(pv, pv_list);
-
TAILQ_REMOVE(&m->md.pv_list, pv, pv_list);
-
TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_list);
-
pmap = PV_PMAP(pv);
PMAP_LOCK(pmap);
pte = pmap_pte(pmap, pv->pv_va);
-
- if (pte && ((v = pte_load(pte)) & PG_A) != 0) {
+ if ((*pte & PG_A) != 0) {
atomic_clear_long(pte, PG_A);
pmap_invalidate_page(pmap, pv->pv_va);
-
rtval++;
- if (rtval > 4) {
- PMAP_UNLOCK(pmap);
- break;
- }
+ if (rtval > 4)
+ pvn = NULL;
}
PMAP_UNLOCK(pmap);
} while ((pv = pvn) != NULL && pv != pvf);
}
-
return (rtval);
}
@@ -3103,7 +3069,23 @@
void
pmap_clear_modify(vm_page_t m)
{
- pmap_clear_ptes(m, PG_M);
+ pv_entry_t pv;
+ pmap_t pmap;
+ pt_entry_t *pte;
+
+ if ((m->flags & PG_FICTITIOUS) != 0)
+ return;
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+ TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+ pmap = PV_PMAP(pv);
+ PMAP_LOCK(pmap);
+ pte = pmap_pte(pmap, pv->pv_va);
+ if (*pte & PG_M) {
+ atomic_clear_long(pte, PG_M);
+ pmap_invalidate_page(pmap, pv->pv_va);
+ }
+ PMAP_UNLOCK(pmap);
+ }
}
/*
@@ -3114,7 +3096,23 @@
void
pmap_clear_reference(vm_page_t m)
{
- pmap_clear_ptes(m, PG_A);
+ pv_entry_t pv;
+ pmap_t pmap;
+ pt_entry_t *pte;
+
+ if ((m->flags & PG_FICTITIOUS) != 0)
+ return;
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+ TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+ pmap = PV_PMAP(pv);
+ PMAP_LOCK(pmap);
+ pte = pmap_pte(pmap, pv->pv_va);
+ if (*pte & PG_A) {
+ atomic_clear_long(pte, PG_A);
+ pmap_invalidate_page(pmap, pv->pv_va);
+ }
+ PMAP_UNLOCK(pmap);
+ }
}
/*
@@ -3128,9 +3126,7 @@
* NOT real memory.
*/
void *
-pmap_mapdev(pa, size)
- vm_paddr_t pa;
- vm_size_t size;
+pmap_mapdev(vm_paddr_t pa, vm_size_t size)
{
vm_offset_t va, tmpva, offset;
@@ -3154,9 +3150,7 @@
}
void
-pmap_unmapdev(va, size)
- vm_offset_t va;
- vm_size_t size;
+pmap_unmapdev(vm_offset_t va, vm_size_t size)
{
vm_offset_t base, offset, tmpva;
@@ -3176,9 +3170,7 @@
* perform the pmap work for mincore
*/
int
-pmap_mincore(pmap, addr)
- pmap_t pmap;
- vm_offset_t addr;
+pmap_mincore(pmap_t pmap, vm_offset_t addr)
{
pt_entry_t *ptep, pte;
vm_page_t m;
==== //depot/projects/uart/amd64/conf/GENERIC#22 (text+ko) ====
@@ -16,7 +16,7 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.460 2006/06/15 19:58:52 netchild Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.463 2006/07/05 02:32:55 davidxu Exp $
cpu HAMMER
ident GENERIC
@@ -28,7 +28,6 @@
#options SCHED_ULE # ULE scheduler
options SCHED_4BSD # 4BSD scheduler
-#options SCHED_CORE # CORE scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
==== //depot/projects/uart/amd64/conf/NOTES#11 (text+ko) ====
@@ -4,7 +4,7 @@
# This file contains machine dependent kernel configuration notes. For
# machine independent notes, look in /sys/conf/NOTES.
#
-# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.56 2006/06/12 20:38:17 jhb Exp $
+# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.57 2006/06/26 23:41:06 obrien Exp $
#
#
@@ -223,6 +223,7 @@
# (requires miibus)
# ipw: Intel PRO/Wireless 2100 IEEE 802.11 adapter
# iwi: Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters
+# nfe: nVidia nForce MCP on-board Ethernet Networking (BSD open source)
# nve: nVidia nForce MCP on-board Ethernet Networking
# ral: Ralink Technology IEEE 802.11 wireless adapter
# ural: Ralink Technology RT2500USB IEEE 802.11 wireless adapter
@@ -233,6 +234,7 @@
options ED_SIC
device iwi
device ipw
+device nfe # nVidia nForce MCP on-board Ethernet Networking
device nve # nVidia nForce MCP on-board Ethernet Networking
device ral
device ural
==== //depot/projects/uart/amd64/linux32/linux32_proto.h#8 (text+ko) ====
@@ -2,8 +2,8 @@
* System call prototypes.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.13 2006/06/20 20:41:28 netchild Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.11 2006/06/20 20:38:44 netchild Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.17 2006/07/06 21:43:14 jhb Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp
*/
#ifndef _LINUX_SYSPROTO_H_
==== //depot/projects/uart/amd64/linux32/linux32_syscall.h#8 (text+ko) ====
@@ -2,8 +2,8 @@
* System call numbers.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.13 2006/06/20 20:41:28 netchild Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.11 2006/06/20 20:38:44 netchild Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.17 2006/07/06 21:43:14 jhb Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp
*/
#define LINUX_SYS_exit 1
==== //depot/projects/uart/amd64/linux32/linux32_sysent.c#8 (text+ko) ====
@@ -2,8 +2,8 @@
* System call switch table.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.13 2006/06/20 20:41:28 netchild Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.11 2006/06/20 20:38:44 netchild Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.17 2006/07/06 21:43:14 jhb Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp
*/
#include <bsm/audit_kevents.h>
@@ -41,8 +41,8 @@
{ SYF_MPSAFE | AS(linux_stat_args), (sy_call_t *)linux_stat, AUE_STAT }, /* 18 = linux_stat */
{ SYF_MPSAFE | AS(linux_lseek_args), (sy_call_t *)linux_lseek, AUE_LSEEK }, /* 19 = linux_lseek */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_getpid, AUE_GETPID }, /* 20 = linux_getpid */
- { AS(linux_mount_args), (sy_call_t *)linux_mount, AUE_MOUNT }, /* 21 = linux_mount */
- { AS(linux_oldumount_args), (sy_call_t *)linux_oldumount, AUE_UMOUNT }, /* 22 = linux_oldumount */
+ { SYF_MPSAFE | AS(linux_mount_args), (sy_call_t *)linux_mount, AUE_MOUNT }, /* 21 = linux_mount */
+ { SYF_MPSAFE | AS(linux_oldumount_args), (sy_call_t *)linux_oldumount, AUE_UMOUNT }, /* 22 = linux_oldumount */
{ SYF_MPSAFE | AS(linux_setuid16_args), (sy_call_t *)linux_setuid16, AUE_SETUID }, /* 23 = linux_setuid16 */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_getuid16, AUE_GETUID }, /* 24 = linux_getuid16 */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_stime, AUE_SETTIMEOFDAY }, /* 25 = linux_stime */
@@ -65,16 +65,16 @@
{ SYF_MPSAFE | AS(linux_pipe_args), (sy_call_t *)linux_pipe, AUE_PIPE }, /* 42 = linux_pipe */
{ SYF_MPSAFE | AS(linux_times_args), (sy_call_t *)linux_times, AUE_NULL }, /* 43 = linux_times */
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 44 = prof */
- { AS(linux_brk_args), (sy_call_t *)linux_brk, AUE_NULL }, /* 45 = linux_brk */
+ { SYF_MPSAFE | AS(linux_brk_args), (sy_call_t *)linux_brk, AUE_NULL }, /* 45 = linux_brk */
{ SYF_MPSAFE | AS(linux_setgid16_args), (sy_call_t *)linux_setgid16, AUE_SETGID }, /* 46 = linux_setgid16 */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_getgid16, AUE_GETGID }, /* 47 = linux_getgid16 */
{ SYF_MPSAFE | AS(linux_signal_args), (sy_call_t *)linux_signal, AUE_NULL }, /* 48 = linux_signal */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_geteuid16, AUE_GETEUID }, /* 49 = linux_geteuid16 */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_getegid16, AUE_GETEGID }, /* 50 = linux_getegid16 */
{ SYF_MPSAFE | AS(acct_args), (sy_call_t *)acct, AUE_ACCT }, /* 51 = acct */
- { AS(linux_umount_args), (sy_call_t *)linux_umount, AUE_UMOUNT }, /* 52 = linux_umount */
+ { SYF_MPSAFE | AS(linux_umount_args), (sy_call_t *)linux_umount, AUE_UMOUNT }, /* 52 = linux_umount */
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 53 = lock */
- { AS(linux_ioctl_args), (sy_call_t *)linux_ioctl, AUE_IOCTL }, /* 54 = linux_ioctl */
+ { SYF_MPSAFE | AS(linux_ioctl_args), (sy_call_t *)linux_ioctl, AUE_IOCTL }, /* 54 = linux_ioctl */
{ SYF_MPSAFE | AS(linux_fcntl_args), (sy_call_t *)linux_fcntl, AUE_FCNTL }, /* 55 = linux_fcntl */
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 56 = mpx */
{ SYF_MPSAFE | AS(setpgid_args), (sy_call_t *)setpgid, AUE_SETPGRP }, /* 57 = setpgid */
@@ -137,7 +137,7 @@
{ SYF_MPSAFE | AS(linux_wait4_args), (sy_call_t *)linux_wait4, AUE_WAIT4 }, /* 114 = linux_wait4 */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_swapoff, AUE_SWAPOFF }, /* 115 = linux_swapoff */
{ SYF_MPSAFE | AS(linux_sysinfo_args), (sy_call_t *)linux_sysinfo, AUE_NULL }, /* 116 = linux_sysinfo */
- { AS(linux_ipc_args), (sy_call_t *)linux_ipc, AUE_NULL }, /* 117 = linux_ipc */
+ { SYF_MPSAFE | AS(linux_ipc_args), (sy_call_t *)linux_ipc, AUE_NULL }, /* 117 = linux_ipc */
{ SYF_MPSAFE | AS(fsync_args), (sy_call_t *)fsync, AUE_FSYNC }, /* 118 = fsync */
{ SYF_MPSAFE | AS(linux_sigreturn_args), (sy_call_t *)linux_sigreturn, AUE_SIGRETURN }, /* 119 = linux_sigreturn */
{ SYF_MPSAFE | AS(linux_clone_args), (sy_call_t *)linux_clone, AUE_RFORK }, /* 120 = linux_clone */
==== //depot/projects/uart/amd64/linux32/syscalls.master#8 (text+ko) ====
@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.11 2006/06/20 20:38:44 netchild Exp $
+ $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
; System call name/number master file (or rather, slave, from LINUX).
@@ -75,10 +75,10 @@
19 AUE_LSEEK MSTD { int linux_lseek(l_uint fdes, l_off_t off, \
l_int whence); }
20 AUE_GETPID MSTD { int linux_getpid(void); }
-21 AUE_MOUNT STD { int linux_mount(char *specialfile, \
+21 AUE_MOUNT MSTD { int linux_mount(char *specialfile, \
char *dir, char *filesystemtype, \
l_ulong rwflag, void *data); }
-22 AUE_UMOUNT STD { int linux_oldumount(char *path); }
+22 AUE_UMOUNT MSTD { int linux_oldumount(char *path); }
23 AUE_SETUID MSTD { int linux_setuid16(l_uid16_t uid); }
24 AUE_GETUID MSTD { int linux_getuid16(void); }
25 AUE_SETTIMEOFDAY MSTD { int linux_stime(void); }
@@ -103,7 +103,7 @@
42 AUE_PIPE MSTD { int linux_pipe(l_ulong *pipefds); }
43 AUE_NULL MSTD { int linux_times(struct l_times_argv *buf); }
44 AUE_NULL UNIMPL prof
-45 AUE_NULL STD { int linux_brk(l_ulong dsend); }
+45 AUE_NULL MSTD { int linux_brk(l_ulong dsend); }
46 AUE_SETGID MSTD { int linux_setgid16(l_gid16_t gid); }
47 AUE_GETGID MSTD { int linux_getgid16(void); }
48 AUE_NULL MSTD { int linux_signal(l_int sig, \
@@ -111,9 +111,9 @@
49 AUE_GETEUID MSTD { int linux_geteuid16(void); }
50 AUE_GETEGID MSTD { int linux_getegid16(void); }
51 AUE_ACCT MNOPROTO { int acct(char *path); }
-52 AUE_UMOUNT STD { int linux_umount(char *path, l_int flags); }
+52 AUE_UMOUNT MSTD { int linux_umount(char *path, l_int flags); }
53 AUE_NULL UNIMPL lock
-54 AUE_IOCTL STD { int linux_ioctl(l_uint fd, l_uint cmd, \
+54 AUE_IOCTL MSTD { int linux_ioctl(l_uint fd, l_uint cmd, \
uintptr_t arg); }
55 AUE_FCNTL MSTD { int linux_fcntl(l_uint fd, l_uint cmd, \
uintptr_t arg); }
@@ -212,7 +212,7 @@
struct l_rusage *rusage); }
115 AUE_SWAPOFF MSTD { int linux_swapoff(void); }
116 AUE_NULL MSTD { int linux_sysinfo(struct l_sysinfo *info); }
-117 AUE_NULL STD { int linux_ipc(l_uint what, l_int arg1, \
+117 AUE_NULL MSTD { int linux_ipc(l_uint what, l_int arg1, \
l_int arg2, l_int arg3, void *ptr, \
l_long arg5); }
118 AUE_FSYNC MNOPROTO { int fsync(int fd); }
==== //depot/projects/uart/arm/arm/elf_trampoline.c#6 (text+ko) ====
@@ -23,7 +23,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/elf_trampoline.c,v 1.8 2006/06/18 22:46:30 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/elf_trampoline.c,v 1.11 2006/06/23 22:45:35 cognet Exp $");
#include <machine/asm.h>
#include <sys/types.h>
#include <sys/elf32.h>
@@ -131,6 +131,8 @@
}
}
+static void arm9_setup(void);
+
void
_start(void)
{
@@ -174,7 +176,6 @@
__start();
}
-#ifdef KZIP
static void
get_cachetype_cp15()
{
@@ -255,6 +256,7 @@
}
+#ifdef KZIP
static unsigned char *orig_input, *i_input, *i_output;
@@ -348,8 +350,8 @@
int d)
{
Elf32_Ehdr *eh;
- Elf32_Phdr phdr[512] /* XXX */, *php;
- Elf32_Shdr shdr[512] /* XXX */;
+ Elf32_Phdr phdr[64] /* XXX */, *php;
+ Elf32_Shdr shdr[64] /* XXX */;
int i,j;
void *entry_point;
int symtabindex = -1;
==== //depot/projects/uart/arm/at91/at91_pio.c#2 (text) ====
@@ -23,7 +23,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/at91_pio.c,v 1.1 2006/03/24 07:39:29 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/at91_pio.c,v 1.2 2006/07/02 03:50:44 imp Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -38,7 +38,9 @@
#include <sys/rman.h>
#include <machine/bus.h>
+#include <arm/at91/at91rm92reg.h>
#include <arm/at91/at91_pioreg.h>
+#include <arm/at91/at91_piovar.h>
struct at91_pio_softc
{
@@ -103,7 +105,26 @@
static int
at91_pio_probe(device_t dev)
{
- device_set_desc(dev, "PIO");
+ const char *name;
+
+ switch (device_get_unit(dev)) {
+ case 0:
+ name = "PIOA";
+ break;
+ case 1:
+ name = "PIOB";
+ break;
+ case 2:
+ name = "PIOC";
+ break;
+ case 3:
+ name = "PIOD";
+ break;
+ default:
+ name = "PIO";
+ break;
+ }
+ device_set_desc(dev, name);
return (0);
}
@@ -118,6 +139,9 @@
if (err)
goto out;
+ device_printf(dev, "ABSR: %#x OSR: %#x PSR:%#x ODSR: %#x\n",
+ RD4(sc, PIO_ABSR), RD4(sc, PIO_OSR), RD4(sc, PIO_PSR),
+ RD4(sc, PIO_ODSR));
AT91_PIO_LOCK_INIT(sc);
/*
@@ -250,6 +274,69 @@
return (ENXIO);
}
+/*
+ * The following functions are called early in the boot process, so
+ * don't use bus_space, as that isn't yet available when we need to use
+ * them.
+ */
+void
+at91_pio_use_periph_a(uint32_t pio, uint32_t periph_a_mask)
+{
+ uint32_t *PIO = (uint32_t *)(AT91RM92_BASE + pio);
+
+ PIO[PIO_ASR / 4] = periph_a_mask;
+ PIO[PIO_PDR / 4] = periph_a_mask;
+}
+
+void
+at91_pio_use_periph_b(uint32_t pio, uint32_t periph_b_mask)
+{
+ uint32_t *PIO = (uint32_t *)(AT91RM92_BASE + pio);
+
+ PIO[PIO_BSR / 4] = periph_b_mask;
+ PIO[PIO_PDR / 4] = periph_b_mask;
+}
+
+void
+at91_pio_use_gpio(uint32_t pio, uint32_t gpio_mask)
+{
+ uint32_t *PIO = (uint32_t *)(AT91RM92_BASE + pio);
+
+ PIO[PIO_PER / 4] = gpio_mask;
+}
+
+void
+at91_pio_gpio_input(uint32_t pio, uint32_t input_enable_mask)
+{
+ uint32_t *PIO = (uint32_t *)(AT91RM92_BASE + pio);
+
+ PIO[PIO_ODR / 4] = input_enable_mask;
+}
+
+void
+at91_pio_gpio_output(uint32_t pio, uint32_t output_enable_mask)
+{
+ uint32_t *PIO = (uint32_t *)(AT91RM92_BASE + pio);
+
+ PIO[PIO_OER / 4] = output_enable_mask;
+}
+
+void
+at91_pio_gpio_set(uint32_t pio, uint32_t data_mask)
+{
+ uint32_t *PIO = (uint32_t *)(AT91RM92_BASE + pio);
+
+ PIO[PIO_SODR / 4] = data_mask;
+}
+
+void
+at91_pio_gpio_clear(uint32_t pio, uint32_t data_mask)
+{
+ uint32_t *PIO = (uint32_t *)(AT91RM92_BASE + pio);
+
+ PIO[PIO_CODR / 4] = data_mask;
+}
+
static device_method_t at91_pio_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, at91_pio_probe),
==== //depot/projects/uart/arm/at91/files.at91#3 (text) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/arm/at91/files.at91,v 1.3 2006/03/24 07:36:23 imp Exp $
+# $FreeBSD: src/sys/arm/at91/files.at91,v 1.5 2006/06/23 23:07:11 cognet Exp $
arm/arm/cpufunc_asm_arm9.S standard
arm/arm/irq_dispatch.S standard
arm/at91/at91.c standard
==== //depot/projects/uart/arm/at91/uart_dev_at91usart.c#6 (text) ====
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.6 2006/05/13 23:41:16 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.7 2006/07/02 03:45:33 imp Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -45,19 +45,29 @@
#include "uart_if.h"
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list