PERFORCE change 108131 for review
Robert Watson
rwatson at FreeBSD.org
Thu Oct 19 16:23:23 PDT 2006
http://perforce.freebsd.org/chv.cgi?CH=108131
Change 108131 by rwatson at rwatson_zoo on 2006/10/19 23:21:43
Integrate TrustedBSD priv branch from TrustedBSD base branch; see
@108130 for a detailed list of changes.
Affected files ...
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/busdma_machdep.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/intr_machdep.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/support.S#3 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/conf/NOTES#3 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux32_machdep.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux32_proto.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux32_syscall.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux32_sysent.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/linux32/syscalls.master#3 integrate
.. //depot/projects/trustedbsd/priv/sys/arm/arm/fusu.S#3 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/freebsd32/freebsd32_proto.h#6 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/freebsd32/freebsd32_syscall.h#6 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/freebsd32/freebsd32_syscalls.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/freebsd32/freebsd32_sysent.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/freebsd32/syscalls.master#6 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/linux/linux_aio.c#1 branch
.. //depot/projects/trustedbsd/priv/sys/compat/linux/linux_aio.h#1 branch
.. //depot/projects/trustedbsd/priv/sys/compat/linux/linux_signal.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/linux/linux_signal.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/conf/files#5 integrate
.. //depot/projects/trustedbsd/priv/sys/conf/files.amd64#4 integrate
.. //depot/projects/trustedbsd/priv/sys/conf/files.i386#3 integrate
.. //depot/projects/trustedbsd/priv/sys/conf/files.pc98#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/awi/if_awi_pccard.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/bce/if_bce.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/bce/if_bcereg.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/bge/if_bge.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mfi/mfi.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mfi/mfi_debug.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mfi/mfi_disk.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mfi/mfireg.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mfi/mfivar.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mxge/if_mxge.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/nfe/if_nfe.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/nfe/if_nfereg.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/ray/if_ray.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/midi/sequencer.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/hda/hdac.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/usb/ehci.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/usb/if_axe.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/usb/if_udav.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/usb/if_ural.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/usb/ohci.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/usb/uhci.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/usb/usb.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/usb/usbdi.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/devfs/devfs.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/devfs/devfs_devs.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/devfs/devfs_int.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/devfs/devfs_vnops.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/acpica/Makefile#3 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/conf/NOTES#4 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/i386/support.s#3 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/linux/linux.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/linux/linux_machdep.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/linux/linux_proto.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/linux/linux_syscall.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/linux/linux_sysent.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/linux/syscalls.master#4 integrate
.. //depot/projects/trustedbsd/priv/sys/ia64/ia64/busdma_machdep.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/ia64/ia64/clock.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/ia64/ia64/support.S#3 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/init_sysent.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_intr.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_umtx.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/subr_trap.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/sys_generic.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/sys_process.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/syscalls.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/syscalls.master#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/systrace_args.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/vfs_aio.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/modules/aio/Makefile#2 integrate
.. //depot/projects/trustedbsd/priv/sys/modules/linux/Makefile#2 integrate
.. //depot/projects/trustedbsd/priv/sys/modules/mem/Makefile#2 integrate
.. //depot/projects/trustedbsd/priv/sys/modules/uart/Makefile#2 integrate
.. //depot/projects/trustedbsd/priv/sys/netgraph/netgraph.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/netgraph/ng_message.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/netgraph/ng_socket.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/netgraph/ng_socket.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/nfsclient/nfs.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/nfsclient/nfs_vnops.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/pc98/conf/NOTES#2 integrate
.. //depot/projects/trustedbsd/priv/sys/pci/agp.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/pci/nfsmb.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/powerpc/powerpc/copyinout.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/sparc64/sparc64/support.S#3 integrate
.. //depot/projects/trustedbsd/priv/sys/sun4v/conf/NOTES#2 integrate
.. //depot/projects/trustedbsd/priv/sys/sun4v/sun4v/support.S#2 integrate
.. //depot/projects/trustedbsd/priv/sys/sun4v/sun4v/trap.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/elf32.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/elf64.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/sem.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/syscall.h#5 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/syscall.mk#5 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/sysproto.h#5 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/systm.h#5 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/umtx.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/vnode_pager.c#3 integrate
Differences ...
==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/busdma_machdep.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.77 2006/06/01 04:49:29 silby Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.78 2006/10/15 16:52:59 hrs Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -520,7 +520,7 @@
__func__, dmat, dmat->flags, ENOMEM);
return (ENOMEM);
} else if ((uintptr_t)*vaddr & (dmat->alignment - 1)) {
- printf("bus_dmamem_alloc failed to align memory properly.");
+ printf("bus_dmamem_alloc failed to align memory properly.\n");
}
CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d",
__func__, dmat, dmat->flags, ENOMEM);
==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/intr_machdep.c#3 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.24 2006/10/13 17:31:57 jhb Exp $
+ * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.25 2006/10/16 21:40:46 jhb Exp $
*/
/*
@@ -58,6 +58,7 @@
#ifndef DEV_ATPIC
#include <machine/segments.h>
+#include <machine/frame.h>
#include <dev/ic/i8259.h>
#include <amd64/isa/icu.h>
#include <amd64/isa/isa.h>
==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/support.S#3 (text+ko) ====
@@ -27,7 +27,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/support.S,v 1.120 2006/08/28 02:28:14 davidxu Exp $
+ * $FreeBSD: src/sys/amd64/amd64/support.S,v 1.121 2006/10/17 02:24:45 davidxu Exp $
*/
#include "opt_ddb.h"
@@ -342,10 +342,10 @@
ret
/*
- * casuptr. Compare and set user pointer. Returns -1 or the current value.
+ * casuword. Compare and set user word. Returns -1 or the current value.
* dst = %rdi, old = %rsi, new = %rdx
*/
-ENTRY(casuptr)
+ENTRY(casuword)
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
==== //depot/projects/trustedbsd/priv/sys/amd64/conf/NOTES#3 (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.59 2006/09/22 22:11:28 jhb Exp $
+# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.60 2006/10/19 05:17:55 imp Exp $
#
#
@@ -103,7 +103,7 @@
#
# sio: serial ports (see sio(4)), including support for various
-# PC Card devices, such as Modem and NICs (see etc/defaults/pccard.conf)
+# PC Card devices, such as Modem and NICs
#
device sio
hint.sio.0.at="isa"
@@ -257,7 +257,7 @@
# ath: Atheros a/b/g WiFi adapters (requires ath_hal and wlan)
# ed: Western Digital and SMC 80xx; Novell NE1000 and NE2000; 3Com 3C503
-# HP PC Lan+, various PC Card devices (refer to etc/defaults/pccard.conf)
+# HP PC Lan+, various PC Card devices
# (requires miibus)
# ipw: Intel PRO/Wireless 2100 IEEE 802.11 adapter
# iwi: Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters
==== //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux.h#2 (text+ko) ====
@@ -27,7 +27,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.5 2006/08/19 15:13:01 netchild Exp $
+ * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.7 2006/10/15 14:22:12 netchild Exp $
*/
#ifndef _AMD64_LINUX_LINUX_H_
@@ -830,6 +830,7 @@
#define CLONE_FILES 0x400
#define CLONE_SIGHAND 0x800
#define CLONE_PID 0x1000 /* this flag does not exist in linux anymore */
+#define CLONE_VFORK 0x4000
#define CLONE_PARENT 0x00008000
#define CLONE_THREAD 0x10000
#define CLONE_SETTLS 0x80000
@@ -839,4 +840,6 @@
#define THREADING_FLAGS (CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND)
+#include <compat/linux/linux_aio.h>
+
#endif /* !_AMD64_LINUX_LINUX_H_ */
==== //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux32_machdep.c#4 (text+ko) ====
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.18 2006/10/02 12:59:55 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.22 2006/10/15 13:39:39 netchild Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -530,7 +530,13 @@
ff |= RFMEM;
if (args->flags & CLONE_SIGHAND)
ff |= RFSIGSHARE;
- if (!(args->flags & CLONE_FILES))
+ /*
+ * XXX: in linux sharing of fs info (chroot/cwd/umask)
+ * and open files is independant. in fbsd its in one
+ * structure but in reality it doesnt make any problems
+ * because both this flags are set at once usually.
+ */
+ if (!(args->flags & (CLONE_FILES | CLONE_FS)))
ff |= RFFDG;
/*
@@ -634,6 +640,16 @@
td->td_retval[0] = p2->p_pid;
td->td_retval[1] = 0;
+
+ if (args->flags & CLONE_VFORK) {
+ /* wait for the children to exit, ie. emulate vfork */
+ PROC_LOCK(p2);
+ p2->p_flag |= P_PPWAIT;
+ while (p2->p_flag & P_PPWAIT)
+ msleep(td->td_proc, &p2->p_mtx, PWAIT, "ppwait", 0);
+ PROC_UNLOCK(p2);
+ }
+
return (0);
}
==== //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux32_proto.h#3 (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.22 2006/08/27 08:58:00 netchild Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.20 2006/08/27 08:56:53 netchild Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.23 2006/10/15 14:24:09 netchild Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.21 2006/10/15 14:22:12 netchild Exp
*/
#ifndef _LINUX_SYSPROTO_H_
@@ -724,6 +724,30 @@
char uaddr2_l_[PADL_(void *)]; void * uaddr2; char uaddr2_r_[PADR_(void *)];
char val3_l_[PADL_(int)]; int val3; char val3_r_[PADR_(int)];
};
+struct linux_io_setup_args {
+ char nr_reqs_l_[PADL_(l_uint)]; l_uint nr_reqs; char nr_reqs_r_[PADR_(l_uint)];
+ char ctxp_l_[PADL_(linux_aio_context_t *)]; linux_aio_context_t * ctxp; char ctxp_r_[PADR_(linux_aio_context_t *)];
+};
+struct linux_io_destroy_args {
+ char ctx_l_[PADL_(linux_aio_context_t)]; linux_aio_context_t ctx; char ctx_r_[PADR_(linux_aio_context_t)];
+};
+struct linux_io_getevents_args {
+ char ctx_id_l_[PADL_(linux_aio_context_t)]; linux_aio_context_t ctx_id; char ctx_id_r_[PADR_(linux_aio_context_t)];
+ char min_nr_l_[PADL_(l_long)]; l_long min_nr; char min_nr_r_[PADR_(l_long)];
+ char nr_l_[PADL_(l_long)]; l_long nr; char nr_r_[PADR_(l_long)];
+ char events_l_[PADL_(struct linux_io_event *)]; struct linux_io_event * events; char events_r_[PADR_(struct linux_io_event *)];
+ char timeout_l_[PADL_(struct l_timespec *)]; struct l_timespec * timeout; char timeout_r_[PADR_(struct l_timespec *)];
+};
+struct linux_io_submit_args {
+ char ctx_id_l_[PADL_(linux_aio_context_t)]; linux_aio_context_t ctx_id; char ctx_id_r_[PADR_(linux_aio_context_t)];
+ char nr_l_[PADL_(l_long)]; l_long nr; char nr_r_[PADR_(l_long)];
+ char iocbpp_l_[PADL_(struct linux_iocb **)]; struct linux_iocb ** iocbpp; char iocbpp_r_[PADR_(struct linux_iocb **)];
+};
+struct linux_io_cancel_args {
+ char ctx_id_l_[PADL_(linux_aio_context_t)]; linux_aio_context_t ctx_id; char ctx_id_r_[PADR_(linux_aio_context_t)];
+ char iocb_l_[PADL_(struct linux_iocb *)]; struct linux_iocb * iocb; char iocb_r_[PADR_(struct linux_iocb *)];
+ char result_l_[PADL_(struct linux_io_event *)]; struct linux_io_event * result; char result_r_[PADR_(struct linux_io_event *)];
+};
struct linux_fadvise64_args {
register_t dummy;
};
@@ -1081,6 +1105,11 @@
int linux_fremovexattr(struct thread *, struct linux_fremovexattr_args *);
int linux_tkill(struct thread *, struct linux_tkill_args *);
int linux_sys_futex(struct thread *, struct linux_sys_futex_args *);
+int linux_io_setup(struct thread *, struct linux_io_setup_args *);
+int linux_io_destroy(struct thread *, struct linux_io_destroy_args *);
+int linux_io_getevents(struct thread *, struct linux_io_getevents_args *);
+int linux_io_submit(struct thread *, struct linux_io_submit_args *);
+int linux_io_cancel(struct thread *, struct linux_io_cancel_args *);
int linux_fadvise64(struct thread *, struct linux_fadvise64_args *);
int linux_exit_group(struct thread *, struct linux_exit_group_args *);
int linux_lookup_dcookie(struct thread *, struct linux_lookup_dcookie_args *);
@@ -1326,6 +1355,11 @@
#define LINUX_SYS_AUE_linux_fremovexattr AUE_NULL
#define LINUX_SYS_AUE_linux_tkill AUE_NULL
#define LINUX_SYS_AUE_linux_sys_futex AUE_NULL
+#define LINUX_SYS_AUE_linux_io_setup AUE_NULL
+#define LINUX_SYS_AUE_linux_io_destroy AUE_NULL
+#define LINUX_SYS_AUE_linux_io_getevents AUE_NULL
+#define LINUX_SYS_AUE_linux_io_submit AUE_NULL
+#define LINUX_SYS_AUE_linux_io_cancel AUE_NULL
#define LINUX_SYS_AUE_linux_fadvise64 AUE_NULL
#define LINUX_SYS_AUE_linux_exit_group AUE_EXIT
#define LINUX_SYS_AUE_linux_lookup_dcookie AUE_NULL
==== //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux32_syscall.h#3 (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.22 2006/08/27 08:58:00 netchild Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.20 2006/08/27 08:56:53 netchild Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.23 2006/10/15 14:24:09 netchild Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.21 2006/10/15 14:22:12 netchild Exp
*/
#define LINUX_SYS_exit 1
@@ -221,6 +221,11 @@
#define LINUX_SYS_linux_fremovexattr 237
#define LINUX_SYS_linux_tkill 238
#define LINUX_SYS_linux_sys_futex 240
+#define LINUX_SYS_linux_io_setup 245
+#define LINUX_SYS_linux_io_destroy 246
+#define LINUX_SYS_linux_io_getevents 247
+#define LINUX_SYS_linux_io_submit 248
+#define LINUX_SYS_linux_io_cancel 249
#define LINUX_SYS_linux_fadvise64 250
#define LINUX_SYS_linux_exit_group 252
#define LINUX_SYS_linux_lookup_dcookie 253
==== //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux32_sysent.c#3 (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.22 2006/08/27 08:58:00 netchild Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.20 2006/08/27 08:56:53 netchild Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.23 2006/10/15 14:24:09 netchild Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.21 2006/10/15 14:22:12 netchild Exp
*/
#include <bsm/audit_kevents.h>
@@ -265,11 +265,11 @@
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 242 = linux_sched_getaffinity */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 243 = linux_set_thread_area */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 244 = linux_get_thread_area */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 245 = linux_io_setup */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 246 = linux_io_destroy */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 247 = linux_io_getevents */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 248 = linux_io_submit */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 249 = linux_io_cancel */
+ { AS(linux_io_setup_args), (sy_call_t *)linux_io_setup, AUE_NULL, NULL, 0, 0 }, /* 245 = linux_io_setup */
+ { AS(linux_io_destroy_args), (sy_call_t *)linux_io_destroy, AUE_NULL, NULL, 0, 0 }, /* 246 = linux_io_destroy */
+ { AS(linux_io_getevents_args), (sy_call_t *)linux_io_getevents, AUE_NULL, NULL, 0, 0 }, /* 247 = linux_io_getevents */
+ { AS(linux_io_submit_args), (sy_call_t *)linux_io_submit, AUE_NULL, NULL, 0, 0 }, /* 248 = linux_io_submit */
+ { AS(linux_io_cancel_args), (sy_call_t *)linux_io_cancel, AUE_NULL, NULL, 0, 0 }, /* 249 = linux_io_cancel */
{ 0, (sy_call_t *)linux_fadvise64, AUE_NULL, NULL, 0, 0 }, /* 250 = linux_fadvise64 */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 251 = */
{ AS(linux_exit_group_args), (sy_call_t *)linux_exit_group, AUE_EXIT, NULL, 0, 0 }, /* 252 = linux_exit_group */
==== //depot/projects/trustedbsd/priv/sys/amd64/linux32/syscalls.master#3 (text+ko) ====
@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.20 2006/08/27 08:56:53 netchild Exp $
+ $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.21 2006/10/15 14:22:12 netchild Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
; System call name/number master file (or rather, slave, from LINUX).
@@ -406,11 +406,11 @@
242 AUE_NULL UNIMPL linux_sched_getaffinity
243 AUE_NULL UNIMPL linux_set_thread_area
244 AUE_NULL UNIMPL linux_get_thread_area
-245 AUE_NULL UNIMPL linux_io_setup
-246 AUE_NULL UNIMPL linux_io_destroy
-247 AUE_NULL UNIMPL linux_io_getevents
-248 AUE_NULL UNIMPL linux_io_submit
-249 AUE_NULL UNIMPL linux_io_cancel
+245 AUE_NULL STD { int linux_io_setup(l_uint nr_reqs, linux_aio_context_t *ctxp); }
+246 AUE_NULL STD { int linux_io_destroy(linux_aio_context_t ctx); }
+247 AUE_NULL STD { int linux_io_getevents(linux_aio_context_t ctx_id, l_long min_nr, l_long nr, struct linux_io_event *events, struct l_timespec *timeout); }
+248 AUE_NULL STD { int linux_io_submit(linux_aio_context_t ctx_id, l_long nr, struct linux_iocb **iocbpp); }
+249 AUE_NULL STD { int linux_io_cancel(linux_aio_context_t ctx_id, struct linux_iocb *iocb, struct linux_io_event *result); }
250 AUE_NULL STD { int linux_fadvise64(void); }
251 AUE_NULL UNIMPL
252 AUE_EXIT STD { int linux_exit_group(int error_code); }
==== //depot/projects/trustedbsd/priv/sys/arm/arm/fusu.S#3 (text+ko) ====
@@ -37,7 +37,7 @@
#include <machine/asmacros.h>
#include <machine/armreg.h>
#include "assym.s"
-__FBSDID("$FreeBSD: src/sys/arm/arm/fusu.S,v 1.10 2006/08/30 11:44:37 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/fusu.S,v 1.11 2006/10/17 02:24:46 davidxu Exp $");
#ifdef MULTIPROCESSOR
.Lcpu_info:
@@ -53,7 +53,7 @@
*/
ENTRY_NP(casuword32)
-ENTRY(casuptr)
+ENTRY(casuword)
#ifdef MULTIPROCESSOR
/* XXX Probably not appropriate for non-Hydra SMPs */
stmfd sp!, {r0, r14}
@@ -72,7 +72,7 @@
beq .Lfusupcbfault
#endif
stmfd sp!, {r4, r5}
- adr r4, .Lcasuptrfault
+ adr r4, .Lcasuwordfault
str r4, [r3, #PCB_ONFAULT]
ldrt r5, [r0]
cmp r5, r1
@@ -85,10 +85,10 @@
RET
/*
- * Handle faults from casuptr. Clean up and return -1.
+ * Handle faults from casuword. Clean up and return -1.
*/
-.Lcasuptrfault:
+.Lcasuwordfault:
mov r0, #0x00000000
str r0, [r3, #PCB_ONFAULT]
mvn r0, #0x00000000
==== //depot/projects/trustedbsd/priv/sys/compat/freebsd32/freebsd32_proto.h#6 (text+ko) ====
@@ -2,8 +2,8 @@
* System call prototypes.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.69 2006/10/06 08:24:37 davidxu Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.81 2006/10/05 01:56:10 davidxu Exp
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.70 2006/10/17 02:28:58 davidxu Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.82 2006/10/06 08:22:08 davidxu Exp
*/
#ifndef _FREEBSD32_SYSPROTO_H_
@@ -301,7 +301,7 @@
struct freebsd32_umtx_op_args {
char obj_l_[PADL_(void *)]; void * obj; char obj_r_[PADR_(void *)];
char op_l_[PADL_(int)]; int op; char op_r_[PADR_(int)];
- char val_l_[PADL_(uintptr_t)]; uintptr_t val; char val_r_[PADR_(uintptr_t)];
+ char val_l_[PADL_(u_long)]; u_long val; char val_r_[PADR_(u_long)];
char uaddr_l_[PADL_(void *)]; void * uaddr; char uaddr_r_[PADR_(void *)];
char uaddr2_l_[PADL_(void *)]; void * uaddr2; char uaddr2_r_[PADR_(void *)];
};
==== //depot/projects/trustedbsd/priv/sys/compat/freebsd32/freebsd32_syscall.h#6 (text+ko) ====
@@ -2,8 +2,8 @@
* System call numbers.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.67 2006/10/06 08:24:37 davidxu Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.81 2006/10/05 01:56:10 davidxu Exp
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.68 2006/10/17 02:28:58 davidxu Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.82 2006/10/06 08:22:08 davidxu Exp
*/
#define FREEBSD32_SYS_syscall 0
==== //depot/projects/trustedbsd/priv/sys/compat/freebsd32/freebsd32_syscalls.c#6 (text+ko) ====
@@ -2,8 +2,8 @@
* System call names.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.58 2006/10/06 08:24:37 davidxu Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.81 2006/10/05 01:56:10 davidxu Exp
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.59 2006/10/17 02:28:58 davidxu Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.82 2006/10/06 08:22:08 davidxu Exp
*/
const char *freebsd32_syscallnames[] = {
==== //depot/projects/trustedbsd/priv/sys/compat/freebsd32/freebsd32_sysent.c#6 (text+ko) ====
@@ -2,8 +2,8 @@
* System call switch table.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.68 2006/10/06 08:24:37 davidxu Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.81 2006/10/05 01:56:10 davidxu Exp
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.69 2006/10/17 02:28:58 davidxu Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.82 2006/10/06 08:22:08 davidxu Exp
*/
#include "opt_compat.h"
==== //depot/projects/trustedbsd/priv/sys/compat/freebsd32/syscalls.master#6 (text+ko) ====
@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.82 2006/10/06 08:22:08 davidxu Exp $
+ $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.83 2006/10/17 02:28:26 davidxu Exp $
; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94
; from: src/sys/kern/syscalls.master 1.107
;
@@ -743,7 +743,7 @@
452 AUE_SETAUDIT_ADDR UNIMPL setaudit_addr
453 AUE_AUDITCTL UNIMPL auditctl
454 AUE_NULL STD { int freebsd32_umtx_op(void *obj, int op,\
- uintptr_t val, void *uaddr, \
+ u_long val, void *uaddr, \
void *uaddr2); }
455 AUE_NULL STD { int freebsd32_thr_new( \
struct thr_param32 *param, \
==== //depot/projects/trustedbsd/priv/sys/compat/linux/linux_signal.c#2 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_signal.c,v 1.59 2006/08/19 15:13:01 netchild Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_signal.c,v 1.61 2006/10/15 14:34:03 netchild Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -144,7 +144,7 @@
struct sigaction act, oact, *nsa, *osa;
int error, sig;
- if (linux_sig <= 0 || linux_sig > LINUX_NSIG)
+ if (!LINUX_SIG_VALID(linux_sig))
return (EINVAL);
osa = (linux_osa != NULL) ? &oact : NULL;
@@ -438,7 +438,7 @@
/*
* Allow signal 0 as a means to check for privileges
*/
- if (args->signum < 0 || args->signum > LINUX_NSIG)
+ if (!LINUX_SIG_VALID(args->signum) && args->signum != 0)
return EINVAL;
if (args->signum > 0 && args->signum <= LINUX_SIGTBLSZ)
==== //depot/projects/trustedbsd/priv/sys/compat/linux/linux_signal.h#2 (text+ko) ====
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/compat/linux/linux_signal.h,v 1.6 2002/03/20 05:42:02 alfred Exp $
+ * $FreeBSD: src/sys/compat/linux/linux_signal.h,v 1.7 2006/10/15 12:51:43 netchild Exp $
*/
#ifndef _LINUX_SIGNAL_H_
@@ -35,4 +35,6 @@
void bsd_to_linux_sigset(sigset_t *, l_sigset_t *);
int linux_do_sigaction(struct thread *, int, l_sigaction_t *, l_sigaction_t *);
+#define LINUX_SIG_VALID(sig) ((sig) <= LINUX_NSIG && (sig) > 0)
+
#endif /* _LINUX_SIGNAL_H_ */
==== //depot/projects/trustedbsd/priv/sys/conf/files#5 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1150 2006/10/08 13:51:27 piso Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1151 2006/10/17 18:08:04 imp Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -50,12 +50,7 @@
aic79xx_reg_print.o optional ahd pci ahd_reg_pretty_print \
compile-with "${NORMAL_C}" \
no-implicit-rule local
-emu10k1-alsa%diked.h optional snd_emu10k1 pci \
- dependency "$S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h" \
- compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h emu10k1-alsa%diked.h" \
- no-obj no-implicit-rule before-depend \
- clean "emu10k1-alsa%diked.h"
-emu10k1-alsa%diked.h optional snd_emu10kx pci \
+emu10k1-alsa%diked.h optional snd_emu10k1 | snd_emu10kx \
dependency "$S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h" \
compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h emu10k1-alsa%diked.h" \
no-obj no-implicit-rule before-depend \
==== //depot/projects/trustedbsd/priv/sys/conf/files.amd64#4 (text+ko) ====
@@ -1,7 +1,7 @@
# This file tells config what files go into building a kernel,
# files marked standard are always included.
#
-# $FreeBSD: src/sys/conf/files.amd64,v 1.94 2006/09/22 22:11:28 jhb Exp $
+# $FreeBSD: src/sys/conf/files.amd64,v 1.95 2006/10/15 14:22:13 netchild Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -240,6 +240,7 @@
amd64/linux32/linux32_machdep.c optional compat_linux32
amd64/linux32/linux32_sysent.c optional compat_linux32
amd64/linux32/linux32_sysvec.c optional compat_linux32
+compat/linux/linux_aio.c optional compat_linux32
compat/linux/linux_emul.c optional compat_linux32
compat/linux/linux_file.c optional compat_linux32
compat/linux/linux_futex.c optional compat_linux32
==== //depot/projects/trustedbsd/priv/sys/conf/files.i386#3 (text+ko) ====
@@ -1,7 +1,7 @@
# This file tells config what files go into building a kernel,
# files marked standard are always included.
#
-# $FreeBSD: src/sys/conf/files.i386,v 1.566 2006/09/22 22:11:28 jhb Exp $
+# $FreeBSD: src/sys/conf/files.i386,v 1.567 2006/10/15 14:22:13 netchild Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -85,6 +85,7 @@
#
compat/linprocfs/linprocfs.c optional linprocfs
compat/linsysfs/linsysfs.c optional linsysfs
+compat/linux/linux_aio.c optional compat_linux
compat/linux/linux_emul.c optional compat_linux
compat/linux/linux_file.c optional compat_linux
compat/linux/linux_futex.c optional compat_linux
==== //depot/projects/trustedbsd/priv/sys/conf/files.pc98#2 (text+ko) ====
@@ -3,7 +3,7 @@
#
# modified for PC-9801/PC-9821
#
-# $FreeBSD: src/sys/conf/files.pc98,v 1.345 2006/08/18 15:46:38 netchild Exp $
+# $FreeBSD: src/sys/conf/files.pc98,v 1.346 2006/10/16 02:26:06 nyan Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -55,6 +55,7 @@
#
compat/linprocfs/linprocfs.c optional linprocfs
compat/linsysfs/linsysfs.c optional linsysfs
+compat/linux/linux_aio.c optional compat_linux
compat/linux/linux_emul.c optional compat_linux
compat/linux/linux_file.c optional compat_linux
compat/linux/linux_futex.c optional compat_linux
==== //depot/projects/trustedbsd/priv/sys/dev/awi/if_awi_pccard.c#2 (text+ko) ====
@@ -24,7 +24,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/awi/if_awi_pccard.c,v 1.23 2005/09/20 19:46:54 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/awi/if_awi_pccard.c,v 1.24 2006/10/19 05:25:29 imp Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -158,8 +158,9 @@
#if 1
/*
* XXX: awi needs to access memory with 8bit,
- * but pccardd apparently maps memory with MDF_16BITS flag.
+ * but OLDCARD apparently maps memory with MDF_16BITS flag.
* So memory mapped access is disabled and use IO port instead.
+ * XXX: Should check to see if this is true of NEWCARD
*/
psc->sc_mem_res = 0;
#else
==== //depot/projects/trustedbsd/priv/sys/dev/bce/if_bce.c#4 (text) ====
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.10 2006/10/13 05:18:03 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.16 2006/10/19 08:01:43 scottl Exp $");
/*
* The following controllers are supported by this driver:
@@ -276,7 +276,6 @@
/* */
/****************************************************************************/
static void bce_dma_map_addr (void *, bus_dma_segment_t *, int, int);
-static void bce_dma_map_tx_desc (void *, bus_dma_segment_t *, int, bus_size_t, int);
static int bce_dma_alloc (device_t);
static void bce_dma_free (struct bce_softc *);
static void bce_release_resources (struct bce_softc *);
@@ -300,7 +299,7 @@
static void bce_free_rx_chain (struct bce_softc *);
static void bce_free_tx_chain (struct bce_softc *);
-static int bce_tx_encap (struct bce_softc *, struct mbuf *, u16 *, u16 *, u32 *);
+static int bce_tx_encap (struct bce_softc *, struct mbuf **);
static void bce_start_locked (struct ifnet *);
static void bce_start (struct ifnet *);
static int bce_ioctl (struct ifnet *, u_long, caddr_t);
@@ -468,10 +467,10 @@
/* Allocate PCI memory resources. */
rid = PCIR_BAR(0);
sc->bce_res = bus_alloc_resource_any(
- dev, /* dev */
- SYS_RES_MEMORY, /* type */
- &rid, /* rid */
- RF_ACTIVE | PCI_RF_DENSE); /* flags */
+ dev, /* dev */
+ SYS_RES_MEMORY, /* type */
+ &rid, /* rid */
+ RF_ACTIVE | PCI_RF_DENSE); /* flags */
if (sc->bce_res == NULL) {
BCE_PRINTF(sc, "%s(%d): PCI memory allocation failed\n",
@@ -2131,135 +2130,24 @@
static void
bce_dma_map_addr(void *arg, bus_dma_segment_t *segs, int nseg, int error)
{
- struct bce_dmamap_arg *map_arg = arg;
- struct bce_softc *sc = map_arg->sc;
+ bus_addr_t *busaddr = arg;
/* Simulate a mapping failure. */
DBRUNIF(DB_RANDOMTRUE(bce_debug_dma_map_addr_failure),
- BCE_PRINTF(sc, "%s(%d): Simulating DMA mapping error.\n",
+ printf("bce: %s(%d): Simulating DMA mapping error.\n",
__FILE__, __LINE__);
error = ENOMEM);
/* Check for an error and signal the caller that an error occurred. */
- if (error || (nseg > map_arg->maxsegs)) {
- BCE_PRINTF(sc, "%s(%d): DMA mapping error! error = %d, "
- "nseg = %d, maxsegs = %d\n",
- __FILE__, __LINE__, error, nseg, map_arg->maxsegs);
- map_arg->maxsegs = 0;
- goto bce_dma_map_addr_exit;
- }
-
- map_arg->busaddr = segs->ds_addr;
-
-bce_dma_map_addr_exit:
- return;
-}
-
-
-/****************************************************************************/
-/* Map TX buffers into TX buffer descriptors. */
-/* */
-/* Given a series of DMA memory containting an outgoing frame, map the */
-/* segments into the tx_bd structure used by the hardware. */
-/* */
-/* Returns: */
-/* Nothing. */
-/****************************************************************************/
-static void
-bce_dma_map_tx_desc(void *arg, bus_dma_segment_t *segs,
- int nseg, bus_size_t mapsize, int error)
-{
- struct bce_dmamap_arg *map_arg;
- struct bce_softc *sc;
- struct tx_bd *txbd = NULL;
- int i = 0;
- u16 prod, chain_prod;
- u32 prod_bseq;
-#ifdef BCE_DEBUG
- u16 debug_prod;
-#endif
-
- map_arg = arg;
- sc = map_arg->sc;
-
if (error) {
- DBPRINT(sc, BCE_WARN, "%s(): Called with error = %d\n",
- __FUNCTION__, error);
+ printf("bce %s(%d): DMA mapping error! error = %d, "
+ "nseg = %d\n", __FILE__, __LINE__, error, nseg);
+ *busaddr = 0;
return;
}
- /* Signal error to caller if there's too many segments */
- if (nseg > map_arg->maxsegs) {
- DBPRINT(sc, BCE_WARN,
- "%s(): Mapped TX descriptors: max segs = %d, "
- "actual segs = %d\n",
- __FUNCTION__, map_arg->maxsegs, nseg);
-
- map_arg->maxsegs = 0;
- return;
- }
-
- /* prod points to an empty tx_bd at this point. */
- prod = map_arg->prod;
- chain_prod = map_arg->chain_prod;
- prod_bseq = map_arg->prod_bseq;
-
-#ifdef BCE_DEBUG
- debug_prod = chain_prod;
-#endif
-
- DBPRINT(sc, BCE_INFO_SEND,
- "%s(): Start: prod = 0x%04X, chain_prod = %04X, "
- "prod_bseq = 0x%08X\n",
- __FUNCTION__, prod, chain_prod, prod_bseq);
-
- /*
- * Cycle through each mbuf segment that makes up
- * the outgoing frame, gathering the mapping info
- * for that segment and creating a tx_bd to for
- * the mbuf.
- */
-
- txbd = &map_arg->tx_chain[TX_PAGE(chain_prod)][TX_IDX(chain_prod)];
-
- /* Setup the first tx_bd for the first segment. */
- txbd->tx_bd_haddr_lo = htole32(BCE_ADDR_LO(segs[i].ds_addr));
- txbd->tx_bd_haddr_hi = htole32(BCE_ADDR_HI(segs[i].ds_addr));
- txbd->tx_bd_mss_nbytes = htole16(segs[i].ds_len);
- txbd->tx_bd_vlan_tag_flags = htole16(map_arg->tx_flags |
- TX_BD_FLAGS_START);
- prod_bseq += segs[i].ds_len;
-
- /* Setup any remaing segments. */
- for (i = 1; i < nseg; i++) {
- prod = NEXT_TX_BD(prod);
- chain_prod = TX_CHAIN_IDX(prod);
-
- txbd = &map_arg->tx_chain[TX_PAGE(chain_prod)][TX_IDX(chain_prod)];
-
- txbd->tx_bd_haddr_lo = htole32(BCE_ADDR_LO(segs[i].ds_addr));
- txbd->tx_bd_haddr_hi = htole32(BCE_ADDR_HI(segs[i].ds_addr));
- txbd->tx_bd_mss_nbytes = htole16(segs[i].ds_len);
- txbd->tx_bd_vlan_tag_flags = htole16(map_arg->tx_flags);
-
- prod_bseq += segs[i].ds_len;
- }
-
- /* Set the END flag on the last TX buffer descriptor. */
- txbd->tx_bd_vlan_tag_flags |= htole16(TX_BD_FLAGS_END);
-
- DBRUN(BCE_INFO_SEND, bce_dump_tx_chain(sc, debug_prod, nseg));
-
- DBPRINT(sc, BCE_INFO_SEND,
- "%s(): End: prod = 0x%04X, chain_prod = %04X, "
- "prod_bseq = 0x%08X\n",
- __FUNCTION__, prod, chain_prod, prod_bseq);
-
- /* prod points to the last tx_bd at this point. */
- map_arg->maxsegs = nseg;
- map_arg->prod = prod;
- map_arg->chain_prod = chain_prod;
- map_arg->prod_bseq = prod_bseq;
+ *busaddr = segs->ds_addr;
+ return;
}
@@ -2277,17 +2165,17 @@
{
struct bce_softc *sc;
int i, error, rc = 0;
- struct bce_dmamap_arg map_arg;
+ bus_addr_t busaddr;
sc = device_get_softc(dev);
-
+
DBPRINT(sc, BCE_VERBOSE_RESET, "Entering %s()\n", __FUNCTION__);
/*
* Allocate the parent bus DMA tag appropriate for PCI.
*/
if (bus_dma_tag_create(NULL, /* parent */
- BCE_DMA_ALIGN, /* alignment */
+ 1, /* alignment */
BCE_DMA_BOUNDARY, /* boundary */
sc->max_bus_addr, /* lowaddr */
BUS_SPACE_MAXADDR, /* highaddr */
@@ -2345,26 +2233,23 @@
bzero((char *)sc->status_block, BCE_STATUS_BLK_SZ);
- map_arg.sc = sc;
- map_arg.maxsegs = 1;
-
error = bus_dmamap_load(
sc->status_tag, /* dmat */
sc->status_map, /* map */
sc->status_block, /* buf */
BCE_STATUS_BLK_SZ, /* buflen */
bce_dma_map_addr, /* callback */
- &map_arg, /* callbackarg */
+ &busaddr, /* callbackarg */
BUS_DMA_NOWAIT); /* flags */
- if(error || (map_arg.maxsegs == 0)) {
+ if (error) {
BCE_PRINTF(sc, "%s(%d): Could not map status block DMA memory!\n",
__FILE__, __LINE__);
rc = ENOMEM;
goto bce_dma_alloc_exit;
}
- sc->status_block_paddr = map_arg.busaddr;
+ sc->status_block_paddr = busaddr;
/* DRC - Fix for 64 bit addresses. */
DBPRINT(sc, BCE_INFO, "status_block_paddr = 0x%08X\n",
(u32) sc->status_block_paddr);
@@ -2408,26 +2293,23 @@
bzero((char *)sc->stats_block, BCE_STATS_BLK_SZ);
- map_arg.sc = sc;
- map_arg.maxsegs = 1;
-
error = bus_dmamap_load(
sc->stats_tag, /* dmat */
sc->stats_map, /* map */
sc->stats_block, /* buf */
BCE_STATS_BLK_SZ, /* buflen */
bce_dma_map_addr, /* callback */
- &map_arg, /* callbackarg */
+ &busaddr, /* callbackarg */
BUS_DMA_NOWAIT); /* flags */
- if(error || (map_arg.maxsegs == 0)) {
+ if(error) {
BCE_PRINTF(sc, "%s(%d): Could not map statistics block DMA memory!\n",
__FILE__, __LINE__);
rc = ENOMEM;
goto bce_dma_alloc_exit;
}
- sc->stats_block_paddr = map_arg.busaddr;
+ sc->stats_block_paddr = busaddr;
/* DRC - Fix for 64 bit address. */
DBPRINT(sc,BCE_INFO, "stats_block_paddr = 0x%08X\n",
(u32) sc->stats_block_paddr);
@@ -2471,26 +2353,23 @@
goto bce_dma_alloc_exit;
}
- map_arg.maxsegs = 1;
- map_arg.sc = sc;
-
error = bus_dmamap_load(
sc->tx_bd_chain_tag, /* dmat */
sc->tx_bd_chain_map[i], /* map */
sc->tx_bd_chain[i], /* buf */
BCE_TX_CHAIN_PAGE_SZ, /* buflen */
bce_dma_map_addr, /* callback */
- &map_arg, /* callbackarg */
+ &busaddr, /* callbackarg */
BUS_DMA_NOWAIT); /* flags */
- if(error || (map_arg.maxsegs == 0)) {
+ if (error) {
BCE_PRINTF(sc, "%s(%d): Could not map TX descriptor chain DMA memory!\n",
__FILE__, __LINE__);
rc = ENOMEM;
goto bce_dma_alloc_exit;
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the trustedbsd-cvs
mailing list