From owner-p4-projects@FreeBSD.ORG Sun Jul 11 01:47:53 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 472831065673; Sun, 11 Jul 2010 01:47:53 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0B311106566B for ; Sun, 11 Jul 2010 01:47:53 +0000 (UTC) (envelope-from mfarrag@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D4C618FC18 for ; Sun, 11 Jul 2010 01:47:52 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6B1lqsS049676 for ; Sun, 11 Jul 2010 01:47:52 GMT (envelope-from mfarrag@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6B1lq0R049674 for perforce@freebsd.org; Sun, 11 Jul 2010 01:47:52 GMT (envelope-from mfarrag@FreeBSD.org) Date: Sun, 11 Jul 2010 01:47:52 GMT Message-Id: <201007110147.o6B1lq0R049674@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mfarrag@FreeBSD.org using -f From: Mohammed Farrag To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180739 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 01:47:53 -0000 http://p4web.freebsd.org/@@180739?ac=10 Change 180739 by mfarrag@mfarrag_gsoc on 2010/07/11 01:47:17 Submitted by: Mohammed Farrag Affected files ... .. //depot/projects/soc2010/kernel_theme/etc/kernel.gateway#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Sun Jul 11 03:09:22 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6D111106567A; Sun, 11 Jul 2010 03:09:22 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 279E51065674 for ; Sun, 11 Jul 2010 03:09:22 +0000 (UTC) (envelope-from afiveg@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 146088FC0C for ; Sun, 11 Jul 2010 03:09:22 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6B39LP8057898 for ; Sun, 11 Jul 2010 03:09:21 GMT (envelope-from afiveg@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6B39Lr2057896 for perforce@freebsd.org; Sun, 11 Jul 2010 03:09:21 GMT (envelope-from afiveg@FreeBSD.org) Date: Sun, 11 Jul 2010 03:09:21 GMT Message-Id: <201007110309.o6B39Lr2057896@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to afiveg@FreeBSD.org using -f From: Alexandre Fiveg To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180741 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 03:09:22 -0000 http://p4web.freebsd.org/@@180741?ac=10 Change 180741 by afiveg@cottonmouth on 2010/07/11 03:08:49 d_mmap is eliminated from ringmap because of very strange behavior. Now: user-space process calls read(/dev/ringmap ... ) in order get physical addres of ring. Then by calling mmap(/dev/mem, .... , offset=ring_phys_addr) the ring will be mapped into user-space. Affected files ... .. //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-bpf.c#8 edit .. //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-int.h#8 edit .. //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap.c#10 edit .. //depot/projects/soc2010/ringmap/current/contrib/libpcap/ringmap_pcap.c#15 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_lem.c#23 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_8254.c#22 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_8254.h#20 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_e1000.h#12 edit .. //depot/projects/soc2010/ringmap/current/sys/net/ringmap.c#26 edit .. //depot/projects/soc2010/ringmap/current/sys/net/ringmap.h#26 edit .. //depot/projects/soc2010/ringmap/scripts/build_ringmap.sh#10 edit .. //depot/projects/soc2010/ringmap/scripts/set_ringmap.sh#11 edit .. //depot/projects/soc2010/ringmap/scripts/tailf_ringmap_msgs.sh#6 edit .. //depot/projects/soc2010/ringmap/tests/ringmap/main.c#4 edit .. //depot/projects/soc2010/ringmap/tests/ringmap/mmap.c#4 edit .. //depot/projects/soc2010/ringmap/tests/ringmap/open.c#4 edit .. //depot/projects/soc2010/ringmap/tests/ringmap/tests.h#4 edit Differences ... ==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-bpf.c#8 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-int.h#8 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap.c#10 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/ringmap_pcap.c#15 (text+ko) ==== @@ -56,6 +56,7 @@ char dev_path[1024]; struct ring tmp_ring; off_t memoffset = 0; + vm_paddr_t ring; bus_addr_t rspp; RINGMAP_FUNC_DEBUG(start); @@ -84,13 +85,21 @@ ** Here we map the ring structure into the ** memory space of current process. **/ + if (read(ringmap_cdev_fd, &ring, sizeof(vm_paddr_t)) == -1) { + RINGMAP_ERROR(Can not read phys addr of ring from kernel); + return (-1); + } +#ifdef __RINGMAP_DEB + printf("[%s] Phys addr of ring 0x%X\n", __func__, ring); +#endif + tmp_addr = mmap( 0, /* Kernel gives us the address */ sizeof(struct ring), /* Number of bytes we are mapping */ PROT_WRITE|PROT_READ, /* We want both read and write */ MAP_SHARED, /* Changes shoud be visible in kernel */ - ringmap_cdev_fd, /* file decriptor */ - 0); + devmem_fd, /* /dev/mem device */ + ring); /* offset = phys addr of ring */ if (tmp_addr == MAP_FAILED){ RINGMAP_ERROR("Mapping of Ring Pointers structure failed! Exit!"); return -1; @@ -101,6 +110,10 @@ RINGMAP_ERROR("Wrong size of ring buffer!"); return -1; } + if (p->ring->pid != getpid() ){ + RINGMAP_ERROR(Wrong ring was mapped! Exit!); + return (-1); + } #if (__RINGMAP_DEB) printf("Virtual address of ring is 0x%X\n", p->ring); @@ -109,6 +122,8 @@ for(i=0 ;i < SLOTS_NUMBER; i++){ PRINT_PACKET_ADDR(p->ring, i); } + + PRINT_RING_PTRS(p->ring); #endif /* @@ -242,6 +257,7 @@ if ( RING_IS_EMPTY(ring) ) { RINGMAP_FUNC_DEBUG(Ring is empty. Sleep...); + PRINT_RING_PTRS(ring); /* Sleep and wait for new incoming packets */ ioctl(ringmap_cdev_fd, IOCTL_SLEEP_WAIT); goto again; @@ -275,14 +291,13 @@ pkthdr.caplen = pkthdr.len = mb->m_len; datap = (caddr_t)U_PACKET(ring, curr_slot); - ring->slot[curr_slot].is_ok=0; ring->pkt_counter++; --ws; (*callback)(user, &pkthdr, datap); #ifdef __RINGMAP_DEB - PRINT_SLOT(ring, ring->cur_slot_user, datap); + PRINT_SLOT(ring, ring->cur_slot_user); #endif out: ==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_lem.c#23 (text+ko) ==== @@ -1382,6 +1382,7 @@ { struct adapter *adapter = context; struct ifnet *ifp = adapter->ifp; + struct capt_instance *ci = NULL; if (ifp->if_drv_flags & IFF_DRV_RUNNING) { #ifdef RINGMAP @@ -1392,8 +1393,12 @@ taskqueue_enqueue(adapter->tq, &adapter->rxtx_task); #ifdef RINGMAP adapter->rm->funcs->sync_head(adapter->dev); - - wakeup(adapter->rm); + + SLIST_FOREACH(ci, &adapter->rm->instance_list, next_instance) { + if (RING_NOT_EMPTY(ci->ring)){ + wakeup(ci->ring); + } + } } #endif ==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_8254.c#22 (text+ko) ==== @@ -19,40 +19,38 @@ #include "ringmap_8254.h" int rm_8254_set_ringmap_to_adapter(device_t, struct ringmap *); -int rm_8254_init_slots(struct ring *, device_t); struct ringmap * rm_8254_get_ringmap_p(device_t); device_t rm_8254_get_device_p(struct cdev *); void rm_8254_enable_intr(device_t); void rm_8254_disable_intr(device_t); -int rm_8254_set_slot(struct ring *, struct adapter *, unsigned int); +int rm_8254_set_slot(struct ring *, device_t, unsigned int); void rm_8254_interrupt(void *); void rm_8254_delayed_interrupt(void *); int rm_8254_print_ring_pointers(struct adapter *, struct ring *); -void rm_8254_sync_head_tail(device_t, struct ring *); -void rm_8254_sync_tail(device_t, struct ring *); +void rm_8254_sync_head_tail(device_t); +void rm_8254_sync_tail(device_t); void rm_8254_sync_head(device_t); void rm_8254_delayed_interrupt_per_packet(device_t, int); struct ring * rm_8254_find_next(struct adapter *); -struct ring *rm_8254_alloc_ring(device_t); extern devclass_t em_devclass; extern void lem_enable_intr(struct adapter *); extern void lem_disable_intr(struct adapter *); extern void ringmap_print_slot(struct ring *, unsigned int); +extern void print_capt_inst(struct capt_instance *); struct ringmap_functions ringmap_f = { rm_8254_set_ringmap_to_adapter, rm_8254_enable_intr, rm_8254_disable_intr, - rm_8254_init_slots, rm_8254_interrupt, rm_8254_delayed_interrupt, rm_8254_delayed_interrupt_per_packet, rm_8254_sync_head_tail, rm_8254_sync_tail, rm_8254_sync_head, - rm_8254_alloc_ring, + rm_8254_set_slot, rm_8254_get_ringmap_p, rm_8254_get_device_p }; @@ -68,20 +66,33 @@ * 2. SYNC_TAIL: RDT = ring->userrp */ void -rm_8254_sync_head_tail(device_t dev, struct ring *ring) +rm_8254_sync_head_tail(device_t dev) { - rm_8254_sync_tail(dev, ring); + RINGMAP_FUNC_DEBUG(start); + rm_8254_sync_tail(dev); rm_8254_sync_head(dev); + RINGMAP_FUNC_DEBUG(end); } void -rm_8254_sync_tail(device_t dev, struct ring *ring) +rm_8254_sync_tail(device_t dev) { struct adapter *adapter; adapter = (struct adapter *)device_get_softc(dev); + struct ring *ring = NULL; + + RINGMAP_FUNC_DEBUG(start); - RINGMAP_HW_SYNC_TAIL(adapter, ring); /* SW_TAIL ==> HW_TAIL */ + ring = rm_8254_find_next(adapter); + +#ifdef __RINGMAP_DEB + printf("Next ring is 0x%X\n", (unsigned int)ring); +#endif + + RINGMAP_HW_SYNC_TAIL(adapter, ring); + + RINGMAP_FUNC_DEBUG(end); } @@ -91,6 +102,8 @@ struct capt_instance *ci = NULL; struct adapter *adapter; + RINGMAP_FUNC_DEBUG(start); + adapter = (struct adapter *)device_get_softc(dev); RINGMAP_LOCK(adapter->rm); @@ -98,16 +111,22 @@ SLIST_FOREACH(ci, &adapter->rm->instance_list, next_instance) { if (ci->ring != NULL) { RINGMAP_HW_SYNC_HEAD(adapter, ci->ring); /* SW_TAIL ==> HW_HEAD */ +#ifdef __RINGMAP_DEB + print_capt_inst(ci); + PRINT_RING_PTRS(ci->ring); +#endif } } RINGMAP_UNLOCK(adapter->rm); + + RINGMAP_FUNC_DEBUG(end); } /* * This should be called from ISR. Other interrupts are disallowed! - * It means the functions must be as small as possible + * It means the functions must be as small as possible */ void rm_8254_interrupt(void *arg) @@ -136,7 +155,7 @@ #endif if (ci->ring != NULL) { /* TODO: find the next ring */ - rm_8254_sync_tail(adapter->dev, rm_8254_find_next(adapter)); + rm_8254_sync_tail(adapter->dev); #ifdef RINGMAP_TIMESTAMP getmicrotime(&ci->ring->last_ts); #endif @@ -161,7 +180,7 @@ rdt = ci->ring->userrp; dist = R_DISTANCE(rdh, rdt); if (dist <= min_dist) { - dist = min_dist; + min_dist = dist; min_ci = ci; } } @@ -193,7 +212,7 @@ #endif #ifdef __RINGMAP_DEB - PRINT_SLOT((ci->ring), (slot_num), adapter); + PRINT_SLOT((ci->ring), (slot_num)); #endif } } @@ -203,92 +222,12 @@ } -struct ring * -rm_8254_alloc_ring(device_t dev) +int +rm_8254_set_slot(struct ring *ring, device_t dev, unsigned int slot_num) { - struct ring *ring; - - /* - * Allocate memory for ring structure - * Use contigmalloc(9) to get PAGE_SIZE alignment that is needed - * for memory mapping. - */ - ring = (struct ring *) contigmalloc (sizeof(struct ring), - M_DEVBUF, M_ZERO, 0, -1L, PAGE_SIZE, 0); - if (ring == NULL) { - RINGMAP_ERROR(Can not allocate space for ring structure); - - return (NULL); - } - - if (rm_8254_init_slots(ring, dev) == -1) { - RINGMAP_ERROR(The ring is not initialized. Device will not be opened!); - contigfree(ring, sizeof(struct ring), M_DEVBUF); - - return (NULL); - } - - return (ring); -} - - -/* - * Get adapter structure of device and initialize the - * pointers in ring (mbufs, packets, decriptors) with values - * got from adapters structure. - * Returns 0 by success, -1 otherwise. - */ -int -rm_8254_init_slots(struct ring *ring, device_t dev) -{ - unsigned int slot_num; - struct adapter *adapter; - - RINGMAP_FUNC_DEBUG(start); - + struct adapter *adapter = NULL; adapter = (struct adapter *)device_get_softc(dev); - /* Check some pointers in the adapter structure */ - if (adapter->rx_buffer_area == NULL){ - RINGMAP_ERROR(mbufs array is not allocated) - return (-1); - } - if (adapter->rx_desc_base == NULL){ - RINGMAP_ERROR(descriptors array is not allocated) - return (-1); - } - if (adapter->num_rx_desc != SLOTS_NUMBER){ - RINGMAP_ERROR(SLOTS_NUMBER should be equal to the num_rx_desc); - return (-1); - } - -// RINGMAP_HW_WRITE_TAIL(adapter, -// (R_MODULO(RINGMAP_HW_READ_HEAD(adapter) - 1))); - - SW_TAIL(ring) = RINGMAP_HW_READ_TAIL(adapter); - - /* Set ring pointers */ - for (slot_num = 0 ; slot_num < SLOTS_NUMBER ; slot_num ++){ - if (rm_8254_set_slot(ring, adapter, slot_num) == -1){ - RINGMAP_ERROR(Ring initialization failed!); - return (-1); - } -#if (__RINGMAP_DEB) - ringmap_print_slot(ring, slot_num); -#endif - } - - RINGMAP_FUNC_DEBUG(end); - - return (0); -} - - -int -rm_8254_set_slot(struct ring *ring, struct adapter *adapter, - unsigned int slot_num) -{ - #if (__RINGMAP_DEB) printf("[%s] Set slot: %d\n", __func__, slot_num); #endif @@ -331,8 +270,6 @@ } - - /* * Disable interrupts on adapter */ ==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_8254.h#20 (text+ko) ==== @@ -23,17 +23,17 @@ #define RINGMAP_HW_READ_HEAD(adapter) \ - RINGMAP_HW_READ_REG(&adapter->hw, E1000_RDH(0)) + RINGMAP_HW_READ_REG(&(adapter)->hw, E1000_RDH(0)) #define RINGMAP_HW_SYNC_HEAD(adapter, ring) \ SW_HEAD(ring) = RINGMAP_HW_READ_HEAD(adapter); #define RINGMAP_HW_SYNC_TAIL(adapter, ring) \ - RINGMAP_HW_WRITE_REG(&adapter->hw, E1000_RDT(0), ring->userrp) + RINGMAP_HW_WRITE_REG(&(adapter)->hw, E1000_RDT(0), (ring)->userrp) #define RINGMAP_HW_WRITE_TAIL(adapter, val) \ - RINGMAP_HW_WRITE_REG(&adapter->hw, E1000_RDT(0), val) + RINGMAP_HW_WRITE_REG(&(adapter)->hw, E1000_RDT(0), (val)) #define RINGMAP_HW_READ_TAIL(adapter) \ - RINGMAP_HW_READ_REG(&adapter->hw, E1000_RDT(0)) + RINGMAP_HW_READ_REG(&(adapter)->hw, E1000_RDT(0)) ==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_e1000.h#12 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/sys/net/ringmap.c#26 (text+ko) ==== @@ -36,7 +36,6 @@ int ringmap_attach (device_t, struct ringmap_functions *); int ringmap_detach (device_t); void ringmap_close_cb (void *data); -void ringmap_print_slot(struct ring *, unsigned int); void clear_capt_instance(void *); void print_capt_inst(struct capt_instance *); @@ -46,7 +45,8 @@ d_open_t ringmap_open; d_close_t ringmap_close; d_ioctl_t ringmap_ioctl; -d_mmap_t ringmap_mmap; +d_read_t ringmap_read; +//d_mmap_t ringmap_mmap; /* * Character Device for access on if_em driver structures @@ -56,7 +56,8 @@ .d_open = ringmap_open, .d_close = ringmap_close, .d_ioctl = ringmap_ioctl, - .d_mmap = ringmap_mmap, + .d_read = ringmap_read, +// .d_mmap = ringmap_mmap, .d_name = "ringmap_cdev" }; @@ -97,10 +98,6 @@ UID_ROOT, GID_WHEEL, 0666, RINGMAP_DEVICE"%d", device_get_unit(dev)); - /* Device open counter. Should count how many times the char device was - * opened */ - rm->open_cnt = 0; - /* Store adapters device structure */ rm->dev = dev; @@ -110,7 +107,7 @@ /* Init the mutex to protecting our data */ RINGMAP_LOCK_INIT(rm, device_get_nameunit(dev)); - /* set the pointer to ringmap in the adapters structure */ + /* set the pointer to ringmap into the adapters structure */ rm->funcs->set_ringmap_to_adapter(dev, rm); RINGMAP_FUNC_DEBUG(end); @@ -143,7 +140,6 @@ RINGMAP_LOCK_DESTROY(rm); - // contigfree(rm->funcs, sizeof(struct ringmap_functions), M_DEVBUF); contigfree(rm, sizeof(struct ringmap), M_DEVBUF); RINGMAP_FUNC_DEBUG(end); @@ -160,11 +156,17 @@ int ringmap_open(struct cdev *cdev, int flag, int otyp, struct thread *td) { - int err = 0; + int err = 0, i = 0; struct ringmap *rm = NULL; + struct ring *ring = NULL; struct capt_instance *ci = NULL; RINGMAP_FUNC_DEBUG(start); +#ifdef __RINGMAP_DEB + printf("cdev = 0x%X, td = %d\n", + (unsigned int)cdev, + td->td_proc->p_pid); +#endif /* a little magic */ rm = get_ringmap_p(get_device_p(cdev)); @@ -174,51 +176,84 @@ return (EIO); } + rm->funcs->disable_intr(rm->dev); + RINGMAP_LOCK(rm); + + /* check: the current thread shouldn't open(2) more than one time */ + if (rm->open_cnt) { + SLIST_FOREACH(ci, &rm->instance_list, next_instance) { + if (ci->td == td) { + RINGMAP_ERROR(Device is opened!); + + err = EIO; + goto out; + } + } + } + /* - * crete the capturing instance wich will presents - * current thread and packets ring + * Allocate memory for ring structure Use contigmalloc(9) to get PAGE_SIZE + * alignment that is needed for memory mapping. */ - MALLOC(ci, struct capt_instance *, - sizeof(struct capt_instance), M_DEVBUF, (M_ZERO | M_WAITOK)); - if ( ci == NULL ){ - return (EIO); + ring = (struct ring *) contigmalloc (sizeof(struct ring), + M_DEVBUF, M_ZERO, 0, -1L, PAGE_SIZE, 0); + if (ring == NULL) { + RINGMAP_ERROR(Can not allocate space for ring); + + err = EIO; + goto out; + } + for (i = 0 ; i < SLOTS_NUMBER ; i++){ + if (rm->funcs->set_slot(ring, rm->dev, i) == -1){ + RINGMAP_ERROR(Ring initialization failed!); + contigfree(ring, sizeof(struct ring), M_DEVBUF); + + err = EIO; + goto out; + } } /* - * I think it is safe to disable interupts while we allocate - * allocate memory for oure structures + * create the capturing instance wich will represent + * current thread and packets ring */ - rm->funcs->disable_intr(rm->dev); + MALLOC( ci, struct capt_instance *, + sizeof(struct capt_instance), M_DEVBUF, (M_ZERO | M_WAITOK)); + if ( ci == NULL ){ + contigfree(ring, sizeof(struct ring), M_DEVBUF); - RINGMAP_LOCK(rm); + err = EIO; + goto out; + } - /* Allocate ring */ - ci->ring = rm->funcs->alloc_ring(rm->dev); - if ( ci->ring == NULL ) { - RINGMAP_ERROR(The ring is not allocated); - - err = EIO; goto out; - } + ci->ring = ring; ci->ring->size = SLOTS_NUMBER; ci->td = td; ci->rm = rm; + ci->ring->pid = ci->td->td_proc->p_pid; + SLIST_INSERT_HEAD(&rm->instance_list, ci, next_instance); if ( devfs_set_cdevpriv((void *)ci, clear_capt_instance) ) { - RINGMAP_ERROR(The pointer to the private data is not set!); - err = EIO; goto out; + RINGMAP_ERROR(Can not store private data!); + FREE(ci, M_DEVBUF); + contigfree(ring, sizeof(struct ring), M_DEVBUF); + + err = EIO; + goto out; } - rm->open_cnt++; - + rm->funcs->sync_head_tail(rm->dev); #ifdef __RINGMAP_DEB print_capt_inst(ci); -#endif + PRINT_RING_PTRS(ci->ring); +#endif + + rm->open_cnt++; out: RINGMAP_UNLOCK(rm); - rm->funcs->enable_intr(rm->dev); RINGMAP_FUNC_DEBUG(end); @@ -235,6 +270,12 @@ RINGMAP_FUNC_DEBUG(start); +#ifdef __RINGMAP_DEB + printf("cdev = 0x%X, td = %d\n", + (unsigned int)cdev, + td->td_proc->p_pid); +#endif + rm = get_ringmap_p(get_device_p(cdev)); RINGMAP_LOCK(rm); @@ -243,15 +284,14 @@ #ifdef __RINGMAP_DEB print_capt_inst(ci); -#endif - +#endif #ifdef __RINGMAP_DEB SLIST_FOREACH(ki, &rm->instance_list, next_instance) { printf("[%s] Aufter dealocation: ", __func__); print_capt_inst(ki); } -#endif +#endif RINGMAP_UNLOCK(rm); @@ -260,32 +300,18 @@ return (0); } - -int -ringmap_mmap(struct cdev *cdev, vm_ooffset_t offset, vm_paddr_t *paddr, - int nprot, vm_memattr_t *memattr) +int +ringmap_read(struct cdev *cdev, struct uio *uio, int ioflag) { - int err = 0; struct ringmap *rm = NULL; struct capt_instance *ci = NULL; - pid_t pid = 0; + vm_paddr_t phys_ring; - pid = curthread->td_proc->p_pid; + RINGMAP_FUNC_DEBUG(end); - RINGMAP_FUNC_DEBUG(start); - /* Get pointer to the ringmap structure */ rm = get_ringmap_p(get_device_p(cdev)); - - /* Check protections */ - if (nprot & PROT_EXEC) { - RINGMAP_WARN("PROT_EXEC ist set"); - - err = ERESTART; goto out; - } - RINGMAP_LOCK(rm); - if (devfs_get_cdevpriv((void **)&ci)) { SLIST_FOREACH(ci, &rm->instance_list, next_instance) { if ( ci->td == curthread) @@ -293,79 +319,151 @@ } } - *paddr = vtophys(ci->ring); + if (ci->td != curthread ){ + RINGMAP_ERROR(Wrong capturing object!); + return(EIO); + } + + phys_ring = vtophys(ci->ring); +#ifdef __RINGMAP_DEB + print_capt_inst(ci); + PRINT_RING_PTRS(ci->ring); + printf("[%s] phys addr of ring 0x%X\n", __func__, phys_ring); +#endif -out: - RINGMAP_UNLOCK(rm); + uiomove(&phys_ring, sizeof(phys_ring), uio); RINGMAP_FUNC_DEBUG(end); - return(err); + return (0); } +//int +//ringmap_mmap(struct cdev *cdev, vm_ooffset_t offset, vm_paddr_t *paddr, +// int nprot, vm_memattr_t *memattr) +//{ +// int err = 0; +// struct ringmap *rm = NULL; +// struct capt_instance *ci = NULL; +// pid_t pid = 0; +// +// pid = curthread->td_proc->p_pid; +// +// RINGMAP_FUNC_DEBUG(start); +// +// /* Get pointer to the ringmap structure */ +// rm = get_ringmap_p(get_device_p(cdev)); +// +// rm->funcs->disable_intr(rm->dev); +// RINGMAP_LOCK(rm); +// +// if (devfs_get_cdevpriv((void **)&ci)) { +// SLIST_FOREACH(ci, &rm->instance_list, next_instance) { +// if ( ci->td == curthread) +// break; +// } +// } +//#ifdef __RINGMAP_DEB +// print_capt_inst(ci); +// PRINT_RING_PTRS(ci->ring); +// printf("[%s] phys addr of ring 0x%X\n", __func__, vtophys(ci->ring)); +//#endif +// +// *paddr = vtophys(ci->ring); +// +// RINGMAP_UNLOCK(rm); +// rm->funcs->enable_intr(rm->dev); +// +// RINGMAP_FUNC_DEBUG(end); +// +// return(err); +//} + int ringmap_ioctl (struct cdev *cdev, u_long cmd, caddr_t data, int fflag, struct thread *td) { int err = 0, err_sleep = err_sleep; - struct ringmap *ringmap = NULL; + struct ringmap *rm = NULL; struct capt_instance *ci; RINGMAP_IOCTL(start); +#ifdef __RINGMAP_DEB + printf("cdev = 0x%X, td = %d\n", + (unsigned int)cdev, + td->td_proc->p_pid); +#endif + /* Eliminate it */ - ringmap = get_ringmap_p(get_device_p(cdev)); - if ( ringmap == NULL ){ + rm = get_ringmap_p(get_device_p(cdev)); + if ( rm == NULL ){ RINGMAP_ERROR(NULL pointer. ioctl can not be accomplished); - /* TODO: look if ENODEV is a correctly for this case */ + /* TODO: look whether ENODEV is a correctly for this case */ return(ENODEV); } + RINGMAP_LOCK(rm); if ( devfs_get_cdevpriv((void **)&ci) ) { RINGMAP_IOCTL(Error! Can not get private date!) return (ENODEV); } + if (ci->td != curthread){ + + RINGMAP_IOCTL(Wrong private data!); + SLIST_FOREACH(ci, &rm->instance_list, next_instance) { + if ( ci->td == curthread) + break; + } + } + RINGMAP_UNLOCK(rm); + switch( cmd ){ /* Enable Interrupts */ case IOCTL_ENABLE_INTR: - ringmap->funcs->enable_intr(ringmap->dev); + rm->funcs->enable_intr(rm->dev); RINGMAP_IOCTL(interrupts schould be enabled); break; /* Disable Interrupts */ case IOCTL_DISABLE_INTR: - ringmap->funcs->disable_intr(ringmap->dev); + rm->funcs->disable_intr(rm->dev); RINGMAP_IOCTL(interrupts schould be disabled); break; /* Sleep and wait for new packets */ case IOCTL_SLEEP_WAIT: - RINGMAP_IOCTL(Sleep and wait for new packets); ci->ring->user_wait_kern++; - ringmap->funcs->sync_head_tail(ringmap->dev, ci->ring); + rm->funcs->sync_head_tail(rm->dev); +#ifdef __RINGMAP_DEB + print_capt_inst(ci); + PRINT_RING_PTRS(ci->ring); +#endif /* * In the time: from user has called ioctl() until now could * come the new packets. It means, before we are going to sleep * it makes a sence to check if we really must do it :) */ if (RING_IS_EMPTY(ci->ring)) { - err_sleep = tsleep(ringmap, (PRI_MIN) | PCATCH, "ioctl", 0); + RINGMAP_IOCTL(Sleep and wait for new packets); + + err_sleep = tsleep(ci->ring, (PRI_MIN) | PCATCH, "ioctl", 0); } break; case IOCTL_SYNC_HEAD_TAIL: - ringmap->funcs->sync_head_tail(ringmap->dev, ci->ring); + rm->funcs->sync_head_tail(rm->dev); break; /* Synchronize sowftware ring-tail with hardware-ring-tail (RDT) */ case IOCTL_SYNC_TAIL: - ringmap->funcs->sync_tail(ringmap->dev, ci->ring); + rm->funcs->sync_tail(rm->dev); break; default: @@ -412,33 +510,6 @@ RINGMAP_FUNC_DEBUG(end); } -void -ringmap_print_slot(struct ring *ring, unsigned int slot_number) -{ - printf("\n[%s] Slot Number: %d\n", __func__, slot_number); - printf("---------------- \n"); - - printf("physical addr of descriptor[%d] = 0x%X\n", slot_number, - (unsigned int) ring->slot[slot_number].descriptor.phys); - - printf("kernel addr of descriptor[%d] = 0x%X\n", slot_number, - (unsigned int) ring->slot[slot_number].descriptor.kern); - - printf("physical addr of mbuf[%d] = 0x%X\n", slot_number, - (unsigned int) ring->slot[slot_number].mbuf.phys); - - printf("kernel addr of mbuf[%d] = 0x%X\n", slot_number, - (unsigned int) ring->slot[slot_number].mbuf.kern); - - printf("physical addr of packet_buffer[%d] = 0x%X\n", slot_number, - (unsigned int) ring->slot[slot_number].packet.phys); - - printf("kernel addr of packet_buffer[%d] = 0x%X\n", slot_number, - (unsigned int) ring->slot[slot_number].packet.kern); - - printf("---------------- \n"); -} - void print_capt_inst(struct capt_instance *ci) ==== //depot/projects/soc2010/ringmap/current/sys/net/ringmap.h#26 (text+ko) ==== @@ -4,7 +4,7 @@ #define SLOTS_NUMBER 16 /* - * Prefix for name of device (for example /dev/ringmap_cdev0 will full name) + * Prefix for name of device (for example /dev/ringmap0 will full name) */ #define RINGMAP_DEVICE "ringmap" @@ -139,6 +139,8 @@ struct timeval last_ts; + unsigned int pid; + /* Array of slots */ struct ring_slot slot[SLOTS_NUMBER]; }; @@ -201,12 +203,6 @@ void (*disable_intr)(device_t); /* - * Initialize the ring slots with pointers to the - * mbufs, packets buffers and descriptors. - */ - int (*init_slots)(struct ring *, device_t); - - /* * This function should be calld from ISR. It should contain * the very fast executable operations (don't sleep!). */ @@ -221,7 +217,7 @@ /* * The native driver should have cycle for checking - * the the packets that was transfered in the RAM from + * the packets that was transfered in the RAM from * network adapter. The function delayed_isr_per_packet() * should be called from this cycle, so it will be called * per packet. @@ -245,16 +241,16 @@ * 2. SYNC_TAIL: SOFTWARE_TAIL => HARDWARE_TAIL * set value from software TAIL-variable: ring->userrp into the * hardware TAIL-register. Hardware shouldn't change the content of - * TAIL-register. Software after reading one packet in RAM increment + * TAIL-register. Software after reading one packet in RAM increments * the value of ring->userrp. Kernel will check this value and set it * into the hardware TAIL-register. */ - void (*sync_head_tail)(device_t, struct ring *); - void (*sync_tail)(device_t, struct ring *); + void (*sync_head_tail)(device_t); + void (*sync_tail)(device_t); void (*sync_head)(device_t); - /* Alloc memory for our ring and initialize the slots */ - struct ring *(*alloc_ring)(device_t); + /* Initialize the ring slot */ + int (*set_slot)(struct ring *, device_t, unsigned int); struct ringmap *(*dev_to_ringmap)(device_t); device_t (*cdev_to_dev)(struct cdev *); @@ -286,6 +282,7 @@ */ #define IOCTL_SYNC_TAIL _IO(RINGMAP_IOC_MAGIC, 1) +/* Synchronize both head and tail */ #define IOCTL_SYNC_HEAD_TAIL _IO(RINGMAP_IOC_MAGIC, 2) /* @@ -418,50 +415,52 @@ if (__RINGMAP_DEB) printf(WARN_PREFIX"[%s]: " #x "\n", __func__); -#ifdef _KERNEL -#define RINGMAP_PRINT_DESC(adapter, i) \ - printf("[%s] - DESC INFO: desc_num=%d, status=0x%X, pktlen=%d\n[%s] - ADDRESSES: pkt_virt=0x%X (kern), pkt_phys=0x%X\n", \ - __func__, \ - i, \ - (unsigned int)(adapter->rx_desc_base[i].status) & 255, \ - adapter->rx_desc_base[i].length, \ - __func__, \ - (unsigned int)adapter->rx_buffer_area[i].m_head->m_data,\ - (unsigned int)adapter->rx_desc_base[i].buffer_addr); +#define PRINT_PKT_BYTES(pktp, i) \ + printf("=+= [%s] SOME BYTES FROM PKT: %hhX %hhX %hhX %hhX %hhX\n", \ + __func__, pktp[0], pktp[1], pktp[16], pktp[32], pktp[59]); + +#define PRINT_PACKET_ADDR(ring, i) \ +printf("=+= packet.user=0x%X, packet.phys=0x%X, packet.kern=0x%X\n", \ + (unsigned int)ring->slot[i].packet.user, \ + ring->slot[i].packet.phys, \ + ring->slot[i].packet.kern); + +#define PRINT_MBUF_ADDR(ring, i) \ +printf("=+= mbuf.user=0x%X, mbuf.phys=0x%X, mbuf.kern=0x%X\n", \ + (unsigned int)ring->slot[i].mbuf.user, \ + ring->slot[i].mbuf.phys, \ + ring->slot[i].mbuf.kern); -#define PRINT_SOME_BYTES_FROM_PKT(adapter, i) \ - printf("=+= [%s] SOME BYTES FROM PKT: %hhX %hhX %hhX %hhX %hhX\n", \ - __func__, \ - adapter->rx_buffer_area[i].m_head->m_data[0], \ - adapter->rx_buffer_area[i].m_head->m_data[1], \ - adapter->rx_buffer_area[i].m_head->m_data[16], \ - adapter->rx_buffer_area[i].m_head->m_data[32], \ - adapter->rx_buffer_area[i].m_head->m_data[59]); -#else -#define PRINT_SOME_BYTES_FROM_PKT(pktp, i) \ - printf("=+= [%s] SOME BYTES FROM PKT: %hhX %hhX %hhX %hhX %hhX\n", \ - __func__, \ - pktp[0], \ - pktp[1], \ - pktp[16], \ - pktp[32], \ - pktp[59]); -#endif +#define PRINT_DECRIPTOR_ADDR(ring, i) \ +printf("=+= descr.user=0x%X, descr.phys=0x%X, descr.kern=0x%X\n", \ + (unsigned int)ring->slot[i].descriptor.user, \ + ring->slot[i].descriptor.phys, \ + ring->slot[i].descriptor.kern); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Jul 11 04:30:52 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E4CAC1065674; Sun, 11 Jul 2010 04:30:51 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C4C9106566B for ; Sun, 11 Jul 2010 04:30:51 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5A7E48FC16 for ; Sun, 11 Jul 2010 04:30:51 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6B4UpGP064911 for ; Sun, 11 Jul 2010 04:30:51 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6B4Uphh064909 for perforce@freebsd.org; Sun, 11 Jul 2010 04:30:51 GMT (envelope-from gonzo@FreeBSD.org) Date: Sun, 11 Jul 2010 04:30:51 GMT Message-Id: <201007110430.o6B4Uphh064909@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180742 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 04:30:52 -0000 http://p4web.freebsd.org/@@180742?ac=10 Change 180742 by gonzo@gonzo_figaro on 2010/07/11 04:30:29 Define EXTRA_SPEC to contain fbsd_dynamic_loader Affected files ... .. //depot/projects/avr32/src/contrib/gcc/config/avr32/avr32.h#3 edit Differences ... ==== //depot/projects/avr32/src/contrib/gcc/config/avr32/avr32.h#3 (text+ko) ==== @@ -32,6 +32,8 @@ #define SUBTARGET_CPP_SPEC "-D__ELF__" #endif +#define EXTRA_SPECS \ + SUBTARGET_EXTRA_SPECS extern struct rtx_def *avr32_compare_op0; extern struct rtx_def *avr32_compare_op1; From owner-p4-projects@FreeBSD.ORG Sun Jul 11 04:31:53 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DEFE81065675; Sun, 11 Jul 2010 04:31:52 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A33E2106566B for ; Sun, 11 Jul 2010 04:31:52 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9172D8FC23 for ; Sun, 11 Jul 2010 04:31:52 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6B4VqHW065151 for ; Sun, 11 Jul 2010 04:31:52 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6B4VqDh065149 for perforce@freebsd.org; Sun, 11 Jul 2010 04:31:52 GMT (envelope-from gonzo@FreeBSD.org) Date: Sun, 11 Jul 2010 04:31:52 GMT Message-Id: <201007110431.o6B4VqDh065149@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180743 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 04:31:53 -0000 http://p4web.freebsd.org/@@180743?ac=10 Change 180743 by gonzo@gonzo_figaro on 2010/07/11 04:31:08 Protect kernel-only part from being used in userland apps Affected files ... .. //depot/projects/avr32/src/sys/avr32/include/cpu.h#7 edit Differences ... ==== //depot/projects/avr32/src/sys/avr32/include/cpu.h#7 (text+ko) ==== @@ -30,6 +30,7 @@ #ifndef MACHINE_CPU_H #define MACHINE_CPU_H +#ifdef _KERNEL #ifndef LOCORE #include #include @@ -46,6 +47,7 @@ void fork_trampoline(void); #endif /* !LOCORE */ +#endif // Macros for segment addressing #define AVR32_SEG_P0 0x00000000 From owner-p4-projects@FreeBSD.ORG Sun Jul 11 04:32:54 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3C2A61065673; Sun, 11 Jul 2010 04:32:54 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F3EAC1065674 for ; Sun, 11 Jul 2010 04:32:53 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C8CF78FC1B for ; Sun, 11 Jul 2010 04:32:53 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6B4WrTI065213 for ; Sun, 11 Jul 2010 04:32:53 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6B4Wrbi065211 for perforce@freebsd.org; Sun, 11 Jul 2010 04:32:53 GMT (envelope-from gonzo@FreeBSD.org) Date: Sun, 11 Jul 2010 04:32:53 GMT Message-Id: <201007110432.o6B4Wrbi065211@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180744 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 04:32:54 -0000 http://p4web.freebsd.org/@@180744?ac=10 Change 180744 by gonzo@gonzo_figaro on 2010/07/11 04:32:28 Linker seems to have some issues with --relax, disable it for now Affected files ... .. //depot/projects/avr32/src/share/mk/bsd.cpu.mk#7 edit Differences ... ==== //depot/projects/avr32/src/share/mk/bsd.cpu.mk#7 (text+ko) ==== @@ -204,7 +204,7 @@ .if ${MACHINE_ARCH} == "avr32" # XXX: Needed for debugging -CFLAGS += -fno-omit-frame-pointer +CFLAGS += -fno-omit-frame-pointer -mno-relax .endif .if ${MACHINE_ARCH} == "mips" From owner-p4-projects@FreeBSD.ORG Sun Jul 11 04:46:09 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 00CC2106566C; Sun, 11 Jul 2010 04:46:09 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B517C106564A for ; Sun, 11 Jul 2010 04:46:08 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A356E8FC18 for ; Sun, 11 Jul 2010 04:46:08 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6B4k85x066235 for ; Sun, 11 Jul 2010 04:46:08 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6B4k8dm066233 for perforce@freebsd.org; Sun, 11 Jul 2010 04:46:08 GMT (envelope-from gonzo@FreeBSD.org) Date: Sun, 11 Jul 2010 04:46:08 GMT Message-Id: <201007110446.o6B4k8dm066233@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180745 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 04:46:09 -0000 http://p4web.freebsd.org/@@180745?ac=10 Change 180745 by gonzo@gonzo_figaro on 2010/07/11 04:46:01 Exceptions for AVR32 are setjmp/longjmp Affected files ... .. //depot/projects/avr32/src/gnu/lib/libstdc++/Makefile#3 edit Differences ... ==== //depot/projects/avr32/src/gnu/lib/libstdc++/Makefile#3 (text+ko) ==== @@ -14,7 +14,7 @@ SHLIB_MAJOR= 6 CFLAGS+= -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H -.if ${MACHINE_ARCH} == "arm" +.if ${MACHINE_ARCH} == "arm" || ${MACHINE_ARCH} == "avr32" CFLAGS+= -D_GLIBCXX_SJLJ_EXCEPTIONS=1 .endif CFLAGS+= -I${.CURDIR} -I${SUPDIR} -I${GCCDIR} -I${SRCDIR}/include From owner-p4-projects@FreeBSD.ORG Sun Jul 11 04:47:10 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E9ED61065670; Sun, 11 Jul 2010 04:47:09 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AE862106564A for ; Sun, 11 Jul 2010 04:47:09 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9CB728FC13 for ; Sun, 11 Jul 2010 04:47:09 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6B4l9As074211 for ; Sun, 11 Jul 2010 04:47:09 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6B4l9mY074194 for perforce@freebsd.org; Sun, 11 Jul 2010 04:47:09 GMT (envelope-from gonzo@FreeBSD.org) Date: Sun, 11 Jul 2010 04:47:09 GMT Message-Id: <201007110447.o6B4l9mY074194@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180746 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 04:47:10 -0000 http://p4web.freebsd.org/@@180746?ac=10 Change 180746 by gonzo@gonzo_figaro on 2010/07/11 04:47:05 No -O2 for new architectures Affected files ... .. //depot/projects/avr32/src/share/mk/sys.mk#4 edit Differences ... ==== //depot/projects/avr32/src/share/mk/sys.mk#4 (text+ko) ==== @@ -47,7 +47,7 @@ CFLAGS ?= -O .else CC ?= cc -.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "mips" +.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "mips" || ${MACHINE_CPUARCH} == "avr32" CFLAGS ?= -O -pipe .else CFLAGS ?= -O2 -pipe From owner-p4-projects@FreeBSD.ORG Sun Jul 11 04:50:13 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A12F71065672; Sun, 11 Jul 2010 04:50:13 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5ECA1106566B for ; Sun, 11 Jul 2010 04:50:13 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4CFEC8FC08 for ; Sun, 11 Jul 2010 04:50:13 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6B4oCvP077319 for ; Sun, 11 Jul 2010 04:50:12 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6B4oCR7077317 for perforce@freebsd.org; Sun, 11 Jul 2010 04:50:12 GMT (envelope-from gonzo@FreeBSD.org) Date: Sun, 11 Jul 2010 04:50:12 GMT Message-Id: <201007110450.o6B4oCR7077317@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180747 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 04:50:13 -0000 http://p4web.freebsd.org/@@180747?ac=10 Change 180747 by gonzo@gonzo_figaro on 2010/07/11 04:49:33 merge fix from HEAD for buildworld breakage Affected files ... .. //depot/projects/avr32/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l#3 edit Differences ... ==== //depot/projects/avr32/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l#3 (text+ko) ==== @@ -67,8 +67,12 @@ * for all subsequent invocations, which is the effect desired. */ #undef unput -#define unput(c) \ - if (c != EOF) yyunput( c, yytext_ptr ) +#define unput(c) \ + do { \ + int _c = c; \ + if (_c != EOF) \ + yyunput(_c, yytext_ptr); \ + } while(0) #endif static int id_or_type(const char *); From owner-p4-projects@FreeBSD.ORG Sun Jul 11 05:01:25 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C0C4D1065672; Sun, 11 Jul 2010 05:01:25 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 80DF5106566B for ; Sun, 11 Jul 2010 05:01:25 +0000 (UTC) (envelope-from lz@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6E4888FC0C for ; Sun, 11 Jul 2010 05:01:25 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6B51PTY078081 for ; Sun, 11 Jul 2010 05:01:25 GMT (envelope-from lz@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6B51Pgu078079 for perforce@freebsd.org; Sun, 11 Jul 2010 05:01:25 GMT (envelope-from lz@FreeBSD.org) Date: Sun, 11 Jul 2010 05:01:25 GMT Message-Id: <201007110501.o6B51Pgu078079@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to lz@FreeBSD.org using -f From: Zheng Liu To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180748 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 05:01:26 -0000 http://p4web.freebsd.org/@@180748?ac=10 Change 180748 by lz@gnehzuil-freebsd on 2010/07/11 05:01:01 Now ext2fs just can read ext4 extents from root directory. * It can read ext4 extents from root directory. * It can not read ext4 extents from sub-directory. * It can not read big file (size > 128M). Affected files ... .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.c#3 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.h#4 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_inode_cnv.c#5 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_readwrite.c#4 edit Differences ... ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.c#3 (text+ko) ==== @@ -26,11 +26,69 @@ * $FreeBSD: src/sys/fs/ext2fs/ext2_extents.c,v 0.1 2010/07/02 17:22:00 lz Exp $ */ +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include +#include + +static void ext4_ext_binsearch_index(struct inode *, struct ext4_extent_path *, daddr_t); +static void ext4_ext_binsearch(struct inode *, struct ext4_extent_path *, daddr_t); +static void +ext4_ext_binsearch_index(struct inode *ip, struct ext4_extent_path *path, daddr_t lbn) +{ + struct ext4_extent_header *ehp = path->ep_header; + struct ext4_extent_index *l, *r, *m; + + l = (struct ext4_extent_index *)(((char *)(ehp) + + sizeof(struct ext4_extent_header))) + 1; + r = l + ehp->eh_ecount; + while (l <= r) { + m = l + (r - l) / 2; + if (lbn < m->ei_blk) + r = m - 1; + else + l = m + 1; + } + + path->ep_index = l - 1; +} + +static void +ext4_ext_binsearch(struct inode *ip, struct ext4_extent_path *path, daddr_t lbn) +{ + struct ext4_extent_header *ehp = path->ep_header; + struct ext4_extent *l, *r, *m; + + if (ehp->eh_ecount == 0) + return; + + l = (struct ext4_extent *)(((char *)(ehp) + + sizeof(struct ext4_extent_header))); + r = l + ehp->eh_ecount - 1; + while (l <= r) { + m = l + (r - l) / 2; + if (lbn < m->e_blk) + r = m - 1; + else + l = m + 1; + } + + path->ep_ext = l - 1; +} + /* * find a block in ext4 extent cache. */ @@ -42,5 +100,76 @@ ecp = &ip->i_ext_cache; + /* cache is invalid */ + if (ecp->ec_type == EXT4_EXT_CACHE_NO) + return (ret); + + if (lbn >= ecp->ec_blk && lbn < ecp->ec_blk + ecp->ec_len) { + ep->e_blk = ecp->ec_blk; + ep->e_start_lo = (ecp->ec_start & 0xffffffff); + ep->e_start_hi = (((ecp->ec_start >> 31) >> 1) & 0xffff); + ep->e_len = ecp->ec_len; + ret = ecp->ec_type; + } + return (ret); } + +/* + * find a extent. + */ +struct ext4_extent_path * +ext4_ext_find_extent(struct m_ext2fs *fs, struct inode *ip, + daddr_t lbn, struct ext4_extent_path *path) +{ + struct vnode *vp; + struct ext4_extent_header *ehp; + struct buf *bp = NULL; + int depth, i, error, size, pos = 0; + + vp = ITOV(ip); + ehp = (struct ext4_extent_header *)((char *)ip->i_db); + depth = ehp->eh_depth; + + if (path == NULL) { + path = malloc(sizeof(struct ext4_extent_path) * (depth * 2), + M_EXT2NODE, M_WAITOK | M_ZERO); + + if (path == NULL) + return NULL; + } + + path[0].ep_header = ehp; + + i = depth; + while (i) { + ext4_ext_binsearch_index(ip, path + pos, lbn); + path[pos].ep_blk = (((daddr_t)(path[pos].ep_index->ei_leaf_hi) << 31) << 1) | + path[pos].ep_index->ei_leaf_lo; + path[pos].ep_depth = i; + path[pos].ep_ext = NULL; + + size = blksize(fs, ip, path[pos].ep_blk); + error = bread(vp, path[pos].ep_blk, size, NOCRED, &bp); + if (error) { + brelse(bp); + bp = NULL; + return NULL; + } + ehp = (struct ext4_extent_header *)bp->b_data; + pos++; + path[pos].ep_header = ehp; + i--; + } + + path[pos].ep_depth = i; + path[pos].ep_ext = NULL; + path[pos].ep_index = NULL; + + ext4_ext_binsearch(ip, path + pos, lbn); + if (path[pos].ep_ext != NULL) + path[pos].ep_blk = (((daddr_t)(path[pos].ep_ext->e_start_hi) << 31) << 1) | + path[pos].ep_ext->e_start_lo; + + return path; +} ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.h#4 (text+ko) ==== @@ -81,7 +81,21 @@ u_int32_t ec_type; }; +/* + * save path to some extent. + */ +struct ext4_extent_path { + daddr_t ep_blk; + u_int16_t ep_depth; + struct ext4_extent *ep_ext; + struct ext4_extent_index *ep_index; + struct ext4_extent_header *ep_header; +}; + struct inode; +struct m_ext2fs; int ext4_ext_in_cache(struct inode *, daddr_t, struct ext4_extent *); +struct ext4_extent_path *ext4_ext_find_extent(struct m_ext2fs *fs, struct inode *, + daddr_t, struct ext4_extent_path *); #endif /* !_FS_EXT2FS_EXT2_EXTENTS_H_ */ ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_inode_cnv.c#5 (text+ko) ==== @@ -35,12 +35,15 @@ #include #include #include +#include void ext2_print_inode( in ) struct inode *in; { int i; + struct ext4_extent_header *ehp; + struct ext4_extent *ep; printf( "Inode: %5d", in->i_number); printf( /* "Inode: %5d" */ @@ -57,6 +60,15 @@ printf( "BLOCKS: "); for(i=0; i < (in->i_blocks <= 24 ? ((in->i_blocks+1)/2): 12); i++) printf("%d ", in->i_db[i]); + printf( "\n"); + + printf( "Extents:\n"); + ehp = (struct ext4_extent_header *)in->i_db; + printf( "Header (magic 0x%x entries %d max %d depth %d gen %d)\n", + ehp->eh_magic, ehp->eh_ecount, ehp->eh_max, ehp->eh_depth, ehp->eh_gen); + ep = (struct ext4_extent *)((char *)(in->i_db) + sizeof(struct ext4_extent_header)); + printf( "Index (blk %d len %d start_lo %d start_hi %d)\n", + ep->e_blk, ep->e_len, ep->e_start_lo, ep->e_start_hi); printf("\n"); } ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_readwrite.c#4 (text+ko) ==== @@ -61,17 +61,26 @@ struct inode *ip; struct uio *uio; struct m_ext2fs *fs; - struct ext4_extent nex; - daddr_t lbn, nextlbn; + struct buf *bp; + struct ext2mount *ump; + struct ext4_extent nex, *ep; + struct ext4_extent_header *ehp; + /*struct ext4_extent_path *path = NULL;*/ + struct ext4_extent_path path[20]; + daddr_t lbn, nextlbn, newblk = 0; + off_t bytesinfile; u_short mode; int cache_type; int orig_resid; int error = 0; + int depth; + long size, xfersize, blkoffset; vp = ap->a_vp; ip = VTOI(vp); mode = ip->i_mode; uio = ap->a_uio; + ump = ip->i_ump; orig_resid = uio->uio_resid; KASSERT(orig_resid >= 0, ("ext2_read: uio->uio_resid < 0")); @@ -82,10 +91,82 @@ if (uio->uio_offset < ip->i_size && uio->uio_offset >= fs->e2fs_maxfilesize) return (EOVERFLOW); - lbn = lblkno(fs, uio->uio_offset); - nextlbn = lbn + 1; + for (error = 0, bp = NULL; uio->uio_resid > 0; bp = NULL) { + if ((bytesinfile = ip->i_size - uio->uio_offset) <= 0) + break; + lbn = lblkno(fs, uio->uio_offset); + nextlbn = lbn + 1; + size = BLKSIZE(fs, ip, lbn); + blkoffset = blkoff(fs, uio->uio_offset); + + xfersize = fs->e2fs_fsize - blkoffset; + if (uio->uio_resid < xfersize) + xfersize = uio->uio_resid; + if (bytesinfile < xfersize) + xfersize = bytesinfile; + + /* get block from ext4 extent cache */ + cache_type = ext4_ext_in_cache(ip, lbn, &nex); + if (cache_type != 0) { + /* block does not be allocated yet */ + if (cache_type == EXT4_EXT_CACHE_GAP) + return (error); + else if (cache_type == EXT4_EXT_CACHE_IN) + newblk = lbn - nex.e_blk + + (nex.e_start_lo | ((daddr_t)(nex.e_start_hi) << 31) << 1); + } else { + /*path = ext4_ext_find_extent(fs, ip, lbn, NULL);*/ + ext4_ext_find_extent(fs, ip, lbn, path); +#if 0 + if (path == NULL) { + path = NULL; + return (error); + } +#endif + + depth = ((struct ext4_extent_header *)(ip->i_db))->eh_depth; + + if (path[depth].ep_ext == NULL && depth != 0) + return (EIO); + + ehp = path[depth].ep_header; + ep = path[depth].ep_ext; + + if (ep == NULL) + return (EIO); + + newblk = lbn - ep->e_blk + + (ep->e_start_lo | ((daddr_t)(ep->e_start_hi) << 31) << 1); + } + + error = bread(ump->um_devvp, fsbtodb(fs, newblk), size, NOCRED, &bp); + if (error) { + brelse(bp); + bp = NULL; + break; + } + + size -= bp->b_resid; + if (size < xfersize) { + if (size == 0) + break; + xfersize = size; + } + error = uiomove((char *)bp->b_data + blkoffset, + (int)xfersize, uio); + if (error) + break; + + bqrelse(bp); + } + + if (bp != NULL) + bqrelse(bp); - cache_type = ext4_ext_in_cache(ip, lbn, &nex); +#if 0 + if (path != NULL) + free(path, M_EXT2NODE); +#endif return (error); } @@ -209,12 +290,12 @@ vp = ap->a_vp; ip = VTOI(vp); - EXT4_EXT_LOCK(ip); + /*EXT4_EXT_LOCK(ip);*/ if (ip->i_flags & EXT4_EXTENTS) error = ext4_ext_read(ap); else error = ext2_ind_read(ap); - EXT4_EXT_UNLOCK(ip); + /*EXT4_EXT_UNLOCK(ip);*/ return (error); } From owner-p4-projects@FreeBSD.ORG Sun Jul 11 05:45:15 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 573791065675; Sun, 11 Jul 2010 05:45:15 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B35A1065673 for ; Sun, 11 Jul 2010 05:45:15 +0000 (UTC) (envelope-from ligregni@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 077C38FC08 for ; Sun, 11 Jul 2010 05:45:15 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6B5jE24082421 for ; Sun, 11 Jul 2010 05:45:14 GMT (envelope-from ligregni@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6B5jEsw082419 for perforce@freebsd.org; Sun, 11 Jul 2010 05:45:14 GMT (envelope-from ligregni@FreeBSD.org) Date: Sun, 11 Jul 2010 05:45:14 GMT Message-Id: <201007110545.o6B5jEsw082419@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to ligregni@FreeBSD.org using -f From: Sergio Ligregni To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180750 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 05:45:15 -0000 http://p4web.freebsd.org/@@180750?ac=10 Change 180750 by ligregni@ligPhenom on 2010/07/11 05:44:15 The functionality of the project is finished, some testing pending Ready to MidTerm Eval Affected files ... .. //depot/projects/soc2010/disaudit/damasterd.c#3 edit .. //depot/projects/soc2010/disaudit/damasterd.h#3 edit .. //depot/projects/soc2010/disaudit/msocket_work.c#3 edit .. //depot/projects/soc2010/disaudit/msocket_work.h#3 edit .. //depot/projects/soc2010/disaudit/shipd.c#6 edit .. //depot/projects/soc2010/disaudit/shipd.h#6 edit .. //depot/projects/soc2010/disaudit/ssocket_work.c#4 edit .. //depot/projects/soc2010/disaudit/ssocket_work.h#4 edit Differences ... ==== //depot/projects/soc2010/disaudit/damasterd.c#3 (text+ko) ==== @@ -28,6 +28,7 @@ /*** INCLUDES ***/ #include "damasterd.h" +#include #include "msocket_work.h" #include #include @@ -38,6 +39,7 @@ #include #include #include +#include /*** DECLARATIONS ***/ @@ -55,6 +57,20 @@ /* The destination of the messages are controlled by this variable */ int debug; +/* + * The searching for a trail by it's name, + * or by it's name & origin host, this is for example, + * if we change a host name and this flag is on, + * all it's trails will be sync again since the entire path + * will be different, this is: + * 2010xxxxx.HOST_ONE.201006date_recvd + * then we change HOST_ONE to HOST_OTHER + * with the flag on, there must be a trail: + * 2010xxxxx.HOST_OTHER.201006date_recvd + * but, there is not such trail so we sync again. + */ +int lookup_host; + /* Socket buffer management */ char buffer[MAX_BUF_SIZE + 1]; int brecv; @@ -139,23 +155,26 @@ return -1; } - if ((childpid = fork()) < 0) + + if (!debug && (childpid = fork()) < 0) { to_log("Error forking the process"); return -1; } - else if (childpid == 0) + else if (debug || childpid == 0) { - debug = 0; if (process_request(newsockfd, &clientinfo) == -1) { to_log("Error processing client's request"); return -1; } - close(socketfd); + if (!debug) + close(socketfd); } close(newsockfd); + + usleep(1000); } return 0; @@ -167,6 +186,7 @@ FILE *fpars = fopen("/etc/security/damasterd_control", "r"); char sslave_dirs[10]; + char lkup_host[10]; if (!fpars) return -1; @@ -178,33 +198,46 @@ fscanf(fpars, "%s", sslave_dirs); fscanf(fpars, "%d", &panic_level); fscanf(fpars, "%d", &port_number); + fscanf(fpars, "%s", lkup_host); if (strcmp(sslave_dirs, "no")) slave_dirs = 1; else slave_dirs = 0; + if (strcmp(sslave_dirs, "yes")) + lookup_host = 1; + else + lookup_host = 0; + return 0; } process_request(int sfd, struct sockaddr *clientinfo) { - int res = -1; + int res = 0; char opt[1]; get_from_socket(sfd, opt); - switch(opt[0]) + while (res != -1) { - case '1': /* The request is about searching for a file */ - res = search_trail(sfd, clientinfo); - break; - case '2': /* The request is about receiving a trail */ - res = receive_trail(sfd, clientinfo); - break; - default: - to_log("Can't understand user's request!"); + switch(opt[0]) + { + case '0': /* The process is finished */ + return 0; + break; + case '1': /* The request is about searching for a file */ + res = search_trail(sfd, clientinfo); + break; + case '2': /* The request is about receiving a trail */ + res = receive_trail(sfd, clientinfo); + break; + default: + to_log("Can't understand user's request!"); + } + get_from_socket(sfd, opt); } close(sfd); @@ -214,12 +247,20 @@ search_trail(int sfd, struct sockaddr *clientinfo) { + DIR *dp; + struct dirent *dirp; + struct stat statbuf; + + char fullpath[MAX_PATH_SIZE + 1]; + char *ptr; char hbuf[NI_MAXHOST+1]; char message[MAX_PATH_SIZE + 50]; char hostname[NI_MAXHOST+1]; - char path[MAX_TRAILPATH_SIZE+1], md5slave[33]; + char pathslave[MAX_TRAILPATH_SIZE+1], md5slave[33]; + char dirpath[MAX_DIR_SIZE+1]; + char found_trail[] = "n"; - get_from_socket(sfd, path); + get_from_socket(sfd, pathslave); get_from_socket(sfd, md5slave); strcpy(hostname, inet_ntoa(((struct sockaddr_in *) clientinfo)->sin_addr)); @@ -229,12 +270,99 @@ else strcpy(hostname, hbuf); - sprintf(message, "Looking for \"%s\" from \"%s\" with MD5: \"%s\"", path, hostname, md5slave); + sprintf(message, "Looking for \"%s\" from \"%s\" with MD5: \"%s\"", pathslave, hostname, md5slave); to_log(message); + strcpy(dirpath, slave_trails_dir); + + if (slave_dirs) + { + strcat(dirpath, "/"); + strcat(dirpath, hostname); + } + + /* Setting the fullpath to search */ + /* Fancy way to use the fullpath */ + strcpy(fullpath, dirpath); + ptr = fullpath + strlen(fullpath); + *ptr = '/'; + *(++ptr) = 0; + + if ( !(dp = opendir(dirpath)) ) + { + to_log("Can't open slave trails' directory"); + send_to_socket(sfd, "n"); + return 1; + } + + /* We must count the elements (just the valid ones, this is: the trails) of the directory */ + while (strcmp(found_trail, "y") && (dirp = readdir(dp)) != NULL ) + if (strcmp(dirp->d_name, ".") && strcmp(dirp->d_name, "..")) /* We have other than . or .. */ + { + strcpy(ptr, dirp->d_name); + + if ( stat(fullpath, &statbuf) < 0 ) + { + to_log("Stat error!"); + return -1; + } + + if (S_ISDIR(statbuf.st_mode) == 0) /* It's not a directory */ + if ( check_files_equal(pathslave, md5slave, hostname, dirp->d_name, fullpath) ) /* Check that the trails are the same name + MD5 */ + strcpy(found_trail, "y"); + } + + closedir(dp); + + sprintf(message, "The search for %s resulted: %s\n", pathslave, found_trail[0] == 'y' ? "YES" : "NO"); + send_to_socket(sfd, found_trail); + return 1; } +/* + * This function receives the name and MD5 checksum of the slave trail + * and the path and fullpath (to get MD5) of the master trail + * and checks if they are the same, also checks the lookup_host + * variable to determine if the hostname must be searched as part + * of the trails name + */ + +check_files_equal(char *pathslave, char *md5slave, char *hostname, char *path, char *fullpath) +{ + char path_to_find[strlen(pathslave) + strlen(hostname) + 2]; + + strcpy(path_to_find, pathslave); + + if (lookup_host) + { + strcat(path_to_find, "."); + strcat(path_to_find, hostname); + } + + if (!strncmp(path, path_to_find, strlen(path_to_find))) + { + char *md5 = (char *) malloc (sizeof(char) * 33); + md5 = MD5File(fullpath, md5); + + if (!strcmp(md5, md5slave)) + return 1; + + free(md5); + } + + return 0; +} + +void +send_to_socket(int sfd, char *data) +{ + int len = strlen(data); + + send(sfd, &len, sizeof(int), 0); + send(sfd, data, len, 0); +} + void get_from_socket(int sfd, char *dest) { @@ -258,6 +386,128 @@ receive_trail(int sfd, struct sockaddr *clientinfo) { + DIR *dp; + + char fullpath[MAX_PATH_SIZE + 1]; + char hbuf[NI_MAXHOST+1]; + char message[MAX_PATH_SIZE + 50]; + char hostname[NI_MAXHOST+1]; + char pathslave[MAX_TRAILPATH_SIZE+1]; + char dirpath[MAX_DIR_SIZE+1]; + time_t mtime; + struct tm *ltime; + unsigned long file_size; + int fd, bwrtn, bread; + + get_from_socket(sfd, pathslave); + + strcpy(hostname, inet_ntoa(((struct sockaddr_in *) clientinfo)->sin_addr)); + + if (getnameinfo(clientinfo, clientinfo->sa_len, hbuf, sizeof(hbuf), NULL, 0, NI_NAMEREQD)) + to_log("Couldn't resolve hostname, using IP address"); + else + strcpy(hostname, hbuf); + + sprintf(message, "Receiving \"%s\" from \"%s\"", pathslave, hostname); + to_log(message); + + strcpy(dirpath, slave_trails_dir); + + if ( !(dp = opendir(dirpath)) ) + { + to_log("Can't open Slave trails dir, please create it or change the value at config files!"); + return -1; + } + + closedir(dp); + + if (slave_dirs) + { + strcat(dirpath, "/"); + strcat(dirpath, hostname); + } + + if ( !(dp = opendir(dirpath)) ) + { + to_log("Creating slave dir for this host"); + if ( mkdir(dirpath, S_IRWXU | S_IRGRP | S_IXGRP) < 0 ) + { + to_log("Cant't create host's directory!"); + return -1; + } + } + else + closedir(dp); + + strcat(dirpath, "/"); + + mtime = time(NULL); + ltime = gmtime(&mtime); + + sprintf(fullpath, "%s%s.%s.%04d%02d%02d%02d%02d%02d", + dirpath, + pathslave, + hostname, + ltime->tm_year + 1900, + ltime->tm_mon + 1, + ltime->tm_mday, + ltime->tm_hour, + ltime->tm_min, + ltime->tm_sec); + sprintf(message, "Create: %s", fullpath); + to_log(message); + + /* We get the trail size */ + recv(sfd, &file_size, sizeof(file_size), 0); + + fd = open(fullpath, O_CREAT | O_WRONLY); + if (fd < 0) + { + to_log("Can't create the trail at master system"); + return -1; + } + + while (file_size) + { + brecv = recv(sfd, &bread, sizeof(bread), 0); + if (brecv < 0) + { + to_log("Error receiving the file"); + return -1; + } + + brecv = recv(sfd, buffer, bread, 0); + + if (brecv < 0) + { + to_log("Error receiving the file"); + return -1; + } + else if (brecv == 0) + break; + + bwrtn = write(fd, buffer, brecv); + + if (bwrtn < 0 || bwrtn != brecv) + { + to_log("Error writting the file"); + return -1; + } + + file_size -= brecv; + } + + sprintf(message, "Master got: %s", fullpath); + + close(fd); + + /* Change the permissions to be the same than the local trails */ + if (chmod(fullpath, S_IRUSR | S_IRGRP) < 0) + { + to_log("Error changing permissions"); + return -1; + } + return 0; } ==== //depot/projects/soc2010/disaudit/damasterd.h#3 (text+ko) ==== @@ -48,5 +48,7 @@ int search_trail(int, struct sockaddr *); int receive_trail(int, struct sockaddr *); void get_from_socket(int, char *); +void send_to_socket(int, char *); +int check_files_equal(char *, char *, char *, char *, char *); #endif ==== //depot/projects/soc2010/disaudit/msocket_work.c#3 (text+ko) ==== @@ -74,7 +74,7 @@ retval = accept(sfd, (struct sockaddr *) &clientaddr, &clientlen); if (retval >= 0) - clientinfo = (struct sockaddr *) &clientaddr; + memcpy(clientinfo, &clientaddr, sizeof(struct sockaddr)); return retval; } ==== //depot/projects/soc2010/disaudit/msocket_work.h#3 (text+ko) ==== ==== //depot/projects/soc2010/disaudit/shipd.c#6 (text+ko) ==== @@ -146,23 +146,27 @@ void do_last() { - char last_trail[MAX_PATH_SIZE + 1]; + char last_trail[MAX_TRAILPATH_SIZE + 1]; char message[MAX_PATH_SIZE + 30]; + trail_entry *root = NULL; if (get_last_trail(last_trail) == -1) to_log("Nothing to send!"); sprintf(message, "Will send \"%s\" to %s", last_trail, master_host); + to_log(message); - to_log(message); + add_trail_entry(&root, last_trail); - if (send_trail(last_trail) == -1) + if (send_trail(root) == -1) to_log("Error sending the last trail"); else { sprintf(message, "Successfully sent \"%s\" to %s", last_trail, master_host); to_log(message); } + + delete_trail_entry(&root, DEL_ALL, 0); } /* @@ -210,9 +214,9 @@ if ( is_audit_trail(dirp->d_name) ) /* It's not other file */ { if (*path == 0) /* This is our first trail, so assumme is the last */ - strcpy(path, fullpath); + strcpy(path, dirp->d_name); else if (strcmp (path, fullpath) < 0) /* Fortunately, the older a trail is, the lower lexocographic value it has */ - strcpy(path, fullpath); + strcpy(path, dirp->d_name); } } } @@ -261,9 +265,45 @@ } } -send_trail(char *path) +send_trail(trail_entry *cur) { - return 0; + char message[MAX_PATH_SIZE + 33]; + char fullpath[MAX_PATH_SIZE]; + char *ptr; + int ret_val=1; + int sockfd; + + strcpy(fullpath, audit_trails_dir); + ptr = fullpath + strlen(fullpath); + *ptr = '/'; + *(++ptr) = 0; + + if (init_socket(master_host, port_number, &sockfd) == -1) + return 0; + + while (cur) /* Iterate through the items in the linked list */ + { + if (!cur->found) /* Only send those that have the found flag turned off */ + { + strcpy(ptr, cur->name); + + /* Included in socket_work.c, this intended to implement SSL later */ + if (do_socket_send_file(sockfd, cur->name, fullpath) != -1) + { + sprintf(message, "Error sending: %s to %s", cur->name, master_host); + to_log(message); + ret_val = -1; + } + } + cur = cur->next; + } + + /* Here we tell master we are done for now */ + do_socket_check_file(sockfd, NULL, NULL); + + close(sockfd); + + return ret_val; } /* @@ -282,7 +322,9 @@ char message[MAX_PATH_SIZE + 30]; char *ptr; - int n_elements = 0, i; + int n_elements = 0, i, index; + + trail_entry *root = NULL; if ( !(dp = opendir(audit_trails_dir)) ) { @@ -308,6 +350,8 @@ return; } +printf("TT %s\n", dirp->d_name); + if (S_ISDIR(statbuf.st_mode) == 0) /* It's not a directory */ if ( is_audit_trail(dirp->d_name) ) /* It's not other file */ ++n_elements; @@ -345,36 +389,40 @@ qsort(trail_paths, n_elements, sizeof(*trail_paths), cmp_trails); for (i=0; i0; --i) + free(trail_paths[i]); + free(trail_paths); + is_in_master(root, &index); + /* - * At this point, the variable i holds the index of the first ok trail in master system - * and we will go backwards (i-1 ... 0) in the array to sync the newer ones + * At this point, the variable index holds the index of the first ok trail in master system + * and we will go backwards (index-1 ... 0) in the array to sync the newer ones */ - while (i--) + delete_trail_entry(&root, DEL_LAST, n_elements - index); + + if (!root) + { + to_log("All daemon date trails OK!"); + return; + } + + if (send_trail(root) == -1) { - strcpy(ptr, trail_paths[i]); - if (send_trail(fullpath) == -1) - { - sprintf(message, "ERROR Sending \"%s\" to %s", trail_paths[i], master_host); - to_log(message); - } - else - { - sprintf(message, "Successfully sent \"%s\" to %s", trail_paths[i], master_host); - to_log(message); - } + delete_trail_entry(&root, DEL_ALL, 0); + return; } - /* Free the memory */ - for (i=n_elements-1; i>0; --i) - free(trail_paths[i]); - free(trail_paths); + to_log("Sending Date Daemon DONE!"); + delete_trail_entry(&root, DEL_ALL, 0); return; } @@ -387,8 +435,8 @@ cmp_trails (const void *A, const void *B) { if (strcmp(*((char **)A), *((char **)B)) < 0) - return 1; - return -1; + return -1; + return 1; } /* @@ -399,21 +447,52 @@ * checksums on both systems are not equal, then the function * will return "false" since an incomplete trail is not valid here. */ -is_in_master(char *path, char *fullpath) +is_in_master(trail_entry *cur, int *first_found) { char *md5 = (char *) malloc (sizeof(char) * 33); char message[MAX_PATH_SIZE + 33]; + char fullpath[MAX_PATH_SIZE]; + char *ptr; int ret_val=1; - MD5_CTX context; + int counter=0; + int sockfd; + + strcpy(fullpath, audit_trails_dir); + ptr = fullpath + strlen(fullpath); + *ptr = '/'; + *(++ptr) = 0; + + if (init_socket(master_host, port_number, &sockfd) == -1) + return 0; + + while (cur) + { + /* Get the MD5 checksum for the file (notice that here we use the fullpath) */ + strcpy(ptr, cur->name); + md5 = MD5File(fullpath, md5); + sprintf(message, "The MD5 checksum for %s is %s", cur->name, md5); + to_log(message); + + /* Included in socket_work.c, this intended to implement SSL later */ + if (do_socket_check_file(sockfd, cur->name, md5) != -1) + { + cur->found = 1; + if (first_found != NULL) + { + *first_found = counter; + break; + } + } + else + ret_val = 0; + ++counter; + cur = cur->next; + } - /* Get the MD5 checksum for the file (notice that here we use the fullpath) */ - md5 = MD5File(fullpath, md5); - sprintf(message, "The MD5 checksum for %s is %s", path, md5); - to_log(message); + /* Here we tell master we are done for now */ + do_socket_check_file(sockfd, NULL, NULL); - /* Included in socket_work.c, this intended to implement SSL later */ - if (do_socket_check_file(master_host, port_number, path, md5) == -1) - ret_val = 0; + close(sockfd); free(md5); @@ -436,6 +515,8 @@ char message[MAX_PATH_SIZE + 30]; char *ptr; + trail_entry *root = NULL; + if ( !(dp = opendir(audit_trails_dir)) ) { to_log("Can't open directory"); @@ -462,21 +543,124 @@ if (S_ISDIR(statbuf.st_mode) == 0) /* It's not a directory */ if ( is_audit_trail(dirp->d_name) ) /* It's not other file */ - if ( !is_in_master(dirp->d_name, fullpath) ) - if (send_trail(fullpath) == -1) - { - sprintf(message, "ERROR Sending \"%s\" to %s", fullpath, master_host); - to_log(message); - } - else - { - sprintf(message, "Successfully sent \"%s\" to %s", fullpath, master_host); - to_log(message); - } + if (add_trail_entry(&root, dirp->d_name) == -1) + { + delete_trail_entry(&root, DEL_ALL, 0); + return; + } } closedir(dp); + is_in_master(root, NULL); + +pll(root); + + if (send_trail(root) == -1) + { + to_log("Error sending daemon all trails!"); + delete_trail_entry(&root, DEL_ALL, 0); + return; + } + + delete_trail_entry(&root, DEL_ALL, 0); + to_log("Successfully sent daemon all trails!"); return; } +void +pll(trail_entry *root) +{ + while (root) + { + printf("TRAIL: %s - %d\n", root->name, root->found); + root = root->next; + } +} + +void +delete_trail_entry(trail_entry **root, int criteria, int number) +{ + switch (criteria) + { + case DEL_FIRST: + { + int i=0; + trail_entry *temp; + while (*root && i++ < number) + { + temp = *root; + *root = (*root)->next; + free(temp); + } + break; + } + case DEL_LAST: + { + trail_entry *temp = *root, *oth; + int total = 0; + while (temp) + { + ++total; + temp = temp->next; + } + + number = number > total ? total : number; /* We can't delete more nodes than the ones we already have */ + + number = total - number; /* How many we will be left in the queue */ + + oth = temp = *root; + + while (temp && number--) + { + temp = temp->next; + if (!number) /* If this will be the last node in the queue, cut it */ + { + oth = temp->next; /* But save the address to delete the following nodes */ + temp->next = NULL; + } + } + + temp = oth; + while (temp) + { + oth = oth->next; + free(temp); + temp = oth; + } + + *root = temp; + break; + } + case DEL_ALL: + { + trail_entry *temp = *root; + while (temp) + { + *root = (*root)->next; + free(temp); + temp = *root; + } + + *root = temp; + break; + } + } +} + +add_trail_entry(trail_entry **root, char *name) +{ + trail_entry *cur = (trail_entry *) malloc (sizeof(trail_entry)); + + if (!cur) + return -1; + + strcpy(cur->name, name); + cur->found = 0; + cur->next = *root; + + *root = cur; + + return 0; +} + ==== //depot/projects/soc2010/disaudit/shipd.h#6 (text+ko) ==== @@ -35,17 +35,35 @@ #define PANIC_DATE 2 #define PANIC_ALL 3 +#define DEL_FIRST 1 +#define DEL_LAST 2 +#define DEL_ALL 3 +/* Trail Entries */ + +typedef struct s_trail_entry +{ + char name[MAX_TRAILPATH_SIZE + 1]; + int found; + struct s_trail_entry *next; +} trail_entry; + +int add_trail_entry (trail_entry **, char *); + +void delete_trail_entry (trail_entry **, int, int); + +/* Daemon functions */ + int get_parameters(); void to_log(char *); void do_last(); void do_daemon(); int get_last_trail(char *); int is_audit_trail(char *); -int send_trail(char *); +int send_trail(trail_entry *); void do_daemon_date(); int cmp_trails(const void *, const void *); -int is_in_master(char *, char *); +int is_in_master(trail_entry *, int *); void do_daemon_all(); - +void pll(trail_entry *root); #endif ==== //depot/projects/soc2010/disaudit/ssocket_work.c#4 (text+ko) ==== @@ -26,7 +26,9 @@ */ #include +#include #include +#include #include #include #include @@ -36,20 +38,29 @@ #include #include "ssocket_work.h" -do_socket_check_file(char *host, int port, char *path, char *md5) +/* Socket buffer management */ +unsigned char buffer[MAX_BUF_SIZE + 1]; +int bsent, brecv; + +do_socket_check_file(int sockfd, char *path, char *md5) { - int sockfd; + send_to_socket(sockfd, path ? "1" : "0"); + if (path) /* If there is a file to search for */ + { + char *result; - if (init_socket(host, port, &sockfd) == -1) - return -1; + send_to_socket(sockfd, path); + send_to_socket(sockfd, md5); - send_to_socket(sockfd, "1"); - send_to_socket(sockfd, path); - send_to_socket(sockfd, md5); + get_from_socket(sockfd, result); - close(sockfd); + if (result[0] == 'y') + return 0; + else + return -1; + } - return -1; + return 0; } void @@ -61,6 +72,76 @@ send(sfd, data, len, 0); } +do_socket_send_file(int sockfd, char *path, char *fullpath) +{ + send_to_socket(sockfd, path ? "2" : "0"); + if (path) /* If there is a file to send through the socket */ + { + int fd = open(fullpath, O_RDONLY); + unsigned long file_size; + int bread; + struct stat statbuf; + + if (fd < 0) + { + to_log("Error opening the file"); + return -1; + } + + send_to_socket(sockfd, path); + + if ( stat(fullpath, &statbuf) < 0 ) + { + to_log("Stat error!"); + return -1; + } + + file_size = statbuf.st_size; + send(sockfd, &file_size, sizeof(file_size), 0); + + while (file_size) + { + bread = read(fd, buffer, min(file_size, MAX_BUF_SIZE)); + + if (bread < 0) + { + to_log("Error reading the file"); + return -1; + } + else if (bread == 0) + break; + + send(sockfd, &bread, sizeof(bread), 0); + send(sockfd, buffer, bread, 0); + + file_size -= bread; + } + } + + return 0; +} + +void +get_from_socket(int sfd, char *dest) +{ + int len, left; + char *ptr; + brecv = recv(sfd, buffer, sizeof(int), 0); + strncpy((char *) &len, buffer, sizeof(int)); + + left = len; + ptr = dest; + + while (left > 0) + { + brecv = recv(sfd, buffer, min(MAX_BUF_SIZE, left), 0); + buffer[brecv] = 0; + strcpy(ptr, buffer); + ptr += brecv; + left -= brecv; + } +} + is_ipv4(char *address) { int points=0, last_point=0, i, len=strlen(address); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Jul 11 09:11:00 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B726D106566B; Sun, 11 Jul 2010 09:11:00 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 57BFC1065673 for ; Sun, 11 Jul 2010 09:11:00 +0000 (UTC) (envelope-from lz@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3CFE48FC08 for ; Sun, 11 Jul 2010 09:11:00 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6B9Ax3e012205 for ; Sun, 11 Jul 2010 09:10:59 GMT (envelope-from lz@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6B9Ax5j012203 for perforce@freebsd.org; Sun, 11 Jul 2010 09:10:59 GMT (envelope-from lz@FreeBSD.org) Date: Sun, 11 Jul 2010 09:10:59 GMT Message-Id: <201007110910.o6B9Ax5j012203@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to lz@FreeBSD.org using -f From: Zheng Liu To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180752 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 09:11:01 -0000 http://p4web.freebsd.org/@@180752?ac=10 Change 180752 by lz@gnehzuil-freebsd on 2010/07/11 09:10:55 Now ext2fs can read a small file. Affected files ... .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.c#4 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_inode_cnv.c#6 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_readwrite.c#5 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_vfsops.c#7 edit Differences ... ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.c#4 (text+ko) ==== @@ -76,8 +76,9 @@ return; l = (struct ext4_extent *)(((char *)(ehp) + - sizeof(struct ext4_extent_header))); - r = l + ehp->eh_ecount - 1; + sizeof(struct ext4_extent_header))) + 1; + r = (struct ext4_extent *)(((char *)(ehp) + + sizeof(struct ext4_extent_header))) + ehp->eh_ecount - 1; while (l <= r) { m = l + (r - l) / 2; if (lbn < m->e_blk) ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_inode_cnv.c#6 (text+ko) ==== @@ -96,6 +96,7 @@ ip->i_mtime = ei->e2di_mtime; ip->i_ctime = ei->e2di_ctime; ip->i_flags = ei->e2di_flags; /* we need to entire flags to check new features */ + ip->i_gen = ei->e2di_gen; #if 0 ip->i_flags = 0; ip->i_flags |= (ei->e2di_flags & EXT2_APPEND) ? SF_APPEND : 0; ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_readwrite.c#5 (text+ko) ==== @@ -62,7 +62,6 @@ struct uio *uio; struct m_ext2fs *fs; struct buf *bp; - struct ext2mount *ump; struct ext4_extent nex, *ep; struct ext4_extent_header *ehp; /*struct ext4_extent_path *path = NULL;*/ @@ -80,8 +79,8 @@ ip = VTOI(vp); mode = ip->i_mode; uio = ap->a_uio; - ump = ip->i_ump; +printf("====\n"); orig_resid = uio->uio_resid; KASSERT(orig_resid >= 0, ("ext2_read: uio->uio_resid < 0")); if (orig_resid == 0) @@ -139,7 +138,7 @@ (ep->e_start_lo | ((daddr_t)(ep->e_start_hi) << 31) << 1); } - error = bread(ump->um_devvp, fsbtodb(fs, newblk), size, NOCRED, &bp); + error = bread(ip->i_devvp, fsbtodb(fs, newblk), size, NOCRED, &bp); if (error) { brelse(bp); bp = NULL; ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_vfsops.c#7 (text+ko) ==== @@ -864,8 +864,8 @@ struct vnode *vp; struct cdev *dev; struct thread *td; - int i, error; - int used_blocks; + int error; + /*int i, used_blocks;*/ td = curthread; error = vfs_hash_get(mp, ino, flags, td, vpp, NULL, NULL); @@ -949,11 +949,18 @@ * blocks are zeroed out - ext2_balloc depends on this * although for regular files and directories only */ + + /* + * NOTE: When ext4 file system use extents, we don't zero + * block pointers. + */ +#if 0 if(S_ISDIR(ip->i_mode) || S_ISREG(ip->i_mode)) { used_blocks = (ip->i_size+fs->e2fs_bsize-1) / fs->e2fs_bsize; for(i = used_blocks; i < EXT2_NDIR_BLOCKS; i++) ip->i_db[i] = 0; } +#endif ext2_print_inode(ip); From owner-p4-projects@FreeBSD.ORG Sun Jul 11 13:00:11 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3FD881065672; Sun, 11 Jul 2010 13:00:11 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E01C3106566C for ; Sun, 11 Jul 2010 13:00:10 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B26A98FC1B for ; Sun, 11 Jul 2010 13:00:10 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6BD0A0S042508 for ; Sun, 11 Jul 2010 13:00:10 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6BD0ASd042506 for perforce@freebsd.org; Sun, 11 Jul 2010 13:00:10 GMT (envelope-from trasz@freebsd.org) Date: Sun, 11 Jul 2010 13:00:10 GMT Message-Id: <201007111300.o6BD0ASd042506@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180757 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 13:00:11 -0000 http://p4web.freebsd.org/@@180757?ac=10 Change 180757 by trasz@trasz_victim on 2010/07/11 13:00:03 Properly handle joining and leaving containers that have parents. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#14 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#14 (text+ko) ==== @@ -62,40 +62,57 @@ static struct mtx container_lock; MTX_SYSINIT(container_lock, &container_lock, "container lock", MTX_DEF); +static void container_sub(struct container *dest, const struct container *src); + static int container_add(struct container *dest, const struct container *src) { - int i; + int i, error; mtx_assert(&container_lock, MA_OWNED); + /* + * Update resource usage in dest's parents. + */ + for (i = 0; i <= CONTAINER_PARENTS_MAX; i++) { + if (dest->c_parents[i] == NULL) + continue; + error = container_add(dest->c_parents[i], src); + if (error) { + for (i--; i >= 0; i--) + container_sub(dest->c_parents[i], src); + return (error); + } + } + + /* + * Update resource usage in dest. + */ for (i = 0; i <= RUSAGE_MAX; i++) { KASSERT(dest->c_resources[i] >= 0, ("resource usage propagation meltdown: dest < 0")); KASSERT(src->c_resources[i] >= 0, ("resource usage propagation meltdown: src < 0")); /* - * XXX: Container hierarchy! - */ - /* * XXX: Enforce limit here; if exceeded, undo everything * and return error. */ dest->c_resources[i] += src->c_resources[i]; - KASSERT(dest->c_resources[i] >= 0, - ("resource usage propagation meltdown: dest < 0 after addition")); } return (0); } static void -container_subtract(struct container *dest, const struct container *src) +container_sub(struct container *dest, const struct container *src) { int i; mtx_assert(&container_lock, MA_OWNED); + /* + * Update resource usage in dest. + */ for (i = 0; i <= RUSAGE_MAX; i++) { KASSERT(dest->c_resources[i] >= 0, ("resource usage propagation meltdown: dest < 0")); @@ -104,11 +121,15 @@ KASSERT(src->c_resources[i] <= dest->c_resources[i], ("resource usage propagation meltdown: src > dest")); dest->c_resources[i] -= src->c_resources[i]; - /* - * XXX: Container hierarchy! - */ - KASSERT(dest->c_resources[i] >= 0, - ("resource usage propagation meltdown: dest < 0 after subtraction")); + } + + /* + * Update resource usage in dest's parents. + */ + for (i = 0; i <= CONTAINER_PARENTS_MAX; i++) { + if (dest->c_parents[i] == NULL) + continue; + container_sub(dest->c_parents[i], src); } } @@ -159,7 +180,7 @@ for (i = 0; i <= CONTAINER_PARENTS_MAX; i++) { if (child->c_parents[i] == parent) { - container_subtract(parent, child); + container_sub(parent, child); child->c_parents[i] = NULL; return; } @@ -187,7 +208,7 @@ for (i = 0; i <= CONTAINER_PARENTS_MAX; i++) { if (child->c_parents[i] == NULL) continue; - container_subtract(child->c_parents[i], child); + container_sub(child->c_parents[i], child); child->c_parents[i] = NULL; } } From owner-p4-projects@FreeBSD.ORG Sun Jul 11 15:20:44 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B69F01065674; Sun, 11 Jul 2010 15:20:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 727B1106566B for ; Sun, 11 Jul 2010 15:20:44 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5FA148FC1B for ; Sun, 11 Jul 2010 15:20:44 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6BFKibr055764 for ; Sun, 11 Jul 2010 15:20:44 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6BFKi1O055762 for perforce@freebsd.org; Sun, 11 Jul 2010 15:20:44 GMT (envelope-from trasz@freebsd.org) Date: Sun, 11 Jul 2010 15:20:44 GMT Message-Id: <201007111520.o6BFKi1O055762@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180760 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 15:20:45 -0000 http://p4web.freebsd.org/@@180760?ac=10 Change 180760 by trasz@trasz_victim on 2010/07/11 15:20:04 Mark HRL mutex non-recurseable as well. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#84 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#84 (text+ko) ==== @@ -124,7 +124,7 @@ static uma_zone_t hrl_rule_link_zone; static uma_zone_t hrl_rule_zone; static struct mtx hrl_lock; -MTX_SYSINIT(hrl_lock, &hrl_lock, "HRL lock", MTX_RECURSE); /* XXX: Make it non-recurseable later. */ +MTX_SYSINIT(hrl_lock, &hrl_lock, "HRL lock", MTX_DEF); static void hrl_compute_available(struct proc *p, int64_t (*availablep)[]); static int hrl_rule_fully_specified(const struct hrl_rule *rule); From owner-p4-projects@FreeBSD.ORG Sun Jul 11 16:06:35 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D100F1065677; Sun, 11 Jul 2010 16:06:34 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 95216106564A for ; Sun, 11 Jul 2010 16:06:34 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 80FF68FC1C for ; Sun, 11 Jul 2010 16:06:34 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6BG6Y6U060076 for ; Sun, 11 Jul 2010 16:06:34 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6BG6YGR060074 for perforce@freebsd.org; Sun, 11 Jul 2010 16:06:34 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 11 Jul 2010 16:06:34 GMT Message-Id: <201007111606.o6BG6YGR060074@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180761 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jul 2010 16:06:35 -0000 http://p4web.freebsd.org/@@180761?ac=10 Change 180761 by rene@rene_acer on 2010/07/11 16:05:55 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#63 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/solid-state/article.sgml#19 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#19 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/install/chapter.sgml#5 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#82 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml#32 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/virtualization/chapter.sgml#22 integrate .. //depot/projects/docproj_nl/www/en/gnome/docs/faq2.sgml#7 integrate .. //depot/projects/docproj_nl/www/share/sgml/release.ent#27 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#63 (text+ko) ==== @@ -1,4 +1,4 @@ - + - FreeBSD and Solid State Devices + &os; and Solid State Devices @@ -51,7 +51,7 @@ - $FreeBSD: doc/en_US.ISO8859-1/articles/solid-state/article.sgml,v 1.17 2009/05/06 19:39:07 rene Exp $ + $FreeBSD: doc/en_US.ISO8859-1/articles/solid-state/article.sgml,v 1.18 2010/07/07 21:09:09 bcr Exp $ 2001 @@ -67,7 +67,7 @@ &legalnotice; - This article covers the use of solid state disk devices in FreeBSD + This article covers the use of solid state disk devices in &os; to create embedded systems. Embedded systems have the advantage of increased stability due to @@ -114,7 +114,7 @@ to the IDE bus and are compatible with the ATA command set. Therefore, with a very simple and low-cost adaptor, these devices can be attached directly to an IDE bus in a computer. Once implemented in this manner, - operating systems such as FreeBSD see the device as a normal hard disk + operating systems such as &os; see the device as a normal hard disk (albeit small). Other solid state disk solutions do exist, but their expense, @@ -136,7 +136,7 @@ /tmp and /var are mounted as memory filesystems to allow the system to create logs and update counters and temporary files. Memory filesystems are a critical - component to a successful solid state FreeBSD implementation. + component to a successful solid state &os; implementation. You should make sure the following lines exist in your kernel configuration file: @@ -210,12 +210,12 @@ Building a File System From Scratch - Because ATA compatible compact-flash cards are seen by FreeBSD as + Because ATA compatible compact-flash cards are seen by &os; as normal IDE hard drives, you could - theoretically install FreeBSD from the network using the kern and + theoretically install &os; from the network using the kern and mfsroot floppies or from a CD. - However, even a small installation of FreeBSD using normal + However, even a small installation of &os; using normal installation procedures can produce a system in size of greater than 200 megabytes. Because most people will be using smaller flash memory devices (128 megabytes is considered fairly large - 32 or even 16 @@ -224,7 +224,7 @@ smallest of conventional installations. The easiest way to overcome this space limitation is to install - FreeBSD using conventional means to a normal hard disk. After the + &os; using conventional means to a normal hard disk. After the installation is complete, pare down the operating system to a size that will fit onto your flash media, then tar the entire filesystem. The following steps will guide you through the process of preparing a piece @@ -249,7 +249,7 @@ 165. Now write this partition table to the disk by pressing the w key (this is a hidden option on this screen). If you are using an ATA compatible compact - flash card, you should choose the FreeBSD Boot Manager. Now press + flash card, you should choose the &os; Boot Manager. Now press the q key to quit the partition menu. You will be shown the boot manager menu once more - repeat the choice you made earlier. @@ -324,7 +324,7 @@ Assuming that you configured your filesystem correctly when it was built on the normal hard disk (with your filesystems mounted read-only, and with the necessary options compiled into the kernel) - you should now be successfully booting your FreeBSD embedded + you should now be successfully booting your &os; embedded system. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#19 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -112,8 +112,11 @@ Throughout this chapter, the cvsup command is used to obtain and update &os; sources. To use it, you will need to - install a port or package like net/cvsup-without-gui. If you are using + install the port or the package for net/cvsup (if you do not want to install + the graphical cvsup client, you can just install + the port net/cvsup-without-gui). + If you are using &os; 6.2-RELEASE or later, you may wish to substitute this with &man.csup.1;, which is now part of the base system. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/install/chapter.sgml#5 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -1799,10 +1799,10 @@ / - 512 MB + 1 GB This is the root filesystem. Every other filesystem - will be mounted somewhere under this one. 512 MB is a + will be mounted somewhere under this one. 1 GB is a reasonable size for this filesystem. You will not be storing too much data on it, as a regular FreeBSD install will put about 128 MB of data here. The remaining space is for temporary @@ -1841,7 +1841,7 @@ /var - 256 MB to 1024 MB + 512 MB to 4096 MB The /var directory contains files that are constantly varying; @@ -1858,7 +1858,7 @@ /usr - Rest of disk (at least 2 GB) + Rest of disk (at least 8 GB) All your other files will typically be stored in /usr and its subdirectories. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#82 (text+ko) ==== @@ -1,7 +1,7 @@ DESKTOP_ENTRIES= "ToME" "Roguelike game based on JRR Tolkien's work" \ "${DATADIR}/xtra/graf/tome-128.png" \ - "tome -v -g" "Application;Game;RolePlaying" \ + "tome -v -g" "Application;Game;RolePlaying;" \ false @@ -5960,7 +5960,8 @@ List of space-separated suitable Java versions for the port. An optional "+" allows you to specify a range of versions (allowed values: - 1.1[+] 1.2[+] 1.3[+] 1.4[+]). + 1.1[+] 1.2[+] 1.3[+] 1.4[+] 1.5[+] + 1.6[+]). ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml#32 (text+ko) ==== @@ -1,7 +1,7 @@ +
  • +

    Why do I not see any users in GDM?

    + +

    You did not mount the procfs file system. + Procfs is not mounted by default in recent releases of FreeBSD. + You must add the following line to your /etc/fstab + file:

    +
    +proc			/proc		procfs	rw	0	0
    +	    
    +
  • &footer; ==== //depot/projects/docproj_nl/www/share/sgml/release.ent#27 (text+ko) ==== @@ -1,4 +1,4 @@ - + + + + + &a.keramida; (2006 - 2010) + + + + &a.kris; (2008 - 2010) + + + + &a.gnn; (2006 - 2010) + + + + &a.murray; (2002 - 2010) + + + &a.wes; (2002 - 2008) - &a.imp; (2000 - 2008) + &a.peter; (1995 - 2006, 2008 - 2010) - ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/nanobsd/article.sgml#5 (text+ko) ==== @@ -15,7 +15,7 @@ - $FreeBSD: doc/en_US.ISO8859-1/articles/nanobsd/article.sgml,v 1.6 2010/06/10 07:18:10 danger Exp $ + $FreeBSD: doc/en_US.ISO8859-1/articles/nanobsd/article.sgml,v 1.7 2010/07/13 04:06:37 maxim Exp $ 2006 @@ -329,7 +329,7 @@ Adding packages Packages can be added to a NanoBSD - image using a custom function. The following fuction will install + image using a custom function. The following function will install all the packages located in /usr/src/tools/tools/nanobsd/packages: ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/pr-guidelines/article.sgml#4 (text+ko) ==== @@ -15,7 +15,7 @@ Problem Report Handling Guidelines - $FreeBSD: doc/en_US.ISO8859-1/articles/pr-guidelines/article.sgml,v 1.32 2010/03/20 02:04:36 linimon Exp $ + $FreeBSD: doc/en_US.ISO8859-1/articles/pr-guidelines/article.sgml,v 1.33 2010/07/13 19:15:21 gavin Exp $ &tm-attrib.freebsd; @@ -529,7 +529,7 @@ problem with &man.sysinstall.8; bin - freebsd-bugs (not freebsd-qa) + freebsd-sysinstall mailing list ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/faq/book.sgml#27 (text+ko) ==== @@ -12,7 +12,7 @@ The &os; Documentation Project - $FreeBSD: doc/en_US.ISO8859-1/books/faq/book.sgml,v 1.1120 2010/03/04 13:37:21 bcr Exp $ + $FreeBSD: doc/en_US.ISO8859-1/books/faq/book.sgml,v 1.1121 2010/07/15 20:39:57 pgj Exp $ 1995 @@ -10137,8 +10137,8 @@ Symlinks do not have permissions, and by default, - &man.chmod.1; will not follow symlinks to change the - permissions on the target file. So if you have a file, + &man.chmod.1; will follow symlinks to change the + permissions on the source file, if possible. So if you have a file, foo, and a symlink to that file, bar, then this command will always succeed. @@ -10148,7 +10148,9 @@ However, the permissions on foo will not have changed. - You have to use either or + When changing modes of the file hiearchies rooted in the + files instead of the files themselves, + you have to use either or together with the option to make this work. See the &man.chmod.1; and &man.symlink.7; manual pages for more info. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/install/chapter.sgml#6 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -2436,7 +2436,7 @@ chapter. User Confirmation Requested - Would you like to configure any Ethernet or SLIP/PPP network devices? + Would you like to configure any Ethernet or PPP network devices? [ Yes ] No @@ -4800,7 +4800,7 @@ installation network - serial (SLIP or PPP) + serial (PPP) installation @@ -4813,8 +4813,8 @@ Ethernet There are three types of network installations available. - Ethernet (a standard Ethernet controller), Serial port - (SLIP or PPP), or Parallel port (PLIP (laplink cable)). + Ethernet (a standard Ethernet controller), Serial port (PPP), or + Parallel port (PLIP (laplink cable)).
    For the fastest possible network installation, an Ethernet adapter is always a good choice! FreeBSD supports most @@ -4842,14 +4842,6 @@ or ISP before trying this type of installation. - The SLIP support is rather primitive, and limited primarily - to hard-wired links, such as a serial cable running between a - laptop computer and another computer. The link should be - hard-wired as the SLIP installation does not currently offer a - dialing capability; that facility is provided with the PPP - utility, which should be used in preference to SLIP whenever - possible. - If you are using a modem, then PPP is almost certainly your only choice. Make sure that you have your service provider's information handy as you will need to know it fairly ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml#31 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -430,11 +430,11 @@ Using SSH to check out the <filename>src/</filename> tree: - &prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src -The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established. -DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65. + &prompt.user; cvs -d anoncvs@anoncvs1.FreeBSD.org:/home/ncvs co src +The authenticity of host 'anoncvs1.freebsd.org (216.87.78.137)' can't be established. +DSA key fingerprint is 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62. Are you sure you want to continue connecting (yes/no)? yes -Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts. +Warning: Permanently added 'anoncvs1.freebsd.org' (DSA) to the list of known hosts. @@ -2442,6 +2442,7 @@ The release branch for &os;-8.1, used only for security advisories and other critical fixes. + RELENG_8_0 ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/x11/chapter.sgml#14 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -343,7 +343,11 @@ X11 distribution including the servers, clients, fonts etc. Separate packages and ports of X11 are also - available. + available.
    + + To install a minimal X11 distribution you can alternatively install + x11/xorg-minimal. + The rest of this chapter will explain how to configure X11, and how to set up a productive desktop ==== //depot/projects/docproj_nl/en_US.ISO8859-1/share/sgml/authors.ent#40 (text+ko) ==== @@ -13,7 +13,7 @@ builds for the other languages, and we will poke fun of you in public. - $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.512 2010/06/30 12:24:13 taras Exp $ + $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.513 2010/07/16 00:38:24 jsa Exp $ --> aaron@FreeBSD.org"> @@ -578,6 +578,8 @@ jpaetzel@FreeBSD.org"> +jsa@FreeBSD.org"> + jseger@FreeBSD.org"> julian@FreeBSD.org"> ==== //depot/projects/docproj_nl/share/pgpkeys/pgpkeys-core.sgml#3 (text+ko) ==== @@ -1,9 +1,19 @@ + + &a.jhb; + &pgpkey.jhb; + + + + &a.kib; + &pgpkey.kib; + + &a.wilko; &pgpkey.wilko; @@ -14,27 +24,22 @@ &pgpkey.brooks; - - &a.keramida; - &pgpkey.keramida; + + &a.imp; + &pgpkey.imp; + + + + &a.pav; + &pgpkey.pav; - - &a.gnn; - &pgpkey.gnn; + + &a.cperciva; + &pgpkey.cperciva; &a.hrs; &pgpkey.hrs; - - - &a.murray; - &pgpkey.murray; - - - - &a.kris; - &pgpkey.kris; - ==== //depot/projects/docproj_nl/share/pgpkeys/pgpkeys-developers.sgml#41 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -64,6 +64,11 @@ &pgpkey.gavin; + + &a.jsa; + &pgpkey.jsa; + + &a.jadawin; &pgpkey.jadawin; @@ -74,11 +79,6 @@ &pgpkey.timur; - - &a.jhb; - &pgpkey.jhb; - - &a.snb; &pgpkey.snb; @@ -94,11 +94,6 @@ &pgpkey.dougb; - - &a.kib; - &pgpkey.kib; - - &a.tobez; &pgpkey.tobez; @@ -616,6 +611,11 @@ &pgpkey.kris; + + &a.keramida; + &pgpkey.keramida; + + &a.fjoe; &pgpkey.fjoe; @@ -851,11 +851,6 @@ &pgpkey.scottl; - - &a.pav; - &pgpkey.pav; - - &a.rmacklem; &pgpkey.rmacklem; @@ -991,6 +986,11 @@ &pgpkey.bland; + + &a.gnn; + &pgpkey.gnn; + + &a.simon; &pgpkey.simon; @@ -1071,11 +1071,6 @@ &pgpkey.den; - - &a.cperciva; - &pgpkey.cperciva; - - &a.csjp; &pgpkey.csjp; @@ -1361,6 +1356,11 @@ &pgpkey.rrs; + + &a.murray; + &pgpkey.murray; + + &a.vs; &pgpkey.vs; ==== //depot/projects/docproj_nl/share/pgpkeys/pgpkeys.ent#38 (text+ko) ==== @@ -1,5 +1,5 @@ - + @@ -156,6 +156,7 @@ + ==== //depot/projects/docproj_nl/www/en/administration.sgml#14 (text+ko) ==== @@ -1,5 +1,5 @@ + %developers; @@ -91,15 +91,15 @@ Core Team is elected by the active developers in the project.

    FreeBSD Documentation Engineering Team ==== //depot/projects/docproj_nl/www/en/developers.sgml#38 (text+ko) ==== @@ -6,7 +6,7 @@ us to update author names, or the representation of those names (such as adding email addresses), by just editing a single file. -$FreeBSD: www/en/developers.sgml,v 1.255 2010/06/30 12:28:41 taras Exp $ +$FreeBSD: www/en/developers.sgml,v 1.256 2010/07/16 00:42:39 jsa Exp $ --> @@ -289,6 +289,7 @@ + ==== //depot/projects/docproj_nl/www/en/releases/8.1R/schedule.sgml#2 (text+ko) ==== @@ -1,7 +1,7 @@ - + @@ -53,7 +53,7 @@ Code freeze begins 24 May 2010 - - + 25 May 2010 Release Engineers announce that all further commits to the stable/8 branch will require explicit approval. Certain blanket approvals will be granted for narrow areas of @@ -63,14 +63,14 @@ BETA1 28 May 2010 - - + 27 May 2010 First beta test snapshot. releng/8.1 branch 10 June 2010 - - + 14 June 2010 Subversion branch created, propagated to CVS; future release engineering proceeds on this branch. @@ -78,14 +78,14 @@ RC1 11 June 2010 - - + 14 June 2010 First release candidate. RC2 25 June 2010 - - + 26 June 2010 Second release candidate. ==== //depot/projects/docproj_nl/www/en/releng/index.sgml#36 (text+ko) ==== @@ -1,6 +1,6 @@ - + @@ -116,7 +116,7 @@ RELENG_7_2 Frozen &contact.so; - FreeBSD 7.2 supported errata fix branch. + FreeBSD 7.2 errata fix branch (not officially supported). ==== //depot/projects/docproj_nl/www/share/sgml/advisories.xml#17 (text+ko) ==== @@ -2,7 +2,7 @@ - $FreeBSD: www/share/sgml/advisories.xml,v 1.237 2010/05/27 03:26:26 cperciva Exp $ + $FreeBSD: www/share/sgml/advisories.xml,v 1.238 2010/07/13 02:53:27 cperciva Exp $ @@ -10,6 +10,18 @@ 2010 + 7 + + + 13 + + + FreeBSD-SA-10:07.mbuf + + + + + 5 ==== //depot/projects/docproj_nl/www/share/sgml/news.xml#84 (text+ko) ==== @@ -25,7 +25,7 @@ - $FreeBSD: www/share/sgml/news.xml,v 1.326 2010/07/03 11:35:35 jkois Exp $ + $FreeBSD: www/share/sgml/news.xml,v 1.327 2010/07/16 00:42:39 jsa Exp $ @@ -36,6 +36,14 @@ 7 + 15 + + +

    New committer: Joseph S. Atkinson (ports)

    +
    +
    + + 2 From owner-p4-projects@FreeBSD.ORG Fri Jul 16 22:52:21 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5E1701065677; Fri, 16 Jul 2010 22:52:21 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 22235106564A for ; Fri, 16 Jul 2010 22:52:21 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B4AC88FC14 for ; Fri, 16 Jul 2010 22:52:20 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6GMqKPU018643 for ; Fri, 16 Jul 2010 22:52:20 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6GMqKmD018641 for perforce@freebsd.org; Fri, 16 Jul 2010 22:52:20 GMT (envelope-from anchie@FreeBSD.org) Date: Fri, 16 Jul 2010 22:52:20 GMT Message-Id: <201007162252.o6GMqKmD018641@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 181067 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Jul 2010 22:52:21 -0000 http://p4web.freebsd.org/@@181067?ac=10 Change 181067 by anchie@anchie_malimis on 2010/07/16 22:51:51 Conceptual and editorial changes (made/suggested by Bjoern). Affected files ... .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#29 edit .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/os-freebsd/addr.c#3 edit .. //depot/projects/soc2009/anchie_send/src/sys/kern/uipc_socket.c#8 edit .. //depot/projects/soc2009/anchie_send/src/sys/net/route.h#12 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet/icmp6.h#16 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet/in.h#7 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet/ip_var.h#11 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet/raw_ip.c#9 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/icmp6.c#43 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/in6_proto.c#7 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/nd6.c#33 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/nd6_nbr.c#19 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/raw_ip6.c#12 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#45 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.h#22 edit Differences ... ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#29 (text+ko) ==== @@ -89,7 +89,7 @@ int ifidx; }; -void snd_sock_read(struct snd_ifinfo *p); +static void snd_sock_read(struct snd_ifinfo *p); #endif /* TODO: dynamically size according to MTU */ @@ -141,10 +141,10 @@ } void -snd_deliver_pkt(void *p, struct sbuff *b, int drop, int changed) +os_specific_deliver_pkt(void *p, struct sbuff *b, int drop, int changed) { struct snd_packet_info *pi; - struct snd_hdr *snd_hdr; + struct sockaddr_send sendsrc; if (drop) { snd_put_buf(b); @@ -152,13 +152,15 @@ } pi = (struct snd_packet_info *)(b->head); - b->data -= SEND_HDR_LEN; - b->len += SEND_HDR_LEN; - snd_hdr = sbuff_data(b); - snd_hdr->direction = pi->in; - snd_hdr->ifidx = pi->ifinfo->ifidx; + bzero(&sendsrc, sizeof(sendsrc)); + sendsrc.send_len = sizeof(sendsrc); + sendsrc.send_family = AF_INET6; + sendsrc.send_direction = pi->in; + sendsrc.send_ifidx = pi->ifinfo->ifidx; - if (send(sndsock, b->data, b->len, 0) < 0) { + DBG(&dbg_snd, "Sending %d bytes:\n", b->len); + if (sendto(sndsock, b->data, b->len, 0, (struct sockaddr *)&sendsrc, + sizeof(sendsrc)) < 0) { DBG(&dbg_snd, "Failed to send SEND message back to kernel."); perror("Failed"); snd_put_buf(b); @@ -166,7 +168,6 @@ } snd_put_buf(b); - return; } @@ -177,9 +178,9 @@ struct snd_ifinfo *p; list_for_each_entry(p, &ifaces, list) { - *maxfd = *maxfd > p->snds ? *maxfd : p->snds; p->snds = sock; FD_SET(p->snds, fds); + *maxfd = sendd_max(*maxfd, p->snds); } } #endif @@ -238,11 +239,11 @@ } #ifdef SND_OS_freebsd -void +static void snd_sock_read(struct snd_ifinfo *p) { - struct snd_hdr *snd_hdr; - int direction; + struct sockaddr_send sendsrc; + socklen_t len; struct sbuff *b; struct snd_packet_info *pi; int n; @@ -254,18 +255,18 @@ pi = sbuff_data(b); sbuff_advance(b, sizeof (*pi)); - n = recv(sndsock, b->data, b->rem, 0); + len = sizeof(sendsrc); + bzero(&sendsrc, sizeof(sendsrc)); + n = recvfrom(sndsock, b->data, b->rem, 0, (struct sockaddr *)&sendsrc, &len); if (n < 0) { - applog(LOG_ERR, "%s: read: %s", __FUNCTION__, strerror(errno)); + applog(LOG_ERR, "%s: read: %s", __func__, strerror(errno)); goto done; } else - DBG(&dbg_snd, "%d bytes received on routing socket. (%d)", n, b->rem); + DBG(&dbg_snd, "%d bytes received on send socket. (%d)", n, b->rem); b->len = n; - snd_hdr = sbuff_pull(b, SEND_HDR_LEN); - direction = snd_hdr->direction; - switch(direction) { + switch(sendsrc.send_direction) { case SND_IN: applog(LOG_ERR, "Direction: SND_IN"); pi->ifinfo = p; @@ -365,13 +366,11 @@ return (-1); } #endif + #ifdef SND_OS_freebsd #define IPPROTO_SEND 259 -#endif - -#ifdef SND_OS_freebsd - if ((*sndsocket = socket(PF_INET, SOCK_RAW, IPPROTO_SEND)) < 0) { - applog(LOG_ERR, "%s: socket: %s", __FUNCTION__, + if ((*sndsocket = socket(PF_INET6, SOCK_RAW, IPPROTO_SEND)) < 0) { + applog(LOG_ERR, "[%s:%d]: socket: %s", __func__, __LINE__, strerror(errno)); return(-1); } else { ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/os-freebsd/addr.c#3 (text+ko) ==== @@ -54,10 +54,10 @@ struct in6_aliasreq req[1]; struct in6_addr mask64[1]; int s; -#ifdef SND_OS_linux +#ifdef SND_OS_freebsd + unsigned long cmd; +#else int cmd; -#else - unsigned int long cmd; #endif int r = -1; ==== //depot/projects/soc2009/anchie_send/src/sys/kern/uipc_socket.c#8 (text+ko) ==== @@ -1187,15 +1187,12 @@ goto release; } } else if (addr == NULL) { - /* XXX-AK: */ - if (so->so_proto->pr_protocol != 259) { SOCKBUF_UNLOCK(&so->so_snd); if (so->so_proto->pr_flags & PR_CONNREQUIRED) error = ENOTCONN; else error = EDESTADDRREQ; goto release; - } } } space = sbspace(&so->so_snd); ==== //depot/projects/soc2009/anchie_send/src/sys/net/route.h#12 (text+ko) ==== @@ -234,6 +234,7 @@ u_long rtm_inits; /* which metrics we are initializing */ struct rt_metrics rtm_rmx; /* metrics themselves */ }; + #define RTM_VERSION 5 /* Up the ante and ignore older versions */ /* ==== //depot/projects/soc2009/anchie_send/src/sys/netinet/icmp6.h#16 (text+ko) ==== @@ -662,7 +662,6 @@ void icmp6_prepare(struct mbuf *); void icmp6_redirect_input(struct mbuf *, int); void icmp6_redirect_output(struct mbuf *, struct rtentry *); -int icmp6_rip6_input(struct mbuf **, int); struct ip6ctlparam; void icmp6_mtudisc_update(struct ip6ctlparam *, int); ==== //depot/projects/soc2009/anchie_send/src/sys/netinet/in.h#7 (text+ko) ==== @@ -252,7 +252,7 @@ /* Only used internally, so can be outside the range of valid IP protocols. */ #define IPPROTO_DIVERT 258 /* divert pseudo-protocol */ -#define IPPROTO_SEND 259 /* SeND socket pseudo-proto */ +#define IPPROTO_SEND 259 /* SeND pseudo-protocol */ /* * Defined to avoid confusion. The master value is defined by ==== //depot/projects/soc2009/anchie_send/src/sys/netinet/ip_var.h#11 (text+ko) ==== @@ -188,7 +188,6 @@ extern u_long (*ip_mcast_src)(int); VNET_DECLARE(int, rsvp_on); extern struct pr_usrreqs rip_usrreqs; -VNET_DECLARE(struct socket *, send_so); /* SeND daemon */ #define V_ipstat VNET(ipstat) #define V_ip_id VNET(ip_id) @@ -199,9 +198,7 @@ #endif #define V_ip_rsvpd VNET(ip_rsvpd) #define V_ip_mrouter VNET(ip_mrouter) - #define V_rsvp_on VNET(rsvp_on) -#define V_send_so VNET(send_so) void inp_freemoptions(struct ip_moptions *); int inp_getmoptions(struct inpcb *, struct sockopt *); ==== //depot/projects/soc2009/anchie_send/src/sys/netinet/raw_ip.c#9 (text+ko) ==== @@ -104,11 +104,6 @@ VNET_DEFINE(struct socket *, ip_mrouter); /* - * The socket used to communicate with the SeND daemon. - */ -VNET_DEFINE(struct socket *, send_so); - -/* * The various mrouter and rsvp functions. */ int (*ip_mrouter_set)(struct socket *, struct sockopt *); ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/icmp6.c#43 (text+ko) ==== @@ -94,7 +94,6 @@ #include #include #include -#include #include #include #include @@ -132,6 +131,7 @@ #define V_icmp6_nodeinfo VNET(icmp6_nodeinfo) static void icmp6_errcount(struct icmp6errstat *, int, int); +static int icmp6_rip6_input(struct mbuf **, int); static int icmp6_ratelimit(const struct in6_addr *, const int, const int); static const char *icmp6_redirect_diag __P((struct in6_addr *, struct in6_addr *, struct in6_addr *)); @@ -2008,7 +2008,7 @@ /* * XXX almost dup'ed code with rip6_input. */ -int +static int icmp6_rip6_input(struct mbuf **mp, int off) { struct mbuf *m = *mp; ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/in6_proto.c#7 (text+ko) ==== @@ -145,6 +145,14 @@ #define PR_LISTEN 0 #define PR_ABRTACPTDIS 0 +/* Spacer for loadable protocols. */ +#define IP6PROTOSPACER \ +{ \ + .pr_domain = &inet6domain, \ + .pr_protocol = PROTO_SPACER, \ + .pr_usrreqs = &nousrreqs \ +} + struct ip6protosw inet6sw[] = { { .pr_type = 0, @@ -340,6 +348,15 @@ .pr_usrreqs = &rip6_usrreqs }, #endif /* DEV_CARP */ +/* Spacer n-times for loadable protocols. */ +IP6PROTOSPACER, +IP6PROTOSPACER, +IP6PROTOSPACER, +IP6PROTOSPACER, +IP6PROTOSPACER, +IP6PROTOSPACER, +IP6PROTOSPACER, +IP6PROTOSPACER, /* raw wildcard */ { .pr_type = SOCK_RAW, ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/nd6.c#33 (text+ko) ==== @@ -62,7 +62,6 @@ #include #include -#include #include #define L3_ADDR_SIN6(le) ((struct sockaddr_in6 *) L3_ADDR(le)) #include ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/nd6_nbr.c#19 (text+ko) ==== @@ -64,7 +64,6 @@ #include #include -#include #include #define L3_ADDR_SIN6(le) ((struct sockaddr_in6 *) L3_ADDR(le)) #include ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/raw_ip6.c#12 (text+ko) ==== @@ -536,7 +536,7 @@ * them to rtadvd/rtsol. */ if ((send_sendso_input_hook != NULL) && - so->so_proto->pr_protocol == IPPROTO_ICMPV6) { + so->so_proto->pr_protocol == IPPROTO_ICMPV6) { switch (type) { case ND_ROUTER_ADVERT: case ND_ROUTER_SOLICIT: ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#45 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2009-2010 Ana Kukec + * Copyright (c) 2009-2010 Ana Kukec * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,17 +25,21 @@ */ #include +#include +#include #include -#include +#include +#include #include -#include -#include #include #include #include #include -#include +#include +#include +#include +#include #include #include @@ -43,251 +47,272 @@ #include #include -#include -#include -#include - #include #include #include #include +MALLOC_DEFINE(M_SEND, "send", "Secure Neighbour Discovery"); -MALLOC_DEFINE(M_SEND, "send", "Secure Neighbour Discovery"); +/* + * The socket used to communicate with the SeND daemon. + */ +static VNET_DEFINE(struct socket *, send_so); +#define V_send_so VNET(send_so) + +u_long send_sendspace = 8 * (1024 + sizeof(struct sockaddr_send)); +u_long send_recvspace = 9216; static int -send_output(struct mbuf *m, struct ifnet *ifp, int direction) +send_attach(struct socket *so, int proto, struct thread *td) { - struct ip6_hdr *ip6; - struct sockaddr_in6 dst; - struct icmp6_hdr *icmp6; - int icmp6len; + int error; - /* - * Receive incoming (SEND-protected) or outgoing traffic - * (SEND-validated) from the SEND user space application. - * Outgoing packets are sent out using if_output(). - */ + if (V_send_so != NULL) + return (EEXIST); - switch (direction) { - case SND_IN: - if (m->m_len < (sizeof(struct ip6_hdr) + - sizeof(struct icmp6_hdr))) { - m = m_pullup(m, sizeof(struct ip6_hdr) + - sizeof(struct icmp6_hdr)); - if (!m) - return (ENOBUFS); - } + error = priv_check(td, PRIV_NETINET_RAW); + if (error) + return (error); + if (proto != IPPROTO_SEND) + return (EPROTONOSUPPORT); + error = soreserve(so, send_sendspace, send_recvspace); + if (error) + return (error); - /* Before passing off the mbuf record the proper interface. */ - m->m_pkthdr.rcvif = ifp; + V_send_so = so; - if (m->m_flags & M_PKTHDR) - icmp6len = m->m_pkthdr.len - sizeof(struct ip6_hdr); - else - panic("Doh! not the first mbuf."); + return (0); +} - ip6 = mtod(m, struct ip6_hdr *); - icmp6 = (struct icmp6_hdr *)(ip6 + 1); +static int +send_output(struct mbuf *m, struct ifnet *ifp, int direction) +{ + struct ip6_hdr *ip6; + struct sockaddr_in6 dst; + struct icmp6_hdr *icmp6; + int icmp6len; - /* - * Output the packet as icmp6.c:icpm6_input() would do. - * The mbuf is always consumed, so we do not have to - * care about that. - */ - switch (icmp6->icmp6_type) { - case ND_NEIGHBOR_SOLICIT: - nd6_ns_input(m, sizeof(struct ip6_hdr), icmp6len); - break; - case ND_NEIGHBOR_ADVERT: - nd6_na_input(m, sizeof(struct ip6_hdr), icmp6len); - break; - case ND_REDIRECT: - icmp6_redirect_input(m, sizeof(struct ip6_hdr)); - break; - case ND_ROUTER_SOLICIT: - nd6_rs_input(m, sizeof(struct ip6_hdr), icmp6len); - break; - case ND_ROUTER_ADVERT: - nd6_ra_input(m, sizeof(struct ip6_hdr), icmp6len); - break; - default: - return (ENOSYS); - } + /* + * Receive incoming (SeND-protected) or outgoing traffic + * (SeND-validated) from the SeND user space application. + */ - /* - * No error returned from nd6_??_input() so the only thing - * we can do is to pretend that it worked. - */ - return (0); + switch (direction) { + case SND_IN: + if (m->m_len < (sizeof(struct ip6_hdr) + + sizeof(struct icmp6_hdr))) { + m = m_pullup(m, sizeof(struct ip6_hdr) + + sizeof(struct icmp6_hdr)); + if (!m) + return (ENOBUFS); + } - case SND_OUT: - if (m->m_len < sizeof(struct ip6_hdr)) { - m = m_pullup(m, sizeof(struct ip6_hdr)); - if (!m) - return (ENOBUFS); - } - ip6 = mtod(m, struct ip6_hdr *); - if (IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst)) - m->m_flags |= M_MCAST; + /* Before passing off the mbuf record the proper interface. */ + m->m_pkthdr.rcvif = ifp; - zero(&dst, sizeof(dst)); - dst.sin6_family = AF_INET6; - dst.sin6_len = sizeof(dst); - dst.sin6_addr = ip6->ip6_dst; + if (m->m_flags & M_PKTHDR) + icmp6len = m->m_pkthdr.len - sizeof(struct ip6_hdr); + else + panic("Doh! not the first mbuf."); - /* - * Output the packet as nd6.c:nd6_output_lle() would do. - * The mbuf is always consumed, so we do not have to care - * about that. - */ - return ((*ifp->if_output)(ifp, m, (struct sockaddr *)&dst, - NULL)); + ip6 = mtod(m, struct ip6_hdr *); + icmp6 = (struct icmp6_hdr *)(ip6 + 1); - default: - panic("%s: direction must be either SND_IN or SND_OUT.", __func__); - } -} + /* + * Output the packet as icmp6.c:icpm6_input() would do. + * The mbuf is always consumed, so we do not have to + * care about that. + */ + switch (icmp6->icmp6_type) { + case ND_NEIGHBOR_SOLICIT: + nd6_ns_input(m, sizeof(struct ip6_hdr), icmp6len); + break; + case ND_NEIGHBOR_ADVERT: + nd6_na_input(m, sizeof(struct ip6_hdr), icmp6len); + break; + case ND_REDIRECT: + icmp6_redirect_input(m, sizeof(struct ip6_hdr)); + break; + case ND_ROUTER_SOLICIT: + nd6_rs_input(m, sizeof(struct ip6_hdr), icmp6len); + break; + case ND_ROUTER_ADVERT: + nd6_ra_input(m, sizeof(struct ip6_hdr), icmp6len); + break; + default: + return (ENOSYS); + } + return (0); -static int -send_uattach(struct socket *so, int proto, struct thread *td) -{ + case SND_OUT: + if (m->m_len < sizeof(struct ip6_hdr)) { + m = m_pullup(m, sizeof(struct ip6_hdr)); + if (!m) + return (ENOBUFS); + } + ip6 = mtod(m, struct ip6_hdr *); + if (IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst)) + m->m_flags |= M_MCAST; - if (V_send_so != NULL) - return (EEXIST); + bzero(&dst, sizeof(dst)); + dst.sin6_family = AF_INET6; + dst.sin6_len = sizeof(dst); + dst.sin6_addr = ip6->ip6_dst; - V_send_so = so; + /* + * Output the packet as nd6.c:nd6_output_lle() would do. + * The mbuf is always consumed, so we do not have to care + * about that. + * XXX-BZ as we added data, what about fragmenting, + * if now needed? + */ + int error; + error = ((*ifp->if_output)(ifp, m, (struct sockaddr *)&dst, + NULL)); + if (error) + error = ENOENT; + return (error); - return (0); + default: + panic("%s: direction %d neither SND_IN nor SND_OUT.", + __func__, direction); + } } +/* + * Receive a SeND message from user space to be either send out by the kernel + * or, with SeND ICMPv6 options removed, to be further processed by the icmp6 + * input path. + */ static int -sosend_rcv(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr, - struct mbuf *control, struct thread *td) +send_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *nam, + struct mbuf *control, struct thread *td) { - struct ifnet *ifp; - struct snd_hdr *snd_hdr; + struct sockaddr_send *sendsrc; + struct ifnet *ifp; + int error; - snd_hdr = mtod(m, struct snd_hdr *); + if (V_send_so == NULL) { + error = ENOTCONN; + goto err; + } - struct mbuf *m0; - m0 = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); - if (m0 == NULL) { - m_freem(m); - return (ENOBUFS); - } - m_move_pkthdr(m, m0); + sendsrc = (struct sockaddr_send *)nam; + ifp = ifnet_byindex_ref(sendsrc->send_ifidx); + if (ifp == NULL) { + error = ENETUNREACH; + goto err; + } - ifp = ifnet_byindex_ref(snd_hdr->ifidx); - m_adj(m, SEND_HDR_LEN); - m_fixhdr(m); - if (ifp) { - if (send_output(m, ifp, snd_hdr->direction)) - return (ENOENT); + error = send_output(m, ifp, sendsrc->send_direction); if_rele(ifp); - } else - return (ENETUNREACH); + m = NULL; + +err: + if (error && m != NULL) + m_freem(m); + return (error); +} + +static void +send_close(struct socket *so) +{ - return (0); + if (V_send_so) + V_send_so = NULL; } /* - * Send a message to the SEND daemon on the SEND socket. + * Send a SeND message to user space, that was either received and has to be + * validated or was about to be send out and has to be handled by the SEND + * daemon adding SeND ICMPv6 options. */ static int -send_sendso_input(struct mbuf *m, int direction, int msglen) +send_input(struct mbuf *m, int direction, int msglen __unused) { - u_int len; - struct ip6_hdr *ip6; - struct snd_hdr *snd_hdr = NULL; + struct ip6_hdr *ip6; + struct sockaddr_send sendsrc; - if (V_send_so == NULL) - return (-1); + if (V_send_so == NULL) + return (-1); - /* - * Make sure to clear any possible internally embedded scope before - * passing the packet to userspace for SeND cryptographic signature - * validation to succeed. - */ - ip6 = mtod(m, struct ip6_hdr *); - in6_clearscope(&ip6->ip6_src); - in6_clearscope(&ip6->ip6_dst); + /* + * Make sure to clear any possible internally embedded scope before + * passing the packet to user space for SeND cryptographic signature + * validation to succeed. + */ + ip6 = mtod(m, struct ip6_hdr *); + in6_clearscope(&ip6->ip6_src); + in6_clearscope(&ip6->ip6_dst); - len = m_length(m, NULL); + bzero(&sendsrc, sizeof(sendsrc)); + sendsrc.send_len = sizeof(sendsrc); + sendsrc.send_family = AF_INET6; + sendsrc.send_direction = direction; + sendsrc.send_ifidx = -1; - m = m_prepend(m, SEND_HDR_LEN, M_PKTHDR|M_DONTWAIT); - if (m == NULL) { - return (ENOBUFS); - } - snd_hdr = mtod(m, struct snd_hdr *); - snd_hdr->direction = direction; - snd_hdr->ifidx = -1; + /* + * Send incoming or outgoing traffic to user space either to be + * protected (outgoing) or validated (incoming) according to rfc3971. + */ + SOCKBUF_LOCK(&V_send_so->so_rcv); + if (sbappendaddr_locked(&V_send_so->so_rcv, + (struct sockaddr *)&sendsrc, m, NULL) == 0) { + SOCKBUF_UNLOCK(&V_send_so->so_rcv); + /* XXX stats. */ + m_freem(m); + } else { + sorwakeup_locked(V_send_so); + } - /* - * Send incoming or outgoing traffic to the user space either to be - * protected (outgoing) or validated (incoming) according to rfc3971. - */ - - SOCKBUF_LOCK(&s->so_rcv); - sbappendrecord_locked(&s->so_rcv, m); - sorwakeup_locked(s); - return (0); + return (0); } -static void -send_close(struct socket *so) -{ - - if (V_send_so) - V_send_so = NULL; -} - struct pr_usrreqs send_usrreqs = { - .pru_attach = send_uattach, - .pru_send = sosend_rcv, - .pru_detach = send_close + .pru_attach = send_attach, + .pru_send = send_send, + .pru_detach = send_close }; struct protosw send_protosw = { - .pr_type = SOCK_RAW, - .pr_protocol = IPPROTO_SEND, - .pr_usrreqs = &send_usrreqs + .pr_type = SOCK_RAW, + .pr_flags = PR_ATOMIC|PR_ADDR, + .pr_protocol = IPPROTO_SEND, + .pr_usrreqs = &send_usrreqs }; static int send_modevent(module_t mod, int type, void *unused) { - int error = 0; + int error = 0; - /* Add locking? icmp6.c and nd6.c are maybe using hooks.. */ + switch (type) { + case MOD_LOAD: + error = pf_proto_register(PF_INET6, &send_protosw); + if (error != 0) { + printf("%s:%d: MOD_LOAD pf_proto_register(): %d\n", + __func__, __LINE__, error); + break; + } + send_sendso_input_hook = send_input; + break; + case MOD_UNLOAD: + if (V_send_so != NULL) + return (EINVAL); + error = pf_proto_unregister(PF_INET6, IPPROTO_SEND, SOCK_RAW); + send_sendso_input_hook = NULL; + break; + default: + break; + } - switch (type) { - case MOD_LOAD: - error = pf_proto_register(PF_INET, &send_protosw); - if (error != 0) - break; - send_sendso_input_hook = send_sendso_input; - break; - case MOD_UNLOAD: - if (V_send_so != NULL) - return (EINVAL); - error = pf_proto_unregister(PF_INET, IPPROTO_SEND, SOCK_RAW); - send_sendso_input_hook = NULL; - break; - - default: - break; - } - - return (error); + return (error); } static moduledata_t sendmod = { - "send", - send_modevent, - 0 + "send", + send_modevent, + 0 }; -DECLARE_MODULE(send, sendmod, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY); - - - +DECLARE_MODULE(send, sendmod, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY); ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.h#22 (text+ko) ==== @@ -1,6 +1,6 @@ /*- - * Copyright (c) 2009-2010 Ana Kukec - * All rights reserved. + * Copyright (c) 2009-2010 Ana Kukec + * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -24,14 +24,20 @@ * SUCH DAMAGE. */ +#ifndef _NETINET6_SEND_H_ +#define _NETINET6_SEND_H_ + #define SND_OUT 0 /* Outgoing traffic */ #define SND_IN 1 /* Incoming traffic. */ -#define SEND_HDR_LEN sizeof(struct snd_hdr) +struct sockaddr_send { + unsigned char send_len; /* total length */ + sa_family_t send_family; /* address family */ + int send_direction; + int send_ifidx; + char send_zero[8]; +}; -struct snd_hdr { - int direction; - int ifidx; -}; +extern int (*send_sendso_input_hook)(struct mbuf *, int, int); -extern int (*send_sendso_input_hook)(struct mbuf *, int, int); +#endif /* _NETINET6_SEND_H_ */ From owner-p4-projects@FreeBSD.ORG Sat Jul 17 00:25:03 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E67A31065676; Sat, 17 Jul 2010 00:25:02 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A99151065674 for ; Sat, 17 Jul 2010 00:25:02 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 922CB8FC16 for ; Sat, 17 Jul 2010 00:25:02 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6H0P2vH027702 for ; Sat, 17 Jul 2010 00:25:02 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6H0P2HH027700 for perforce@freebsd.org; Sat, 17 Jul 2010 00:25:02 GMT (envelope-from gabor@freebsd.org) Date: Sat, 17 Jul 2010 00:25:02 GMT Message-Id: <201007170025.o6H0P2HH027700@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 181071 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jul 2010 00:25:03 -0000 http://p4web.freebsd.org/@@181071?ac=10 Change 181071 by gabor@gabor_server on 2010/07/17 00:24:22 - Fix cases, where -v and multiple -e switches are specified together. Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/util.c#89 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/util.c#89 (text+ko) ==== @@ -84,6 +84,7 @@ errx(2, "%s: %s", p->fts_path, strerror(p->fts_errno)); break; case FTS_DP: + /* FALLTHROUGH */ case FTS_D: break; case FTS_DC: @@ -260,11 +261,11 @@ if (fg_pattern[i].pattern) { r = grep_search(&fg_pattern[i], (unsigned char *)l->dat, l->len, &pmatch); - r = (r == 0) ? (vflag ? REG_NOMATCH : 0) : (vflag ? 0 : REG_NOMATCH); + r = (r == 0) ? 0 : REG_NOMATCH; st = pmatch.rm_eo; } else { r = regexec(&r_pattern[i], l->dat, 1, &pmatch, eflags); - r = (r == 0) ? (vflag ? REG_NOMATCH : 0) : (vflag ? 0 : REG_NOMATCH); + r = (r == 0) ? 0 : REG_NOMATCH; st = pmatch.rm_eo; } if (r == REG_NOMATCH) @@ -298,10 +299,15 @@ if (m == 0) c++; if (m < MAX_LINE_MATCHES) - matches[m] = pmatch; - m++; + matches[m++] = pmatch; + /* Matches - no need to check more patterns */ + break; } - break; + } + + if (vflag) { + c = !c; + break; } /* One pass if we are not recording matches */ if (!oflag && !color) From owner-p4-projects@FreeBSD.ORG Sat Jul 17 03:30:27 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 921FA1065674; Sat, 17 Jul 2010 03:30:27 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4B47A106566B for ; Sat, 17 Jul 2010 03:30:27 +0000 (UTC) (envelope-from peter@wemm.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 371F78FC12 for ; Sat, 17 Jul 2010 03:30:27 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6H3URTF055573 for ; Sat, 17 Jul 2010 03:30:27 GMT (envelope-from peter@wemm.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6H3UPMF055571 for perforce@freebsd.org; Sat, 17 Jul 2010 03:30:25 GMT (envelope-from peter@wemm.org) Date: Sat, 17 Jul 2010 03:30:25 GMT Message-Id: <201007170330.o6H3UPMF055571@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@wemm.org using -f From: Peter Wemm To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 181074 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jul 2010 03:30:27 -0000 http://p4web.freebsd.org/@@181074?ac=10 Change 181074 by peter@peter_daintree on 2010/07/17 03:29:54 IFC @181073 Affected files ... .. //depot/projects/hammer/Makefile.inc1#155 integrate .. //depot/projects/hammer/Makefile.mips#1 branch .. //depot/projects/hammer/ObsoleteFiles.inc#80 integrate .. //depot/projects/hammer/UPDATING#145 integrate .. //depot/projects/hammer/bin/pkill/pkill.1#7 integrate .. //depot/projects/hammer/bin/sh/expand.c#22 integrate .. //depot/projects/hammer/bin/sh/jobs.c#19 integrate .. //depot/projects/hammer/bin/sh/jobs.h#4 integrate .. //depot/projects/hammer/bin/sh/parser.c#23 integrate .. //depot/projects/hammer/bin/sh/sh.1#37 integrate .. //depot/projects/hammer/cddl/compat/opensolaris/include/mnttab.h#4 integrate .. //depot/projects/hammer/cddl/compat/opensolaris/misc/fsshare.c#2 integrate .. //depot/projects/hammer/cddl/compat/opensolaris/misc/mnttab.c#3 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/cmd/pyzfs/pyzfs.py#1 branch .. //depot/projects/hammer/cddl/contrib/opensolaris/cmd/zdb/zdb.8#3 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/cmd/zdb/zdb.c#5 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c#4 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/cmd/zfs/zfs.8#5 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c#6 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c#5 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/cmd/ztest/ztest.c#4 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h#6 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#3 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#6 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_graph.c#3 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h#4 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c#5 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c#4 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c#5 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c#3 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c#5 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#8 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c#4 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/pyzfs/common/__init__.py#1 branch .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/pyzfs/common/allow.py#1 branch .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/pyzfs/common/dataset.py#1 branch .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/pyzfs/common/groupspace.py#1 branch .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/pyzfs/common/ioctl.c#1 branch .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/pyzfs/common/unallow.py#1 branch .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/pyzfs/common/userspace.py#1 branch .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/pyzfs/common/util.py#1 branch .. //depot/projects/hammer/contrib/binutils/bfd/elf64-ppc.c#5 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/readelf.1#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/lexsup.c#5 integrate .. //depot/projects/hammer/contrib/gcc/config/rs6000/freebsd.h#6 integrate .. //depot/projects/hammer/contrib/gdb/gdb/ppcfbsd-tdep.c#2 integrate .. //depot/projects/hammer/contrib/gdb/gdb/solib-svr4.c#4 integrate .. //depot/projects/hammer/etc/gettytab#7 integrate .. //depot/projects/hammer/etc/mtree/BSD.usr.dist#52 integrate .. //depot/projects/hammer/games/fortune/datfiles/fortunes-o.real#15 integrate .. //depot/projects/hammer/games/pom/pom.6#5 integrate .. //depot/projects/hammer/games/pom/pom.c#6 integrate .. //depot/projects/hammer/gnu/lib/csu/Makefile#16 integrate .. //depot/projects/hammer/gnu/lib/libgcc/Makefile#26 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/as/Makefile#9 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/as/powerpc64-freebsd/itbl-cpu.h#1 branch .. //depot/projects/hammer/gnu/usr.bin/binutils/as/powerpc64-freebsd/targ-cpu.h#1 branch .. //depot/projects/hammer/gnu/usr.bin/binutils/gdb/Makefile#14 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/gdb/Makefile.powerpc64#1 branch .. //depot/projects/hammer/gnu/usr.bin/binutils/ld/Makefile.powerpc64#1 branch .. //depot/projects/hammer/gnu/usr.bin/binutils/ld/elf32btsmipn32_fbsd.sh#2 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/ld/elf32ltsmipn32_fbsd.sh#2 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/Makefile#13 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/Makefile.powerpc64#1 branch .. //depot/projects/hammer/gnu/usr.bin/binutils/libopcodes/Makefile.powerpc64#1 branch .. //depot/projects/hammer/gnu/usr.bin/cc/Makefile.tgt#10 integrate .. //depot/projects/hammer/gnu/usr.bin/cc/cc_tools/Makefile#25 integrate .. //depot/projects/hammer/gnu/usr.bin/cc/include/Makefile#10 integrate .. //depot/projects/hammer/gnu/usr.bin/dialog/dialog.1#3 integrate .. //depot/projects/hammer/gnu/usr.bin/dtc/Makefile#3 integrate .. //depot/projects/hammer/gnu/usr.bin/gdb/arch/powerpc64/Makefile#1 branch .. //depot/projects/hammer/gnu/usr.bin/gdb/arch/powerpc64/config.h#1 branch .. //depot/projects/hammer/gnu/usr.bin/gdb/arch/powerpc64/init.c#1 branch .. //depot/projects/hammer/gnu/usr.bin/gdb/kgdb/trgt_powerpc64.c#1 branch .. //depot/projects/hammer/gnu/usr.bin/gdb/libgdb/fbsd-threads.c#14 integrate .. //depot/projects/hammer/include/Makefile#87 integrate .. //depot/projects/hammer/include/arpa/inet.h#9 integrate .. //depot/projects/hammer/lib/Makefile#84 integrate .. //depot/projects/hammer/lib/bind/config.mk#13 integrate .. //depot/projects/hammer/lib/csu/powerpc64/Makefile#1 branch .. //depot/projects/hammer/lib/csu/powerpc64/crt1.c#1 branch .. //depot/projects/hammer/lib/csu/powerpc64/crti.S#1 branch .. //depot/projects/hammer/lib/csu/powerpc64/crtn.S#1 branch .. //depot/projects/hammer/lib/libc/Makefile#37 integrate .. //depot/projects/hammer/lib/libc/compat-43/sigcompat.c#4 integrate .. //depot/projects/hammer/lib/libc/gen/_thread_init.c#3 integrate .. //depot/projects/hammer/lib/libc/gmon/gmon.c#11 integrate .. //depot/projects/hammer/lib/libc/mips/sys/brk.S#4 integrate .. //depot/projects/hammer/lib/libc/mips/sys/sbrk.S#3 integrate .. //depot/projects/hammer/lib/libc/net/sctp_recvmsg.3#7 integrate .. //depot/projects/hammer/lib/libc/net/sctp_send.3#7 integrate .. //depot/projects/hammer/lib/libc/net/sctp_sys_calls.c#11 integrate .. //depot/projects/hammer/lib/libc/posix1e/acl_from_text.c#5 integrate .. //depot/projects/hammer/lib/libc/posix1e/acl_from_text_nfs4.c#2 integrate .. //depot/projects/hammer/lib/libc/posix1e/acl_support.h#6 integrate .. //depot/projects/hammer/lib/libc/powerpc64/Makefile.inc#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/SYS.h#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/_fpmath.h#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/arith.h#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gd_qnan.h#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/Makefile.inc#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/_ctx_start.S#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/_set_tp.c#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/_setjmp.S#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/fabs.S#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/flt_rounds.c#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/fpgetmask.c#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/fpgetround.c#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/fpgetsticky.c#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/fpsetmask.c#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/fpsetround.c#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/infinity.c#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/makecontext.c#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/modf.c#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/setjmp.S#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/signalcontext.c#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/sigsetjmp.S#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/gen/syncicache.c#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/softfloat/milieu.h#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/softfloat/powerpc-gcc.h#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/softfloat/softfloat.h#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/sys/Makefile.inc#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/sys/brk.S#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/sys/cerror.S#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/sys/exect.S#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/sys/pipe.S#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/sys/ptrace.S#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/sys/sbrk.S#1 branch .. //depot/projects/hammer/lib/libc/powerpc64/sys/setlogin.S#1 branch .. //depot/projects/hammer/lib/libc/stdlib/malloc.c#57 integrate .. //depot/projects/hammer/lib/libc/sys/getgroups.2#5 integrate .. //depot/projects/hammer/lib/libc/sys/ptrace.2#14 integrate .. //depot/projects/hammer/lib/libfetch/http.c#20 integrate .. //depot/projects/hammer/lib/libjail/jail.c#5 integrate .. //depot/projects/hammer/lib/libjail/jail_getid.c#2 integrate .. //depot/projects/hammer/lib/libkvm/kvm_powerpc64.c#1 branch .. //depot/projects/hammer/lib/liblzma/config.h#2 integrate .. //depot/projects/hammer/lib/libstand/Makefile#26 integrate .. //depot/projects/hammer/lib/libstand/printf.c#9 integrate .. //depot/projects/hammer/lib/libthr/arch/powerpc64/Makefile.inc#1 branch .. //depot/projects/hammer/lib/libthr/arch/powerpc64/include/pthread_md.h#1 branch .. //depot/projects/hammer/lib/libthr/arch/powerpc64/powerpc64/pthread_md.c#1 branch .. //depot/projects/hammer/lib/libthr/thread/thr_sig.c#19 integrate .. //depot/projects/hammer/lib/libthread_db/Symbol.map#3 integrate .. //depot/projects/hammer/lib/libthread_db/arch/powerpc64/libpthread_md.c#1 branch .. //depot/projects/hammer/lib/libthread_db/libpthread_db.c#13 integrate .. //depot/projects/hammer/lib/libthread_db/libthr_db.c#13 integrate .. //depot/projects/hammer/lib/libthread_db/thread_db.c#8 integrate .. //depot/projects/hammer/lib/libthread_db/thread_db.h#9 integrate .. //depot/projects/hammer/lib/libthread_db/thread_db_int.h#6 integrate .. //depot/projects/hammer/lib/msun/Makefile#44 integrate .. //depot/projects/hammer/libexec/rtld-elf/Makefile#25 integrate .. //depot/projects/hammer/libexec/rtld-elf/Symbol.map#6 integrate .. //depot/projects/hammer/libexec/rtld-elf/powerpc64/Makefile.inc#1 branch .. //depot/projects/hammer/libexec/rtld-elf/powerpc64/reloc.c#1 branch .. //depot/projects/hammer/libexec/rtld-elf/powerpc64/rtld_machdep.h#1 branch .. //depot/projects/hammer/libexec/rtld-elf/powerpc64/rtld_start.S#1 branch .. //depot/projects/hammer/libexec/rtld-elf/rtld.c#53 integrate .. //depot/projects/hammer/release/Makefile#113 integrate .. //depot/projects/hammer/release/picobsd/qemu/PICOBSD#2 integrate .. //depot/projects/hammer/release/picobsd/qemu/crunch.conf#3 integrate .. //depot/projects/hammer/sbin/bsdlabel/bsdlabel.c#27 integrate .. //depot/projects/hammer/sbin/camcontrol/camcontrol.8#15 integrate .. //depot/projects/hammer/sbin/devd/devd.cc#24 integrate .. //depot/projects/hammer/sbin/devd/devd.hh#6 integrate .. //depot/projects/hammer/sbin/dhclient/dhclient.c#18 integrate .. //depot/projects/hammer/sbin/fsck_ffs/main.c#22 integrate .. //depot/projects/hammer/sbin/fsck_ffs/suj.c#2 integrate .. //depot/projects/hammer/sbin/geom/class/multipath/geom_multipath.c#5 integrate .. //depot/projects/hammer/sbin/geom/class/virstor/geom_virstor.c#4 integrate .. //depot/projects/hammer/sbin/ipfw/dummynet.c#7 integrate .. //depot/projects/hammer/sbin/iscontrol/iscontrol.8#3 integrate .. //depot/projects/hammer/sbin/kldload/kldload.8#10 integrate .. //depot/projects/hammer/sbin/kldload/kldload.c#5 integrate .. //depot/projects/hammer/sbin/mca/mca.c#5 integrate .. //depot/projects/hammer/sbin/reboot/boot_i386.8#20 integrate .. //depot/projects/hammer/secure/lib/libcrypto/opensslconf-powerpc64.h#1 branch .. //depot/projects/hammer/share/doc/psd/15.yacc/Makefile#5 integrate .. //depot/projects/hammer/share/doc/psd/15.yacc/ss..#4 delete .. //depot/projects/hammer/share/doc/psd/15.yacc/ss10#1 branch .. //depot/projects/hammer/share/doc/psd/15.yacc/ss11#1 branch .. //depot/projects/hammer/share/doc/psd/15.yacc/ssA#2 delete .. //depot/projects/hammer/share/doc/psd/15.yacc/ssB#2 delete .. //depot/projects/hammer/share/doc/psd/15.yacc/ss_#1 branch .. //depot/projects/hammer/share/examples/perfmon/perfmon.c#2 integrate .. //depot/projects/hammer/share/man/man3/pthread_join.3#6 integrate .. //depot/projects/hammer/share/man/man4/Makefile#132 integrate .. //depot/projects/hammer/share/man/man4/aibs.4#1 branch .. //depot/projects/hammer/share/man/man4/ata.4#37 integrate .. //depot/projects/hammer/share/man/man4/ath.4#42 integrate .. //depot/projects/hammer/share/man/man4/bwi.4#2 integrate .. //depot/projects/hammer/share/man/man4/fdt.4#1 branch .. //depot/projects/hammer/share/man/man4/fdtbus.4#1 branch .. //depot/projects/hammer/share/man/man4/siftr.4#1 branch .. //depot/projects/hammer/share/man/man4/simplebus.4#1 branch .. //depot/projects/hammer/share/man/man4/u3g.4#8 integrate .. //depot/projects/hammer/share/man/man5/rc.conf.5#105 integrate .. //depot/projects/hammer/share/man/man9/Makefile#101 integrate .. //depot/projects/hammer/share/man/man9/alloc_unr.9#5 integrate .. //depot/projects/hammer/share/man/man9/style.9#32 integrate .. //depot/projects/hammer/share/man/man9/vm_page_alloc.9#6 integrate .. //depot/projects/hammer/share/misc/committers-doc.dot#10 integrate .. //depot/projects/hammer/share/misc/committers-ports.dot#22 integrate .. //depot/projects/hammer/share/mk/Makefile#11 integrate .. //depot/projects/hammer/share/mk/bsd.cpu.mk#41 integrate .. //depot/projects/hammer/share/mk/bsd.endian.mk#4 integrate .. //depot/projects/hammer/share/mk/sys.mk#34 integrate .. //depot/projects/hammer/sys/amd64/acpica/Makefile#2 delete .. //depot/projects/hammer/sys/amd64/acpica/acpi_wakecode.S#4 integrate .. //depot/projects/hammer/sys/amd64/acpica/genwakecode.sh#3 delete .. //depot/projects/hammer/sys/amd64/acpica/genwakedata.sh#2 delete .. //depot/projects/hammer/sys/amd64/amd64/cpu_switch.S#55 integrate .. //depot/projects/hammer/sys/amd64/amd64/exception.S#58 integrate .. //depot/projects/hammer/sys/amd64/amd64/intr_machdep.c#59 integrate .. //depot/projects/hammer/sys/amd64/amd64/machdep.c#184 integrate .. //depot/projects/hammer/sys/amd64/amd64/mp_machdep.c#144 integrate .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#199 integrate .. //depot/projects/hammer/sys/amd64/amd64/trap.c#117 integrate .. //depot/projects/hammer/sys/amd64/conf/GENERIC#131 integrate .. //depot/projects/hammer/sys/amd64/conf/GENERIC.hints#18 integrate .. //depot/projects/hammer/sys/amd64/conf/NOTES#129 integrate .. //depot/projects/hammer/sys/amd64/ia32/ia32_exception.S#8 integrate .. //depot/projects/hammer/sys/amd64/ia32/ia32_signal.c#34 integrate .. //depot/projects/hammer/sys/amd64/include/asmacros.h#18 integrate .. //depot/projects/hammer/sys/amd64/include/clock.h#33 integrate .. //depot/projects/hammer/sys/amd64/include/cpu.h#21 integrate .. //depot/projects/hammer/sys/amd64/include/pmap.h#74 integrate .. //depot/projects/hammer/sys/amd64/include/segments.h#23 integrate .. //depot/projects/hammer/sys/amd64/linux32/linux32_sysent.c#20 integrate .. //depot/projects/hammer/sys/arm/arm/machdep.c#28 integrate .. //depot/projects/hammer/sys/arm/at91/at91_aicreg.h#1 branch .. //depot/projects/hammer/sys/arm/at91/at91_pio_sam9.h#1 branch .. //depot/projects/hammer/sys/arm/at91/at91_pit.c#1 branch .. //depot/projects/hammer/sys/arm/at91/at91_pitreg.h#1 branch .. //depot/projects/hammer/sys/arm/at91/at91_pmc.c#9 integrate .. //depot/projects/hammer/sys/arm/at91/at91_pmcreg.h#3 integrate .. //depot/projects/hammer/sys/arm/at91/at91sam9.c#1 branch .. //depot/projects/hammer/sys/arm/at91/at91sam9_machdep.c#1 branch .. //depot/projects/hammer/sys/arm/at91/at91sam9g20reg.h#1 branch .. //depot/projects/hammer/sys/arm/at91/board_hl201.c#1 branch .. //depot/projects/hammer/sys/arm/at91/files.at91sam9#1 branch .. //depot/projects/hammer/sys/arm/at91/if_macb.c#1 branch .. //depot/projects/hammer/sys/arm/at91/if_macbreg.h#1 branch .. //depot/projects/hammer/sys/arm/at91/if_macbvar.h#1 branch .. //depot/projects/hammer/sys/arm/at91/std.at91sam9#1 branch .. //depot/projects/hammer/sys/arm/at91/std.hl201#1 branch .. //depot/projects/hammer/sys/arm/conf/HL201#1 branch .. //depot/projects/hammer/sys/arm/conf/HL201.hints#1 branch .. //depot/projects/hammer/sys/arm/include/bootinfo.h#3 delete .. //depot/projects/hammer/sys/arm/include/metadata.h#5 integrate .. //depot/projects/hammer/sys/boot/Makefile#29 integrate .. //depot/projects/hammer/sys/boot/common/Makefile.inc#15 integrate .. //depot/projects/hammer/sys/boot/fdt/Makefile#2 integrate .. //depot/projects/hammer/sys/boot/fdt/dts/mpc8555cds.dts#2 integrate .. //depot/projects/hammer/sys/boot/ficl/Makefile#17 integrate .. //depot/projects/hammer/sys/boot/forth/loader.conf#55 integrate .. //depot/projects/hammer/sys/boot/ia64/common/exec.c#3 integrate .. //depot/projects/hammer/sys/boot/ia64/efi/version#5 integrate .. //depot/projects/hammer/sys/boot/ofw/Makefile.inc#2 integrate .. //depot/projects/hammer/sys/boot/ofw/libofw/Makefile#7 integrate .. //depot/projects/hammer/sys/boot/ofw/libofw/libofw.h#8 integrate .. //depot/projects/hammer/sys/boot/ofw/libofw/ppc64_elf_freebsd.c#1 branch .. //depot/projects/hammer/sys/boot/powerpc/Makefile.inc#2 integrate .. //depot/projects/hammer/sys/boot/powerpc/boot1.chrp/Makefile#2 integrate .. //depot/projects/hammer/sys/boot/powerpc/ofw/Makefile#7 integrate .. //depot/projects/hammer/sys/boot/powerpc/ofw/conf.c#3 integrate .. //depot/projects/hammer/sys/boot/powerpc/ofw/ldscript.powerpc#2 integrate .. //depot/projects/hammer/sys/boot/powerpc/ofw/metadata.c#2 integrate .. //depot/projects/hammer/sys/boot/powerpc/uboot/Makefile#5 integrate .. //depot/projects/hammer/sys/boot/powerpc/uboot/ldscript.powerpc#2 integrate .. //depot/projects/hammer/sys/boot/uboot/Makefile.inc#2 integrate .. //depot/projects/hammer/sys/boot/uboot/common/metadata.c#4 integrate .. //depot/projects/hammer/sys/cam/ata/ata_xpt.c#9 integrate .. //depot/projects/hammer/sys/cam/cam_xpt.c#51 integrate .. //depot/projects/hammer/sys/cddl/boot/zfs/zfsimpl.h#7 integrate .. //depot/projects/hammer/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c#6 integrate .. //depot/projects/hammer/sys/cddl/compat/opensolaris/kern/opensolaris_uio.c#1 branch .. //depot/projects/hammer/sys/cddl/compat/opensolaris/sys/misc.h#3 integrate .. //depot/projects/hammer/sys/cddl/compat/opensolaris/sys/policy.h#5 integrate .. //depot/projects/hammer/sys/cddl/compat/opensolaris/sys/sid.h#2 integrate .. //depot/projects/hammer/sys/cddl/compat/opensolaris/sys/uio.h#4 integrate .. //depot/projects/hammer/sys/cddl/compat/opensolaris/sys/vnode.h#8 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.c#2 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.h#2 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/common/zfs/zprop_common.c#2 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#10 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#7 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c#7 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c#6 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scrub.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_errlog.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h#2 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_prop.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h#2 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/space_map.h#2 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock_impl.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_acl.h#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ctldir.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_fuid.h#2 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#7 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil_impl.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#9 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#9 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#10 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#7 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c#2 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#12 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_rlock.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#12 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#17 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#13 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c#6 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#7 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#7 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/sys/debug.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap_impl.h#1 branch .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/sys/fm/fs/zfs.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/sys/sysevent/eventdefs.h#2 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c#1 branch .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/sparc/dtrace/fasttrap_isa.c#1 branch .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_misc.c#73 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_proto.h#70 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_signal.h#3 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscall.h#66 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscalls.c#66 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_sysent.c#67 integrate .. //depot/projects/hammer/sys/compat/freebsd32/syscalls.master#72 integrate .. //depot/projects/hammer/sys/compat/linux/linux_signal.c#20 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_filio.c#14 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_proto.h#11 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_syscall.h#10 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_syscallnames.c#10 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_sysent.c#11 integrate .. //depot/projects/hammer/sys/compat/x86bios/x86bios.c#5 integrate .. //depot/projects/hammer/sys/compat/x86bios/x86bios.h#2 integrate .. //depot/projects/hammer/sys/conf/Makefile.powerpc#18 integrate .. //depot/projects/hammer/sys/conf/files#212 integrate .. //depot/projects/hammer/sys/conf/files.amd64#121 integrate .. //depot/projects/hammer/sys/conf/files.i386#113 integrate .. //depot/projects/hammer/sys/conf/files.pc98#83 integrate .. //depot/projects/hammer/sys/conf/files.powerpc#43 integrate .. //depot/projects/hammer/sys/conf/kern.mk#33 integrate .. //depot/projects/hammer/sys/conf/kern.post.mk#48 integrate .. //depot/projects/hammer/sys/conf/kern.pre.mk#61 integrate .. //depot/projects/hammer/sys/conf/kmod.mk#74 integrate .. //depot/projects/hammer/sys/conf/ldscript.mips.64#1 branch .. //depot/projects/hammer/sys/conf/ldscript.mips.n32#1 branch .. //depot/projects/hammer/sys/conf/ldscript.powerpc64#1 branch .. //depot/projects/hammer/sys/conf/options.powerpc#11 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/acpica_prep.sh#13 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/changes.txt#7 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/common/adisasm.c#13 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/common/adwalk.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/common/dmextern.c#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/common/dmrestag.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/common/dmtable.c#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/common/dmtbdump.c#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/common/dmtbinfo.c#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslanalyze.c#10 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslcompile.c#11 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslcompiler.h#11 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslcompiler.l#9 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslcompiler.y#12 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/asldefine.h#7 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslerror.c#8 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslfiles.c#9 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslglobal.h#11 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/asllookup.c#9 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslmain.c#11 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslopt.c#8 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslpredef.c#3 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslstartup.c#3 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/asltransform.c#9 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/asltree.c#8 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/asltypes.h#13 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslutils.c#10 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/dtcompile.c#1 branch .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/dtcompiler.h#1 branch .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/dtfield.c#1 branch .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/dtio.c#1 branch .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/dtsubtable.c#1 branch .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/dttable.c#1 branch .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/dttemplate.c#1 branch .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/dttemplate.h#1 branch .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/dtutils.c#1 branch .. //depot/projects/hammer/sys/contrib/dev/acpica/debugger/dbcmds.c#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/debugger/dbdisply.c#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/debugger/dbexec.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/debugger/dbfileio.c#3 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/debugger/dbhistry.c#3 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/debugger/dbinput.c#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/debugger/dbutils.c#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/disassembler/dmobject.c#3 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/disassembler/dmopcode.c#3 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/disassembler/dmresrc.c#3 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/dispatcher/dsinit.c#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/dispatcher/dsmethod.c#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/dispatcher/dsmthdat.c#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/dispatcher/dsobject.c#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/dispatcher/dsopcode.c#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/dispatcher/dsutils.c#3 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/events/evgpe.c#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/events/evgpeblk.c#7 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/events/evgpeinit.c#2 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/events/evgpeutil.c#2 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/events/evrgnini.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/events/evxface.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/events/evxfevnt.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/executer/exdump.c#3 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/executer/exfldio.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/executer/exprep.c#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/executer/exregion.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/executer/exsystem.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/hardware/hwgpe.c#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/hardware/hwsleep.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/hardware/hwvalid.c#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/acconfig.h#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/acdisasm.h#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/acevents.h#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/acexcep.h#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/acglobal.h#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/achware.h#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/aclocal.h#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/acnamesp.h#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/acobject.h#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/acoutput.h#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/acpixf.h#7 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/acpredef.h#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/acstruct.h#3 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/actbl.h#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/actbl2.h#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/actypes.h#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/include/acutils.h#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/namespace/nsaccess.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/namespace/nsalloc.c#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/namespace/nsdump.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/namespace/nsinit.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/namespace/nsnames.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/namespace/nsparse.c#3 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/namespace/nsrepair.c#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/namespace/nsrepair2.c#3 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/namespace/nssearch.c#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/namespace/nsutils.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/namespace/nswalk.c#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/namespace/nsxfobj.c#4 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/osunixxf.c#12 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/utilities/utglobal.c#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/utilities/utmisc.c#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/utilities/uttrack.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/iwn/iwlwifi-6000-9.193.4.1.fw.uu#2 delete .. //depot/projects/hammer/sys/contrib/dev/iwn/iwlwifi-6000-9.221.4.1.fw.uu#1 branch .. //depot/projects/hammer/sys/contrib/dev/iwn/iwlwifi-6050-9.201.4.1.fw.uu#1 branch .. //depot/projects/hammer/sys/ddb/db_command.c#28 integrate .. //depot/projects/hammer/sys/dev/acpi_support/atk0110.c#1 branch .. //depot/projects/hammer/sys/dev/acpica/Osd/OsdHardware.c#22 integrate .. //depot/projects/hammer/sys/dev/acpica/Osd/OsdMemory.c#9 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi.c#98 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_button.c#15 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_ec.c#49 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_hpet.c#16 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_lid.c#16 integrate .. //depot/projects/hammer/sys/dev/agp/agp.c#11 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic79xx.reg#14 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic7xxx.reg#8 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aicasm/aicasm_gram.y#8 integrate .. //depot/projects/hammer/sys/dev/ata/ata-all.c#82 integrate .. //depot/projects/hammer/sys/dev/ata/ata-all.h#60 integrate .. //depot/projects/hammer/sys/dev/ata/ata-card.c#30 integrate .. //depot/projects/hammer/sys/dev/ata/ata-disk.c#56 integrate .. //depot/projects/hammer/sys/dev/ata/ata-pci.c#58 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-acerlabs.c#8 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-amd.c#5 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-highpoint.c#5 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-intel.c#10 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-ite.c#5 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-jmicron.c#6 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-marvell.c#11 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-nvidia.c#7 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-promise.c#8 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-siliconimage.c#8 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-sis.c#7 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-via.c#8 integrate .. //depot/projects/hammer/sys/dev/ath/ath_hal/ar5416/ar5416reg.h#6 integrate .. //depot/projects/hammer/sys/dev/ath/if_ath.c#81 integrate .. //depot/projects/hammer/sys/dev/bge/if_bge.c#99 integrate .. //depot/projects/hammer/sys/dev/bge/if_bgereg.h#51 integrate .. //depot/projects/hammer/sys/dev/bktr/bktr_core.c#15 integrate .. //depot/projects/hammer/sys/dev/bwi/if_bwi.c#6 integrate .. //depot/projects/hammer/sys/dev/bwi/if_bwi_pci.c#2 integrate .. //depot/projects/hammer/sys/dev/bwn/if_bwn.c#3 integrate .. //depot/projects/hammer/sys/dev/cfi/cfi_bus_fdt.c#1 branch .. //depot/projects/hammer/sys/dev/cfi/cfi_bus_lbc.c#2 delete .. //depot/projects/hammer/sys/dev/cxgb/common/cxgb_ael1002.c#17 integrate .. //depot/projects/hammer/sys/dev/cxgb/common/cxgb_common.h#17 integrate .. //depot/projects/hammer/sys/dev/cxgb/common/cxgb_t3_hw.c#19 integrate .. //depot/projects/hammer/sys/dev/cxgb/cxgb_adapter.h#30 integrate .. //depot/projects/hammer/sys/dev/cxgb/cxgb_main.c#42 integrate .. //depot/projects/hammer/sys/dev/cxgb/cxgb_sge.c#37 integrate .. //depot/projects/hammer/sys/dev/e1000/e1000_82575.h#8 integrate .. //depot/projects/hammer/sys/dev/e1000/e1000_api.c#7 integrate .. //depot/projects/hammer/sys/dev/e1000/e1000_api.h#5 integrate .. //depot/projects/hammer/sys/dev/e1000/e1000_hw.h#8 integrate .. //depot/projects/hammer/sys/dev/e1000/e1000_mbx.c#1 branch .. //depot/projects/hammer/sys/dev/e1000/e1000_mbx.h#1 branch .. //depot/projects/hammer/sys/dev/e1000/e1000_regs.h#8 integrate .. //depot/projects/hammer/sys/dev/e1000/e1000_vf.c#1 branch .. //depot/projects/hammer/sys/dev/e1000/e1000_vf.h#1 branch .. //depot/projects/hammer/sys/dev/e1000/if_em.c#17 integrate .. //depot/projects/hammer/sys/dev/e1000/if_igb.c#16 integrate .. //depot/projects/hammer/sys/dev/e1000/if_igb.h#9 integrate .. //depot/projects/hammer/sys/dev/e1000/if_lem.c#3 integrate .. //depot/projects/hammer/sys/dev/fb/fbreg.h#17 integrate .. //depot/projects/hammer/sys/dev/fb/vesa.c#9 integrate .. //depot/projects/hammer/sys/dev/fdt/fdt_common.c#2 integrate .. //depot/projects/hammer/sys/dev/fdt/fdt_pci.c#2 integrate .. //depot/projects/hammer/sys/dev/fdt/fdt_powerpc.c#1 branch .. //depot/projects/hammer/sys/dev/fdt/simplebus.c#2 integrate .. //depot/projects/hammer/sys/dev/flash/mx25l.c#2 integrate .. //depot/projects/hammer/sys/dev/hwpmc/hwpmc_core.c#9 integrate .. //depot/projects/hammer/sys/dev/hwpmc/hwpmc_core.h#3 integrate .. //depot/projects/hammer/sys/dev/iicbus/iicbus.c#12 integrate .. //depot/projects/hammer/sys/dev/ipmi/ipmi_smbios.c#5 integrate .. //depot/projects/hammer/sys/dev/iwn/if_iwn.c#15 integrate .. //depot/projects/hammer/sys/dev/iwn/if_iwnreg.h#6 integrate .. //depot/projects/hammer/sys/dev/iwn/if_iwnvar.h#7 integrate .. //depot/projects/hammer/sys/dev/ixgbe/ixgbe.c#16 integrate .. //depot/projects/hammer/sys/dev/ixgbe/ixgbe.h#12 integrate .. //depot/projects/hammer/sys/dev/md/md.c#76 integrate .. //depot/projects/hammer/sys/dev/mpt/mpt.c#27 integrate .. //depot/projects/hammer/sys/dev/mpt/mpt.h#24 integrate .. //depot/projects/hammer/sys/dev/mpt/mpt_cam.c#27 integrate .. //depot/projects/hammer/sys/dev/mpt/mpt_pci.c#28 integrate .. //depot/projects/hammer/sys/dev/mpt/mpt_raid.c#19 integrate .. //depot/projects/hammer/sys/dev/ofw/ofw_if.m#4 integrate .. //depot/projects/hammer/sys/dev/ofw/ofw_standard.c#6 integrate .. //depot/projects/hammer/sys/dev/ofw/openfirm.c#16 integrate .. //depot/projects/hammer/sys/dev/ofw/openfirm.h#12 integrate .. //depot/projects/hammer/sys/dev/pci/pcireg.h#27 integrate .. //depot/projects/hammer/sys/dev/quicc/quicc_bfe_fdt.c#1 branch .. //depot/projects/hammer/sys/dev/quicc/quicc_bfe_ocp.c#2 delete .. //depot/projects/hammer/sys/dev/sec/sec.c#2 integrate .. //depot/projects/hammer/sys/dev/sge/if_sge.c#3 integrate .. //depot/projects/hammer/sys/dev/sge/if_sgereg.h#3 integrate .. //depot/projects/hammer/sys/dev/sk/if_sk.c#13 integrate .. //depot/projects/hammer/sys/dev/sound/usb/uaudio.c#28 integrate .. //depot/projects/hammer/sys/dev/sound/usb/uaudioreg.h#9 integrate .. //depot/projects/hammer/sys/dev/tsec/if_tsec.c#8 integrate .. //depot/projects/hammer/sys/dev/tsec/if_tsec.h#6 integrate .. //depot/projects/hammer/sys/dev/tsec/if_tsec_fdt.c#1 branch .. //depot/projects/hammer/sys/dev/tsec/if_tsec_ocp.c#3 delete .. //depot/projects/hammer/sys/dev/twa/tw_cl.h#5 integrate .. //depot/projects/hammer/sys/dev/twa/tw_cl_share.h#7 integrate .. //depot/projects/hammer/sys/dev/uart/uart_bus_ocp.c#2 delete .. //depot/projects/hammer/sys/dev/uart/uart_cpu_powerpc.c#8 integrate .. //depot/projects/hammer/sys/dev/usb/controller/ehci.c#11 integrate .. //depot/projects/hammer/sys/dev/usb/controller/ohci.c#8 integrate .. //depot/projects/hammer/sys/dev/usb/controller/uhci.c#10 integrate .. //depot/projects/hammer/sys/dev/usb/net/if_rue.c#7 integrate .. //depot/projects/hammer/sys/dev/usb/quirk/usb_quirk.c#11 integrate .. //depot/projects/hammer/sys/dev/usb/serial/uplcom.c#9 integrate .. //depot/projects/hammer/sys/dev/usb/usb_transfer.c#11 integrate .. //depot/projects/hammer/sys/dev/usb/usbdevs#132 integrate .. //depot/projects/hammer/sys/dev/usb/wlan/if_run.c#4 integrate .. //depot/projects/hammer/sys/dev/usb/wlan/if_upgt.c#9 integrate .. //depot/projects/hammer/sys/fs/cd9660/cd9660_vfsops.c#14 integrate .. //depot/projects/hammer/sys/fs/nfsclient/nfs_clport.c#6 integrate .. //depot/projects/hammer/sys/fs/nfsclient/nfs_clrpcops.c#6 integrate .. //depot/projects/hammer/sys/fs/nfsclient/nfs_clsubs.c#6 integrate .. //depot/projects/hammer/sys/fs/nfsclient/nfs_clvnops.c#10 integrate .. //depot/projects/hammer/sys/fs/nfsclient/nfsnode.h#3 integrate .. //depot/projects/hammer/sys/fs/nfsserver/nfs_nfsdstate.c#7 integrate .. //depot/projects/hammer/sys/fs/udf/udf_vfsops.c#38 integrate .. //depot/projects/hammer/sys/fs/udf/udf_vnops.c#46 integrate .. //depot/projects/hammer/sys/geom/cache/g_cache.h#2 integrate .. //depot/projects/hammer/sys/geom/part/g_part.c#27 integrate .. //depot/projects/hammer/sys/geom/part/g_part.h#14 integrate .. //depot/projects/hammer/sys/geom/part/g_part_mbr.c#11 integrate .. //depot/projects/hammer/sys/i386/conf/GENERIC.hints#14 integrate .. //depot/projects/hammer/sys/i386/conf/NOTES#122 integrate .. //depot/projects/hammer/sys/i386/i386/apic_vector.s#23 integrate .. //depot/projects/hammer/sys/i386/i386/atpic_vector.s#2 integrate .. //depot/projects/hammer/sys/i386/i386/exception.s#19 integrate .. //depot/projects/hammer/sys/i386/i386/identcpu.c#56 integrate .. //depot/projects/hammer/sys/i386/i386/intr_machdep.c#33 integrate .. //depot/projects/hammer/sys/i386/i386/machdep.c#101 integrate .. //depot/projects/hammer/sys/i386/i386/mp_machdep.c#86 integrate .. //depot/projects/hammer/sys/i386/i386/pmap.c#132 integrate .. //depot/projects/hammer/sys/i386/i386/support.s#18 integrate .. //depot/projects/hammer/sys/i386/i386/vm_machdep.c#73 integrate .. //depot/projects/hammer/sys/i386/ibcs2/ibcs2_proto.h#12 integrate .. //depot/projects/hammer/sys/i386/ibcs2/ibcs2_syscall.h#11 integrate .. //depot/projects/hammer/sys/i386/ibcs2/ibcs2_sysent.c#14 integrate .. //depot/projects/hammer/sys/i386/include/clock.h#23 integrate .. //depot/projects/hammer/sys/i386/include/cpu.h#12 integrate .. //depot/projects/hammer/sys/i386/include/md_var.h#25 integrate .. //depot/projects/hammer/sys/i386/include/npx.h#10 integrate .. //depot/projects/hammer/sys/i386/include/pcb.h#15 integrate .. //depot/projects/hammer/sys/i386/include/pmap.h#46 integrate .. //depot/projects/hammer/sys/i386/isa/npx.c#37 integrate .. //depot/projects/hammer/sys/i386/linux/linux_sysent.c#31 integrate .. //depot/projects/hammer/sys/ia64/acpica/acpi_machdep.c#8 integrate .. //depot/projects/hammer/sys/ia64/ia64/autoconf.c#8 integrate .. //depot/projects/hammer/sys/ia64/ia64/machdep.c#82 integrate .. //depot/projects/hammer/sys/ia64/ia64/mca.c#10 integrate .. //depot/projects/hammer/sys/ia64/ia64/mp_machdep.c#32 integrate .. //depot/projects/hammer/sys/ia64/include/asm.h#8 integrate .. //depot/projects/hammer/sys/ia64/include/mca.h#6 integrate .. //depot/projects/hammer/sys/ia64/include/md_var.h#24 integrate .. //depot/projects/hammer/sys/ia64/include/profile.h#5 integrate .. //depot/projects/hammer/sys/isa/syscons_isa.c#17 integrate .. //depot/projects/hammer/sys/kern/init_sysent.c#79 integrate .. //depot/projects/hammer/sys/kern/kern_clock.c#53 integrate .. //depot/projects/hammer/sys/kern/kern_clocksource.c#1 branch .. //depot/projects/hammer/sys/kern/kern_context.c#9 integrate .. //depot/projects/hammer/sys/kern/kern_exec.c#95 integrate .. //depot/projects/hammer/sys/kern/kern_exit.c#86 integrate .. //depot/projects/hammer/sys/kern/kern_ktrace.c#43 integrate .. //depot/projects/hammer/sys/kern/kern_sig.c#104 integrate .. //depot/projects/hammer/sys/kern/kern_syscalls.c#8 integrate .. //depot/projects/hammer/sys/kern/kern_tc.c#31 integrate .. //depot/projects/hammer/sys/kern/kern_thr.c#52 integrate .. //depot/projects/hammer/sys/kern/kern_thread.c#119 integrate .. //depot/projects/hammer/sys/kern/makesyscalls.sh#19 integrate .. //depot/projects/hammer/sys/kern/sched_ule.c#111 integrate .. //depot/projects/hammer/sys/kern/subr_param.c#27 integrate .. //depot/projects/hammer/sys/kern/subr_prf.c#34 integrate .. //depot/projects/hammer/sys/kern/subr_sleepqueue.c#40 integrate .. //depot/projects/hammer/sys/kern/subr_trap.c#52 integrate .. //depot/projects/hammer/sys/kern/subr_unit.c#9 integrate .. //depot/projects/hammer/sys/kern/subr_witness.c#86 integrate .. //depot/projects/hammer/sys/kern/sys_generic.c#50 integrate .. //depot/projects/hammer/sys/kern/sys_process.c#55 integrate .. //depot/projects/hammer/sys/kern/sys_socket.c#29 integrate .. //depot/projects/hammer/sys/kern/syscalls.c#76 integrate .. //depot/projects/hammer/sys/kern/syscalls.master#79 integrate .. //depot/projects/hammer/sys/kern/sysv_shm.c#36 integrate .. //depot/projects/hammer/sys/kern/tty.c#77 integrate .. //depot/projects/hammer/sys/kern/uipc_mbuf.c#55 integrate .. //depot/projects/hammer/sys/kern/uipc_syscalls.c#84 integrate .. //depot/projects/hammer/sys/kern/vfs_bio.c#101 integrate .. //depot/projects/hammer/sys/kern/vfs_syscalls.c#99 integrate .. //depot/projects/hammer/sys/kern/vfs_vnops.c#73 integrate .. //depot/projects/hammer/sys/mips/atheros/ar71xxreg.h#4 integrate .. //depot/projects/hammer/sys/mips/atheros/if_arge.c#4 integrate .. //depot/projects/hammer/sys/mips/atheros/if_argevar.h#2 integrate .. //depot/projects/hammer/sys/mips/conf/XLR64#1 branch .. //depot/projects/hammer/sys/mips/conf/XLRN32#1 branch .. //depot/projects/hammer/sys/mips/include/_bus_octeon.h#2 delete .. //depot/projects/hammer/sys/mips/include/asm.h#6 integrate .. //depot/projects/hammer/sys/mips/include/asmacros.h#2 delete .. //depot/projects/hammer/sys/mips/include/clock.h#3 integrate .. //depot/projects/hammer/sys/mips/include/cpu.h#7 integrate .. //depot/projects/hammer/sys/mips/include/cpuregs.h#6 integrate .. //depot/projects/hammer/sys/mips/include/db_machdep.h#5 integrate .. //depot/projects/hammer/sys/mips/include/md_var.h#4 integrate .. //depot/projects/hammer/sys/mips/include/pmap.h#9 integrate .. //depot/projects/hammer/sys/mips/include/pte.h#5 integrate .. //depot/projects/hammer/sys/mips/include/runq.h#2 integrate .. //depot/projects/hammer/sys/mips/include/setjmp.h#2 integrate .. //depot/projects/hammer/sys/mips/include/tlb.h#2 integrate .. //depot/projects/hammer/sys/mips/include/vm.h#3 integrate .. //depot/projects/hammer/sys/mips/include/vmparam.h#3 integrate .. //depot/projects/hammer/sys/mips/mips/cache_mipsNN.c#3 integrate .. //depot/projects/hammer/sys/mips/mips/cpu.c#6 integrate .. //depot/projects/hammer/sys/mips/mips/db_interface.c#2 integrate .. //depot/projects/hammer/sys/mips/mips/db_trace.c#7 integrate .. //depot/projects/hammer/sys/mips/mips/exception.S#8 integrate .. //depot/projects/hammer/sys/mips/mips/fp.S#4 integrate .. //depot/projects/hammer/sys/mips/mips/locore.S#7 integrate .. //depot/projects/hammer/sys/mips/mips/machdep.c#13 integrate .. //depot/projects/hammer/sys/mips/mips/mpboot.S#4 integrate .. //depot/projects/hammer/sys/mips/mips/pm_machdep.c#6 integrate .. //depot/projects/hammer/sys/mips/mips/pmap.c#18 integrate .. //depot/projects/hammer/sys/mips/mips/psraccess.S#4 integrate .. //depot/projects/hammer/sys/mips/mips/stack_machdep.c#2 integrate .. //depot/projects/hammer/sys/mips/mips/support.S#6 integrate .. //depot/projects/hammer/sys/mips/mips/swtch.S#8 integrate .. //depot/projects/hammer/sys/mips/mips/tlb.S#4 integrate .. //depot/projects/hammer/sys/mips/mips/tlb.c#2 integrate .. //depot/projects/hammer/sys/mips/mips/trap.c#9 integrate .. //depot/projects/hammer/sys/mips/mips/vm_machdep.c#7 integrate .. //depot/projects/hammer/sys/mips/rmi/board.c#4 integrate .. //depot/projects/hammer/sys/mips/rmi/board.h#3 integrate .. //depot/projects/hammer/sys/mips/rmi/dev/xlr/rge.c#5 integrate .. //depot/projects/hammer/sys/mips/rmi/iodi.c#4 integrate .. //depot/projects/hammer/sys/mips/rmi/on_chip.c#4 integrate .. //depot/projects/hammer/sys/mips/rmi/xlr_machdep.c#6 integrate .. //depot/projects/hammer/sys/mips/rmi/xlr_pci.c#4 integrate .. //depot/projects/hammer/sys/mips/sibyte/sb_machdep.c#7 integrate .. //depot/projects/hammer/sys/modules/Makefile#153 integrate .. //depot/projects/hammer/sys/modules/acpi/Makefile#26 integrate .. //depot/projects/hammer/sys/modules/acpi/acpi/Makefile#22 integrate .. //depot/projects/hammer/sys/modules/acpi/aibs/Makefile#1 branch .. //depot/projects/hammer/sys/modules/cas/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/em/Makefile#13 integrate .. //depot/projects/hammer/sys/modules/hwpmc/Makefile#8 integrate .. //depot/projects/hammer/sys/modules/igb/Makefile#7 integrate .. //depot/projects/hammer/sys/modules/iwnfw/Makefile#5 integrate .. //depot/projects/hammer/sys/modules/iwnfw/iwn6000/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/iwnfw/iwn6050/Makefile#1 branch .. //depot/projects/hammer/sys/modules/mqueue/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/siftr/Makefile#1 branch .. //depot/projects/hammer/sys/modules/sound/driver/Makefile#10 integrate .. //depot/projects/hammer/sys/modules/zfs/Makefile#17 integrate .. //depot/projects/hammer/sys/net/pfil.h#12 integrate .. //depot/projects/hammer/sys/net/radix.c#16 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_crypto.h#19 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_crypto_ccmp.c#15 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_crypto_tkip.c#17 integrate .. //depot/projects/hammer/sys/netgraph/ng_ipfw.c#10 integrate .. //depot/projects/hammer/sys/netgraph/ng_pipe.c#6 integrate .. //depot/projects/hammer/sys/netgraph/ng_source.c#19 integrate .. //depot/projects/hammer/sys/netgraph/ng_source.h#9 integrate .. //depot/projects/hammer/sys/netinet/ipfw/dn_heap.c#2 integrate .. //depot/projects/hammer/sys/netinet/ipfw/ip_fw2.c#10 integrate .. //depot/projects/hammer/sys/netinet/ipfw/ip_fw_dynamic.c#4 integrate .. //depot/projects/hammer/sys/netinet/ipfw/ip_fw_log.c#4 integrate .. //depot/projects/hammer/sys/netinet/libalias/alias_sctp.h#2 integrate .. //depot/projects/hammer/sys/netinet/sctp_pcb.c#38 integrate .. //depot/projects/hammer/sys/netinet/sctputil.c#44 integrate .. //depot/projects/hammer/sys/netinet/siftr.c#1 branch .. //depot/projects/hammer/sys/nfsclient/nfs_subs.c#44 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_vnops.c#81 integrate .. //depot/projects/hammer/sys/nfsclient/nfsnode.h#28 integrate .. //depot/projects/hammer/sys/pc98/cbus/clock.c#22 delete .. //depot/projects/hammer/sys/pc98/conf/GENERIC.hints#16 integrate .. //depot/projects/hammer/sys/pc98/include/npx.h#3 integrate .. //depot/projects/hammer/sys/pc98/pc98/machdep.c#31 integrate .. //depot/projects/hammer/sys/powerpc/aim/clock.c#8 integrate .. //depot/projects/hammer/sys/powerpc/aim/copyinout.c#3 integrate .. //depot/projects/hammer/sys/powerpc/aim/locore.S#7 integrate .. //depot/projects/hammer/sys/powerpc/aim/locore32.S#1 branch .. //depot/projects/hammer/sys/powerpc/aim/locore64.S#1 branch .. //depot/projects/hammer/sys/powerpc/aim/machdep.c#19 integrate .. //depot/projects/hammer/sys/powerpc/aim/mmu_oea.c#15 integrate .. //depot/projects/hammer/sys/powerpc/aim/mmu_oea64.c#9 integrate .. //depot/projects/hammer/sys/powerpc/aim/mp_cpudep.c#7 integrate .. //depot/projects/hammer/sys/powerpc/aim/nexus.c#6 integrate .. //depot/projects/hammer/sys/powerpc/aim/ofw_machdep.c#10 integrate .. //depot/projects/hammer/sys/powerpc/aim/platform_chrp.c#5 integrate .. //depot/projects/hammer/sys/powerpc/aim/slb.c#1 branch .. //depot/projects/hammer/sys/powerpc/aim/swtch.S#9 delete .. //depot/projects/hammer/sys/powerpc/aim/swtch32.S#1 branch .. //depot/projects/hammer/sys/powerpc/aim/swtch64.S#1 branch .. //depot/projects/hammer/sys/powerpc/aim/trap.c#10 integrate .. //depot/projects/hammer/sys/powerpc/aim/trap_subr32.S#1 branch .. //depot/projects/hammer/sys/powerpc/aim/trap_subr64.S#1 branch .. //depot/projects/hammer/sys/powerpc/aim/vm_machdep.c#8 integrate .. //depot/projects/hammer/sys/powerpc/booke/clock.c#8 integrate .. //depot/projects/hammer/sys/powerpc/booke/locore.S#8 integrate .. //depot/projects/hammer/sys/powerpc/booke/machdep.c#13 integrate .. //depot/projects/hammer/sys/powerpc/booke/platform_bare.c#4 integrate .. //depot/projects/hammer/sys/powerpc/booke/pmap.c#15 integrate .. //depot/projects/hammer/sys/powerpc/booke/swtch.S#4 integrate .. //depot/projects/hammer/sys/powerpc/booke/vm_machdep.c#7 integrate .. //depot/projects/hammer/sys/powerpc/conf/DEFAULTS#10 integrate .. //depot/projects/hammer/sys/powerpc/conf/GENERIC#59 integrate .. //depot/projects/hammer/sys/powerpc/conf/GENERIC64#1 branch .. //depot/projects/hammer/sys/powerpc/conf/MPC85XX#11 integrate .. //depot/projects/hammer/sys/powerpc/conf/NOTES#17 integrate .. //depot/projects/hammer/sys/powerpc/cpufreq/pcr.c#3 integrate .. //depot/projects/hammer/sys/powerpc/include/_align.h#2 integrate .. //depot/projects/hammer/sys/powerpc/include/_bus.h#3 integrate .. //depot/projects/hammer/sys/powerpc/include/_inttypes.h#3 integrate .. //depot/projects/hammer/sys/powerpc/include/_limits.h#8 integrate .. //depot/projects/hammer/sys/powerpc/include/_stdint.h#3 integrate .. //depot/projects/hammer/sys/powerpc/include/_types.h#6 integrate .. //depot/projects/hammer/sys/powerpc/include/asm.h#7 integrate .. //depot/projects/hammer/sys/powerpc/include/atomic.h#15 integrate .. //depot/projects/hammer/sys/powerpc/include/bootinfo.h#5 delete .. //depot/projects/hammer/sys/powerpc/include/bus.h#16 integrate .. //depot/projects/hammer/sys/powerpc/include/cpufunc.h#12 integrate .. //depot/projects/hammer/sys/powerpc/include/db_machdep.h#6 integrate .. //depot/projects/hammer/sys/powerpc/include/elf.h#8 integrate .. //depot/projects/hammer/sys/powerpc/include/fdt.h#1 branch .. //depot/projects/hammer/sys/powerpc/include/frame.h#9 integrate .. //depot/projects/hammer/sys/powerpc/include/hid.h#8 integrate .. //depot/projects/hammer/sys/powerpc/include/intr.h#4 delete .. //depot/projects/hammer/sys/powerpc/include/intr_machdep.h#15 integrate .. //depot/projects/hammer/sys/powerpc/include/md_var.h#13 integrate .. //depot/projects/hammer/sys/powerpc/include/metadata.h#7 integrate .. //depot/projects/hammer/sys/powerpc/include/ocpbus.h#5 delete .. //depot/projects/hammer/sys/powerpc/include/openpicvar.h#10 integrate .. //depot/projects/hammer/sys/powerpc/include/param.h#17 integrate .. //depot/projects/hammer/sys/powerpc/include/pcb.h#8 integrate .. //depot/projects/hammer/sys/powerpc/include/pcpu.h#12 integrate .. //depot/projects/hammer/sys/powerpc/include/pmap.h#20 integrate .. //depot/projects/hammer/sys/powerpc/include/proc.h#4 integrate .. //depot/projects/hammer/sys/powerpc/include/profile.h#8 integrate .. //depot/projects/hammer/sys/powerpc/include/psl.h#5 integrate .. //depot/projects/hammer/sys/powerpc/include/pte.h#8 integrate .. //depot/projects/hammer/sys/powerpc/include/reg.h#4 integrate .. //depot/projects/hammer/sys/powerpc/include/runq.h#3 integrate .. //depot/projects/hammer/sys/powerpc/include/slb.h#1 branch .. //depot/projects/hammer/sys/powerpc/include/smp.h#8 integrate .. //depot/projects/hammer/sys/powerpc/include/spr.h#17 integrate .. //depot/projects/hammer/sys/powerpc/include/sr.h#5 integrate .. //depot/projects/hammer/sys/powerpc/include/trap_aim.h#3 integrate .. //depot/projects/hammer/sys/powerpc/include/ucontext.h#5 integrate .. //depot/projects/hammer/sys/powerpc/include/vmparam.h#14 integrate .. //depot/projects/hammer/sys/powerpc/mpc85xx/atpic.c#4 integrate .. //depot/projects/hammer/sys/powerpc/mpc85xx/ds1553_bus_fdt.c#1 branch .. //depot/projects/hammer/sys/powerpc/mpc85xx/ds1553_bus_lbc.c#2 delete .. //depot/projects/hammer/sys/powerpc/mpc85xx/i2c.c#2 integrate .. //depot/projects/hammer/sys/powerpc/mpc85xx/lbc.c#3 integrate .. //depot/projects/hammer/sys/powerpc/mpc85xx/lbc.h#4 integrate .. //depot/projects/hammer/sys/powerpc/mpc85xx/mpc85xx.c#4 integrate .. //depot/projects/hammer/sys/powerpc/mpc85xx/mpc85xx.h#3 integrate .. //depot/projects/hammer/sys/powerpc/mpc85xx/nexus.c#3 integrate .. //depot/projects/hammer/sys/powerpc/mpc85xx/ocpbus.c#12 delete .. //depot/projects/hammer/sys/powerpc/mpc85xx/ocpbus.h#7 delete .. //depot/projects/hammer/sys/powerpc/mpc85xx/openpic_fdt.c#1 branch .. //depot/projects/hammer/sys/powerpc/mpc85xx/opic.c#3 delete .. //depot/projects/hammer/sys/powerpc/mpc85xx/pci_fdt.c#1 branch .. //depot/projects/hammer/sys/powerpc/mpc85xx/pci_ocp.c#8 delete .. //depot/projects/hammer/sys/powerpc/ofw/ofw_real.c#5 integrate .. //depot/projects/hammer/sys/powerpc/ofw/ofw_syscons.c#17 integrate .. //depot/projects/hammer/sys/powerpc/powermac/cpcht.c#3 integrate .. //depot/projects/hammer/sys/powerpc/powermac/cuda.c#6 integrate .. //depot/projects/hammer/sys/powerpc/powermac/grackle.c#16 integrate .. //depot/projects/hammer/sys/powerpc/powermac/hrowpic.c#19 integrate .. //depot/projects/hammer/sys/powerpc/powermac/openpic_macio.c#13 integrate .. //depot/projects/hammer/sys/powerpc/powermac/pmu.c#7 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/bcopy.c#4 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/bus_machdep.c#4 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/busdma_machdep.c#19 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/cpu.c#18 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/db_interface.c#9 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/db_trace.c#16 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/elf32_machdep.c#1 branch .. //depot/projects/hammer/sys/powerpc/powerpc/elf64_machdep.c#1 branch .. //depot/projects/hammer/sys/powerpc/powerpc/elf_machdep.c#24 delete .. //depot/projects/hammer/sys/powerpc/powerpc/exec_machdep.c#1 branch .. //depot/projects/hammer/sys/powerpc/powerpc/genassym.c#18 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/in_cksum.c#4 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/intr_machdep.c#24 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/mp_machdep.c#17 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/openpic.c#21 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/pic_if.m#8 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/setjmp.S#2 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/sigcode.S#4 delete .. //depot/projects/hammer/sys/powerpc/powerpc/sigcode32.S#1 branch .. //depot/projects/hammer/sys/powerpc/powerpc/sigcode64.S#1 branch .. //depot/projects/hammer/sys/powerpc/powerpc/stack_machdep.c#3 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/syncicache.c#7 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/sys_machdep.c#5 integrate .. //depot/projects/hammer/sys/powerpc/psim/openpic_iobus.c#12 integrate .. //depot/projects/hammer/sys/sparc64/include/intr_machdep.h#12 integrate .. //depot/projects/hammer/sys/sparc64/include/smp.h#15 integrate .. //depot/projects/hammer/sys/sparc64/sparc64/exception.S#24 integrate .. //depot/projects/hammer/sys/sparc64/sparc64/genassym.c#21 integrate .. //depot/projects/hammer/sys/sparc64/sparc64/machdep.c#64 integrate .. //depot/projects/hammer/sys/sun4v/conf/DEFAULTS#7 integrate .. //depot/projects/hammer/sys/sun4v/include/intr_machdep.h#4 integrate .. //depot/projects/hammer/sys/sun4v/sun4v/exception.S#3 integrate .. //depot/projects/hammer/sys/sun4v/sun4v/machdep.c#12 integrate .. //depot/projects/hammer/sys/sys/cdefs.h#31 integrate .. //depot/projects/hammer/sys/sys/diskmbr.h#7 integrate .. //depot/projects/hammer/sys/sys/elf_common.h#16 integrate .. //depot/projects/hammer/sys/sys/ktrace.h#12 integrate .. //depot/projects/hammer/sys/sys/param.h#142 integrate .. //depot/projects/hammer/sys/sys/pcpu.h#26 integrate .. //depot/projects/hammer/sys/sys/proc.h#140 integrate .. //depot/projects/hammer/sys/sys/ptrace.h#16 integrate .. //depot/projects/hammer/sys/sys/signalvar.h#26 integrate .. //depot/projects/hammer/sys/sys/syscall.h#75 integrate .. //depot/projects/hammer/sys/sys/syscall.mk#75 integrate .. //depot/projects/hammer/sys/sys/syscallsubr.h#42 integrate .. //depot/projects/hammer/sys/sys/sysctl.h#53 integrate .. //depot/projects/hammer/sys/sys/sysent.h#19 integrate .. //depot/projects/hammer/sys/sys/sysproto.h#77 integrate .. //depot/projects/hammer/sys/sys/systm.h#69 integrate .. //depot/projects/hammer/sys/ufs/ffs/ffs_alloc.c#44 integrate .. //depot/projects/hammer/sys/ufs/ffs/ffs_inode.c#25 integrate .. //depot/projects/hammer/sys/ufs/ffs/ffs_softdep.c#65 integrate .. //depot/projects/hammer/sys/ufs/ffs/ffs_vfsops.c#91 integrate .. //depot/projects/hammer/sys/ufs/ffs/ffs_vnops.c#59 integrate .. //depot/projects/hammer/sys/ufs/ffs/softdep.h#6 integrate .. //depot/projects/hammer/sys/ufs/ufs/inode.h#19 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_inode.c#23 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_lookup.c#34 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_vnops.c#69 integrate .. //depot/projects/hammer/sys/vm/vm_contig.c#46 integrate .. //depot/projects/hammer/sys/vm/vm_fault.c#61 integrate .. //depot/projects/hammer/sys/vm/vm_map.c#83 integrate .. //depot/projects/hammer/sys/vm/vm_object.c#88 integrate .. //depot/projects/hammer/sys/vm/vm_page.c#85 integrate .. //depot/projects/hammer/sys/vm/vm_page.h#39 integrate .. //depot/projects/hammer/sys/vm/vm_pageout.c#60 integrate .. //depot/projects/hammer/sys/vm/vm_pager.h#13 integrate .. //depot/projects/hammer/sys/x86/isa/atrtc.c#3 integrate .. //depot/projects/hammer/sys/x86/isa/clock.c#3 integrate .. //depot/projects/hammer/sys/x86/x86/local_apic.c#2 integrate .. //depot/projects/hammer/sys/x86/x86/timeevents.c#2 delete .. //depot/projects/hammer/tools/regression/bin/sh/expansion/arith2.0#3 integrate .. //depot/projects/hammer/tools/tools/ncpus/biosmptable.c#3 integrate .. //depot/projects/hammer/tools/tools/netrate/tcpp/README#3 integrate .. //depot/projects/hammer/tools/tools/netrate/tcpp/parallelism.csh#1 branch .. //depot/projects/hammer/tools/tools/netrate/tcpp/runit.pl#1 branch .. //depot/projects/hammer/usr.bin/calendar/calendars/calendar.freebsd#78 integrate .. //depot/projects/hammer/usr.bin/col/col.c#6 integrate .. //depot/projects/hammer/usr.bin/gcore/elfcore.c#11 integrate .. //depot/projects/hammer/usr.bin/gcore/extern.h#4 integrate .. //depot/projects/hammer/usr.bin/gcore/gcore.1#4 integrate .. //depot/projects/hammer/usr.bin/gcore/gcore.c#7 integrate .. //depot/projects/hammer/usr.bin/getopt/getopt.1#8 integrate .. //depot/projects/hammer/usr.bin/ktrace/ktrace.1#7 integrate .. //depot/projects/hammer/usr.bin/locate/bigram/locate.bigram.c#3 integrate .. //depot/projects/hammer/usr.bin/locate/code/locate.code.c#2 integrate .. //depot/projects/hammer/usr.bin/lock/Makefile#3 integrate .. //depot/projects/hammer/usr.bin/lock/lock.c#7 integrate .. //depot/projects/hammer/usr.bin/make/str.c#18 integrate .. //depot/projects/hammer/usr.bin/ministat/ministat.1#3 integrate .. //depot/projects/hammer/usr.bin/netstat/if.c#19 integrate .. //depot/projects/hammer/usr.bin/tcopy/Makefile#3 integrate .. //depot/projects/hammer/usr.bin/tcopy/tcopy.c#3 integrate .. //depot/projects/hammer/usr.bin/tftp/tftp.c#7 integrate .. //depot/projects/hammer/usr.bin/truss/powerpc64-fbsd.c#1 branch .. //depot/projects/hammer/usr.bin/xlint/arch/powerpc64/targparam.h#1 branch .. //depot/projects/hammer/usr.bin/xlint/lint1/mem1.c#4 integrate .. //depot/projects/hammer/usr.sbin/Makefile#109 integrate .. //depot/projects/hammer/usr.sbin/acpi/acpidump/acpi_user.c#11 integrate .. //depot/projects/hammer/usr.sbin/acpi/iasl/Makefile#10 integrate .. //depot/projects/hammer/usr.sbin/boot0cfg/boot0cfg.c#14 integrate .. //depot/projects/hammer/usr.sbin/config/config.8#13 integrate .. //depot/projects/hammer/usr.sbin/config/config.y#20 integrate .. //depot/projects/hammer/usr.sbin/config/configvers.h#16 integrate .. //depot/projects/hammer/usr.sbin/config/main.c#22 integrate .. //depot/projects/hammer/usr.sbin/config/mkmakefile.c#21 integrate .. //depot/projects/hammer/usr.sbin/config/mkoptions.c#9 integrate .. //depot/projects/hammer/usr.sbin/crunch/crunchide/Makefile#5 integrate .. //depot/projects/hammer/usr.sbin/crunch/crunchide/exec_elf32.c#12 integrate .. //depot/projects/hammer/usr.sbin/fifolog/lib/fifolog_reader.c#5 integrate .. //depot/projects/hammer/usr.sbin/freebsd-update/freebsd-update.8#6 integrate .. //depot/projects/hammer/usr.sbin/jls/jls.c#11 integrate .. //depot/projects/hammer/usr.sbin/mountd/exports.5#13 integrate .. //depot/projects/hammer/usr.sbin/pc-sysinstall/Makefile#1 branch .. //depot/projects/hammer/usr.sbin/pc-sysinstall/Makefile.inc#1 branch >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Jul 17 04:38:43 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 56EC0106567D; Sat, 17 Jul 2010 04:38:43 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EE20C106566B for ; Sat, 17 Jul 2010 04:38:42 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8BB388FC17 for ; Sat, 17 Jul 2010 04:38:42 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6H4cgph061902 for ; Sat, 17 Jul 2010 04:38:42 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6H4cg4f061900 for perforce@freebsd.org; Sat, 17 Jul 2010 04:38:42 GMT (envelope-from gabor@freebsd.org) Date: Sat, 17 Jul 2010 04:38:42 GMT Message-Id: <201007170438.o6H4cg4f061900@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 181076 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jul 2010 04:38:43 -0000 http://p4web.freebsd.org/@@181076?ac=10 Change 181076 by gabor@gabor_server on 2010/07/17 04:37:44 - Bump Copyright for last change Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/util.c#90 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/util.c#90 (text+ko) ==== @@ -1,6 +1,6 @@ /*- * Copyright (c) 1999 James Howard and Dag-Erling Coïdan Smørgrav - * Copyright (C) 2008-2009 Gabor Kovesdan + * Copyright (C) 2008-2010 Gabor Kovesdan * All rights reserved. * * Redistribution and use in source and binary forms, with or without From owner-p4-projects@FreeBSD.ORG Sat Jul 17 05:14:22 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E685B1065676; Sat, 17 Jul 2010 05:14:21 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 873A2106567A for ; Sat, 17 Jul 2010 05:14:21 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 750F68FC08 for ; Sat, 17 Jul 2010 05:14:21 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6H5EL8Z076318 for ; Sat, 17 Jul 2010 05:14:21 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6H5ELeB076316 for perforce@freebsd.org; Sat, 17 Jul 2010 05:14:21 GMT (envelope-from gabor@freebsd.org) Date: Sat, 17 Jul 2010 05:14:21 GMT Message-Id: <201007170514.o6H5ELeB076316@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 181077 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jul 2010 05:14:22 -0000 http://p4web.freebsd.org/@@181077?ac=10 Change 181077 by gabor@gabor_server on 2010/07/17 05:14:09 - Small fix to fastgrep.c: check len > 0 before manipulating the array - Merge $OpenBSD$ tags even if their changes are ignored because they don't suit our implementation decisions but this reflects that the code is up-to-date Obtained from: OpenBSD - Some minor changes to directory traversal, which makes the code more readable - Use limits.h instead of sys/limits.h Obtained from: freegrep - Use switch instead of if's to make that part more readable Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/fastgrep.c#18 edit .. //depot/projects/soc2008/gabor_textproc/grep/file.c#51 edit .. //depot/projects/soc2008/gabor_textproc/grep/grep.1#16 edit .. //depot/projects/soc2008/gabor_textproc/grep/grep.c#96 edit .. //depot/projects/soc2008/gabor_textproc/grep/grep.h#54 edit .. //depot/projects/soc2008/gabor_textproc/grep/util.c#91 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/fastgrep.c#18 (text+ko) ==== @@ -92,7 +92,7 @@ fg->reversed = false; /* Remove end-of-line character ('$'). */ - if (pat[fg->len - 1] == '$') { + if (fg->len > 0 && pat[fg->len - 1] == '$') { eol = true; fg->eol = true; fg->len--; ==== //depot/projects/soc2008/gabor_textproc/grep/file.c#51 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $OpenBSD: file.c,v 1.10 2008/10/16 22:56:32 deraadt Exp $ */ +/* $OpenBSD: file.c,v 1.11 2010/07/02 20:48:48 nicm Exp $ */ /*- * Copyright (c) 1999 James Howard and Dag-Erling Coïdan Smørgrav ==== //depot/projects/soc2008/gabor_textproc/grep/grep.1#16 (text+ko) ==== @@ -1,5 +1,5 @@ .\" $FreeBSD$ -.\" $OpenBSD: grep.1,v 1.36 2009/02/08 17:15:10 jmc Exp $ +.\" $OpenBSD: grep.1,v 1.38 2010/04/05 06:30:59 jmc Exp $ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" ==== //depot/projects/soc2008/gabor_textproc/grep/grep.c#96 (text+ko) ==== @@ -1,3 +1,4 @@ +/* $OpenBSD: grep.c,v 1.42 2010/07/02 22:18:03 tedu Exp $ */ /*- * Copyright (c) 1999 James Howard and Dag-Erling Coïdan Smørgrav * Copyright (C) 2008-2009 Gabor Kovesdan @@ -28,7 +29,6 @@ #include __FBSDID("$FreeBSD$"); -#include #include #include @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/soc2008/gabor_textproc/grep/grep.h#54 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $OpenBSD: grep.h,v 1.14 2007/09/02 15:19:32 deraadt Exp $ */ +/* $OpenBSD: grep.h,v 1.15 2010/04/05 03:03:55 tedu Exp $ */ /* $FreeBSD$ */ /*- * Copyright (c) 1999 James Howard and Dag-Erling Coïdan Smørgrav ==== //depot/projects/soc2008/gabor_textproc/grep/util.c#91 (text+ko) ==== @@ -1,3 +1,5 @@ +/* $OpenBSD: util.c,v 1.39 2010/07/02 22:18:03 tedu Exp $ */ + /*- * Copyright (c) 1999 James Howard and Dag-Erling Coïdan Smørgrav * Copyright (C) 2008-2010 Gabor Kovesdan @@ -65,12 +67,17 @@ c = fts_flags = 0; - if (linkbehave == LINK_EXPLICIT) + switch(linkbehave) { + case LINK_EXPLICIT: fts_flags = FTS_COMFOLLOW; - if (linkbehave == LINK_SKIP) + break; + case LINK_SKIP: fts_flags = FTS_PHYSICAL; - else + break; + default: fts_flags = FTS_LOGICAL; + + } fts_flags |= FTS_NOSTAT | FTS_NOCHDIR; @@ -79,13 +86,13 @@ while ((p = fts_read(fts)) != NULL) { switch (p->fts_info) { case FTS_DNR: - break; + /* FALLTHROUGH */ case FTS_ERR: errx(2, "%s: %s", p->fts_path, strerror(p->fts_errno)); break; + case FTS_D: + /* FALLTHROUGH */ case FTS_DP: - /* FALLTHROUGH */ - case FTS_D: break; case FTS_DC: /* Print a warning if there is a recursive directory loop */ @@ -119,8 +126,6 @@ break; } } - if (errno) - err(2, "fts_read"); return (c); } From owner-p4-projects@FreeBSD.ORG Sat Jul 17 05:15:23 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 22B971065676; Sat, 17 Jul 2010 05:15:23 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB4871065678 for ; Sat, 17 Jul 2010 05:15:22 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B062E8FC1E for ; Sat, 17 Jul 2010 05:15:22 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6H5FM45076419 for ; Sat, 17 Jul 2010 05:15:22 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6H5FMIH076417 for perforce@freebsd.org; Sat, 17 Jul 2010 05:15:22 GMT (envelope-from gabor@freebsd.org) Date: Sat, 17 Jul 2010 05:15:22 GMT Message-Id: <201007170515.o6H5FMIH076417@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 181078 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jul 2010 05:15:23 -0000 http://p4web.freebsd.org/@@181078?ac=10 Change 181078 by gabor@gabor_server on 2010/07/17 05:14:30 - Add missed newline Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/grep.c#97 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/grep.c#97 (text+ko) ==== @@ -1,4 +1,5 @@ /* $OpenBSD: grep.c,v 1.42 2010/07/02 22:18:03 tedu Exp $ */ + /*- * Copyright (c) 1999 James Howard and Dag-Erling Coïdan Smørgrav * Copyright (C) 2008-2009 Gabor Kovesdan From owner-p4-projects@FreeBSD.ORG Sat Jul 17 05:37:48 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 08C721065678; Sat, 17 Jul 2010 05:37:48 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C12A51065675 for ; Sat, 17 Jul 2010 05:37:47 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A98B58FC1F for ; Sat, 17 Jul 2010 05:37:47 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6H5bllY078056 for ; Sat, 17 Jul 2010 05:37:47 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6H5bldL078054 for perforce@freebsd.org; Sat, 17 Jul 2010 05:37:47 GMT (envelope-from gabor@freebsd.org) Date: Sat, 17 Jul 2010 05:37:47 GMT Message-Id: <201007170537.o6H5bldL078054@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 181079 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jul 2010 05:37:48 -0000 http://p4web.freebsd.org/@@181079?ac=10 Change 181079 by gabor@gabor_server on 2010/07/17 05:37:18 - style(9) and readability nits Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/fastgrep.c#19 edit .. //depot/projects/soc2008/gabor_textproc/grep/file.c#52 edit .. //depot/projects/soc2008/gabor_textproc/grep/grep.c#98 edit .. //depot/projects/soc2008/gabor_textproc/grep/grep.h#55 edit .. //depot/projects/soc2008/gabor_textproc/grep/util.c#92 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/fastgrep.c#19 (text+ko) ==== @@ -123,8 +123,7 @@ fg->pattern[fg->len] = '\0'; /* Look for ways to cheat...er...avoid the full regex engine. */ - for (i = 0; i < fg->len; i++) - { + for (i = 0; i < fg->len; i++) { /* Can still cheat? */ if (fg->pattern[i] == '.') { hasDot = i; @@ -152,7 +151,8 @@ */ if ((!(lflag || cflag)) && ((!(bol || eol)) && ((lastHalfDot) && ((firstHalfDot < 0) || - ((fg->len - (lastHalfDot + 1)) < (size_t)firstHalfDot)))) && !oflag && !color) { + ((fg->len - (lastHalfDot + 1)) < (size_t)firstHalfDot)))) && + !oflag && !color) { fg->reversed = true; hasDot = fg->len - (firstHalfDot < 0 ? firstLastHalfDot : firstHalfDot) - 1; @@ -223,10 +223,7 @@ /* Verify data is >= pattern length before searching on it. */ if (len >= fg->len) { /* Determine where in data to start search at. */ - if (fg->eol) - j = len - fg->len; - else - j = 0; + j = fg->eol ? len - fg->len : 0; if (!((fg->bol && fg->eol) && (len != fg->len))) if (grep_cmp(fg->pattern, data + j, fg->len) == -1) { @@ -285,15 +282,18 @@ unsigned int i; if (iflag) { - if ((size = mbstowcs(NULL, (const char *)data, 0)) == ((size_t) - 1)) + if ((size = mbstowcs(NULL, (const char *)data, 0)) == + ((size_t) - 1)) return (-1); wdata = grep_malloc(size * sizeof(wint_t)); - if (mbstowcs(wdata, (const char *)data, size) == ((size_t) - 1)) + if (mbstowcs(wdata, (const char *)data, size) == + ((size_t) - 1)) return (-1); - if ((size = mbstowcs(NULL, (const char *)pat, 0)) == ((size_t) - 1)) + if ((size = mbstowcs(NULL, (const char *)pat, 0)) == + ((size_t) - 1)) return (-1); wpat = grep_malloc(size * sizeof(wint_t)); @@ -301,7 +301,8 @@ if (mbstowcs(wpat, (const char *)pat, size) == ((size_t) - 1)) return (-1); for (i = 0; i < len; i++) { - if ((towlower(wpat[i]) == towlower(wdata[i])) || ((grepbehave != GREP_FIXED) && wpat[i] == L'.')) + if ((towlower(wpat[i]) == towlower(wdata[i])) || + ((grepbehave != GREP_FIXED) && wpat[i] == L'.')) continue; free(wpat); free(wdata); @@ -309,7 +310,8 @@ } } else { for (i = 0; i < len; i++) { - if ((pat[i] == data[i]) || ((grepbehave != GREP_FIXED) && pat[i] == '.')) + if ((pat[i] == data[i]) || ((grepbehave != GREP_FIXED) && + pat[i] == '.')) continue; return (i); } ==== //depot/projects/soc2008/gabor_textproc/grep/file.c#52 (text+ko) ==== @@ -60,7 +60,8 @@ unsigned char *binbufptr; static int bzerr; -#define iswbinary(ch) (!iswspace((ch)) && iswcntrl((ch)) && (ch != L'\b') && (ch != L'\0')) +#define iswbinary(ch) (!iswspace((ch)) && iswcntrl((ch)) && \ + (ch != L'\b') && (ch != L'\0')) /* * Returns a single character according to the file type. @@ -131,7 +132,8 @@ else if (stat(fname, &st) != 0) err(2, NULL); - bufsiz = (MAXBUFSIZ > (st.st_size * PREREAD_M)) ? (st.st_size / 2) : MAXBUFSIZ; + bufsiz = (MAXBUFSIZ > (st.st_size * PREREAD_M)) ? + (st.st_size / 2) : MAXBUFSIZ; binbuf = grep_malloc(sizeof(char) * bufsiz); @@ -142,14 +144,16 @@ binbuf[i++] = ch; } - f->binary = memchr(binbuf, (filebehave != FILE_GZIP) ? '\0' : '\200', i - 1) != NULL; + f->binary = memchr(binbuf, (filebehave != FILE_GZIP) ? + '\0' : '\200', i - 1) != NULL; } binbufsiz = i; binbufptr = binbuf; } /* Read a line whether from the buffer or from the file itself. */ - for (i = 0; !(grep_feof(f) && (binbufptr == &binbuf[binbufsiz])); i++) { + for (i = 0; !(grep_feof(f) && + (binbufptr == &binbuf[binbufsiz])); i++) { if (binbufptr == &binbuf[binbufsiz]) { ch = grep_fgetc(f); } else { ==== //depot/projects/soc2008/gabor_textproc/grep/grep.c#98 (text+ko) ==== @@ -225,7 +225,8 @@ /* Increase size if necessary */ if (patterns == pattern_sz) { pattern_sz *= 2; - pattern = grep_realloc(pattern, ++pattern_sz * sizeof(*pattern)); + pattern = grep_realloc(pattern, ++pattern_sz * + sizeof(*pattern)); } if (len > 0 && pat[len - 1] == '\n') --len; @@ -246,7 +247,8 @@ /* Increase size if necessary */ if (epatterns == epattern_sz) { epattern_sz *= 2; - epattern = grep_realloc(epattern, ++epattern_sz * sizeof(struct epat)); + epattern = grep_realloc(epattern, ++epattern_sz * + sizeof(struct epat)); } if (len > 0 && pat[len - 1] == '\n') --len; @@ -280,9 +282,9 @@ int main(int argc, char *argv[]) { - unsigned long long l; char **aargv, **eargv, *eopts; char *ep; + unsigned long long l; unsigned int aargc, eargc, i; int c, lastc, needpattern, newarg, prevoptind; @@ -342,13 +344,15 @@ eargc = 0; while(str != NULL) { - eargv[++eargc] = (char *)grep_malloc(sizeof(char) * (strlen(str) + 1)); + eargv[++eargc] = (char *)grep_malloc(sizeof(char) * + (strlen(str) + 1)); strlcpy(eargv[eargc], str, strlen(str) + 1); str = strtok(NULL, " "); } eargv[++eargc] = NULL; - aargv = (char **)grep_malloc(sizeof(char *) * (eargc + argc + 1)); + aargv = (char **)grep_malloc(sizeof(char *) * + (eargc + argc + 1)); aargv[0] = argv[0]; for(i = 1; i < eargc; i++) @@ -363,7 +367,8 @@ aargc = argc; } - while (((c = getopt_long(aargc, aargv, optstr, long_options, NULL)) != -1)) { + while (((c = getopt_long(aargc, aargv, optstr, long_options, NULL)) != + -1)) { switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': @@ -382,6 +387,7 @@ } /* FALLTHROUGH */ case 'A': + /* FALLTHROUGH */ case 'B': errno = 0; l = strtoull(optarg, &ep, 10); @@ -537,7 +543,8 @@ errx(2, "%s", getstr(8)); break; case COLOR_OPT: - if (optarg == NULL || strcmp("auto", optarg) == 0 || strcmp("always", optarg) == 0 ) { + if (optarg == NULL || strcmp("auto", optarg) == 0 || + strcmp("always", optarg) == 0 ) { color = getenv("GREP_COLOR"); if (color == NULL) { color = grep_malloc(sizeof(char) * 6); @@ -559,19 +566,23 @@ break; case R_INCLUDE_OPT: exclflag = true; - add_epattern(basename(optarg), strlen(basename(optarg)), FILE_PAT, INCL_PAT); + add_epattern(basename(optarg), strlen(basename(optarg)), + FILE_PAT, INCL_PAT); break; case R_EXCLUDE_OPT: exclflag = true; - add_epattern(basename(optarg), strlen(basename(optarg)), FILE_PAT, EXCL_PAT); + add_epattern(basename(optarg), strlen(basename(optarg)), + FILE_PAT, EXCL_PAT); break; case R_DINCLUDE_OPT: exclflag = true; - add_epattern(basename(optarg), strlen(basename(optarg)), DIR_PAT, INCL_PAT); + add_epattern(basename(optarg), strlen(basename(optarg)), + DIR_PAT, INCL_PAT); break; case R_DEXCLUDE_OPT: exclflag = true; - add_epattern(basename(optarg), strlen(basename(optarg)), DIR_PAT, EXCL_PAT); + add_epattern(basename(optarg), strlen(basename(optarg)), + DIR_PAT, EXCL_PAT); break; case HELP_OPT: default: @@ -652,15 +663,5 @@ /* Find out the correct return value according to the results and the command line option. */ - if (c) { - if (notfound && qflag) - exit(0); - else if (notfound) - exit (2); - else - exit (0); - } else if (notfound) - exit(2); - else - exit(1); + exit(c ? (notfound ? (qflag ? 0 : 2) : 0) : (notfound ? 2 : 1)); } ==== //depot/projects/soc2008/gabor_textproc/grep/grep.h#55 (text+ko) ==== @@ -1,5 +1,6 @@ /* $OpenBSD: grep.h,v 1.15 2010/04/05 03:03:55 tedu Exp $ */ /* $FreeBSD$ */ + /*- * Copyright (c) 1999 James Howard and Dag-Erling Coïdan Smørgrav * Copyright (c) 2008-2009 Gabor Kovesdan ==== //depot/projects/soc2008/gabor_textproc/grep/util.c#92 (text+ko) ==== @@ -95,7 +95,7 @@ case FTS_DP: break; case FTS_DC: - /* Print a warning if there is a recursive directory loop */ + /* Print a warning for recursive directory loop */ warnx("warning: %s: recursive directory loop", p->fts_path); break; @@ -104,16 +104,20 @@ ok = true; if (exclflag) { d = strrchr(p->fts_path, '/'); - dir = grep_malloc(sizeof(char) * (d - p->fts_path + 2)); - strlcpy(dir, p->fts_path, (d - p->fts_path + 1)); + dir = grep_malloc(sizeof(char) * + (d - p->fts_path + 2)); + strlcpy(dir, p->fts_path, + (d - p->fts_path + 1)); for (i = 0; i < epatterns; ++i) { switch(epattern[i].type) { case FILE_PAT: - if (fnmatch(epattern[i].pat, basename(p->fts_path), 0) == 0) + if (fnmatch(epattern[i].pat, + basename(p->fts_path), 0) == 0) ok = epattern[i].mode != EXCL_PAT; break; case DIR_PAT: - if (strstr(dir, epattern[i].pat) != NULL) + if (strstr(dir, + epattern[i].pat) != NULL) ok = epattern[i].mode != EXCL_PAT; break; } @@ -132,7 +136,7 @@ /* * Opens a file and processes it. Each file is processed line-by-line - * passing the lines to procline(). + * passing the lines to procline(). */ int procfile(const char *fn) @@ -147,10 +151,7 @@ return (0); if (strcmp(fn, "-") == 0) { - if (label != NULL) - fn = label; - else - fn = getstr(1); + fn = label != NULL ? label : getstr(1); f = grep_stdin_open(); } else { if (!stat(fn, &sb)) { @@ -264,12 +265,14 @@ * removed in the future. See fastgrep.c. */ if (fg_pattern[i].pattern) { - r = grep_search(&fg_pattern[i], (unsigned char *)l->dat, + r = grep_search(&fg_pattern[i], + (unsigned char *)l->dat, l->len, &pmatch); r = (r == 0) ? 0 : REG_NOMATCH; st = pmatch.rm_eo; } else { - r = regexec(&r_pattern[i], l->dat, 1, &pmatch, eflags); + r = regexec(&r_pattern[i], l->dat, 1, + &pmatch, eflags); r = (r == 0) ? 0 : REG_NOMATCH; st = pmatch.rm_eo; } @@ -277,25 +280,31 @@ continue; /* Check for full match */ if (r == 0 && xflag) - if (pmatch.rm_so != 0 || (size_t)pmatch.rm_eo != l->len) + if (pmatch.rm_so != 0 || + (size_t)pmatch.rm_eo != l->len) r = REG_NOMATCH; /* Check for whole word match */ - if (r == 0 && wflag && pmatch.rm_so != 0 && (size_t)pmatch.rm_eo != l->len) { + if (r == 0 && wflag && pmatch.rm_so != 0 && + (size_t)pmatch.rm_eo != l->len) { wchar_t *wbegin; wint_t wend; size_t size; - size = mbstowcs(NULL, l->dat, pmatch.rm_so); + size = mbstowcs(NULL, l->dat, + pmatch.rm_so); if (size == ((size_t) - 1)) r = REG_NOMATCH; else { wbegin = grep_malloc(size); - if (mbstowcs(wbegin, l->dat, pmatch.rm_so) == ((size_t) - 1)) + if (mbstowcs(wbegin, l->dat, + pmatch.rm_so) == ((size_t) - 1)) r = REG_NOMATCH; - else if (sscanf(&l->dat[pmatch.rm_eo], "%lc", &wend) != 1) + else if (sscanf(&l->dat[pmatch.rm_eo], + "%lc", &wend) != 1) r = REG_NOMATCH; - else if (iswword(wbegin[wcslen(wbegin)]) ||iswword(wend)) + else if (iswword(wbegin[wcslen(wbegin)]) || + iswword(wend)) r = REG_NOMATCH; free(wbegin); } @@ -305,7 +314,7 @@ c++; if (m < MAX_LINE_MATCHES) matches[m++] = pmatch; - /* Matches - no need to check more patterns */ + /* matches - skip further patterns */ break; } } @@ -429,12 +438,14 @@ if ((oflag || color) && m > 0) { for (i = 0; i < m; i++) { if (!oflag) - fwrite(line->dat + a, matches[i].rm_so - a, 1, stdout); + fwrite(line->dat + a, matches[i].rm_so - a, 1, + stdout); if (color) fprintf(stdout, "\33[%sm\33[K", color); fwrite(line->dat + matches[i].rm_so, - matches[i].rm_eo - matches[i].rm_so, 1, stdout); + matches[i].rm_eo - matches[i].rm_so, 1, + stdout); if (color) fprintf(stdout, "\33[m\33[K"); a = matches[i].rm_eo; From owner-p4-projects@FreeBSD.ORG Sat Jul 17 12:32:23 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 067EE1065672; Sat, 17 Jul 2010 12:32:23 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BF565106564A for ; Sat, 17 Jul 2010 12:32:22 +0000 (UTC) (envelope-from afiveg@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id ACB258FC1B for ; Sat, 17 Jul 2010 12:32:22 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6HCWMUj042344 for ; Sat, 17 Jul 2010 12:32:22 GMT (envelope-from afiveg@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6HCWM8Y042342 for perforce@freebsd.org; Sat, 17 Jul 2010 12:32:22 GMT (envelope-from afiveg@FreeBSD.org) Date: Sat, 17 Jul 2010 12:32:22 GMT Message-Id: <201007171232.o6HCWM8Y042342@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to afiveg@FreeBSD.org using -f From: Alexandre Fiveg To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 181086 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jul 2010 12:32:23 -0000 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 +.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 #include #include +#include +#include #include #include @@ -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 #include #include +#include + #include #include ==== //depot/projects/soc2010/ringmap/tests/ringmap/open.c#5 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Sat Jul 17 13:23:19 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D39FD1065677; Sat, 17 Jul 2010 13:23:18 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 981881065675 for ; Sat, 17 Jul 2010 13:23:18 +0000 (UTC) (envelope-from afiveg@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 85C158FC19 for ; Sat, 17 Jul 2010 13:23:18 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6HDNI3n057919 for ; Sat, 17 Jul 2010 13:23:18 GMT (envelope-from afiveg@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6HDNI71057917 for perforce@freebsd.org; Sat, 17 Jul 2010 13:23:18 GMT (envelope-from afiveg@FreeBSD.org) Date: Sat, 17 Jul 2010 13:23:18 GMT Message-Id: <201007171323.o6HDNI71057917@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to afiveg@FreeBSD.org using -f From: Alexandre Fiveg To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 181088 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jul 2010 13:23:19 -0000 http://p4web.freebsd.org/@@181088?ac=10 Change 181088 by afiveg@ringmap-2 on 2010/07/17 13:22:33 Dummy functions for access to 8259x chips added. Currently they do nothing. Affected files ... .. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_lem.h#20 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ixgbe.c#3 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ixgbe.h#2 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ringmap_8259.h#1 add .. //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ringmap_ixgbe.c#2 edit .. //depot/projects/soc2010/ringmap/current/sys/i386/conf/I686RINGMAP_CURRENT#3 edit Differences ... ==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_lem.h#20 (text+ko) ==== @@ -223,7 +223,7 @@ #define EM_MSIX_BAR 3 /* On 82575 */ /* Defines for printing debug information */ -#define DEBUG_INIT 1 +#define DEBUG_INIT 0 #define DEBUG_IOCTL 0 #define DEBUG_HW 0 ==== //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ixgbe.c#3 (text+ko) ==== @@ -136,9 +136,13 @@ static void ixgbe_free_receive_structures(struct adapter *); static void ixgbe_free_receive_buffers(struct rx_ring *); static void ixgbe_setup_hw_rsc(struct rx_ring *); - +#ifndef RINGMAP static void ixgbe_enable_intr(struct adapter *); static void ixgbe_disable_intr(struct adapter *); +#else +void ixgbe_enable_intr(struct adapter *); +void ixgbe_disable_intr(struct adapter *); +#endif static void ixgbe_update_stats_counters(struct adapter *); static bool ixgbe_txeof(struct tx_ring *); static bool ixgbe_rxeof(struct ix_queue *, int); @@ -211,7 +215,11 @@ "ix", ixgbe_methods, sizeof(struct adapter), }; -static devclass_t ixgbe_devclass; +#ifndef RINGMAP +static +#endif +devclass_t ixgbe_devclass; + DRIVER_MODULE(ixgbe, pci, ixgbe_driver, ixgbe_devclass, 0, 0); MODULE_DEPEND(ixgbe, pci, 1, 1, 1); @@ -322,6 +330,10 @@ static int fdir_pballoc = 1; #endif +#ifdef RINGMAP +#include +#endif + /********************************************************************* * Device identification routine * @@ -4425,7 +4437,10 @@ } } -static void +#ifndef RINGMAP +static +#endif +void ixgbe_enable_intr(struct adapter *adapter) { struct ixgbe_hw *hw = &adapter->hw; @@ -4471,7 +4486,10 @@ return; } -static void +#ifndef RINGMAP +static +#endif +void ixgbe_disable_intr(struct adapter *adapter) { if (adapter->msix_mem) ==== //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ixgbe.h#2 (text+ko) ==== @@ -432,6 +432,10 @@ unsigned long link_irq; struct ixgbe_hw_stats stats; + +#ifdef RINGMAP + struct ringmap *rm; +#endif }; /* Precision Time Sync (IEEE 1588) defines */ ==== //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ringmap_ixgbe.c#2 (text+ko) ==== @@ -1,0 +1,273 @@ +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include + +#include + +#include "ixgbe_api.h" +#include "ixgbe.h" +#include "ringmap_8259.h" + +int rm_8259_set_ringmap_to_adapter(device_t, struct ringmap *); +struct ringmap * rm_8259_get_ringmap_p(device_t); +device_t rm_8259_get_device_p(struct cdev *); +void rm_8259_enable_intr(device_t); +void rm_8259_disable_intr(device_t); +int rm_8259_set_slot(struct ring *, device_t, unsigned int); +void rm_8259_interrupt(void *); +void rm_8259_delayed_interrupt(void *); +int rm_8259_print_ring_pointers(struct adapter *); +void rm_8259_sync_head_tail(device_t); +void rm_8259_sync_tail(device_t); +void rm_8259_sync_head(device_t); +void rm_8259_delayed_interrupt_per_packet(device_t, int); + +extern devclass_t ixgbe_devclass; +extern void ixgbe_enable_intr(struct adapter *); +extern void ixgbe_disable_intr(struct adapter *); +extern void ringmap_print_slot(struct ring *, unsigned int); +extern void print_capt_obj(struct capt_object *); + + +struct ringmap_functions ringmap_f = { + rm_8259_set_ringmap_to_adapter, + rm_8259_enable_intr, + rm_8259_disable_intr, + rm_8259_interrupt, + rm_8259_delayed_interrupt, + rm_8259_delayed_interrupt_per_packet, + rm_8259_sync_head_tail, + rm_8259_sync_tail, + rm_8259_sync_head, + rm_8259_set_slot, + rm_8259_get_ringmap_p, + rm_8259_get_device_p +}; + + +/* + * This function synchronize the tail and head hardware registers + * with head and tail software varibles, that are visible from + * software process. + * + * Synchronisation rules: + * 1. SYNC_HEAD: ring->kernrp = RDH + * 2. SYNC_TAIL: RDT = ring->userrp + */ +void +rm_8259_sync_head_tail(device_t dev) +{ + rm_8259_sync_tail(dev); + rm_8259_sync_head(dev); +} + + +void +rm_8259_sync_tail(device_t dev) +{ + struct adapter *adapter; + adapter = (struct adapter *)device_get_softc(dev); + + RINGMAP_FUNC_DEBUG(start); + + + RINGMAP_FUNC_DEBUG(end); +} + + +void +rm_8259_sync_head(device_t dev) +{ + struct adapter *adapter; + + RINGMAP_FUNC_DEBUG(start); + + adapter = (struct adapter *)device_get_softc(dev); + + RINGMAP_LOCK(adapter->rm); + + RINGMAP_UNLOCK(adapter->rm); + + RINGMAP_FUNC_DEBUG(end); +} + + +/* + * This should be called from ISR. Other interrupts are disallowed! + * It means the functions must be as small as possible + */ +void +rm_8259_interrupt(void *arg) +{ + struct adapter *adapter = (struct adapter *) arg; + + /* count interrupts only if there is capturing object */ + if ( adapter->rm->open_cnt > 0 ) + adapter->rm->interrupts_counter++; +} + + +void +rm_8259_delayed_interrupt(void *context) +{ + struct adapter *adapter = (struct adapter *)context; + struct timeval last_ts; + + RINGMAP_INTR(start); + RINGMAP_LOCK(adapter->rm); + + getmicrotime(&last_ts); + rm_8259_sync_tail(adapter->dev); + + + RINGMAP_UNLOCK(adapter->rm); + RINGMAP_INTR(end); +} + + +void +rm_8259_delayed_interrupt_per_packet(device_t dev, int slot_num) +{ + struct adapter *adapter = NULL; + struct ringmap *rm = NULL; + + adapter = (struct adapter *)device_get_softc(dev); + rm = adapter->rm; + + RINGMAP_INTR(start); + + RINGMAP_LOCK(rm); + + RINGMAP_UNLOCK(rm); + + RINGMAP_INTR(end); +} + + +int +rm_8259_set_slot(struct ring *ring, device_t dev, unsigned int slot_num) +{ + struct adapter *adapter = NULL; + adapter = (struct adapter *)device_get_softc(dev); + +#if (__RINGMAP_DEB) + printf("[%s] Set slot: %d\n", __func__, slot_num); +#endif + + + return (0); + +} + + +/* + * Disable interrupts on adapter + */ +void +rm_8259_disable_intr(device_t dev) +{ + + struct adapter *adapter; + adapter = (struct adapter *)device_get_softc(dev); + + /*Use function implemeted in native (em) driver */ + ixgbe_disable_intr(adapter); +} + + +/* + * Enable interrupts on adapter + */ +void +rm_8259_enable_intr(device_t dev) +{ + + struct adapter *adapter; + adapter = (struct adapter *)device_get_softc(dev); + + /*Use function implemeted in native (em) driver */ + ixgbe_enable_intr(adapter); +} + + +/* + * Get pointer to device structure of adapter using our ringmap char device. + * This is a trick. Our cdev must have the same unit number as dev of adapter. + * Look in ringmap.c: ringmap_attach() where we create our cdev. + */ +device_t +rm_8259_get_device_p(struct cdev *cdev) +{ + struct adapter *adapter; + + adapter = (struct adapter *)devclass_get_softc(ixgbe_devclass, dev2unit(cdev)); +#if (__RINGMAP_DEB) + if (adapter == NULL){ + RINGMAP_WARN(Can not get pointer to adapter structure); + } +#endif + + return (adapter->dev); +} + + +/* + * Set pointer to ringmap in the adapter structure. + */ +int +rm_8259_set_ringmap_to_adapter(device_t dev, struct ringmap *rm) +{ + struct adapter *adapter; + + adapter = (struct adapter *)device_get_softc(dev); + adapter->rm = rm; + + return (0); +} + + +/* + * Returns pointer to ringmap structure + */ +struct ringmap * +rm_8259_get_ringmap_p(device_t dev) +{ + struct adapter *adapter; + + adapter = (struct adapter *)device_get_softc(dev); + return (adapter->rm); +} + + +int +rm_8259_print_ring_pointers(struct adapter *adapter) +{ + unsigned int rdt, rdh; + struct ringmap *rm = NULL; + + rm = adapter->rm; + + if (rm == NULL) + goto out; + + rdh = 0; + rdt = 0; + + printf("\n== +++++++++ RING POINTERS ++++++++++++ \n"); + printf("== + HW HEAD = %d (KERN POINTER)\n", rdh); + printf("== + HW TAIL = %d (USER POINTER)\n", rdt); + printf("== ++++++++++++++++++++++++++++++++++++++ \n\n"); + +out: + return (0); +} ==== //depot/projects/soc2010/ringmap/current/sys/i386/conf/I686RINGMAP_CURRENT#3 (text+ko) ==== @@ -36,12 +36,10 @@ options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed -options RINGMAP - options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking -#options INET6 # IPv6 communications protocols +options INET6 # IPv6 communications protocols options SCTP # Stream Control Transmission Protocol options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support @@ -61,7 +59,7 @@ options GEOM_LABEL # Provides labelization #options COMPAT_43TTY # BSD 4.3 TTY compat (sgtty) #options COMPAT_FREEBSD4 # Compatible with FreeBSD4 -#options COMPAT_FREEBSD5 # Compatible with FreeBSD5 +options COMPAT_FREEBSD5 # Compatible with FreeBSD5 options COMPAT_FREEBSD6 # Compatible with FreeBSD6 options COMPAT_FREEBSD7 # Compatible with FreeBSD7 options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI @@ -232,7 +230,7 @@ #device fxp # Intel EtherExpress PRO/100B (82557, 82558) #device jme # JMicron JMC250 Gigabit/JMC260 Fast Ethernet #device lge # Level 1 LXT1001 gigabit Ethernet -device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet +#device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet #device nfe # nVidia nForce MCP on-board Ethernet #device nge # NatSemi DP83820 gigabit Ethernet ##device nve # nVidia nForce MCP on-board Ethernet Networking From owner-p4-projects@FreeBSD.ORG Sat Jul 17 15:15:22 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2B8A6106567D; Sat, 17 Jul 2010 15:15:22 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E41B0106564A for ; Sat, 17 Jul 2010 15:15:21 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D243B8FC0C for ; Sat, 17 Jul 2010 15:15:21 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6HFFLDs068310 for ; Sat, 17 Jul 2010 15:15:21 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6HFFL0V068308 for perforce@freebsd.org; Sat, 17 Jul 2010 15:15:21 GMT (envelope-from trasz@freebsd.org) Date: Sat, 17 Jul 2010 15:15:21 GMT Message-Id: <201007171515.o6HFFL0V068308@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 181096 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jul 2010 15:15:22 -0000 http://p4web.freebsd.org/@@181096?ac=10 Change 181096 by trasz@trasz_victim on 2010/07/17 15:15:21 Don't mess with process count in unionfs code; there is no point in doing this. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/fs/unionfs/union_subr.c#8 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/fs/unionfs/union_subr.c#8 (text+ko) ==== @@ -49,7 +49,6 @@ #include #include #include -#include #include #include @@ -777,10 +776,6 @@ rootinfo = uifind((uid_t)0); cred = crdup(cnp->cn_cred); chgproccnt(cred->cr_ruidinfo, 1, 0); -#ifdef notyet - /* XXX: What about the return value? And what's the purpose of this, anyway? */ - rusage_add(RUSAGE_MAXPROCESSES, 1); -#endif change_euid(cred, rootinfo); change_ruid(cred, rootinfo); change_svuid(cred, (uid_t)0); @@ -831,9 +826,6 @@ unionfs_mkshadowdir_abort: cnp->cn_cred = credbk; chgproccnt(cred->cr_ruidinfo, -1, 0); -#ifdef notyet - rusage_sub(RUSAGE_MAXPROCESSES, 1); -#endif crfree(cred); return (error); From owner-p4-projects@FreeBSD.ORG Sat Jul 17 15:19:27 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D194D1065675; Sat, 17 Jul 2010 15:19:26 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 95D59106566B for ; Sat, 17 Jul 2010 15:19:26 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6AB688FC1C for ; Sat, 17 Jul 2010 15:19:26 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6HFJQvx068555 for ; Sat, 17 Jul 2010 15:19:26 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6HFJQgP068553 for perforce@freebsd.org; Sat, 17 Jul 2010 15:19:26 GMT (envelope-from trasz@freebsd.org) Date: Sat, 17 Jul 2010 15:19:26 GMT Message-Id: <201007171519.o6HFJQgP068553@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 181097 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jul 2010 15:19:27 -0000 http://p4web.freebsd.org/@@181097?ac=10 Change 181097 by trasz@trasz_victim on 2010/07/17 15:19:11 Fix thinko - we don't want to ifndef out calls to chg*cnt(); this project is not about per-user limits. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#39 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/tty_pts.c#19 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#39 (text+ko) ==== @@ -1491,7 +1491,6 @@ return (1); } -#ifndef CONTAINERS /* * Change the count associated with number of pseudo-terminals * a given user is using. When 'max' is 0, don't enforce a limit @@ -1516,4 +1515,3 @@ } return (1); } -#endif ==== //depot/projects/soc2009/trasz_limits/sys/kern/tty_pts.c#19 (text+ko) ==== @@ -686,9 +686,7 @@ if (psc->pts_unit >= 0) free_unr(pts_pool, psc->pts_unit); -#ifndef CONTAINERS chgptscnt(psc->pts_uidinfo, -1, 0); -#endif uifree(psc->pts_uidinfo); knlist_destroy(&psc->pts_inpoll.si_note); @@ -728,22 +726,26 @@ /* Resource limiting. */ #ifdef CONTAINERS ok = !rusage_add(p, RUSAGE_PTY, 1); -#else + if (!ok) + return (EAGAIN); +#endif PROC_LOCK(p); ok = chgptscnt(uid, 1, lim_cur(p, RLIMIT_NPTS)); PROC_UNLOCK(p); + if (!ok) { +#ifdef CONTAINERS + rusage_sub(p, RUSAGE_PTY, 1); #endif - if (!ok) return (EAGAIN); + } /* Try to allocate a new pts unit number. */ unit = alloc_unr(pts_pool); if (unit < 0) { #ifdef CONTAINERS rusage_sub(p, RUSAGE_PTY, 1); -#else +#endif chgptscnt(uid, -1, 0); -#endif return (EAGAIN); } @@ -782,13 +784,18 @@ /* Resource limiting. */ #ifdef CONTAINERS ok = !rusage_add(p, RUSAGE_PTY, 1); -#else + if (!ok) + return (EAGAIN); +#endif PROC_LOCK(p); ok = chgptscnt(uid, 1, lim_cur(p, RLIMIT_NPTS)); PROC_UNLOCK(p); + if (!ok) { +#ifdef CONTAINERS + rusage_sub(p, RUSAGE_PTY, 1); #endif - if (!ok) return (EAGAIN); + } /* Allocate TTY and softc. */ psc = malloc(sizeof(struct pts_softc), M_PTS, M_WAITOK|M_ZERO); From owner-p4-projects@FreeBSD.ORG Sat Jul 17 19:10:46 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 265FB106566C; Sat, 17 Jul 2010 19:10:46 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DE875106564A for ; Sat, 17 Jul 2010 19:10:45 +0000 (UTC) (envelope-from afiveg@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CB3968FC08 for ; Sat, 17 Jul 2010 19:10:45 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o6HJAjZZ001056 for ; Sat, 17 Jul 2010 19:10:45 GMT (envelope-from afiveg@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o6HJAj0v001054 for perforce@freebsd.org; Sat, 17 Jul 2010 19:10:45 GMT (envelope-from afiveg@FreeBSD.org) Date: Sat, 17 Jul 2010 19:10:45 GMT Message-Id: <201007171910.o6HJAj0v001054@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to afiveg@FreeBSD.org using -f From: Alexandre Fiveg To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 181115 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jul 2010 19:10:46 -0000 http://p4web.freebsd.org/@@181115?ac=10 Change 181115 by afiveg@ringmap-2 on 2010/07/17 19:10:20 ringmap_attach() _detach() ported to ixgbe and work properly. Next, working with interrupts. Affected files ... .. //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ixgbe.c#4 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ixgbe.h#3 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ringmap_8259.h#2 edit .. //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ringmap_ixgbe.c#3 edit .. //depot/projects/soc2010/ringmap/current/sys/net/ringmap.c#33 edit .. //depot/projects/soc2010/ringmap/current/sys/net/ringmap.h#33 edit Differences ... ==== //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ixgbe.c#4 (text+ko) ==== @@ -38,6 +38,10 @@ #include "ixgbe.h" +#ifdef RINGMAP +#include +#endif + /********************************************************************* * Set this to one to display debug statistics *********************************************************************/ @@ -153,7 +157,11 @@ static void ixgbe_print_hw_stats(struct adapter *); static void ixgbe_print_debug_info(struct adapter *); static void ixgbe_update_link_status(struct adapter *); + +#ifndef RINGMAP static void ixgbe_refresh_mbufs(struct rx_ring *, int); +#endif + static int ixgbe_xmit(struct tx_ring *, struct mbuf **); static int ixgbe_sysctl_stats(SYSCTL_HANDLER_ARGS); static int ixgbe_sysctl_debug(SYSCTL_HANDLER_ARGS); @@ -198,6 +206,15 @@ static void ixgbe_reinit_fdir(void *, int); #endif + +#ifdef RINGMAP +extern int ringmap_attach (device_t, struct ringmap_functions *); +extern int ringmap_detach (device_t); + +extern struct ringmap_functions ringmap_f; +#endif + + /********************************************************************* * FreeBSD Device Interface Entry Points *********************************************************************/ @@ -212,7 +229,11 @@ }; static driver_t ixgbe_driver = { +#ifndef RINGMAP "ix", ixgbe_methods, sizeof(struct adapter), +#else + "ringmap", ixgbe_methods, sizeof(struct adapter), +#endif }; #ifndef RINGMAP @@ -220,10 +241,15 @@ #endif devclass_t ixgbe_devclass; +#ifndef RINGMAP DRIVER_MODULE(ixgbe, pci, ixgbe_driver, ixgbe_devclass, 0, 0); - MODULE_DEPEND(ixgbe, pci, 1, 1, 1); MODULE_DEPEND(ixgbe, ether, 1, 1, 1); +#else +DRIVER_MODULE(ringmap, pci, ixgbe_driver, ixgbe_devclass, 0, 0); +MODULE_DEPEND(ringmap, pci, 1, 1, 1); +MODULE_DEPEND(ringmap, ether, 1, 1, 1); +#endif /* ** TUNEABLE PARAMETERS: @@ -330,9 +356,6 @@ static int fdir_pballoc = 1; #endif -#ifdef RINGMAP -#include -#endif /********************************************************************* * Device identification routine @@ -632,6 +655,11 @@ ctrl_ext |= IXGBE_CTRL_EXT_DRV_LOAD; IXGBE_WRITE_REG(hw, IXGBE_CTRL_EXT, ctrl_ext); + +#ifdef RINGMAP + ringmap_attach(dev, &ringmap_f); +#endif + INIT_DEBUGOUT("ixgbe_attach: end"); return (0); err_late: @@ -662,6 +690,10 @@ INIT_DEBUGOUT("ixgbe_detach: begin"); +#ifdef RINGMAP + ringmap_detach (dev); +#endif + /* Make sure VLANS are not using driver */ if (adapter->ifp->if_vlantrunk != NULL) { device_printf(dev,"Vlan in use, detach first\n"); @@ -1285,8 +1317,13 @@ struct ifnet *ifp = adapter->ifp; bool more; +#ifdef RINGMAP + struct capt_object *co = NULL; +#endif + if (ifp->if_drv_flags & IFF_DRV_RUNNING) { more = ixgbe_rxeof(que, adapter->rx_process_limit); + IXGBE_TX_LOCK(txr); ixgbe_txeof(txr); #if __FreeBSD_version >= 800000 @@ -1297,6 +1334,19 @@ ixgbe_start_locked(txr, ifp); #endif IXGBE_TX_UNLOCK(txr); + +#ifdef RINGMAP + adapter->rm->funcs->sync_head(adapter->dev); + + /* Wakeup threads with not empty rings */ + SLIST_FOREACH(co, &adapter->rm->object_list, objects) { + if (RING_NOT_EMPTY(co->ring)){ + wakeup(co->ring); + } + } +#endif + + if (more) { taskqueue_enqueue(que->tq, &que->que_task); return; @@ -1377,8 +1427,13 @@ bool more_tx, more_rx; u32 newitr = 0; +#ifdef RINGMAP + struct capt_object *co = NULL; + adapter->rm->funcs->delayed_isr(adapter); +#endif ++que->irqs; + more_rx = ixgbe_rxeof(que, adapter->rx_process_limit); IXGBE_TX_LOCK(txr); @@ -1387,6 +1442,18 @@ more_rx = ixgbe_rxeof(que, adapter->rx_process_limit); +#ifdef RINGMAP + adapter->rm->funcs->sync_head(adapter->dev); + + /* Wakeup threads with not empty rings */ + SLIST_FOREACH(co, &adapter->rm->object_list, objects) { + if (RING_NOT_EMPTY(co->ring)){ + wakeup(co->ring); + } + } +#endif + + /* Do AIM now? */ if (ixgbe_enable_aim == FALSE) @@ -2048,7 +2115,6 @@ device_t dev = adapter->dev; struct ix_queue *que = adapter->queues; int error, rid = 0; - /* MSI RID at 1 */ if (adapter->msix == 1) rid = 1; @@ -2114,6 +2180,9 @@ struct ix_queue *que = adapter->queues; int error, rid, vector = 0; +/*TODO: remove it ASAP */ + RINGMAP_FUNC_DEBUG(start); + for (int i = 0; i < adapter->num_queues; i++, vector++, que++) { rid = vector + 1; que->res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, @@ -3367,6 +3436,7 @@ * be recalled to try again. * **********************************************************************/ +#ifndef RINGMAP static void ixgbe_refresh_mbufs(struct rx_ring *rxr, int limit) { @@ -3440,6 +3510,7 @@ IXGBE_RDT(rxr->me), cleaned); return; } +#endif /* !RINGMAP */ /********************************************************************* * @@ -4258,6 +4329,10 @@ if (++i == adapter->num_rx_desc) i = 0; + +#ifndef RINGMAP +/* RINGMAP: Do not send packet to the IP-stack. Andd do not refresh */ + /* Now send to the stack or do LRO */ if (sendmp != NULL) ixgbe_rx_input(rxr, ifp, sendmp, ptype); @@ -4267,13 +4342,20 @@ ixgbe_refresh_mbufs(rxr, i); processed = 0; } +#else + if (adapter->rm != NULL) + adapter->rm->funcs->delayed_isr_per_packet(adapter->dev, + R_MODULO(i-1)); +#endif } +#ifndef RINGMAP /* Refresh any remaining buf structs */ if (processed != 0) { ixgbe_refresh_mbufs(rxr, i); processed = 0; } +#endif rxr->next_to_check = i; ==== //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ixgbe.h#3 (text+ko) ==== @@ -119,8 +119,15 @@ * against the system mbuf pool limit, you can tune nmbclusters * to adjust for this. */ + +#ifndef RINGMAP #define DEFAULT_RXD 1024 #define PERFORM_RXD 2048 +#else +#define DEFAULT_RXD SLOTS_NUMBER +#define PERFORM_RXD SLOTS_NUMBER +#endif + #define MAX_RXD 4096 #define MIN_RXD 64 ==== //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ringmap_8259.h#2 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ringmap_ixgbe.c#3 (text+ko) ==== @@ -55,6 +55,25 @@ }; +/* + * Set pointer to ringmap in the adapter structure. + */ +int +rm_8259_set_ringmap_to_adapter(device_t dev, struct ringmap *rm) +{ + struct adapter *adapter; + + adapter = (struct adapter *)device_get_softc(dev); + adapter->rm = rm; + +#if (__RINGMAP_DEB) + printf(RINGMAP_PREFIX"Number of queeus on adapter: %d\n", + adapter->num_queues); +#endif + return (0); +} + + /* * This function synchronize the tail and head hardware registers * with head and tail software varibles, that are visible from @@ -78,10 +97,8 @@ struct adapter *adapter; adapter = (struct adapter *)device_get_softc(dev); - RINGMAP_FUNC_DEBUG(start); - RINGMAP_FUNC_DEBUG(end); } @@ -90,7 +107,6 @@ { struct adapter *adapter; - RINGMAP_FUNC_DEBUG(start); adapter = (struct adapter *)device_get_softc(dev); @@ -98,7 +114,6 @@ RINGMAP_UNLOCK(adapter->rm); - RINGMAP_FUNC_DEBUG(end); } @@ -123,15 +138,15 @@ struct adapter *adapter = (struct adapter *)context; struct timeval last_ts; - RINGMAP_INTR(start); RINGMAP_LOCK(adapter->rm); - getmicrotime(&last_ts); - rm_8259_sync_tail(adapter->dev); - + if ( adapter->rm->open_cnt > 0 ) { + adapter->rm->interrupts_counter++; + getmicrotime(&last_ts); + rm_8259_sync_tail(adapter->dev); + } RINGMAP_UNLOCK(adapter->rm); - RINGMAP_INTR(end); } @@ -221,19 +236,6 @@ } -/* - * Set pointer to ringmap in the adapter structure. - */ -int -rm_8259_set_ringmap_to_adapter(device_t dev, struct ringmap *rm) -{ - struct adapter *adapter; - - adapter = (struct adapter *)device_get_softc(dev); - adapter->rm = rm; - - return (0); -} /* ==== //depot/projects/soc2010/ringmap/current/sys/net/ringmap.c#33 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/current/sys/net/ringmap.h#33 (text+ko) ====