PERFORCE change 158380 for review
John Baldwin
jhb at FreeBSD.org
Fri Feb 27 07:50:10 PST 2009
http://perforce.freebsd.org/chv.cgi?CH=158380
Change 158380 by jhb at jhb_jhbbsd on 2009/02/27 15:49:22
IFC @158377
Affected files ...
.. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#51 integrate
.. //depot/projects/smpng/sys/amd64/amd64/pmap.c#89 integrate
.. //depot/projects/smpng/sys/amd64/conf/NOTES#48 integrate
.. //depot/projects/smpng/sys/amd64/conf/USB2#3 delete
.. //depot/projects/smpng/sys/arm/mv/files.mv#5 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/files.ixp425#6 integrate
.. //depot/projects/smpng/sys/boot/i386/btx/btx/btx.S#9 integrate
.. //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#74 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_ioctl.c#55 integrate
.. //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#42 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_hal.c#21 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#48 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#47 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_usbd.c#6 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_sockio.c#14 integrate
.. //depot/projects/smpng/sys/conf/NOTES#162 integrate
.. //depot/projects/smpng/sys/conf/files#230 integrate
.. //depot/projects/smpng/sys/conf/kern.pre.mk#63 integrate
.. //depot/projects/smpng/sys/contrib/altq/altq/altq_subr.c#11 integrate
.. //depot/projects/smpng/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#10 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/pf_if.c#14 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/pf_ioctl.c#30 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-all.c#95 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-all.h#61 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-queue.c#46 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-raid.c#55 integrate
.. //depot/projects/smpng/sys/dev/ata/chipsets/ata-jmicron.c#3 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ah.c#6 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ah.h#4 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ah_internal.h#6 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5210/ar5210.h#3 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c#3 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c#3 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5211/ar5211.h#3 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c#3 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c#4 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5212/ar2425.c#3 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5212/ar5212.h#5 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c#3 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5212/ar5212_gpio.c#2 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c#6 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5212/ar5413.c#3 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5312/ar5312.h#4 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5312/ar5312_gpio.c#2 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5312/ar5315_gpio.c#2 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5416/ar2133.c#3 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5416/ar5416.h#3 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5416/ar5416.ini#2 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c#2 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5416/ar5416_gpio.c#2 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5416/ar5416_interrupts.c#2 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c#5 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5416/ar5416reg.h#2 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5416/ar9160.ini#2 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5416/ar9160_attach.c#2 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath.c#69 integrate
.. //depot/projects/smpng/sys/dev/ath/if_athvar.h#42 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#6 integrate
.. //depot/projects/smpng/sys/dev/drm/drmP.h#21 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_bufs.c#6 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_drv.c#12 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_irq.c#6 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_lock.c#7 integrate
.. //depot/projects/smpng/sys/dev/drm/i915_dma.c#11 integrate
.. //depot/projects/smpng/sys/dev/drm/i915_drv.c#7 integrate
.. //depot/projects/smpng/sys/dev/drm/i915_drv.h#7 integrate
.. //depot/projects/smpng/sys/dev/drm/i915_irq.c#7 integrate
.. //depot/projects/smpng/sys/dev/drm/i915_reg.h#1 branch
.. //depot/projects/smpng/sys/dev/drm/radeon_irq.c#10 integrate
.. //depot/projects/smpng/sys/dev/mca/mca_bus.c#5 integrate
.. //depot/projects/smpng/sys/dev/nsp/nsp.c#12 integrate
.. //depot/projects/smpng/sys/dev/pci/pci.c#104 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/hda/hdac.c#28 integrate
.. //depot/projects/smpng/sys/dev/stg/tmc18c30.c#12 integrate
.. //depot/projects/smpng/sys/dev/syscons/scterm-teken.c#3 integrate
.. //depot/projects/smpng/sys/dev/txp/3c990img.h#3 integrate
.. //depot/projects/smpng/sys/dev/txp/if_txp.c#38 integrate
.. //depot/projects/smpng/sys/dev/txp/if_txpreg.h#6 integrate
.. //depot/projects/smpng/sys/dev/usb/bluetooth/ng_ubt.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/controller/at91dci.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/controller/at91dci.h#2 integrate
.. //depot/projects/smpng/sys/dev/usb/controller/atmegadci.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/controller/ehci.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/controller/musb_otg.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/controller/ohci.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/controller/uhci.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/controller/uss820dci.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/controller/uss820dci.h#2 integrate
.. //depot/projects/smpng/sys/dev/usb/controller/uss820dci_atmelarm.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/input/ums.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/input/usb_rdesc.h#2 integrate
.. //depot/projects/smpng/sys/dev/usb/net/if_aue.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/quirk/usb_quirk.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/serial/u3g.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/serial/ubser.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/serial/ufoma.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/serial/umct.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/serial/umodem.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/sound/uaudio.c#2 delete
.. //depot/projects/smpng/sys/dev/usb/sound/uaudio.h#2 delete
.. //depot/projects/smpng/sys/dev/usb/sound/uaudio_pcm.c#2 delete
.. //depot/projects/smpng/sys/dev/usb/sound/uaudio_reg.h#2 delete
.. //depot/projects/smpng/sys/dev/usb/storage/ata-usb.c#2 delete
.. //depot/projects/smpng/sys/dev/usb/storage/umass.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/template/usb_template.h#2 integrate
.. //depot/projects/smpng/sys/dev/usb/template/usb_template_cdce.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/template/usb_template_msc.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/template/usb_template_mtp.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb.h#16 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_controller.h#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_core.h#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_dev.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_device.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_device.h#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_generic.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_handle_request.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_hid.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_hid.h#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_hub.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_ioctl.h#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_request.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_request.h#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_transfer.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs#129 integrate
.. //depot/projects/smpng/sys/dev/usb/wlan/if_rum.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/wlan/if_rumvar.h#2 integrate
.. //depot/projects/smpng/sys/dev/usb/wlan/if_ural.c#2 integrate
.. //depot/projects/smpng/sys/dev/usb/wlan/if_uralvar.h#2 integrate
.. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_vfsops.c#61 integrate
.. //depot/projects/smpng/sys/fs/udf/udf.h#11 integrate
.. //depot/projects/smpng/sys/fs/udf/udf_vfsops.c#45 integrate
.. //depot/projects/smpng/sys/fs/udf/udf_vnops.c#48 integrate
.. //depot/projects/smpng/sys/i386/conf/NOTES#139 integrate
.. //depot/projects/smpng/sys/i386/conf/USB2#3 delete
.. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#117 integrate
.. //depot/projects/smpng/sys/i386/i386/pmap.c#130 integrate
.. //depot/projects/smpng/sys/i386/i386/vm86.c#23 integrate
.. //depot/projects/smpng/sys/i386/isa/npx.c#64 integrate
.. //depot/projects/smpng/sys/kern/kern_condvar.c#54 integrate
.. //depot/projects/smpng/sys/kern/kern_cons.c#2 integrate
.. //depot/projects/smpng/sys/kern/kern_exec.c#116 integrate
.. //depot/projects/smpng/sys/kern/kern_exit.c#136 integrate
.. //depot/projects/smpng/sys/kern/kern_malloc.c#53 integrate
.. //depot/projects/smpng/sys/kern/kern_poll.c#30 integrate
.. //depot/projects/smpng/sys/kern/kern_priv.c#5 integrate
.. //depot/projects/smpng/sys/kern/kern_rwlock.c#26 integrate
.. //depot/projects/smpng/sys/kern/kern_sig.c#146 integrate
.. //depot/projects/smpng/sys/kern/kern_synch.c#128 integrate
.. //depot/projects/smpng/sys/kern/kern_thr.c#50 integrate
.. //depot/projects/smpng/sys/kern/kern_time.c#55 integrate
.. //depot/projects/smpng/sys/kern/kern_uuid.c#17 integrate
.. //depot/projects/smpng/sys/kern/subr_prf.c#57 integrate
.. //depot/projects/smpng/sys/kern/tty_info.c#4 integrate
.. //depot/projects/smpng/sys/kern/tty_inq.c#4 integrate
.. //depot/projects/smpng/sys/kern/tty_outq.c#4 integrate
.. //depot/projects/smpng/sys/kern/tty_pty.c#56 integrate
.. //depot/projects/smpng/sys/kern/tty_ttydisc.c#5 integrate
.. //depot/projects/smpng/sys/legacy/dev/ata/ata-usb.c#1 branch
.. //depot/projects/smpng/sys/legacy/dev/sound/usb/uaudio.c#1 branch
.. //depot/projects/smpng/sys/legacy/dev/sound/usb/uaudio.h#1 branch
.. //depot/projects/smpng/sys/legacy/dev/sound/usb/uaudio_pcm.c#1 branch
.. //depot/projects/smpng/sys/legacy/dev/sound/usb/uaudioreg.h#1 branch
.. //depot/projects/smpng/sys/legacy/dev/usb/usbdevs#2 delete
.. //depot/projects/smpng/sys/libkern/strtouq.c#5 integrate
.. //depot/projects/smpng/sys/modules/ata/atausb/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/sound/driver/uaudio/Makefile#5 integrate
.. //depot/projects/smpng/sys/net/bridgestp.c#25 integrate
.. //depot/projects/smpng/sys/net/if.c#112 integrate
.. //depot/projects/smpng/sys/net/if_ef.c#28 integrate
.. //depot/projects/smpng/sys/net/if_ethersubr.c#96 integrate
.. //depot/projects/smpng/sys/net/if_loop.c#51 integrate
.. //depot/projects/smpng/sys/net/if_mib.c#14 integrate
.. //depot/projects/smpng/sys/net/if_vlan.c#64 integrate
.. //depot/projects/smpng/sys/net/raw_cb.c#20 integrate
.. //depot/projects/smpng/sys/net/raw_usrreq.c#28 integrate
.. //depot/projects/smpng/sys/net/vnet.h#5 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_ddb.c#12 integrate
.. //depot/projects/smpng/sys/netgraph/atm/ng_atm.c#17 integrate
.. //depot/projects/smpng/sys/netgraph/ng_ether.c#39 integrate
.. //depot/projects/smpng/sys/netgraph/ng_gif.c#19 integrate
.. //depot/projects/smpng/sys/netinet/if_ether.c#65 integrate
.. //depot/projects/smpng/sys/netinet/igmp.c#25 integrate
.. //depot/projects/smpng/sys/netinet/in_mcast.c#8 integrate
.. //depot/projects/smpng/sys/netinet/in_proto.c#31 integrate
.. //depot/projects/smpng/sys/netinet/in_rmx.c#23 integrate
.. //depot/projects/smpng/sys/netinet/ip_fw2.c#104 integrate
.. //depot/projects/smpng/sys/netinet/ip_input.c#94 integrate
.. //depot/projects/smpng/sys/netinet/ip_output.c#103 integrate
.. //depot/projects/smpng/sys/netinet/raw_ip.c#77 integrate
.. //depot/projects/smpng/sys/netinet/sctp_input.c#23 integrate
.. //depot/projects/smpng/sys/netinet/sctp_os_bsd.h#20 integrate
.. //depot/projects/smpng/sys/netinet/tcp_usrreq.c#74 integrate
.. //depot/projects/smpng/sys/netinet6/icmp6.c#50 integrate
.. //depot/projects/smpng/sys/netinet6/in6.c#51 integrate
.. //depot/projects/smpng/sys/netinet6/in6_ifattach.c#30 integrate
.. //depot/projects/smpng/sys/netinet6/in6_proto.c#28 integrate
.. //depot/projects/smpng/sys/netinet6/in6_rmx.c#19 integrate
.. //depot/projects/smpng/sys/netinet6/ip6_input.c#58 integrate
.. //depot/projects/smpng/sys/netinet6/ip6_mroute.c#36 integrate
.. //depot/projects/smpng/sys/netinet6/ip6_output.c#60 integrate
.. //depot/projects/smpng/sys/netinet6/nd6.c#50 integrate
.. //depot/projects/smpng/sys/netinet6/nd6_rtr.c#28 integrate
.. //depot/projects/smpng/sys/netinet6/raw_ip6.c#58 integrate
.. //depot/projects/smpng/sys/netinet6/scope6.c#13 integrate
.. //depot/projects/smpng/sys/netipsec/key.c#28 integrate
.. //depot/projects/smpng/sys/netipsec/key_debug.c#7 integrate
.. //depot/projects/smpng/sys/netipsec/keysock.c#21 integrate
.. //depot/projects/smpng/sys/netipsec/xform_ipip.c#19 integrate
.. //depot/projects/smpng/sys/nfsclient/bootp_subr.c#39 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_diskless.c#21 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#82 integrate
.. //depot/projects/smpng/sys/nfsserver/nfs_syscalls.c#41 integrate
.. //depot/projects/smpng/sys/powerpc/aim/trap_subr.S#6 integrate
.. //depot/projects/smpng/sys/powerpc/booke/machdep.c#7 integrate
.. //depot/projects/smpng/sys/powerpc/booke/swtch.S#2 integrate
.. //depot/projects/smpng/sys/powerpc/booke/trap.c#3 integrate
.. //depot/projects/smpng/sys/powerpc/booke/trap_subr.S#4 integrate
.. //depot/projects/smpng/sys/powerpc/include/frame.h#12 integrate
.. //depot/projects/smpng/sys/powerpc/include/pcb.h#11 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/genassym.c#33 integrate
.. //depot/projects/smpng/sys/security/mac/mac_process.c#19 integrate
.. //depot/projects/smpng/sys/sys/param.h#135 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#110 integrate
.. //depot/projects/smpng/sys/vm/vm_fault.c#73 integrate
.. //depot/projects/smpng/sys/vm/vm_kern.c#43 integrate
.. //depot/projects/smpng/sys/vm/vm_map.c#94 integrate
.. //depot/projects/smpng/sys/vm/vm_map.h#41 integrate
.. //depot/projects/smpng/sys/vm/vm_mmap.c#74 integrate
.. //depot/projects/smpng/sys/vm/vm_pager.c#26 integrate
.. //depot/projects/smpng/sys/vm/vm_unix.c#13 integrate
Differences ...
==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#51 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.297 2009/02/03 09:01:45 jkoshy Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.299 2009/02/25 22:24:56 sobomax Exp $");
#include "opt_cpu.h"
#include "opt_kstack_pages.h"
@@ -151,6 +151,7 @@
int cpu_present:1;
int cpu_bsp:1;
int cpu_disabled:1;
+ int cpu_hyperthread:1;
} static cpu_info[MAX_APIC_ID + 1];
int cpu_apic_ids[MAXCPU];
int apic_cpuids[MAX_APIC_ID + 1];
@@ -353,11 +354,6 @@
cpu_apic_ids[0] = boot_cpu_id;
apic_cpuids[boot_cpu_id] = 0;
- assign_cpu_ids();
-
- /* Start each Application Processor */
- start_all_aps();
-
/* Setup the initial logical CPUs info. */
logical_cpus = logical_cpus_mask = 0;
if (cpu_feature & CPUID_HTT)
@@ -404,6 +400,11 @@
hyperthreading_cpus = logical_cpus;
}
+ assign_cpu_ids();
+
+ /* Start each Application Processor */
+ start_all_aps();
+
set_interrupt_apic_ids();
}
@@ -415,18 +416,26 @@
cpu_mp_announce(void)
{
int i, x;
+ const char *hyperthread;
/* List CPUs */
printf(" cpu0 (BSP): APIC ID: %2d\n", boot_cpu_id);
for (i = 1, x = 0; x <= MAX_APIC_ID; x++) {
if (!cpu_info[x].cpu_present || cpu_info[x].cpu_bsp)
continue;
+ if (cpu_info[x].cpu_hyperthread) {
+ hyperthread = "/HT";
+ } else {
+ hyperthread = "";
+ }
if (cpu_info[x].cpu_disabled)
- printf(" cpu (AP): APIC ID: %2d (disabled)\n", x);
+ printf(" cpu (AP%s): APIC ID: %2d (disabled)\n",
+ hyperthread, x);
else {
KASSERT(i < mp_ncpus,
("mp_ncpus and actual cpus are out of whack"));
- printf(" cpu%d (AP): APIC ID: %2d\n", i++, x);
+ printf(" cpu%d (AP%s): APIC ID: %2d\n", i++,
+ hyperthread, x);
}
}
}
@@ -642,11 +651,28 @@
{
u_int i;
+ TUNABLE_INT_FETCH("machdep.hyperthreading_allowed",
+ &hyperthreading_allowed);
+
/* Check for explicitly disabled CPUs. */
for (i = 0; i <= MAX_APIC_ID; i++) {
if (!cpu_info[i].cpu_present || cpu_info[i].cpu_bsp)
continue;
+ if (hyperthreading_cpus > 1 && i % hyperthreading_cpus != 0) {
+ cpu_info[i].cpu_hyperthread = 1;
+#if defined(SCHED_ULE)
+ /*
+ * Don't use HT CPU if it has been disabled by a
+ * tunable.
+ */
+ if (hyperthreading_allowed == 0) {
+ cpu_info[i].cpu_disabled = 1;
+ continue;
+ }
+#endif
+ }
+
/* Don't use this CPU if it has been disabled by a tunable. */
if (resource_disabled("lapic", i)) {
cpu_info[i].cpu_disabled = 1;
@@ -1198,6 +1224,16 @@
if (error || !req->newptr)
return (error);
+#ifdef SCHED_ULE
+ /*
+ * SCHED_ULE doesn't allow enabling/disabling HT cores at
+ * run time.
+ */
+ if (allowed != hyperthreading_allowed)
+ return (ENOTSUP);
+ return (error);
+#endif
+
if (allowed)
hlt_cpus_mask &= ~hyperthreading_cpus_mask;
else
@@ -1242,8 +1278,6 @@
* of hlt_logical_cpus.
*/
if (hyperthreading_cpus_mask) {
- TUNABLE_INT_FETCH("machdep.hyperthreading_allowed",
- &hyperthreading_allowed);
SYSCTL_ADD_PROC(&logical_cpu_clist,
SYSCTL_STATIC_CHILDREN(_machdep), OID_AUTO,
"hyperthreading_allowed", CTLTYPE_INT|CTLFLAG_RW,
==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#89 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.648 2009/02/23 06:00:24 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.649 2009/02/25 20:26:48 jkim Exp $");
/*
* Manages physical address maps.
@@ -594,7 +594,6 @@
if (!(cpu_feature & CPUID_PAT))
panic("no PAT??");
-#ifdef PAT_WORKS
/*
* Leave the indices 0-3 at the default of WB, WT, UC, and UC-.
* Program 4 and 5 as WP and WC.
@@ -604,23 +603,6 @@
pat_msr &= ~(PAT_MASK(4) | PAT_MASK(5));
pat_msr |= PAT_VALUE(4, PAT_WRITE_PROTECTED) |
PAT_VALUE(5, PAT_WRITE_COMBINING);
-#else
- /*
- * Due to some Intel errata, we can only safely use the lower 4
- * PAT entries. Thus, just replace PAT Index 2 with WC instead
- * of UC-.
- *
- * Intel Pentium III Processor Specification Update
- * Errata E.27 (Upper Four PAT Entries Not Usable With Mode B
- * or Mode C Paging)
- *
- * Intel Pentium IV Processor Specification Update
- * Errata N46 (PAT Index MSB May Be Calculated Incorrectly)
- */
- pat_msr = rdmsr(MSR_PAT);
- pat_msr &= ~PAT_MASK(2);
- pat_msr |= PAT_VALUE(2, PAT_WRITE_COMBINING);
-#endif
wrmsr(MSR_PAT, pat_msr);
}
@@ -783,10 +765,9 @@
break;
}
}
-
+
/* Map the caching mode to a PAT index. */
switch (mode) {
-#ifdef PAT_WORKS
case PAT_UNCACHEABLE:
pat_index = 3;
break;
@@ -805,25 +786,9 @@
case PAT_WRITE_PROTECTED:
pat_index = 4;
break;
-#else
- case PAT_UNCACHED:
- case PAT_UNCACHEABLE:
- case PAT_WRITE_PROTECTED:
- pat_index = 3;
- break;
- case PAT_WRITE_THROUGH:
- pat_index = 1;
- break;
- case PAT_WRITE_BACK:
- pat_index = 0;
- break;
- case PAT_WRITE_COMBINING:
- pat_index = 2;
- break;
-#endif
default:
panic("Unknown caching mode %d\n", mode);
- }
+ }
/* Map the 3-bit index value into the PAT, PCD, and PWT bits. */
cache_bits = 0;
==== //depot/projects/smpng/sys/amd64/conf/NOTES#48 (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.86 2009/02/07 00:01:10 wkoszek Exp $
+# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.87 2009/02/24 00:39:48 thompsa Exp $
#
#
@@ -509,5 +509,5 @@
options VM_KMEM_SIZE_SCALE
# Enable NDIS binary driver support
-options NDISAPI
-device ndis
+#options NDISAPI
+#device ndis
==== //depot/projects/smpng/sys/arm/mv/files.mv#5 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/arm/mv/files.mv,v 1.4 2009/02/16 21:42:41 marcel Exp $
+# $FreeBSD: src/sys/arm/mv/files.mv,v 1.5 2009/02/24 23:30:52 thompsa Exp $
#
# The Marvell CPU cores
# - Compliant with V5TE architecture
@@ -32,5 +32,4 @@
dev/uart/uart_bus_mbus.c optional uart
dev/uart/uart_cpu_mv.c optional uart
dev/uart/uart_dev_ns8250.c optional uart
-dev/usb/ehci_mbus.c optional ehci
-dev/usb2/controller/ehci2_mbus.c optional usb2_core usb2_controller usb2_controller_ehci
+dev/usb/controller/ehci_mbus.c optional ehci
==== //depot/projects/smpng/sys/arm/xscale/ixp425/files.ixp425#6 (text+ko) ====
@@ -1,4 +1,4 @@
-#$FreeBSD: src/sys/arm/xscale/ixp425/files.ixp425,v 1.8 2009/02/03 19:16:04 sam Exp $
+#$FreeBSD: src/sys/arm/xscale/ixp425/files.ixp425,v 1.9 2009/02/24 23:34:02 thompsa Exp $
arm/arm/bus_space_generic.c standard
arm/arm/cpufunc_asm_xscale.S standard
arm/arm/irq_dispatch.S standard
@@ -46,4 +46,5 @@
#
arm/xscale/ixp425/ixp425_qmgr.c optional qmgr
#
-dev/usb/ehci_ixp4xx.c optional ehci
+dev/usb/controller/ehci_ixp4xx.c optional ehci usb
+legacy/dev/usb/ehci_ixp4xx.c optional ehci ousb
==== //depot/projects/smpng/sys/boot/i386/btx/btx/btx.S#9 (text+ko) ====
@@ -12,7 +12,7 @@
* warranties of merchantability and fitness for a particular
* purpose.
*
- * $FreeBSD: src/sys/boot/i386/btx/btx/btx.S,v 1.47 2008/08/08 19:39:11 jhb Exp $
+ * $FreeBSD: src/sys/boot/i386/btx/btx/btx.S,v 1.48 2009/02/24 23:11:15 jhb Exp $
*/
/*
@@ -36,6 +36,7 @@
/*
* Fields in %eflags.
*/
+ .set PSL_RESERVED_DEFAULT,0x00000002
.set PSL_T,0x00000100 # Trap flag
.set PSL_I,0x00000200 # Interrupt enable flag
.set PSL_VM,0x00020000 # Virtual 8086 mode flag
@@ -455,6 +456,18 @@
* -0x3c %fs
* -0x40 %ds
* -0x44 %es
+ * -0x48 zero %eax (hardware int only)
+ * -0x4c zero %ecx (hardware int only)
+ * -0x50 zero %edx (hardware int only)
+ * -0x54 zero %ebx (hardware int only)
+ * -0x58 zero %esp (hardware int only)
+ * -0x5c zero %ebp (hardware int only)
+ * -0x60 zero %esi (hardware int only)
+ * -0x64 zero %edi (hardware int only)
+ * -0x68 zero %gs (hardware int only)
+ * -0x6c zero %fs (hardware int only)
+ * -0x70 zero %ds (hardware int only)
+ * -0x74 zero %es (hardware int only)
*/
int_hw: cld # String ops inc
pusha # Save gp regs
@@ -467,12 +480,15 @@
pushl %ds # address
popl %es # data
leal 0x44(%esp,1),%esi # Base of frame
+ movl %esp,MEM_ESPR-0x04 # Save kernel stack pointer
movl -0x14(%esi),%eax # Get Int no
cmpl $-1,%eax # Hardware interrupt?
- jne intusr.2 # Yes
+ jne intusr.1 # Yes
/*
- * v86 calls save the btx_v86 pointer on the real mode stack and read the
- * address and flags from the btx_v86 structure.
+ * v86 calls save the btx_v86 pointer on the real mode stack and read
+ * the address and flags from the btx_v86 structure. For interrupt
+ * handler invocations (VM86 INTx requests), disable interrupts,
+ * tracing, and alignment checking while the handler runs.
*/
movl $MEM_USR,%ebx # User base
movl %ebx,%edx # address
@@ -482,35 +498,36 @@
movl %edx,MEM_ESPR-0x08 # Save btx_v86 ptr
movl V86_ADDR(%edx),%eax # Get int no/address
movl V86_CTL(%edx),%edx # Get control flags
+ movl -0x08(%esi),%ebx # Save user flags in %ebx
+ testl $V86F_ADDR,%edx # Segment:offset?
+ jnz intusr.4 # Yes
+ andl $~(PSL_I|PSL_T|PSL_AC),%ebx # Disable interrupts, tracing,
+ # and alignment checking for
+ # interrupt handler
jmp intusr.3 # Skip hardware interrupt
/*
- * Hardware interrupts store a NULL btx_v86 pointer and use the address
- * (interrupt number) from the stack with empty flags. Also, we clear
- * the segment registers for the interrupt handler.
+ * Hardware interrupts store a NULL btx_v86 pointer and use the
+ * address (interrupt number) from the stack with empty flags. Also,
+ * push a dummy frame of zeros onto the stack for all the general
+ * purpose and segment registers and clear %eflags. This gives the
+ * hardware interrupt handler a clean slate.
*/
-intusr.2: xorl %edx,%edx # Control flags
+intusr.1: xorl %edx,%edx # Control flags
movl %edx,MEM_ESPR-0x08 # NULL btx_v86 ptr
- movl %edx,-0x38(%esi) # Real mode %gs of 0
- movl %edx,-0x3c(%esi) # Real mode %fs of 0
- movl %edx,-0x40(%esi) # Real mode %ds of 0
- movl %edx,-0x44(%esi) # Real mode %es of 0
+ movl $12,%ecx # Frame is 12 dwords
+intusr.2: pushl $0x0 # Fill frame
+ loop intusr.2 # with zeros
+ movl $PSL_RESERVED_DEFAULT,%ebx # Set clean %eflags
/*
- * %eax now holds either the interrupt number or segment:offset of function.
- * %edx now holds the V86F_* flags.
- *
- * For interrupt handler invocations (either hardware interrupts or VM86
- * INTx requests) we also disable interrupts, tracing, and alignment checking
- * while the handler runs.
+ * Look up real mode IDT entry for hardware interrupts and VM86 INTx
+ * requests.
*/
-intusr.3: movl -0x08(%esi),%ebx # Save user flags in %ebx
- testl $V86F_ADDR,%edx # Segment:offset?
- jnz intusr.4 # Yes
- shll $0x2,%eax # Scale
+intusr.3: shll $0x2,%eax # Scale
movl (%eax),%eax # Load int vector
- andl $~(PSL_I|PSL_T|PSL_AC),%ebx # Disable interrupts, tracing,
- # and alignment checking for
- # interrupt handler
jmp intusr.5 # Skip CALLF test
+/*
+ * Panic if V86F_CALLF isn't set with V86F_ADDR.
+ */
intusr.4: testl $V86F_CALLF,%edx # Far call?
jnz intusr.5 # Ok
movl %edx,0x30(%esp,1) # Place VM86 flags in int no
@@ -522,6 +539,11 @@
popl %gs
popal # Restore gp regs
jmp ex_noc # Panic
+/*
+ * %eax now holds the segment:offset of the function.
+ * %ebx now holds the %eflags to pass to real mode.
+ * %edx now holds the V86F_* flags.
+ */
intusr.5: movw %bx,MEM_ESPR-0x12 # Pass user flags to real mode
# target
/*
@@ -536,8 +558,7 @@
rep # from btx_v86
movsl # to kernel stack
popl %esi # Restore
-intusr.6: movl %esp,MEM_ESPR-0x04 # Save kernel stack pointer
- movl -0x08(%esi),%ebx # Copy user flags to real
+intusr.6: movl -0x08(%esi),%ebx # Copy user flags to real
movl %ebx,MEM_ESPR-0x0c # mode return trampoline
movl $rret_tramp,%ebx # Set return trampoline
movl %ebx,MEM_ESPR-0x10 # CS:IP
@@ -611,9 +632,16 @@
movb $SEL_TSS,%cl # Set task
ltr %cx # register
/*
- * Now we are back in protected mode. Copy the registers off of the real
- * mode stack onto the kernel stack. Also, initialize all the seg regs on
- * the kernel stack.
+ * Now we are back in protected mode. The kernel stack frame set up
+ * before entering real mode is still intact. For hardware interrupts,
+ * leave the frame unchanged.
+ */
+ cmpl $0,MEM_ESPR-0x08 # Leave saved regs unchanged
+ jz rret_tramp.3 # for hardware ints
+/*
+ * For V86 calls, copy the registers off of the real mode stack onto
+ * the kernel stack as we want their updated values. Also, initialize
+ * the segment registers on the kernel stack.
*
* Note that the %esp in the kernel stack after this is garbage, but popa
* ignores it, so we don't have to fix it up.
@@ -624,20 +652,17 @@
movl $8,%ecx # Copy GP regs from
rep # real mode stack
movsl # to kernel stack
- popl %esi # Restore
movl $SEL_UDATA,%eax # Selector for data seg regs
movl $4,%ecx # Initialize %ds,
rep # %es, %fs, and
stosl # %gs
/*
- * If this was a V86 call, copy the saved seg regs on the real mode stack
- * back over to the btx_v86 structure. Also, conditionally update the saved
- * eflags on the kernel stack based on the flags from the user.
+ * For V86 calls, copy the saved seg regs on the real mode stack back
+ * over to the btx_v86 structure. Also, conditionally update the
+ * saved eflags on the kernel stack based on the flags from the user.
*/
movl MEM_ESPR-0x08,%ecx # Get btx_v86 ptr
- jecxz rret_tramp.3 # Skip for hardware ints
leal V86_GS(%ecx),%edi # %edi => btx_v86 seg regs
- pushl %esi # Save
leal MEM_ESPR-0x2c,%esi # %esi => real mode seg regs
xchgl %ecx,%edx # Save btx_v86 ptr
movl $4,%ecx # Copy seg regs
==== //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#74 (text+ko) ====
@@ -39,10 +39,11 @@
* @(#)procfs_status.c 8.4 (Berkeley) 6/15/94
*/
+#include "opt_route.h"
#include "opt_compat.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.135 2009/02/13 15:32:03 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.136 2009/02/27 14:12:05 bz Exp $");
#include <sys/param.h>
#include <sys/queue.h>
@@ -76,6 +77,7 @@
#include <sys/vimage.h>
#include <net/if.h>
+#include <net/route.h>
#include <net/vnet.h>
#include <vm/vm.h>
==== //depot/projects/smpng/sys/compat/linux/linux_ioctl.c#55 (text+ko) ====
@@ -26,10 +26,11 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include "opt_route.h"
#include "opt_compat.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.146 2008/12/02 21:37:28 bz Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.147 2009/02/27 14:12:05 bz Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -63,6 +64,7 @@
#include <net/if.h>
#include <net/if_dl.h>
#include <net/if_types.h>
+#include <net/route.h>
#include <net/vnet.h>
#ifdef COMPAT_LINUX32
==== //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#42 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.101 2009/02/23 18:16:17 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.102 2009/02/24 18:09:31 rdivacky Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -258,10 +258,8 @@
}
static void
-ndis_resetdone_func(adapter, status, addressingreset)
- ndis_handle adapter;
- ndis_status status;
- uint8_t addressingreset;
+ndis_resetdone_func(ndis_handle adapter, ndis_status status,
+ uint8_t addressingreset)
{
ndis_miniport_block *block;
struct ndis_softc *sc;
==== //depot/projects/smpng/sys/compat/ndis/subr_hal.c#21 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_hal.c,v 1.28 2006/05/16 14:37:57 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_hal.c,v 1.29 2009/02/24 18:09:31 rdivacky Exp $");
#include <sys/param.h>
#include <sys/types.h>
@@ -142,18 +142,14 @@
}
static void
-WRITE_PORT_USHORT(port, val)
- uint16_t *port;
- uint16_t val;
+WRITE_PORT_USHORT(uint16_t *port, uint16_t val)
{
bus_space_write_2(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val);
return;
}
static void
-WRITE_PORT_UCHAR(port, val)
- uint8_t *port;
- uint8_t val;
+WRITE_PORT_UCHAR(uint8_t *port, uint8_t val)
{
bus_space_write_1(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val);
return;
@@ -378,9 +374,7 @@
}
void
-KfReleaseSpinLock(lock, newirql)
- kspin_lock *lock;
- uint8_t newirql;
+KfReleaseSpinLock(kspin_lock *lock, uint8_t newirql)
{
KeReleaseSpinLockFromDpcLevel(lock);
KeLowerIrql(newirql);
@@ -407,8 +401,7 @@
}
uint8_t
-KfRaiseIrql(irql)
- uint8_t irql;
+KfRaiseIrql(uint8_t irql)
{
uint8_t oldirql;
@@ -428,8 +421,7 @@
}
void
-KfLowerIrql(oldirql)
- uint8_t oldirql;
+KfLowerIrql(uint8_t oldirql)
{
if (oldirql == DISPATCH_LEVEL)
return;
@@ -453,8 +445,7 @@
}
static void
-_KeLowerIrql(oldirql)
- uint8_t oldirql;
+_KeLowerIrql(uint8_t oldirql)
{
KeLowerIrql(oldirql);
return;
==== //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#48 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.116 2009/02/23 18:16:17 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.117 2009/02/24 18:09:31 rdivacky Exp $");
/*
* This file implements a translation layer between the BSD networking
@@ -905,10 +905,8 @@
}
static void
-NdisAcquireReadWriteLock(lock, writeacc, state)
- ndis_rw_lock *lock;
- uint8_t writeacc;
- ndis_lock_state *state;
+NdisAcquireReadWriteLock(ndis_rw_lock *lock, uint8_t writeacc,
+ ndis_lock_state *state)
{
if (writeacc == TRUE) {
KeAcquireSpinLock(&lock->nrl_spinlock, &state->nls_oldirql);
@@ -1091,13 +1089,9 @@
}
static void
-NdisMStartBufferPhysicalMapping(adapter, buf, mapreg, writedev, addrarray, arraysize)
- ndis_handle adapter;
- ndis_buffer *buf;
- uint32_t mapreg;
- uint8_t writedev;
- ndis_paddr_unit *addrarray;
- uint32_t *arraysize;
+NdisMStartBufferPhysicalMapping(ndis_handle adapter, ndis_buffer *buf,
+ uint32_t mapreg, uint8_t writedev, ndis_paddr_unit *addrarray,
+ uint32_t *arraysize)
{
ndis_miniport_block *block;
struct ndis_softc *sc;
@@ -1474,12 +1468,8 @@
}
static ndis_status
-NdisMAllocateMapRegisters(adapter, dmachannel, dmasize, physmapneeded, maxmap)
- ndis_handle adapter;
- uint32_t dmachannel;
- uint8_t dmasize;
- uint32_t physmapneeded;
- uint32_t maxmap;
+NdisMAllocateMapRegisters(ndis_handle adapter, uint32_t dmachannel,
+ uint8_t dmasize, uint32_t physmapneeded, uint32_t maxmap)
{
struct ndis_softc *sc;
ndis_miniport_block *block;
@@ -1557,12 +1547,8 @@
*/
static void
-NdisMAllocateSharedMemory(adapter, len, cached, vaddr, paddr)
- ndis_handle adapter;
- uint32_t len;
- uint8_t cached;
- void **vaddr;
- ndis_physaddr *paddr;
+NdisMAllocateSharedMemory(ndis_handle adapter, uint32_t len, uint8_t cached,
+ void **vaddr, ndis_physaddr *paddr)
{
ndis_miniport_block *block;
struct ndis_softc *sc;
@@ -1680,11 +1666,8 @@
}
static ndis_status
-NdisMAllocateSharedMemoryAsync(adapter, len, cached, ctx)
- ndis_handle adapter;
- uint32_t len;
- uint8_t cached;
- void *ctx;
+NdisMAllocateSharedMemoryAsync(ndis_handle adapter, uint32_t len,
+ uint8_t cached, void *ctx)
{
ndis_miniport_block *block;
struct ndis_allocwork *w;
@@ -1717,12 +1700,8 @@
}
static void
-NdisMFreeSharedMemory(adapter, len, cached, vaddr, paddr)
- ndis_handle adapter;
- uint32_t len;
- uint8_t cached;
- void *vaddr;
- ndis_physaddr paddr;
+NdisMFreeSharedMemory(ndis_handle adapter, uint32_t len, uint8_t cached,
+ void *vaddr, ndis_physaddr paddr)
{
ndis_miniport_block *block;
struct ndis_softc *sc;
@@ -1829,10 +1808,8 @@
*/
static ndis_status
-NdisMInitializeScatterGatherDma(adapter, is64, maxphysmap)
- ndis_handle adapter;
- uint8_t is64;
- uint32_t maxphysmap;
+NdisMInitializeScatterGatherDma(ndis_handle adapter, uint8_t is64,
+ uint32_t maxphysmap)
{
struct ndis_softc *sc;
ndis_miniport_block *block;
@@ -2433,14 +2410,9 @@
}
static ndis_status
-NdisMRegisterInterrupt(intr, adapter, ivec, ilevel, reqisr, shared, imode)
- ndis_miniport_interrupt *intr;
- ndis_handle adapter;
- uint32_t ivec;
- uint32_t ilevel;
- uint8_t reqisr;
- uint8_t shared;
- ndis_interrupt_mode imode;
+NdisMRegisterInterrupt(ndis_miniport_interrupt *intr, ndis_handle adapter,
+ uint32_t ivec, uint32_t ilevel, uint8_t reqisr, uint8_t shared,
+ ndis_interrupt_mode imode)
{
ndis_miniport_block *block;
ndis_miniport_characteristics *ch;
==== //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#47 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.97 2008/12/27 08:03:32 weongyo Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.98 2009/02/24 18:09:31 rdivacky Exp $");
#include <sys/ctype.h>
#include <sys/unistd.h>
@@ -446,10 +446,7 @@
}
static void *
-ntoskrnl_memchr(buf, ch, len)
- void *buf;
- unsigned char ch;
- size_t len;
+ntoskrnl_memchr(void *buf, unsigned char ch, size_t len)
{
if (len != 0) {
unsigned char *p = buf;
@@ -520,10 +517,8 @@
}
static uint8_t
-RtlEqualUnicodeString(str1, str2, caseinsensitive)
- unicode_string *str1;
- unicode_string *str2;
- uint8_t caseinsensitive;
+RtlEqualUnicodeString(unicode_string *str1, unicode_string *str2,
+ uint8_t caseinsensitive)
{
int i;
@@ -595,10 +590,7 @@
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list