Date: Sat, 17 Jul 2010 12:32:22 GMT From: Alexandre Fiveg <afiveg@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 181086 for review Message-ID: <201007171232.o6HCWM8Y042342@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@181086?ac=10 Change 181086 by afiveg@cottonmouth on 2010/07/17 12:32:01 Start with port to ixgbe: initial details, not important. Affected files ... .. //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-bpf.c#13 edit .. //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-int.h#13 edit .. //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap.c#16 edit .. //depot/projects/soc2010/ringmap/current/contrib/libpcap/ringmap_pcap.c#21 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_lem.c#28 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_8254.c#27 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_8254.h#25 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_e1000.h#17 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ringmap_ixgbe.c#1 add .. //depot/projects/soc2010/ringmap/current/sys/modules/em/Makefile#10 edit .. //depot/projects/soc2010/ringmap/current/sys/modules/ringmap/Makefile#3 edit .. //depot/projects/soc2010/ringmap/current/sys/modules/ringmap/Makefile.em#1 add .. //depot/projects/soc2010/ringmap/current/sys/modules/ringmap/Makefile.ixgbe#1 add .. //depot/projects/soc2010/ringmap/current/sys/net/ringmap.c#32 edit .. //depot/projects/soc2010/ringmap/current/sys/net/ringmap.h#32 edit .. //depot/projects/soc2010/ringmap/current/sys/net/ringmap_kernel.h#3 edit .. //depot/projects/soc2010/ringmap/scripts/build_ringmap.sh#16 edit .. //depot/projects/soc2010/ringmap/scripts/set_ringmap.sh#17 edit .. //depot/projects/soc2010/ringmap/scripts/tailf_ringmap_msgs.sh#11 edit .. //depot/projects/soc2010/ringmap/tests/libpcap/easy_pcap.c#10 edit .. //depot/projects/soc2010/ringmap/tests/ringmap/close.c#3 edit .. //depot/projects/soc2010/ringmap/tests/ringmap/ioctl.c#3 edit .. //depot/projects/soc2010/ringmap/tests/ringmap/main.c#5 edit .. //depot/projects/soc2010/ringmap/tests/ringmap/mmap.c#5 edit .. //depot/projects/soc2010/ringmap/tests/ringmap/open.c#5 edit Differences ... ==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-bpf.c#13 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-int.h#13 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap.c#16 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/ringmap_pcap.c#21 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_lem.c#28 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_8254.c#27 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_8254.h#25 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_e1000.h#17 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/sys/modules/em/Makefile#10 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/sys/modules/ringmap/Makefile#3 (text+ko) ==== @@ -1,30 +1,7 @@ -# $FreeBSD: src/sys/modules/em/Makefile,v 1.16 2010/03/29 23:36:34 jfv Exp $ -.PATH: ${.CURDIR}/../../dev/e1000 : ${.CURDIR}/../../net +.if defined(EM_RINGMAP) +.include "Makefile.em" +.endif -KMOD = if_ringmap -SRCS = device_if.h bus_if.h pci_if.h opt_inet.h -SRCS += $(CORE_SRC) $(LEGACY_SRC) $(RINGMAP_SRC) -SRCS += $(COMMON_SHARED) $(LEGACY_SHARED) $(PCIE_SHARED) -CORE_SRC = if_em.c e1000_osdep.c - -RINGMAP_SRC = ringmap.c ringmap_8254.c - -# This is the Legacy, pre-PCIE source, it can be -# undefined when using modular driver if not needed -LEGACY_SRC += if_lem.c -COMMON_SHARED = e1000_api.c e1000_phy.c e1000_nvm.c e1000_mac.c e1000_manage.c -PCIE_SHARED = e1000_80003es2lan.c e1000_ich8lan.c e1000_82571.c e1000_82575.c -LEGACY_SHARED = e1000_82540.c e1000_82542.c e1000_82541.c e1000_82543.c - -CFLAGS += -g -I${.CURDIR}/../../dev/e1000 -DRINGMAP -DE1000_RINGMAP - -# DEVICE_POLLING for a non-interrupt-driven method -#CFLAGS += -DDEVICE_POLLING - -clean: - rm -f device_if.h bus_if.h pci_if.h setdef* - rm -f *.o *.kld *.ko - rm -f @ machine - rm -f ${CLEANFILES} - -.include <bsd.kmod.mk> +.if defined(IXGBE_RINGMAP) +.include "Makefile.ixgbe" +.endif ==== //depot/projects/soc2010/ringmap/current/sys/net/ringmap.c#32 (text+ko) ==== @@ -25,6 +25,8 @@ #include <vm/vm.h> #include <vm/pmap.h> #include <vm/vm_map.h> +#include <vm/vm_kern.h> +#include <vm/vm_object.h> #include <vm/vm_param.h> #include <vm/vm_kern.h> @@ -47,7 +49,7 @@ d_close_t ringmap_close; d_ioctl_t ringmap_ioctl; d_read_t ringmap_read; -d_mmap_single_t ringmap_mmap; +d_mmap_single_t ringmap_mmap_single; static struct cdevsw ringmap_devsw = { .d_version = D_VERSION, @@ -55,7 +57,7 @@ .d_close = ringmap_close, .d_ioctl = ringmap_ioctl, .d_read = ringmap_read, - .d_mmap_single = ringmap_mmap, + .d_mmap_single = ringmap_mmap_single, .d_name = "ringmap_cdev" }; @@ -270,16 +272,41 @@ int -ringmap_mmap(struct cdev *cdev, vm_ooffset_t *offset, +ringmap_mmap_single(struct cdev *cdev, vm_ooffset_t *offset, vm_size_t size, struct vm_object **object, int nprot) { + struct ringmap *rm = NULL; + struct capt_object *co = NULL; + vm_object_t obj; vm_map_entry_t entry; vm_pindex_t pindex; vm_prot_t prot; boolean_t wired; - vm_map_lookup(&kmem_map, addr, VM_PROT_ALL, + + RINGMAP_FUNC_DEBUG(start); + + + rm = get_ringmap_p(get_device_p(cdev)); + if ( rm == NULL ) { + RINGMAP_ERROR(Null pointer to ringmap structure); + + return (EIO); + } + + SLIST_FOREACH(co, &rm->object_list, objects) { + if (co->td == curthread){ + break; + } + } + + if ((co == NULL) || (co->ring == NULL)){ + RINGMAP_ERROR(Null pointer); + return (EIO); + } + + vm_map_lookup(&kmem_map, (vm_offset_t)co->ring, VM_PROT_ALL, &entry, &obj, &pindex, &prot, &wired); vm_map_lookup_done(kmem_map, entry); @@ -289,7 +316,12 @@ RINGMAP_FUNC_DEBUG(Got other obj); } - object = obj; + object = &obj; + + + RINGMAP_FUNC_DEBUG(start); + + return (0); } ==== //depot/projects/soc2010/ringmap/current/sys/net/ringmap.h#32 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/sys/net/ringmap_kernel.h#3 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/scripts/build_ringmap.sh#16 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/scripts/set_ringmap.sh#17 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/scripts/tailf_ringmap_msgs.sh#11 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/tests/libpcap/easy_pcap.c#10 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/tests/ringmap/close.c#3 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/tests/ringmap/ioctl.c#3 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/tests/ringmap/main.c#5 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/tests/ringmap/mmap.c#5 (text+ko) ==== @@ -17,6 +17,8 @@ #include <sys/socket.h> #include <sys/time.h> #include <sys/proc.h> +#include <sys/conf.h> + #include <sys/mbuf.h> #include <sys/linker.h> ==== //depot/projects/soc2010/ringmap/tests/ringmap/open.c#5 (text+ko) ====
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201007171232.o6HCWM8Y042342>