From owner-p4-projects@FreeBSD.ORG Sun Jul 26 09:22:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EA5751065672; Sun, 26 Jul 2009 09:22:37 +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 A9686106566B for ; Sun, 26 Jul 2009 09:22:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 96CB38FC0A for ; Sun, 26 Jul 2009 09:22:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6Q9MbnJ061830 for ; Sun, 26 Jul 2009 09:22:37 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6Q9Mbj7061828 for perforce@freebsd.org; Sun, 26 Jul 2009 09:22:37 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 26 Jul 2009 09:22:37 GMT Message-Id: <200907260922.n6Q9Mbj7061828@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166576 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 09:22:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=166576 Change 166576 by hselasky@hselasky_laptop001 on 2009/07/26 09:22:04 USB Quirk: - patch from Alastair Hogge PR: usb/137129 Affected files ... .. //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#5 edit .. //depot/projects/usb/src/sys/dev/usb/usbdevs#67 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#5 (text+ko) ==== @@ -106,6 +106,8 @@ {USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_830C, 0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)}, {USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_1220C, 0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)}, {USB_QUIRK_ENTRY(USB_VENDOR_XEROX, USB_PRODUCT_XEROX_WCM15, 0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)}, + /* Devices which should be ignored by ukbd */ + {USB_QUIRK_ENTRY(USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_IKARILASER, 0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_NONE)}, /* Devices which should be ignored by uhid */ {USB_QUIRK_ENTRY(USB_VENDOR_APC, USB_PRODUCT_APC_UPS, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)}, {USB_QUIRK_ENTRY(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)}, ==== //depot/projects/usb/src/sys/dev/usb/usbdevs#67 (text+ko) ==== @@ -1115,6 +1115,8 @@ product CYPRESS WISPY1A 0x0bad MetaGeek Wi-Spy product CYPRESS KBDHUB 0x0101 Keyboard/Hub product CYPRESS FMRADIO 0x1002 FM Radio +product CYPRESS IKARILASER 0x121f Ikari Laser SteelSeries ApS + product CYPRESS USBRS232 0x5500 USB-RS232 Interface product CYPRESS SLIM_HUB 0x6560 Slim Hub product CYPRESS XX6830XX 0x6830 PATA Storage Device From owner-p4-projects@FreeBSD.ORG Sun Jul 26 09:42:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BF06B1065673; Sun, 26 Jul 2009 09:42:50 +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 7C751106564A; Sun, 26 Jul 2009 09:42:50 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 572998FC0A; Sun, 26 Jul 2009 09:42:50 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [65.122.17.41]) by cyrus.watson.org (Postfix) with ESMTPS id E91CF46B45; Sun, 26 Jul 2009 05:42:49 -0400 (EDT) Date: Sun, 26 Jul 2009 10:42:49 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: John Baldwin In-Reply-To: <200907240943.08676.jhb@freebsd.org> Message-ID: References: <200907230537.n6N5bfaM064484@repoman.freebsd.org> <200907240943.08676.jhb@freebsd.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Perforce Change Reviews , Jonathan Anderson Subject: Re: PERFORCE change 166430 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 09:42:51 -0000 On Fri, 24 Jul 2009, John Baldwin wrote: > On Thursday 23 July 2009 1:37:41 am Jonathan Anderson wrote: >> http://perforce.freebsd.org/chv.cgi?CH=166430 >> >> Change 166430 by jona@jona-trustedbsd-belle-vmware on 2009/07/23 05:36:50 >> >> mmap() can fail and return MAP_FAILED, not just NULL\! > > MAP_FAILED is actually the only invalid pointer it will return. This should > probably not be checking for NULL. NULL is actually a valid place to map a page, and therefore can be returned by a successful mapping. In fact, this has been a key requirement for exploiting a number of recent Linux (and one FreeBSD) kernel security vulnerabilities, in which a NULL function pointer is dereferenced by the kernel without properly checking first. If userspace maps kernel exploit code at NULL or a suitable relative offset, that code will run with kernel privilege. Robert From owner-p4-projects@FreeBSD.ORG Sun Jul 26 14:28:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EE42E1065672; Sun, 26 Jul 2009 14:28:14 +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 9B4EB106566B for ; Sun, 26 Jul 2009 14:28:14 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 28A458FC14 for ; Sun, 26 Jul 2009 14:28:13 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6QESDk6099506 for ; Sun, 26 Jul 2009 14:28:13 GMT (envelope-from andre@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6QESDAv099504 for perforce@freebsd.org; Sun, 26 Jul 2009 14:28:13 GMT (envelope-from andre@freebsd.org) Date: Sun, 26 Jul 2009 14:28:13 GMT Message-Id: <200907261428.n6QESDAv099504@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andre@freebsd.org using -f From: Andre Oppermann To: Perforce Change Reviews Cc: Subject: PERFORCE change 166586 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 14:28:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=166586 Change 166586 by andre@andre_t61 on 2009/07/26 14:27:39 First round of comment and annotation improvements. Move tcp_reass_enable check further up. Enhance D-SACK full duplicate test. On new block insert start reassembly timer. Some style improvements. Update TODO. Affected files ... .. //depot/projects/tcp_reass/netinet/tcp_reass.c#53 edit Differences ... ==== //depot/projects/tcp_reass/netinet/tcp_reass.c#53 (text+ko) ==== @@ -39,31 +39,65 @@ * It is the purpose of tcp reassembly to store segments that are received * out of order. This happens when packets are lost along the way due to * various reasons. The most common one is traffic overload which causes - * routers to stop accepting packets for brief moments. + * routers to drop packets for brief moments. + * + * Upon arrival of the missing segment the whole chain of stored contiguous + * segments is moved into the socket buffer at once. In case of multiple + * missing segments the remainder kept in the queue until the next missing + * segment arrives. + * + * When the TCP receiver is in reassembly state *all* arrving segments are + * passed through the reassembly queue until all missing segments have been + * received and all data is dequeued. + * + * Implementation details and choices: + * + * Instead of storing all segments on their own and tracking each with + * with a queue structure we build blocks of contiguous segments merged + * together. This way one missing segment needs only one queue structure + * tracking the whole block of following contiguous segments. If a new + * segment matches the end of one block and the start of the next block + * the two are joined together. If no match is found a new block is created. + * + * Instead of a classical list or tailqueue a red-black tree is used to + * cope with arbitrary complexity of the blocks and missing segments. A + * queue has O(n) worst case behavior whereas the red-black tree is + * O(log n). This prevents complexity attacks where a long chain of + * blocks would have to be traversed to find the right place for the new + * segment. * - * Upon arrival of the missing segment(s) the whole chain of stored segments - * is moved into the socket buffer. In case of multiple missing segments - * the first consequtive part is moved with the remainder being kept in - * store until the next missing segment arrives. + * For the segment merging into a block queue structure the operator can + * chose between time and space efficiency. For time efficiency only the + * head or tail mbuf chain pointers are updated with the new segments mbuf. + * This results in a minimal amount of data accesses and no memory allocations + * unless a new block is created. For space efficiency mbufs and mbuf chains + * are compacted and possibly merged together. It may even allocate a new + * and larger mbuf(-chain) to store the segment data with less overhead and + * less wasted space. This makes it immune against mbuf exhaustion attacks + * where only tiny amounts of data are received per segment, possibly only + * one byte. Usually network drivers allocate only mbuf cluster of 2KBytes + * on receive no matter how large the packet actually is for efficiency + * reasons and because can't easily know at DMA time how large the packet + * effectively actually is. * - * While in reassembly mode *all* arrving segments are put into the reassembly - * queue. + * Limits, timeout. XXX * - * Instead of storing all segments on their own we build blocks of consequtive - * segments chained together. We use a red-black tree to cope with arbitrary - * complexity. If a segment matches the end of one block and the start of the - * next block the two blocks are joined together. If no match is found a - * new block is created. + * The reassembly queue block structure is also used to track SACK + * information as the data receiver. A double-linked list is added + * that tracks the blocks LIFO order of their arrival or updating. * - * The reassembly queues block structure is also used to track SACK - * information as a data receiver. A double-linked list is added - * that links the blocks the reverse order of their arrival or updating. - * This makes us fully compliant to RFC2018 Section 4 including all - * optional parts marked as "SHOULD". + * Implemented / relevant RFC's: + * RFC793: Transmission Control Protocol + * RFC1123: + * RFC2018: This makes us fully compliant to RFC2018 Section 4 including all optional parts marked as "SHOULD". + * RFC2883: * * TODO: * - Improve comments and annotate RFC references. * - Style improvements. + * - Acticate timeout on first insert. + * - Partial D-SACK support. + * - Return flags should be same minus FIN. * - Lots of testing. */ @@ -132,7 +166,9 @@ static struct tcp_reass_block * tcp_reass_merge(struct tcp_reass_block *, struct tcp_reass_block *); -/* Trim empty mbufs from head of chain. */ +/* + * Trim empty mbufs from the head of an mbuf chain. + */ static struct mbuf * m_trimhead(struct mbuf *m) { @@ -165,6 +201,7 @@ static __inline int tcp_reass_cmp(struct tcp_reass_block *a, struct tcp_reass_block *b) { + if (SEQ_LT(a->trb_seqe, b->trb_seqs)) return (-1); else if (SEQ_GT(a->trb_seqs, b->trb_seqe)) @@ -176,6 +213,9 @@ RB_PROTOTYPE_STATIC(tcp_ra, tcp_reass_block, trb_rb, tcp_reass_cmp); RB_GENERATE_STATIC(tcp_ra, tcp_reass_block, trb_rb, tcp_reass_cmp); +/* + * Verify the integrity of the reassembly queue. + */ #ifdef INVARIANTS static int tcp_reass_verify(struct tcpcb *tp, int prepost) @@ -214,8 +254,12 @@ return (1); } -#endif +#endif /* INVARIANTS */ +/* + * Remove a single block from the reassembly queue + * and free all its mbufs, if any. + */ static void tcp_reass_free(struct tcpcb *tp, struct tcp_reass_block *trb) { @@ -229,6 +273,9 @@ uma_zfree(tcp_reass_zone, trb); } +/* + * Remove and free all blocks from the reassembly queue. + */ void tcp_reass_flush(struct tcpcb *tp) { @@ -246,6 +293,10 @@ ("%s: rcv_reass_size not zero after flushing", __func__)); } +/* + * Move block to front of SACK list to report SACK blocks in LIFO order. + * RFC2018: section x + */ static __inline void tcp_reass_sacktrack(struct tcpcb *tp, struct tcp_reass_block *trb) { @@ -257,7 +308,8 @@ } /* - * Insert segments into the reassembly queue. + * Insert segment into the reassembly queue and + * XXX append to socket buffer. * * NB: We must always consume the mbuf. Either by appeding it to * the queue or by freeing it. @@ -274,6 +326,12 @@ INP_WLOCK_ASSERT(tp->t_inpcb); /* + * Check if it is really neccessary to do all the work. + */ + if (!tcp_reass_enable && RB_EMPTY(&tp->rcv_reass)) + goto done; + + /* * Call with th==NULL after becoming established to * force pre-ESTABLISHED data up to user socket. * XXX: Was used for T/TCP of which code remains. @@ -303,10 +361,6 @@ th_seq = th->th_seq; th = NULL; /* Prevent further use. */ - /* Check if it is really neccessary to do all the work. */ - if (!tcp_reass_enable && RB_EMPTY(&tp->rcv_reass)) - goto done; - KASSERT(SEQ_GEQ(th_seq, tp->rcv_nxt), ("%s: sequence number below rcv_nxt", __func__)); KASSERT(!(tp->rcv_nxt == th_seq) || !(RB_EMPTY(&tp->rcv_reass)), @@ -374,9 +428,9 @@ } /* - * Get rid of packet header and mtags. + * Remove and free packet header and mtags. * Trim empty mbufs from head of chain. - * Compact mbuf chain. + * Compact the mbuf chain. */ m_demote(m, 1); m_adj(m, hlen); @@ -393,50 +447,68 @@ trbs.trb_mt = m_last(m); /* - * Return match that has at least partial overlap to either side or - * insert a new reassembly block. + * Find a block that has at least partial overlap to either side. + * If no block is found either insert a new one or use the stack + * if the segment directly fits rcv_nxt. + * RFC793: xxx + * RFC2018: section 3 */ if ((trb = RB_FIND(tcp_ra, &tp->rcv_reass, &trbs)) != NULL) { - - /* Within an already received block. */ + /* + * The new segment is a retransmit and within an already + * received block and thus a full duplicate. + * + * Report it with D-SACK only if it is a subset of and + * not equal to the already existing block. + * RFC2883: section 4, part (1) and (4) + * RFC2883: section 4.1, Reporting Full Duplicate Segments + */ if (SEQ_GEQ(trbs.trb_seqs, trb->trb_seqs) && SEQ_LEQ(trbs.trb_seqe, trb->trb_seqe)) { tcp_reass_sacktrack(tp, trb); - tp->rcv_reass_dsack.start = trbs.trb_seqs; - tp->rcv_reass_dsack.end = trbs.trb_seqe; + if (SEQ_GT(trbs.trb_seqs, trb->trb_seqs) || + SEQ_LT(trbs.trb_seqe, trb->trb_seqe)) { + tp->rcv_reass_dsack.start = trbs.trb_seqs; + tp->rcv_reass_dsack.end = trbs.trb_seqe; + } TCPSTAT_INC(tcps_rcvduppack); TCPSTAT_ADD(tcps_rcvdupbyte, len); goto done; } + /* + * Merge the new segment with the already existing block. + */ tp->rcv_reass_size += SEQ_DELTA(trbs.trb_seqs, trbs.trb_seqe); - - /* Merge in the new segment. */ (void)tcp_reass_merge(trb, &trbs); tcp_reass_sacktrack(tp, trb); + /* + * Update XXX + * RFC2883: section 4.2, Reporting Partial Duplicate Segments + * XXXAO: Add D-SACK block. + */ if ((len = SEQ_DELTA(trbs.trb_seqs, trbs.trb_seqe)) > 0) { tp->rcv_reass_size -= len; TCPSTAT_INC(tcps_rcvpartduppack); TCPSTAT_ADD(tcps_rcvpartdupbyte, len); } - /* Merge in previous block(s) if there is overlap. */ + /* + * Merge in previous/next block(s) if there is overlap. + */ while ((trbn = RB_PREV(tcp_ra, &tp->rcv_reass, trb)) != NULL && SEQ_LEQ(trb->trb_seqs, trbn->trb_seqe)) { trbn = tcp_reass_merge(trb, trbn); tcp_reass_free(tp, trbn); TCPSTAT_INC(tcps_reass_merge); } - - /* Merge in next block(s) if there is overlap. */ while ((trbn = RB_NEXT(tcp_ra, &tp->rcv_reass, trb)) != NULL && SEQ_GEQ(trb->trb_seqe, trbn->trb_seqs)) { trbn = tcp_reass_merge(trb, trbn); tcp_reass_free(tp, trbn); TCPSTAT_INC(tcps_reass_merge); } - } else if (tp->rcv_nxt == th_seq) { trb = &trbs; } else if ((trb = (struct tcp_reass_block *)uma_zalloc(tcp_reass_zone, (M_NOWAIT|M_ZERO))) != NULL) { @@ -449,6 +521,8 @@ LIST_INSERT_HEAD(&tp->rcv_reass_sack, trb, trb_sack); tp->rcv_reass_size += SEQ_DELTA(trbs.trb_seqs, trbs.trb_seqe); tp->rcv_reass_blocks++; + if (RB_EMPTY(&tp->rcv_reass)) + tcp_timer_activate(tp, TT_REASS, tcp_reass_timeout); TCPSTAT_INC(tcps_reass_blocks); } else { /* Memory allocation failure. */ @@ -458,8 +532,12 @@ KASSERT(tcp_reass_verify(tp, 1), ("%s: reassembly queue went inconsistent", __func__)); + /* + * Deliver data if we've got the missing segment. + */ if (trb->trb_seqs == tp->rcv_nxt) goto present; + return (0); present: @@ -475,7 +553,10 @@ TCPSTAT_INC(tcps_reass_missingseg); SOCKBUF_LOCK(&so->so_rcv); - /* We can only ever dequeue one block. */ + /* + * We can only ever dequeue one consecutive + * block of data at most. + */ if (!(so->so_rcv.sb_state & SBS_CANTRCVMORE)) { sbappendstream_locked(&so->so_rcv, trb->trb_m); tp->rcv_nxt += SEQ_DELTA(trb->trb_seqs, trb->trb_seqe); @@ -488,13 +569,19 @@ else tcp_reass_free(tp, trb); - /* NB: sorwakeup_locked() does a implicit socket buffer unlock. */ + /* NB: sorwakeup_locked() does an implicit socket buffer unlock. */ sorwakeup_locked(so); /* + * Don't hold on to data in the reassembly queue for too long. + * Kernel memory is limited and if the connection doesn't make + * any progress in filling the holes we don't want to wait + * forever to prevent memory exhaustion attacks. The sender + * can always retransmit again. + * RFC2018: section 8, Data Receiver Reneging + * * Restart the reassembly queue flush timer after advancing - * the sequence space and if queue is not empty. Otherwise - * deactivate it. + * the sequence space and if the queue still isn't empty. */ if (tcp_reass_timeout && !RB_EMPTY(&tp->rcv_reass)) tcp_timer_activate(tp, TT_REASS, tcp_reass_timeout); @@ -510,8 +597,8 @@ } /* - * Trim a block. - * Positive value is from head, negative from tail. + * Trim a SACK block. + * A positive value is from head, negative from tail. */ static void tcp_reass_trim(struct tcp_reass_block *trb, int i) @@ -519,6 +606,10 @@ m_adj(trb->trb_m, i); + /* + * Update the tail pointer or free empty mbufs + * at the head of the chain. + */ if (i < 0) { trb->trb_mt = m_last(trb->trb_m); trb->trb_seqe -= i; @@ -529,7 +620,10 @@ } /* - * Merge one or more consecutive blocks together. + * Merge one or more consecutive blocks together. The number of + * redundant bytes is reported as the difference between trbn-> + * trb_seqs and trb_seqe. + * * NB: trbn is always merged into trb! */ static struct tcp_reass_block * @@ -543,7 +637,9 @@ SEQ_GT(trbn->trb_seqe, trb->trb_seqe), ("%s: blocks not overlapping", __func__)); - /* Replace, prepend and append. */ + /* + * Replace, prepend or append a block. + */ if (SEQ_LEQ(trbn->trb_seqs, trb->trb_seqs) && SEQ_GEQ(trbn->trb_seqe, trb->trb_seqe)) { @@ -596,10 +692,12 @@ } /* - * Put the sequence number of the reassembly queue blocks into - * the SACK options of an outgoing segment. - * RFC2018: section ... - * RFC2883: section ... + * Put the sequence number of the reassembly queue blocks into the + * SACK options of an outgoing segment. If a D-SACK block is available + * insert it in the first position followed by the regular SACK blocks. + * RFC2018: section 3, Sack Option Format + * RFC2018: section 4, Generating Sack Options: Data Receiver Behavior + * RFC2883: section 4, Use of the SACK option for reporting a duplicate segment */ int tcp_reass_sack(struct tcpcb *tp, u_char *optp, int numsacks) @@ -614,7 +712,10 @@ KASSERT(!LIST_EMPTY(&tp->rcv_reass_sack), ("%s: sack list empty", __func__)); - /* Create fake SACK block for D-SACK and prepend it. */ + /* + * Create fake SACK block on the stack for D-SACK and prepend it. + * RFC2883: section 4, part (3) + */ if (tp->rcv_reass_dsack.start != tp->rcv_reass_dsack.end) { bzero(&trbs, sizeof(trbs)); trbs.trb_seqs = htonl(tp->rcv_reass_dsack.start); @@ -625,7 +726,7 @@ /* * The most recent block must appear first. Add the other * blocks in most recent created or updated order. - * RFC2018: section 4 + * RFC2018: section 3 and 4, part (4) and (5) */ LIST_FOREACH(trb, &tp->rcv_reass_sack, trb_sack) { if (numsacks < 1) @@ -640,7 +741,11 @@ nsacks++; } - /* Remove fake D-SACK block again. */ + /* + * Remove fake D-SACK block again and zero out the D-SACK + * information. It must be reported only once. + * RFC2883: section 4, part (2) + */ if (LIST_FIRST(&tp->rcv_reass_sack) == &trbs) { LIST_REMOVE(&trbs, trb_sack); tp->rcv_reass_dsack.start = 0; From owner-p4-projects@FreeBSD.ORG Sun Jul 26 15:50:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6984A106566B; Sun, 26 Jul 2009 15:50: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 1B2B21065753 for ; Sun, 26 Jul 2009 15:50:44 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E1EE58FC12 for ; Sun, 26 Jul 2009 15:50:43 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6QFohZt007028 for ; Sun, 26 Jul 2009 15:50:43 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6QFohAF007026 for perforce@freebsd.org; Sun, 26 Jul 2009 15:50:43 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 26 Jul 2009 15:50:43 GMT Message-Id: <200907261550.n6QFohAF007026@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166589 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 15:50:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=166589 Change 166589 by hselasky@hselasky_laptop001 on 2009/07/26 15:49:45 USB CORE: - fix false positive keyboard detection in a more general way. - make sure driver_info field has a default value. PR: usb/137129 Affected files ... .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#23 edit .. //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#6 edit .. //depot/projects/usb/src/sys/dev/usb/usb_device.c#45 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#23 (text+ko) ==== @@ -711,7 +711,15 @@ if (error) return (ENXIO); + /* + * NOTE: we currently don't support USB mouse and USB keyboard + * on the same USB endpoint. + */ if (hid_is_collection(d_ptr, d_len, + HID_USAGE2(HUP_GENERIC_DESKTOP, HUG_MOUSE))) { + /* most likely a mouse */ + error = ENXIO; + } else if (hid_is_collection(d_ptr, d_len, HID_USAGE2(HUP_GENERIC_DESKTOP, HUG_KEYBOARD))) { if (usb_test_quirk(uaa, UQ_KBD_IGNORE)) error = ENXIO; ==== //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#6 (text+ko) ==== @@ -106,8 +106,6 @@ {USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_830C, 0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)}, {USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_1220C, 0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)}, {USB_QUIRK_ENTRY(USB_VENDOR_XEROX, USB_PRODUCT_XEROX_WCM15, 0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)}, - /* Devices which should be ignored by ukbd */ - {USB_QUIRK_ENTRY(USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_IKARILASER, 0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_NONE)}, /* Devices which should be ignored by uhid */ {USB_QUIRK_ENTRY(USB_VENDOR_APC, USB_PRODUCT_APC_UPS, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)}, {USB_QUIRK_ENTRY(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)}, ==== //depot/projects/usb/src/sys/dev/usb/usb_device.c#45 (text+ko) ==== @@ -1283,6 +1283,7 @@ uaa.info.bIfaceNum = iface->idesc->bInterfaceNumber; uaa.use_generic = 0; + uaa.driver_info = 0; /* reset driver_info */ DPRINTFN(2, "iclass=%u/%u/%u iindex=%u/%u\n", uaa.info.bInterfaceClass, @@ -1299,6 +1300,7 @@ /* try generic interface drivers last */ uaa.use_generic = 1; + uaa.driver_info = 0; /* reset driver_info */ if (usb_probe_and_attach_sub(udev, &uaa)) { /* ignore */ From owner-p4-projects@FreeBSD.ORG Sun Jul 26 17:24:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 92E621065677; Sun, 26 Jul 2009 17:24: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 4DFD31065673 for ; Sun, 26 Jul 2009 17:24:26 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3B9478FC27 for ; Sun, 26 Jul 2009 17:24:26 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6QHOQNL025534 for ; Sun, 26 Jul 2009 17:24:26 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6QHOQmo025532 for perforce@freebsd.org; Sun, 26 Jul 2009 17:24:26 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 26 Jul 2009 17:24:26 GMT Message-Id: <200907261724.n6QHOQmo025532@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166590 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 17:24:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=166590 Change 166590 by hselasky@hselasky_laptop001 on 2009/07/26 17:24:17 USB input: - fix for spurious USB mouse button release when using multi-ID HID reports. - reported by Kostik Belousov Affected files ... .. //depot/projects/usb/src/sys/dev/usb/input/ums.c#21 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/input/ums.c#21 (text+ko) ==== @@ -265,11 +265,17 @@ dt -= hid_get_data(buf, len, &info->sc_loc_t); for (i = 0; i < info->sc_buttons; i++) { - if (id != info->sc_iid_btn[i]) + uint32_t mask; + mask = 1UL << UMS_BUT(i); + /* check for correct button ID */ + if (id != info->sc_iid_btn[i]) { + /* keep old button value */ + buttons |= sc->sc_status.button & mask; continue; - if (hid_get_data(buf, len, &info->sc_loc_btn[i])) { - buttons |= (1 << UMS_BUT(i)); } + /* check for button pressed */ + if (hid_get_data(buf, len, &info->sc_loc_btn[i])) + buttons |= mask; } if (++info != &sc->sc_info[UMS_INFO_MAX]) From owner-p4-projects@FreeBSD.ORG Sun Jul 26 17:29:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6D483106566C; Sun, 26 Jul 2009 17:29:32 +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 14D7D106564A for ; Sun, 26 Jul 2009 17:29:32 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 02C748FC08 for ; Sun, 26 Jul 2009 17:29:32 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6QHTVig025873 for ; Sun, 26 Jul 2009 17:29:31 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6QHTVQ0025871 for perforce@freebsd.org; Sun, 26 Jul 2009 17:29:31 GMT (envelope-from mav@freebsd.org) Date: Sun, 26 Jul 2009 17:29:31 GMT Message-Id: <200907261729.n6QHTVQ0025871@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166591 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 17:29:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=166591 Change 166591 by mav@mav_mavbook on 2009/07/26 17:29:04 Some scan related tuning. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#5 edit .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#31 edit .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.c#16 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#5 (text+ko) ==== @@ -247,11 +247,12 @@ case AC_BUS_RESET: softc = (struct pmp_softc *)periph->softc; cam_periph_async(periph, code, path, arg); + if (softc->state != PMP_STATE_NORMAL) + break; if (code == AC_SENT_BDR || code == AC_BUS_RESET) softc->found = 0; /* We have to reset everything. */ - else if (softc->state != PMP_STATE_NORMAL) - break; softc->state = PMP_STATE_PORTS; + (void)cam_periph_hold(periph, PRIBIO); xpt_schedule(periph, CAM_PRIORITY_BUS); break; default: @@ -347,7 +348,7 @@ * to finish the probe. The reference will be dropped in pmpdone at * the end of probe. */ -// (void)cam_periph_hold(periph, PRIBIO); + (void)cam_periph_hold(periph, PRIBIO); xpt_schedule(periph, CAM_PRIORITY_BUS); return(CAM_REQ_CMP); @@ -680,6 +681,7 @@ default: break; } + cam_periph_unhold(periph); softc->state = PMP_STATE_NORMAL; } ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#31 (text+ko) ==== @@ -261,10 +261,9 @@ cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); - if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) + if ((periph->path->device->flags & CAM_DEV_UNCONFIGURED) || + periph->path->device->protocol == PROTO_SATAPM) PROBE_SET_ACTION(softc, PROBE_RESET); - else if (periph->path->device->protocol == PROTO_SATAPM) - PROBE_SET_ACTION(softc, PROBE_PM_PID); else PROBE_SET_ACTION(softc, PROBE_IDENTIFY); @@ -273,7 +272,7 @@ else softc->flags &= ~PROBE_NO_ANNOUNCE; - xpt_schedule(periph, ccb->ccb_h.pinfo.priority); + xpt_schedule(periph, CAM_PRIORITY_HOST); } static void @@ -282,7 +281,6 @@ /* Probe the device that our peripheral driver points to */ struct ccb_ataio *ataio; struct ccb_scsiio *csio; - struct ccb_trans_settings cts; probe_softc *softc; CAM_DEBUG(start_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("probestart\n")); @@ -293,17 +291,6 @@ switch (softc->action) { case PROBE_RESET: - if (start_ccb->ccb_h.target_id == 15) { - /* Report SIM that we have no knowledge about PM presence. */ - bzero(&cts, sizeof(cts)); - xpt_setup_ccb(&cts.ccb_h, start_ccb->ccb_h.path, - CAM_PRIORITY_NORMAL); - cts.ccb_h.func_code = XPT_SET_TRAN_SETTINGS; - cts.type = CTS_TYPE_CURRENT_SETTINGS; - cts.xport_specific.sata.pm_present = 0; - cts.xport_specific.sata.valid = CTS_SATA_VALID_PM; - xpt_action((union ccb *)&cts); - } cam_fill_ataio(ataio, 0, probedone, @@ -598,9 +585,7 @@ xpt_print(path, "Unexpected signature 0x%04x\n", sign); } - found = 0; - xpt_release_ccb(done_ccb); - break; + goto device_fail; } xpt_release_ccb(done_ccb); xpt_schedule(periph, priority); @@ -710,7 +695,6 @@ * drivers that this device is no more. */ if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) - /* Send the async notification. */ xpt_async(AC_LOST_DEVICE, path, NULL); found = 0; xpt_release_ccb(done_ccb); ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.c#16 (text+ko) ==== @@ -667,7 +667,7 @@ else softc->flags &= ~PROBE_NO_ANNOUNCE; - xpt_schedule(periph, ccb->ccb_h.pinfo.priority); + xpt_schedule(periph, CAM_PRIORITY_HOST); } static void From owner-p4-projects@FreeBSD.ORG Sun Jul 26 17:45:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 373251065670; Sun, 26 Jul 2009 17:45:50 +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 EA80C106566B for ; Sun, 26 Jul 2009 17:45:49 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D88D58FC0A for ; Sun, 26 Jul 2009 17:45:49 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6QHjnus027111 for ; Sun, 26 Jul 2009 17:45:49 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6QHjnvr027109 for perforce@freebsd.org; Sun, 26 Jul 2009 17:45:49 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 26 Jul 2009 17:45:49 GMT Message-Id: <200907261745.n6QHjnvr027109@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166592 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 17:45:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=166592 Change 166592 by hselasky@hselasky_laptop001 on 2009/07/26 17:45:02 USB input: - improve last patch Affected files ... .. //depot/projects/usb/src/sys/dev/usb/input/ums.c#22 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/input/ums.c#22 (text+ko) ==== @@ -190,6 +190,7 @@ struct usb_page_cache *pc; uint8_t *buf = sc->sc_temp; int32_t buttons = 0; + int32_t buttons_found = 0; int32_t dw = 0; int32_t dx = 0; int32_t dy = 0; @@ -268,19 +269,21 @@ uint32_t mask; mask = 1UL << UMS_BUT(i); /* check for correct button ID */ - if (id != info->sc_iid_btn[i]) { - /* keep old button value */ - buttons |= sc->sc_status.button & mask; + if (id != info->sc_iid_btn[i]) continue; - } /* check for button pressed */ if (hid_get_data(buf, len, &info->sc_loc_btn[i])) buttons |= mask; + /* register button mask */ + buttons_found |= mask; } if (++info != &sc->sc_info[UMS_INFO_MAX]) goto repeat; + /* keep old button value(s) for non-detected buttons */ + buttons |= sc->sc_status.button & ~buttons_found; + if (dx || dy || dz || dt || dw || (buttons != sc->sc_status.button)) { From owner-p4-projects@FreeBSD.ORG Sun Jul 26 19:45:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DC9601065673; Sun, 26 Jul 2009 19:45: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 923BD106566B for ; Sun, 26 Jul 2009 19:45:00 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 801178FC13 for ; Sun, 26 Jul 2009 19:45:00 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6QJj0Kt037484 for ; Sun, 26 Jul 2009 19:45:00 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6QJj0pJ037482 for perforce@freebsd.org; Sun, 26 Jul 2009 19:45:00 GMT (envelope-from mav@freebsd.org) Date: Sun, 26 Jul 2009 19:45:00 GMT Message-Id: <200907261945.n6QJj0pJ037482@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166595 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 19:45:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=166595 Change 166595 by mav@mav_mavbook on 2009/07/26 19:44:46 Change cam_periph_lock() from inline to define to make debugging more meaningfull. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_periph.h#17 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_periph.h#17 (text+ko) ==== @@ -177,17 +177,9 @@ int cam_periph_error(union ccb *ccb, cam_flags camflags, u_int32_t sense_flags, union ccb *save_ccb); -static __inline void -cam_periph_lock(struct cam_periph *periph) -{ - mtx_lock(periph->sim->mtx); -} - -static __inline void -cam_periph_unlock(struct cam_periph *periph) -{ - mtx_unlock(periph->sim->mtx); -} +#define cam_periph_lock(periph) mtx_lock((periph)->sim->mtx) +#define cam_periph_unlock(periph) mtx_unlock((periph)->sim->mtx) +#define cam_periph_owned(periph) mtx_owned((periph)->sim->mtx) #endif /* _KERNEL */ #endif /* _CAM_CAM_PERIPH_H */ From owner-p4-projects@FreeBSD.ORG Sun Jul 26 19:46:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2EE8F1065674; Sun, 26 Jul 2009 19:46: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 E1459106566B for ; Sun, 26 Jul 2009 19:46:01 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B55B78FC15 for ; Sun, 26 Jul 2009 19:46:01 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6QJk1ba037601 for ; Sun, 26 Jul 2009 19:46:01 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6QJk1T5037599 for perforce@freebsd.org; Sun, 26 Jul 2009 19:46:01 GMT (envelope-from mav@freebsd.org) Date: Sun, 26 Jul 2009 19:46:01 GMT Message-Id: <200907261946.n6QJk1T5037599@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166596 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 19:46:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=166596 Change 166596 by mav@mav_mavbook on 2009/07/26 19:45:36 Do not try to flush disks if we paniced inside CAM. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#22 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#22 (text+ko) ==== @@ -1075,6 +1075,9 @@ TAILQ_FOREACH(periph, &adadriver.units, unit_links) { union ccb ccb; + /* If we paniced with lock held - not recurse here. */ + if (cam_periph_owned(periph)) + continue; cam_periph_lock(periph); softc = (struct ada_softc *)periph->softc; /* From owner-p4-projects@FreeBSD.ORG Sun Jul 26 19:46:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 89AA21065722; Sun, 26 Jul 2009 19:46: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 0D843106566C for ; Sun, 26 Jul 2009 19:46:02 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D61718FC16 for ; Sun, 26 Jul 2009 19:46:01 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6QJk1Tm037606 for ; Sun, 26 Jul 2009 19:46:01 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6QJk1Na037604 for perforce@freebsd.org; Sun, 26 Jul 2009 19:46:01 GMT (envelope-from mav@freebsd.org) Date: Sun, 26 Jul 2009 19:46:01 GMT Message-Id: <200907261946.n6QJk1Na037604@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166597 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 19:46:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=166597 Change 166597 by mav@mav_mavbook on 2009/07/26 19:45:56 Fix use after free. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#6 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#6 (text+ko) ==== @@ -681,8 +681,8 @@ default: break; } + softc->state = PMP_STATE_NORMAL; cam_periph_unhold(periph); - softc->state = PMP_STATE_NORMAL; } #endif /* _KERNEL */ From owner-p4-projects@FreeBSD.ORG Sun Jul 26 20:36:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 19D5C1065672; Sun, 26 Jul 2009 20:36:58 +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 CD72E1065670 for ; Sun, 26 Jul 2009 20:36:57 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BA73D8FC14 for ; Sun, 26 Jul 2009 20:36:57 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6QKavqP042321 for ; Sun, 26 Jul 2009 20:36:57 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6QKavjL042319 for perforce@freebsd.org; Sun, 26 Jul 2009 20:36:57 GMT (envelope-from mav@freebsd.org) Date: Sun, 26 Jul 2009 20:36:57 GMT Message-Id: <200907262036.n6QKavjL042319@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166599 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 20:36:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=166599 Change 166599 by mav@mav_mavbook on 2009/07/26 20:36:54 IFC Affected files ... .. //depot/projects/scottl-camlock/src/lib/libarchive/archive_read_support_format_iso9660.c#4 integrate .. //depot/projects/scottl-camlock/src/lib/libc/sys/mmap.2#4 integrate .. //depot/projects/scottl-camlock/src/lib/libjail/jail.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libjail/jail.h#2 integrate .. //depot/projects/scottl-camlock/src/sbin/ifconfig/ifconfig.c#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/Makefile#10 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/ahci.4#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/altq.4#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/epair.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man9/netisr.9#2 integrate .. //depot/projects/scottl-camlock/src/sys/boot/forth/loader.conf#20 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_mib.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/conf/NOTES#33 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files#42 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_jail.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_vimage.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/modules/Makefile#33 integrate .. //depot/projects/scottl-camlock/src/sys/modules/if_epair/Makefile#1 branch .. //depot/projects/scottl-camlock/src/sys/net/if.c#32 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_epair.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/net/netisr.h#9 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctputil.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/sys/jail.h#12 integrate .. //depot/projects/scottl-camlock/src/sys/sys/vimage.h#9 integrate .. //depot/projects/scottl-camlock/src/tools/regression/poll/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/jail/jail.8#7 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/jls/jls.c#7 integrate Differences ... ==== //depot/projects/scottl-camlock/src/lib/libarchive/archive_read_support_format_iso9660.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_iso9660.c,v 1.35 2009/04/26 18:43:49 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_iso9660.c,v 1.37 2009/07/26 18:11:44 kientzle Exp $"); #ifdef HAVE_ERRNO_H #include @@ -579,6 +579,7 @@ && file->size > 0) { archive_entry_set_hardlink(entry, iso9660->previous_pathname.s); + archive_entry_unset_size(entry); iso9660->entry_bytes_remaining = 0; iso9660->entry_sparse_offset = 0; release_file(iso9660, file); @@ -1174,12 +1175,12 @@ parse_rockridge_SL1(struct file_info *file, const unsigned char *data, int data_length) { - int component_continues = 1; + const char *separator = ""; - if (!file->symlink_continues) + if (!file->symlink_continues || file->symlink.length < 1) archive_string_empty(&file->symlink); - else - archive_strcat(&file->symlink, "/"); + else if (file->symlink.s[file->symlink.length - 1] != '/') + separator = "/"; file->symlink_continues = 0; /* @@ -1216,9 +1217,8 @@ unsigned char nlen = *data++; data_length -= 2; - if (!component_continues) - archive_strcat(&file->symlink, "/"); - component_continues = 0; + archive_strcat(&file->symlink, separator); + separator = "/"; switch(flag) { case 0: /* Usual case, this is text. */ @@ -1232,7 +1232,7 @@ return; archive_strncat(&file->symlink, (const char *)data, nlen); - component_continues = 1; + separator = ""; break; case 0x02: /* Current dir. */ archive_strcat(&file->symlink, "."); @@ -1243,6 +1243,7 @@ case 0x08: /* Root of filesystem. */ archive_string_empty(&file->symlink); archive_strcat(&file->symlink, "/"); + separator = ""; break; case 0x10: /* Undefined (historically "volume root" */ archive_string_empty(&file->symlink); ==== //depot/projects/scottl-camlock/src/lib/libc/sys/mmap.2#4 (text+ko) ==== @@ -26,9 +26,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)mmap.2 8.4 (Berkeley) 5/11/95 -.\" $FreeBSD: src/lib/libc/sys/mmap.2,v 1.58 2009/07/14 19:45:36 jhb Exp $ +.\" $FreeBSD: src/lib/libc/sys/mmap.2,v 1.59 2009/07/26 06:38:56 alc Exp $ .\" -.Dd July 14, 2009 +.Dd July 26, 2009 .Dt MMAP 2 .Os .Sh NAME @@ -353,10 +353,3 @@ The previous documented limit of 2GB was a documentation bug. That limit has not existed since .Fx 2.2 . -.Pp -Note that an attempt to -.Fn mmap -zero bytes has no effect and succeeds, while an attempt to -.Fn munmap -zero bytes will return -.Bq Er EINVAL . ==== //depot/projects/scottl-camlock/src/lib/libjail/jail.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libjail/jail.c,v 1.2 2009/06/25 22:42:19 jamie Exp $"); +__FBSDID("$FreeBSD: src/lib/libjail/jail.c,v 1.3 2009/07/25 14:48:57 jamie Exp $"); #include #include @@ -54,6 +54,8 @@ #define ARRAY_SLOP 5 +static int jailparam_import_enum(const char **values, int nvalues, + const char *valstr, size_t valsize, int *value); static int jailparam_vlist(struct jailparam **jpp, va_list ap); static int jailparam_type(struct jailparam *jp); static char *noname(const char *name); @@ -61,6 +63,9 @@ char jail_errmsg[JAIL_ERRMSGLEN]; +static const char *bool_values[] = { "false", "true" }; +static const char *jailsys_values[] = { "disable", "new", "inherit" }; + /* * Import a null-terminated parameter list and set a jail with the flags @@ -140,7 +145,6 @@ jailparam_all(struct jailparam **jpp) { struct jailparam *jp; - char *nname; size_t mlen1, mlen2, buflen; int njp, nlist; int mib1[CTL_MAXNAME], mib2[CTL_MAXNAME - 2]; @@ -182,6 +186,8 @@ "sysctl(0.1): %s", strerror(errno)); goto error; } + if (buf[buflen - 2] == '.') + buf[buflen - 2] = '\0'; /* Add the parameter to the list */ if (njp >= nlist) { nlist *= 2; @@ -197,17 +203,6 @@ njp++; goto error; } - /* Convert nobool parameters to bool. */ - if (jp[njp].jp_flags & JP_NOBOOL) { - nname = nononame(jp[njp].jp_name); - if (nname == NULL) { - njp++; - goto error; - } - free(jp[njp].jp_name); - jp[njp].jp_name = nname; - jp[njp].jp_flags ^= JP_BOOL | JP_NOBOOL; - } mib1[1] = 2; } jp = realloc(jp, njp * sizeof(*jp)); @@ -285,14 +280,31 @@ switch (jp->jp_ctltype & CTLTYPE) { case CTLTYPE_INT: if (jp->jp_flags & (JP_BOOL | JP_NOBOOL)) { - if (!strncasecmp(avalue, "true", 4)) - ((int *)jp->jp_value)[i] = 1; - else if (!strncasecmp(avalue, "false", 5)) - ((int *)jp->jp_value)[i] = 0; - else { + if (!jailparam_import_enum(bool_values, 2, + avalue, fw, &((int *)jp->jp_value)[i])) { + snprintf(jail_errmsg, + JAIL_ERRMSGLEN, "%s: " + "unknown boolean value \"%.*s\"", + jp->jp_name, fw, avalue); + errno = EINVAL; + goto error; + } + break; + } + if (jp->jp_flags & JP_JAILSYS) { + /* + * Allow setting a jailsys parameter to "new" + * in a booleanesque fashion. + */ + if (value[0] == '\0') + ((int *)jp->jp_value)[i] = JAIL_SYS_NEW; + else if (!jailparam_import_enum(jailsys_values, + sizeof(jailsys_values) / + sizeof(jailsys_values[0]), avalue, fw, + &((int *)jp->jp_value)[i])) { snprintf(jail_errmsg, - JAIL_ERRMSGLEN, - "%s: unknown boolean value \"%.*s\"", + JAIL_ERRMSGLEN, "%s: " + "unknown jailsys value \"%.*s\"", jp->jp_name, fw, avalue); errno = EINVAL; goto error; @@ -373,6 +385,23 @@ return (-1); } +static int +jailparam_import_enum(const char **values, int nvalues, const char *valstr, + size_t valsize, int *value) +{ + char *ep; + int i; + + for (i = 0; i < nvalues; i++) + if (valsize == strlen(values[i]) && + !strncasecmp(valstr, values[i], valsize)) { + *value = i; + return 1; + } + *value = strtol(valstr, &ep, 10); + return (ep == valstr + valsize); +} + /* * Put a name and value into a jail parameter element, copying the value * but not altering it. @@ -428,6 +457,15 @@ } } else { + /* + * Try to fill in missing values with an empty string. + */ + if (jp[j].jp_value == NULL && jp[j].jp_valuelen > 0 && + jailparam_import(jp + j, "") < 0) { + njp = j; + jid = -1; + goto done; + } jiov[i].iov_base = jp[j].jp_value; jiov[i].iov_len = (jp[j].jp_ctltype & CTLTYPE) == CTLTYPE_STRING @@ -632,7 +670,7 @@ { char *value, *tvalue, **values; size_t valuelen; - int i, nval; + int i, nval, ival; char valbuf[INET6_ADDRSTRLEN]; if (!jp->jp_ctltype && jailparam_type(jp) < 0) @@ -655,14 +693,21 @@ for (i = 0; i < nval; i++) { switch (jp->jp_ctltype & CTLTYPE) { case CTLTYPE_INT: - if (jp->jp_flags & (JP_BOOL | JP_NOBOOL)) { - strlcpy(valbuf, - ((int *)jp->jp_value)[i] ? "true" : "false", + ival = ((int *)jp->jp_value)[i]; + if ((jp->jp_flags & (JP_BOOL | JP_NOBOOL)) && + (unsigned)ival < 2) { + strlcpy(valbuf, bool_values[ival], + sizeof(valbuf)); + break; + } + if ((jp->jp_flags & JP_JAILSYS) && + (unsigned)ival < sizeof(jailsys_values) / + sizeof(jailsys_values[0])) { + strlcpy(valbuf, jailsys_values[ival], sizeof(valbuf)); break; } - snprintf(valbuf, sizeof(valbuf), "%d", - ((int *)jp->jp_value)[i]); + snprintf(valbuf, sizeof(valbuf), "%d", ival); break; case CTLTYPE_UINT: snprintf(valbuf, sizeof(valbuf), "%u", @@ -688,7 +733,7 @@ valbuf, sizeof(valbuf)) == NULL) { strerror_r(errno, jail_errmsg, JAIL_ERRMSGLEN); - + return (NULL); } break; @@ -698,7 +743,7 @@ valbuf, sizeof(valbuf)) == NULL) { strerror_r(errno, jail_errmsg, JAIL_ERRMSGLEN); - + return (NULL); } break; @@ -846,11 +891,13 @@ } } } + unknown_parameter: snprintf(jail_errmsg, JAIL_ERRMSGLEN, "unknown parameter: %s", jp->jp_name); errno = ENOENT; return (-1); } + mib_desc: mib[1] = 4; desclen = sizeof(desc); if (sysctl(mib, (miblen / sizeof(int)) + 2, &desc, &desclen, @@ -873,8 +920,9 @@ switch (desc.i & CTLTYPE) { case CTLTYPE_INT: if (desc.s[0] == 'B') - jp->jp_flags |= - (desc.s[1] == 'N') ? JP_NOBOOL : JP_BOOL; + jp->jp_flags |= JP_BOOL; + else if (!strcmp(desc.s, "E,jailsys")) + jp->jp_flags |= JP_JAILSYS; case CTLTYPE_UINT: jp->jp_valuelen = sizeof(int); break; @@ -916,41 +964,21 @@ } break; case CTLTYPE_NODE: - /* - * A node isn't normally a parameter, but may be a boolean - * if its "no" counterpart exists. - */ - nname = noname(jp->jp_name); - if (nname == NULL) - return (-1); - mib[1] = 3; - snprintf(desc.s, sizeof(desc.s), SJPARAM ".%s", nname); - free(nname); - miblen = sizeof(mib) - 2 * sizeof(int); - if (sysctl(mib, 2, mib + 2, &miblen, desc.s, - strlen(desc.s)) < 0) { - snprintf(jail_errmsg, JAIL_ERRMSGLEN, - "unknown parameter: %s", jp->jp_name); - return (-1); - } - mib[1] = 4; - desclen = sizeof(desc); - if (sysctl(mib, (miblen / sizeof(int)) + 2, &desc, &desclen, + /* A node might be described by an empty-named child. */ + mib[1] = 1; + mib[(miblen / sizeof(int)) + 2] = + mib[(miblen / sizeof(int)) + 1] - 1; + miblen += sizeof(int); + desclen = sizeof(desc.s); + if (sysctl(mib, (miblen / sizeof(int)) + 2, desc.s, &desclen, NULL, 0) < 0) { snprintf(jail_errmsg, JAIL_ERRMSGLEN, - "sysctl(0.4.%s): %s", desc.s, strerror(errno)); + "sysctl(0.1): %s", strerror(errno)); return (-1); } - if ((desc.i & CTLTYPE) != CTLTYPE_INT || desc.s[0] != 'B') { - snprintf(jail_errmsg, JAIL_ERRMSGLEN, - "unknown parameter: %s", jp->jp_name); - errno = ENOENT; - return (-1); - } - jp->jp_valuelen = sizeof(int); - jp->jp_ctltype = desc.i; - jp->jp_flags |= JP_BOOL; - break; + if (desc.s[desclen - 2] != '.') + goto unknown_parameter; + goto mib_desc; default: snprintf(jail_errmsg, JAIL_ERRMSGLEN, "unknown type for %s", jp->jp_name); ==== //depot/projects/scottl-camlock/src/lib/libjail/jail.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libjail/jail.h,v 1.1 2009/06/24 18:18:35 jamie Exp $ + * $FreeBSD: src/lib/libjail/jail.h,v 1.2 2009/07/25 14:48:57 jamie Exp $ */ #ifndef _JAIL_H @@ -32,6 +32,7 @@ #define JP_RAWVALUE 0x01 #define JP_BOOL 0x02 #define JP_NOBOOL 0x04 +#define JP_JAILSYS 0x08 #define JAIL_ERRMSGLEN 1024 ==== //depot/projects/scottl-camlock/src/sbin/ifconfig/ifconfig.c#4 (text+ko) ==== @@ -38,7 +38,7 @@ static char sccsid[] = "@(#)ifconfig.c 8.2 (Berkeley) 2/16/94"; #endif static const char rcsid[] = - "$FreeBSD: src/sbin/ifconfig/ifconfig.c,v 1.145 2009/06/24 18:21:37 jamie Exp $"; + "$FreeBSD: src/sbin/ifconfig/ifconfig.c,v 1.146 2009/07/26 11:25:57 bz Exp $"; #endif /* not lint */ #include @@ -252,6 +252,19 @@ ifconfig(argc, argv, 1, NULL); exit(0); } + /* + * NOTE: We have to special-case the `-vnet' command + * right here as we would otherwise fail when trying + * to find the interface as it lives in another vnet. + */ + if (argc > 0 && (strcmp(argv[0], "-vnet") == 0)) { + iflen = strlcpy(name, ifname, sizeof(name)); + if (iflen >= sizeof(name)) + errx(1, "%s: interface name too long", + ifname); + ifconfig(argc, argv, 0, NULL); + exit(0); + } errx(1, "interface %s does not exist", ifname); } } @@ -636,10 +649,10 @@ struct ifreq my_ifr; memcpy(&my_ifr, &ifr, sizeof(my_ifr)); - ifr.ifr_jid = jail_getid(jname); - if (ifr.ifr_jid < 0) + my_ifr.ifr_jid = jail_getid(jname); + if (my_ifr.ifr_jid < 0) errx(1, "%s", jail_errmsg); - if (ioctl(s, SIOCSIFVNET, &ifr) < 0) + if (ioctl(s, SIOCSIFVNET, &my_ifr) < 0) err(1, "SIOCSIFVNET"); } @@ -650,11 +663,11 @@ struct ifreq my_ifr; memcpy(&my_ifr, &ifr, sizeof(my_ifr)); - ifr.ifr_jid = jail_getid(jname); - if (ifr.ifr_jid < 0) + my_ifr.ifr_jid = jail_getid(jname); + if (my_ifr.ifr_jid < 0) errx(1, "%s", jail_errmsg); - if (ioctl(s, SIOCSIFRVNET, &ifr) < 0) - err(1, "SIOCSIFRVNET"); + if (ioctl(s, SIOCSIFRVNET, &my_ifr) < 0) + err(1, "SIOCSIFRVNET(%d, %s)", my_ifr.ifr_jid, my_ifr.ifr_name); } static void ==== //depot/projects/scottl-camlock/src/share/man/man4/Makefile#10 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 6/18/93 -# $FreeBSD: src/share/man/man4/Makefile,v 1.459 2009/07/21 12:32:46 mav Exp $ +# $FreeBSD: src/share/man/man4/Makefile,v 1.460 2009/07/26 12:20:07 bz Exp $ MAN= aac.4 \ acpi.4 \ @@ -94,6 +94,7 @@ em.4 \ en.4 \ enc.4 \ + epair.4 \ esp.4 \ et.4 \ exca.4 \ @@ -490,6 +491,7 @@ MLINKS+=em.4 if_em.4 MLINKS+=en.4 if_en.4 MLINKS+=enc.4 if_enc.4 +MLINKS+=epair.4 if_epair.4 MLINKS+=et.4 if_et.4 MLINKS+=faith.4 if_faith.4 MLINKS+=fatm.4 if_fatm.4 ==== //depot/projects/scottl-camlock/src/share/man/man4/ahci.4#4 (text+ko) ==== @@ -23,7 +23,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD$ +.\" $FreeBSD: src/share/man/man4/ahci.4,v 1.2 2009/07/25 18:19:31 mav Exp $ .\" .Dd June 26, 2009 .Dt AHCI 4 @@ -87,7 +87,7 @@ .Tn SATA ports of AHCI-compatible controllers. Each SATA port found is represented to CAM as a separate bus with one -target, or, if HBA supports Port Multipliers, 15 targets. +target, or, if HBA supports Port Multipliers, 16 targets. Most of the bus-management details are handled by the SATA-specific transport of CAM. Connected ATA disks are handled by the ATA protocol disk peripheral driver ==== //depot/projects/scottl-camlock/src/share/man/man4/altq.4#4 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/altq.4,v 1.41 2009/06/15 18:24:04 marius Exp $ +.\" $FreeBSD: src/share/man/man4/altq.4,v 1.42 2009/07/26 12:20:07 bz Exp $ .\" -.Dd June 14, 2009 +.Dd July 26, 2009 .Dt ALTQ 4 .Os .Sh NAME @@ -131,6 +131,7 @@ .Xr ed 4 , .Xr em 4 , .Xr ep 4 , +.Xr epair 4 , .Xr fxp 4 , .Xr gem 4 , .Xr hme 4 , ==== //depot/projects/scottl-camlock/src/share/man/man4/epair.4#2 (text+ko) ==== @@ -26,14 +26,14 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/epair.4,v 1.1 2009/06/24 22:21:30 bz Exp $ +.\" $FreeBSD: src/share/man/man4/epair.4,v 1.2 2009/07/26 12:20:07 bz Exp $ .\" -.Dd December 15, 2008 +.Dd July 26, 2009 .Dt EPAIR 4 .Os .Sh NAME .Nm epair -.Nd Virtual cross-over Ethernet-like interface pair. +.Nd A pair of virtual back-to-back connected Ethernet interfaces. .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your @@ -52,7 +52,7 @@ The .Nm is a pair of Ethernet-like software interfaces, -which are directly connected by a virtual cross-over cable. +which are connected back-to-back with a virtual cross-over cable. .Pp Each .Nm ==== //depot/projects/scottl-camlock/src/share/man/man9/netisr.9#2 (text+ko) ==== @@ -25,9 +25,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH .\" DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/netisr.9,v 1.3 2009/06/14 17:15:18 bz Exp $ +.\" $FreeBSD: src/share/man/man9/netisr.9,v 1.4 2009/07/26 12:20:07 bz Exp $ .\" -.Dd June 14, 2009 +.Dd July 26, 2009 .Dt NETISR 9 .Os .Sh NAME @@ -208,6 +208,8 @@ IPv6 .It Dv NETISR_NATM ATM +.It Dv NETISR_EPAIR +.Xr epair 4 .El .Sh AUTHORS This manual page and the ==== //depot/projects/scottl-camlock/src/sys/boot/forth/loader.conf#20 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.142 2009/06/15 18:22:41 marius Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.143 2009/07/26 12:20:07 bz Exp $ ############################################################## ### Basic configuration options ############################ @@ -190,6 +190,7 @@ if_disc_load="NO" # Discard device if_ef_load="NO" # pseudo-device providing support for multiple # ethernet frame types +if_epair_load="NO" # Virtual b-t-b Ethernet-like interface pair if_faith_load="NO" # IPv6-to-IPv4 TCP relay capturing interface if_gif_load="NO" # generic tunnel interface if_gre_load="NO" # encapsulating network device ==== //depot/projects/scottl-camlock/src/sys/compat/linux/linux_mib.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_mib.c,v 1.36 2009/05/27 14:11:23 jamie Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_mib.c,v 1.37 2009/07/25 14:48:57 jamie Exp $"); #include #include @@ -237,12 +237,14 @@ { struct prison *pr = obj; struct vfsoptlist *opts = data; + int jsys; - if (vfs_flagopt(opts, "nolinux", NULL, 0)) + if (vfs_copyopt(opts, "linux", &jsys, sizeof(jsys)) == 0 && + jsys == JAIL_SYS_INHERIT) return (0); /* * Inherit a prison's initial values from its parent - * (different from NULL which also inherits changes). + * (different from JAIL_SYS_INHERIT which also inherits changes). */ return linux_alloc_prison(pr, NULL); } @@ -252,11 +254,16 @@ { struct vfsoptlist *opts = data; char *osname, *osrelease; - int error, len, osrel, oss_version; + int error, jsys, len, osrel, oss_version; /* Check that the parameters are correct. */ - (void)vfs_flagopt(opts, "linux", NULL, 0); - (void)vfs_flagopt(opts, "nolinux", NULL, 0); + error = vfs_copyopt(opts, "linux", &jsys, sizeof(jsys)); + if (error != ENOENT) { + if (error != 0) + return (error); + if (jsys != JAIL_SYS_NEW && jsys != JAIL_SYS_INHERIT) + return (EINVAL); + } error = vfs_getopt(opts, "linux.osname", (void **)&osname, &len); if (error != ENOENT) { if (error != 0) @@ -296,33 +303,40 @@ struct prison *pr = obj; struct vfsoptlist *opts = data; char *osname, *osrelease; - int error, gotversion, len, nolinux, oss_version, yeslinux; + int error, gotversion, jsys, len, oss_version; /* Set the parameters, which should be correct. */ - yeslinux = vfs_flagopt(opts, "linux", NULL, 0); - nolinux = vfs_flagopt(opts, "nolinux", NULL, 0); + error = vfs_copyopt(opts, "linux", &jsys, sizeof(jsys)); + if (error == ENOENT) + jsys = -1; error = vfs_getopt(opts, "linux.osname", (void **)&osname, &len); if (error == ENOENT) osname = NULL; else - yeslinux = 1; + jsys = JAIL_SYS_NEW; error = vfs_getopt(opts, "linux.osrelease", (void **)&osrelease, &len); if (error == ENOENT) osrelease = NULL; else - yeslinux = 1; + jsys = JAIL_SYS_NEW; error = vfs_copyopt(opts, "linux.oss_version", &oss_version, sizeof(oss_version)); - gotversion = (error == 0); - yeslinux |= gotversion; - if (nolinux) { - /* "nolinux": inherit the parent's Linux info. */ + if (error == ENOENT) + gotversion = 0; + else { + gotversion = 1; + jsys = JAIL_SYS_NEW; + } + switch (jsys) { + case JAIL_SYS_INHERIT: + /* "linux=inherit": inherit the parent's Linux info. */ mtx_lock(&pr->pr_mtx); osd_jail_del(pr, linux_osd_jail_slot); mtx_unlock(&pr->pr_mtx); - } else if (yeslinux) { + break; + case JAIL_SYS_NEW: /* - * "linux" or "linux.*": + * "linux=new" or "linux.*": * the prison gets its own Linux info. */ error = linux_alloc_prison(pr, &lpr); @@ -348,9 +362,7 @@ return (0); } -SYSCTL_JAIL_PARAM_NODE(linux, "Jail Linux parameters"); -SYSCTL_JAIL_PARAM(, nolinux, CTLTYPE_INT | CTLFLAG_RW, - "BN", "Jail w/ no Linux parameters"); +SYSCTL_JAIL_PARAM_SYS_NODE(linux, CTLFLAG_RW, "Jail Linux parameters"); SYSCTL_JAIL_PARAM_STRING(_linux, osname, CTLFLAG_RW, LINUX_MAX_UTSNAME, "Jail Linux kernel OS name"); SYSCTL_JAIL_PARAM_STRING(_linux, osrelease, CTLFLAG_RW, LINUX_MAX_UTSNAME, @@ -371,15 +383,22 @@ /* See if this prison is the one with the Linux info. */ lpr = linux_find_prison(pr, &ppr); - i = (ppr == pr); + i = (ppr == pr) ? JAIL_SYS_NEW : JAIL_SYS_INHERIT; error = vfs_setopt(opts, "linux", &i, sizeof(i)); if (error != 0 && error != ENOENT) goto done; - i = !i; - error = vfs_setopt(opts, "nolinux", &i, sizeof(i)); - if (error != 0 && error != ENOENT) - goto done; if (i) { + error = vfs_setopts(opts, "linux.osname", lpr->pr_osname); + if (error != 0 && error != ENOENT) + goto done; + error = vfs_setopts(opts, "linux.osrelease", lpr->pr_osrelease); + if (error != 0 && error != ENOENT) + goto done; + error = vfs_setopt(opts, "linux.oss_version", + &lpr->pr_oss_version, sizeof(lpr->pr_oss_version)); + if (error != 0 && error != ENOENT) + goto done; + } else { /* * If this prison is inheriting its Linux info, report * empty/zero parameters. @@ -394,17 +413,6 @@ sizeof(lpr->pr_oss_version)); if (error != 0 && error != ENOENT) goto done; - } else { - error = vfs_setopts(opts, "linux.osname", lpr->pr_osname); - if (error != 0 && error != ENOENT) - goto done; - error = vfs_setopts(opts, "linux.osrelease", lpr->pr_osrelease); - if (error != 0 && error != ENOENT) - goto done; - error = vfs_setopt(opts, "linux.oss_version", - &lpr->pr_oss_version, sizeof(lpr->pr_oss_version)); - if (error != 0 && error != ENOENT) - goto done; } error = 0; ==== //depot/projects/scottl-camlock/src/sys/conf/NOTES#33 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1550 2009/07/11 15:02:45 rpaulo Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1553 2009/07/26 12:20:07 bz Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -784,6 +784,10 @@ # included for testing and benchmarking purposes. device disc +# The `epair' device implements a virtual back-to-back connected Ethernet +# like interface pair. +device epair + # The `edsc' device implements a minimal Ethernet interface, # which discards all packets sent and receives none. device edsc @@ -1638,6 +1642,18 @@ device twe # 3ware ATA RAID # +# Serial ATA host controllers: +# +# ahci: Advanced Host Controller Interface (AHCI) compatible +# siis: SiliconImage SiI3124/SiI3132/SiI3531 controllers +# +# These drivers are part of cam(4) subsystem. They supersede less featured +# ata(4) subsystem drivers, supporting same hardware. + +device ahci +device siis + +# # The 'ATA' driver supports all ATA and ATAPI devices, including PC Card # devices. You only need one "device ata" for it to find all # PCI and PC Card ATA/ATAPI devices on modern machines. ==== //depot/projects/scottl-camlock/src/sys/conf/files#42 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1456 2009/07/24 13:50:29 jhb Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1457 2009/07/26 12:20:07 bz Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -2203,6 +2203,7 @@ net/if_edsc.c optional edsc net/if_ef.c optional ef net/if_enc.c optional enc ipsec inet | enc ipsec inet6 +net/if_epair.c optional epair net/if_ethersubr.c optional ether \ compile-with "${NORMAL_C} -I$S/contrib/pf" net/if_faith.c optional faith ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#18 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.306 2009/07/16 19:48:39 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.307 2009/07/26 14:04:48 mav Exp $"); #include "opt_ata.h" #include @@ -711,7 +711,7 @@ struct ata_channel *ch = device_get_softc(dev); struct ata_device *atadev; device_t *children; - device_t child; + device_t child, master = NULL; int nchildren, i, n = ch->devices; if (bootverbose) @@ -748,6 +748,15 @@ unit = (device_get_unit(dev) << 1) + i; #endif if ((child = ata_add_child(dev, atadev, unit))) { + /* + * PATA slave should be identified first, to allow + * device cable detection on master to work properly. + */ + if (i == 0 && (n & ATA_PORTMULTIPLIER) == 0 && + (n & ((ATA_ATA_MASTER | ATA_ATAPI_MASTER) << 1)) != 0) { + master = child; + continue; + } if (ata_getparam(atadev, 1)) { device_delete_child(dev, child); free(atadev, M_ATA); @@ -757,6 +766,13 @@ free(atadev, M_ATA); } } + if (master) { + atadev = device_get_softc(master); + if (ata_getparam(atadev, 1)) { + device_delete_child(dev, master); + free(atadev, M_ATA); + } + } bus_generic_probe(dev); bus_generic_attach(dev); mtx_unlock(&Giant); ==== //depot/projects/scottl-camlock/src/sys/kern/kern_jail.c#20 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_jail.c,v 1.112 2009/07/17 14:48:21 jamie Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_jail.c,v 1.113 2009/07/25 14:48:57 jamie Exp $"); #include "opt_compat.h" #include "opt_ddb.h" @@ -120,29 +120,26 @@ */ static char *pr_flag_names[] = { [0] = "persist", - "host", -#ifdef INET - "ip4", -#endif -#ifdef INET6 - [3] = "ip6", -#endif -#ifdef VIMAGE - [4] = "vnet", -#endif }; static char *pr_flag_nonames[] = { [0] = "nopersist", - "nohost", +}; + +struct jailsys_flags { + const char *name; + unsigned disable; + unsigned new; +} pr_flag_jailsys[] = { + { "host", 0, PR_HOST }, +#ifdef VIMAGE + { "vnet", 0, PR_VNET }, +#endif #ifdef INET - "noip4", + { "ip4", PR_IP4_USER | PR_IP4_DISABLE, PR_IP4_USER }, #endif #ifdef INET6 - [3] = "noip6", -#endif -#ifdef VIMAGE - [4] = "novnet", + { "ip6", PR_IP6_USER | PR_IP6_DISABLE, PR_IP6_USER }, #endif }; @@ -478,7 +475,8 @@ unsigned long hid; size_t namelen, onamelen; int created, cuflags, descend, enforce, error, errmsg_len, errmsg_pos; - int gotchildmax, gotenforce, gothid, gotslevel, fi, jid, len, level; + int gotchildmax, gotenforce, gothid, gotslevel; + int fi, jid, jsys, len, level; int childmax, slevel, vfslocked; #if defined(INET) || defined(INET6) int ii, ij; @@ -569,6 +567,34 @@ vfs_flagopt(opts, pr_flag_nonames[fi], &ch_flags, 1 << fi); } ch_flags |= pr_flags; + for (fi = 0; fi < sizeof(pr_flag_jailsys) / sizeof(pr_flag_jailsys[0]); + fi++) { + error = vfs_copyopt(opts, pr_flag_jailsys[fi].name, &jsys, + sizeof(jsys)); + if (error == ENOENT) + continue; + if (error != 0) + goto done_free; + switch (jsys) { + case JAIL_SYS_DISABLE: + if (!pr_flag_jailsys[fi].disable) { + error = EINVAL; + goto done_free; + } + pr_flags |= pr_flag_jailsys[fi].disable; + break; + case JAIL_SYS_NEW: + pr_flags |= pr_flag_jailsys[fi].new; + break; + case JAIL_SYS_INHERIT: + break; + default: + error = EINVAL; + goto done_free; + } + ch_flags |= + pr_flag_jailsys[fi].new | pr_flag_jailsys[fi].disable; + } if ((flags & (JAIL_CREATE | JAIL_UPDATE | JAIL_ATTACH)) == JAIL_CREATE && !(pr_flags & PR_PERSIST)) { error = EINVAL; @@ -684,16 +710,18 @@ #ifdef INET error = vfs_getopt(opts, "ip4.addr", &op, &ip4s); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Jul 26 22:00:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EF486106568C; Sun, 26 Jul 2009 22:00:29 +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 ADE14106568A for ; Sun, 26 Jul 2009 22:00:29 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1DB078FC13 for ; Sun, 26 Jul 2009 22:00:29 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6QM0Td1059624 for ; Sun, 26 Jul 2009 22:00:29 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6QM0STd059622 for perforce@freebsd.org; Sun, 26 Jul 2009 22:00:28 GMT (envelope-from syl@FreeBSD.org) Date: Sun, 26 Jul 2009 22:00:28 GMT Message-Id: <200907262200.n6QM0STd059622@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166600 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 22:00:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=166600 Change 166600 by syl@syl_twoflowers on 2009/07/26 21:59:49 Import latex sources of my report for HPS. Affected files ... .. //depot/projects/soc2009/syl_usb/hps_report/DifferentAPI.tex#1 add .. //depot/projects/soc2009/syl_usb/hps_report/GenericCode.tex#1 add .. //depot/projects/soc2009/syl_usb/hps_report/Makefile#1 add .. //depot/projects/soc2009/syl_usb/hps_report/Proposition.tex#1 add .. //depot/projects/soc2009/syl_usb/hps_report/SomeTests.tex#1 add .. //depot/projects/soc2009/syl_usb/hps_report/report.tex#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Sun Jul 26 22:23:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 28C961065672; Sun, 26 Jul 2009 22:23:55 +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 D0A7D106564A for ; Sun, 26 Jul 2009 22:23:54 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BF4AB8FC19 for ; Sun, 26 Jul 2009 22:23:54 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6QMNsiC062520 for ; Sun, 26 Jul 2009 22:23:54 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6QMNs1A062518 for perforce@freebsd.org; Sun, 26 Jul 2009 22:23:54 GMT (envelope-from syl@FreeBSD.org) Date: Sun, 26 Jul 2009 22:23:54 GMT Message-Id: <200907262223.n6QMNs1A062518@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166601 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 22:23:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=166601 Change 166601 by syl@syl_twoflowers on 2009/07/26 22:22:59 - add generic symbols Affected files ... .. //depot/projects/soc2009/syl_usb/hps_report/GenericCode.tex#2 edit Differences ... ==== //depot/projects/soc2009/syl_usb/hps_report/GenericCode.tex#2 (text+ko) ==== @@ -51,13 +51,47 @@ - xxxdci\_init - xxxdci\_uninit + + - xxxdci\_device\_done + - xxxdci\_start\_standard\_chain + Concerning clock\_on, clock\_off, pull\_up, pull\_down, wakeup\_peer can be a little bit factorised. A big part of this function do not move we can create a generic function called directly after or before Hardware changes. Perhaps there is also something that could be factorised in xxxdci\_uninit if there are not other possible access that interrupt disabling in it. + There are pehaps something to do with xxxdci\_device\_done and xxxdci\_start\_standard\_chain + beacuse the only hardware code present int this function just enable Endpoint interrupt. + \section{Hardware Independant Code} + - xxxdci\_ep\_init + + - xxxdci\_xfer\_setup + + - xxxdci\_roothub\_exec + + - All the HUB descriptor code + + - xxxdci\_device\_XXX\_methods + + - xxxdci\_standard\_done + + - xxxdci\_standard\_done\_sub + + - xxxdci\_root\_intr + + - xxxdci\_timeout + + - xxxdci\_setup\_standard\_chain + - xxxdci\_setup\_standard\_chain\_sub + + - xxxdci\_vbus\_interrupt + + - xxxdci\_interrupt\_poll + + - xxxdci\_xfer\_do\_fifo + From owner-p4-projects@FreeBSD.ORG Mon Jul 27 08:08:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 88ACE1065673; Mon, 27 Jul 2009 08:08:33 +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 3924C106567C for ; Mon, 27 Jul 2009 08:08:33 +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 259C38FC1C for ; Mon, 27 Jul 2009 08:08:33 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6R88WdB035021 for ; Mon, 27 Jul 2009 08:08:32 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6R88Wu9035019 for perforce@freebsd.org; Mon, 27 Jul 2009 08:08:32 GMT (envelope-from gabor@freebsd.org) Date: Mon, 27 Jul 2009 08:08:32 GMT Message-Id: <200907270808.n6R88Wu9035019@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 Cc: Subject: PERFORCE change 166602 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 08:08:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=166602 Change 166602 by gabor@gabor_aspire on 2009/07/27 08:07:47 MFHg: - Fix EUC-CN, EUC-JP - Regression test progress - Makefile cleaup for loadable modules - Eliminate some warnings Affected files ... .. //depot/projects/soc2009/gabor_iconv/extracted/TESTING-HOWTO#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ARMSCII-8.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ARMSCII-8.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ASCII.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ATARIST.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-2003.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-2003.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-1999-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-1999-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-1999.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-1999.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2001-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2001-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2001.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2001.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2004-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2004-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2004.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2004.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1046.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1124.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1125.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1129.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1131.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1133.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1161.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1161.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1162.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1163.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1163.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1250.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1251.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1252.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1253.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1254.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1255-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1255-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1255.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1255.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1256.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1257.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1258-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1258-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1258.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1258.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP437.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP737.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP775.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP850.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP852.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP853.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP855.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP856.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP857.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP858.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP860.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP861.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP862.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP863.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP864.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP865.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP866.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP869.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP874.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP922.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP932.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP932.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP936.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP949.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP950.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP950.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/DEC-HANYU.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/DEC-HANYU.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/DEC-KANJI.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-CN.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-JISX0213.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-JP.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-JP.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-KR.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-TW.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-TW.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/GB18030-BMP.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/GBK.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Georgian-Academy.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Georgian-PS.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/HP-ROMAN8.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/HZ-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/HZ-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-CN-EXT-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-CN-EXT-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-CN-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-CN-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-1-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-1-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-2-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-2-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-3-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-3-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-KR-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-KR-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-1.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-10.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-11.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-13.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-14.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-15.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-16.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-2.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-3.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-4.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-5.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-6.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-7.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-8.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-9.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-IR-165.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-IR-165.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO646-CN.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO646-JP.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/JIS_X0201.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/JIS_X0208.TXT#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/JOHAB.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/KOI8-R.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/KOI8-RU.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/KOI8-T.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/KOI8-U.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacArabic.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacCentralEurope.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacCroatian.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacCyrillic.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacGreek.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacHebrew.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacIceland.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacRoman.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacRomania.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacThai.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacTurkish.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacUkraine.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MuleLao-1.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/NEXTSTEP.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/PT154.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Quotes.ASCII#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Quotes.ISO-8859-1#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Quotes.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/RISCOS-LATIN1.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/RK1048.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/SHIFT_JIS.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/SHIFT_JISX0213.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/TCVN-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/TCVN-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/TCVN.IRREVERSIBLE.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/TCVN.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/TDS565.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/TIS-620.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Translit1.ASCII#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Translit1.ISO-8859-1#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/TranslitFail1.ISO-8859-1#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UCS-2BE-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UCS-2BE-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UCS-2LE-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UCS-2LE-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UCS-4BE-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UCS-4BE-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UCS-4LE-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UCS-4LE-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-16-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-16-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-16BE-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-16BE-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-16LE-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-16LE-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-32-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-32-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-32BE-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-32BE-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-32LE-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-32LE-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-7-snippet#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/UTF-7-snippet.UTF-8#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/VISCII.TXT#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/check-stateful#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/check-stateful.bat#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/check-stateless#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/check-stateless.bat#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/check-subst#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/check-translit#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/check-translit.bat#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/check-translitfailure#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/cmp.sh#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/gengb18030z.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/genutf8.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/table-from.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/table-to.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/test-shiftseq.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/test.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/uniq-u.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/_iconv.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/_strtol.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/_strtoul.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_aliasname_local.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_bcs.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_bcs.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_bcs_strtol.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_bcs_strtoul.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_csmapper.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_csmapper.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_ctype.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_ctype.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_ctype_fallback.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_ctype_fallback.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_ctype_local.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_ctype_template.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_db.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_db.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_db_factory.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_db_factory.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_db_file.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_db_hash.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_db_hash.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_esdb.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_esdb.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_esdb_file.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_fix_grouping.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_hash.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_hash.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_iconv.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_iconv.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_iconv_local.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_lookup.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_lookup.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_lookup_factory.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_lookup_factory.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_lookup_file.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_mapper.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_mapper.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_mapper_local.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_memstream.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_memstream.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_mmap.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_mmap.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_module.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_module.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_namespace.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_none.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_none.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_pivot_factory.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_pivot_factory.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_pivot_file.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_prop.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_prop.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_region.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_local.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_template.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_types.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/iconv.3#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/iconv.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/netbsdism.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/BIG5/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/BIG5/citrus_big5.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/BIG5/citrus_big5.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/DECHanyu/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/DECHanyu/citrus_dechanyu.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/DECHanyu/citrus_dechanyu.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUC/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUC/citrus_euc.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUC/citrus_euc.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUCTW/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUCTW/citrus_euctw.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUCTW/citrus_euctw.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/GBK2K/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/GBK2K/citrus_gbk2k.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/GBK2K/citrus_gbk2k.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/HZ/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/HZ/citrus_hz.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/HZ/citrus_hz.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ISO2022/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ISO2022/citrus_iso2022.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ISO2022/citrus_iso2022.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/JOHAB/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/JOHAB/citrus_johab.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/JOHAB/citrus_johab.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/MSKanji/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/MSKanji/citrus_mskanji.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/MSKanji/citrus_mskanji.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UES/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UES/citrus_ues.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UES/citrus_ues.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF1632/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF1632/citrus_utf1632.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF1632/citrus_utf1632.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF7/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF7/citrus_utf7.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF7/citrus_utf7.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF8/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF8/citrus_utf8.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF8/citrus_utf8.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/VIQR/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/VIQR/citrus_viqr.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/VIQR/citrus_viqr.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ZW/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ZW/citrus_zw.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ZW/citrus_zw.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_none/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_none/citrus_iconv_none.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_none/citrus_iconv_none.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/citrus_iconv_std.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/citrus_iconv_std.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/citrus_iconv_std_local.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_646/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_646/citrus_mapper_646.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_646/citrus_mapper_646.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_none/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_none/citrus_mapper_none.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_none/citrus_mapper_none.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_serial/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_serial/citrus_mapper_serial.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_serial/citrus_mapper_serial.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_std/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_std/citrus_mapper_std.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_std/citrus_mapper_std.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_std/citrus_mapper_std_file.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_std/citrus_mapper_std_local.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_zone/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_zone/citrus_mapper_zone.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_zone/citrus_mapper_zone.h#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/MAC.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/AST/ARMSCII.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/AST/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/charset.pivot.BIG5.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/mapper.dir.BIG5.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/charset.pivot.CNS.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/mapper.dir.CNS.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/charset.pivot.CP.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/mapper.dir.CP.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/charset.pivot.GB.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/mapper.dir.GB.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GEORGIAN/GEORGIAN.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GEORGIAN/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/charset.pivot.JIS.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/mapper.dir.JIS.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KAZAKH/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KAZAKH/charset.pivot.KAZAKH.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KAZAKH/mapper.dir.KAZAKH.src#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/KOI8.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/charset.pivot.KOI.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/mapper.dir.KOI.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KS/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KS/charset.pivot.KS.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KS/mapper.dir.KS.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/charset.pivot.MISC.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/mapper.dir.MISC.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/Makefile.inc#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/Makefile.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/TCVN/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/TCVN/charset.pivot.TCVN.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/TCVN/mapper.dir.TCVN.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/charset.pivot.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/mapper.dir.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/APPLE/MAC.alias#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/APPLE/MAC.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/APPLE/MAC.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/APPLE/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/AST/ARMSCII-7.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/AST/ARMSCII.alias#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/AST/ARMSCII.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/AST/ARMSCII.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/AST/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/BIG5/Big5.alias#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/BIG5/Big5.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/BIG5/Big5.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/BIG5/Big5.variable#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/BIG5/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP.alias#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP50220.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP50221.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP50222.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP51932.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP932.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP936.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP942.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP942C.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP943.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP943C.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP949.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/CP950.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/CP/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/DEC/DEC.alias#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/DEC/DEC.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/DEC/DEC.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/DEC/DECHanyu.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/DEC/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EBCDIC/EBCDIC.alias#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EBCDIC/EBCDIC.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EBCDIC/EBCDIC.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EBCDIC/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EUC/EUC-CN.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EUC/EUC-JIS-2004.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EUC/EUC-JP-MS.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EUC/EUC-JP.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EUC/EUC-KR.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EUC/EUC-TW.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EUC/EUC.alias#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EUC/EUC.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EUC/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/GB/GB.alias#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/GB/GB.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/GB/GB12345.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/GB/GB18030.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/GB/GBK.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/GB/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/GEORGIAN/GEORGIAN.alias#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/GEORGIAN/GEORGIAN.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/GEORGIAN/GEORGIAN.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/GEORGIAN/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-2022/ISO-2022-CN-EXT.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-2022/ISO-2022-CN.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-2022/ISO-2022-JP-1.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-2022/ISO-2022-JP-2.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-2022/ISO-2022-JP-2004.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-2022/ISO-2022-JP.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-2022/ISO-2022-KR.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-2022/ISO-2022.alias#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-2022/ISO-2022.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-2022/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-8859/ISO-8859.alias#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-8859/ISO-8859.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-8859/ISO-8859.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO-8859/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO646/ISO646.alias#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO646/ISO646.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO646/ISO646.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/ISO646/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/KAZAKH/KAZAKH.alias#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/KAZAKH/KAZAKH.part#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/KAZAKH/KZ1048.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/KAZAKH/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/KAZAKH/PTCP154.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/KOI/KOI.alias#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/KOI/KOI.part#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/KOI/KOI.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/KOI/KOI7-switched.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/KOI/KOI7.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/KOI/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/ATARIST.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/C99.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/CTEXT.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/HP-ROMAN8.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/HZ.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/HZ8.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/ISO-IR-165.src#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/JAVA.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/JISX0201-KANA.src#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/JOHAB.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/MISC.alias#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/MISC.part#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/MULELAO-1.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/NEXTSTEP.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/RISCOS-LATIN1.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/Shift_JIS-2004.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/Shift_JIS.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/TDS565.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/ZW.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/Makefile.inc#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/Makefile.part#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/TCVN/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/TCVN/TCVN.alias#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/TCVN/TCVN.part#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/TCVN/TCVN5712-1.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/TCVN/VIQR.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/TCVN/VISCII.src#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/UTF/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/UTF/UTF.alias#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/UTF/UTF.part#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/UTF/UTF.src#5 edit Differences ... ==== //depot/projects/soc2009/gabor_iconv/extracted/TESTING-HOWTO#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ARMSCII-8.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ARMSCII-8.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ASCII.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ATARIST.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-2003.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-2003.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-1999-snippet#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-1999-snippet.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-1999.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-1999.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2001-snippet#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2001-snippet.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2001.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2001.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2004-snippet#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2004-snippet.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2004.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5-HKSCS-2004.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/BIG5.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1046.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1124.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1125.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1129.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1131.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1133.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1161.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1161.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1162.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1163.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1163.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1250.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1251.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1252.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1253.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1254.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1255-snippet#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1255-snippet.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1255.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1255.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1256.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1257.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1258-snippet#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1258-snippet.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1258.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP1258.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP437.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP737.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP775.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP850.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP852.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP853.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP855.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP856.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP857.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP858.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP860.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP861.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP862.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP863.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP864.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP865.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP866.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP869.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP874.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP922.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP932.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP932.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP936.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP949.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP950.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/CP950.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/DEC-HANYU.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/DEC-HANYU.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/DEC-KANJI.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-CN.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-JISX0213.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-JP.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-JP.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-KR.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-TW.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/EUC-TW.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/GB18030-BMP.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/GBK.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Georgian-Academy.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Georgian-PS.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/HP-ROMAN8.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/HZ-snippet#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/HZ-snippet.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-CN-EXT-snippet#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-CN-EXT-snippet.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-CN-snippet#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-CN-snippet.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-1-snippet#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-1-snippet.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-2-snippet#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-2-snippet.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-3-snippet#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-3-snippet.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-snippet#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-JP-snippet.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-KR-snippet#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-2022-KR-snippet.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-1.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-10.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-11.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-13.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-14.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-15.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-16.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-2.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-3.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-4.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-5.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-6.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-7.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-8.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-8859-9.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-IR-165.IRREVERSIBLE.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO-IR-165.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO646-CN.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/ISO646-JP.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/JIS_X0201.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/JIS_X0208.TXT#3 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/JOHAB.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/KOI8-R.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/KOI8-RU.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/KOI8-T.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/KOI8-U.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacArabic.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacCentralEurope.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacCroatian.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacCyrillic.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacGreek.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacHebrew.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacIceland.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacRoman.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacRomania.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacThai.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacTurkish.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MacUkraine.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Makefile#7 (text+ko) ==== @@ -116,13 +116,13 @@ -$(srcdir)/check-stateless $(srcdir) ISO-IR-165 # -$(srcdir)/check-stateless $(srcdir) KSC_5601 # redundant, see EUC-KR # /* CJK encodings */ - -$(srcdir)/check-stateless $(srcdir) EUC-JP +# -$(srcdir)/check-stateless $(srcdir) EUC-JP -$(srcdir)/check-stateless $(srcdir) SHIFT_JIS -$(srcdir)/check-stateless $(srcdir) CP932 -$(srcdir)/check-stateful $(srcdir) ISO-2022-JP -$(srcdir)/check-stateful $(srcdir) ISO-2022-JP-2 -$(srcdir)/check-stateful $(srcdir) ISO-2022-JP-1 - -$(srcdir)/check-stateless $(srcdir) EUC-CN +# -$(srcdir)/check-stateless $(srcdir) EUC-CN -$(srcdir)/check-stateless $(srcdir) GBK -$(srcdir)/check-stateless $(srcdir) CP936 -$(CC) $(LDFLAGS) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(srcdir)/gengb18030z.c ../../../../lib/libiconv/*.o -o gengb18030z && \ @@ -141,7 +141,7 @@ -$(srcdir)/check-stateful $(srcdir) BIG5-HKSCS:2001 -$(srcdir)/check-stateless $(srcdir) BIG5-HKSCS:2004 -$(srcdir)/check-stateful $(srcdir) BIG5-HKSCS:2004 - -$(srcdir)/check-stateless $(srcdir) EUC-KR +# -$(srcdir)/check-stateless $(srcdir) EUC-KR -$(srcdir)/check-stateless $(srcdir) CP949 -$(srcdir)/check-stateless $(srcdir) JOHAB # -$(srcdir)/check-stateful $(srcdir) ISO-2022-KR ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/MuleLao-1.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/NEXTSTEP.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/PT154.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Quotes.ASCII#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Quotes.ISO-8859-1#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Quotes.UTF-8#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/RISCOS-LATIN1.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/RK1048.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/SHIFT_JIS.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/SHIFT_JISX0213.TXT#5 (text+ko) ==== ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/TCVN-snippet#5 (text+ko) ==== >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jul 27 08:28:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7CCE51065674; Mon, 27 Jul 2009 08:28:55 +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 3C57B106564A for ; Mon, 27 Jul 2009 08:28:55 +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 298458FC17 for ; Mon, 27 Jul 2009 08:28:55 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6R8St1Z036446 for ; Mon, 27 Jul 2009 08:28:55 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6R8SteS036444 for perforce@freebsd.org; Mon, 27 Jul 2009 08:28:55 GMT (envelope-from gabor@freebsd.org) Date: Mon, 27 Jul 2009 08:28:55 GMT Message-Id: <200907270828.n6R8SteS036444@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 Cc: Subject: PERFORCE change 166603 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 08:28:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=166603 Change 166603 by gabor@gabor_aspire on 2009/07/27 08:28:03 MFHg Affected files ... .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/BIG5/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/BIG5/citrus_big5.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/DECHanyu/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUC/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUC/citrus_euc.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUCTW/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/GBK2K/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/HZ/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ISO2022/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/JOHAB/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/MSKanji/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UES/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF1632/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF7/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF8/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/VIQR/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ZW/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_none/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_646/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_none/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_parallel/citrus_mapper_serial.c#4 delete .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_parallel/citrus_mapper_serial.h#4 delete .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_serial/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_std/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_zone/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/charset.pivot.GB.src#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/mapper.dir.GB.src#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/charset.pivot.JIS.src#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/mapper.dir.JIS.src#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EUC/EUC-JP.src#6 edit Differences ... ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Makefile#8 (text+ko) ==== @@ -116,13 +116,13 @@ -$(srcdir)/check-stateless $(srcdir) ISO-IR-165 # -$(srcdir)/check-stateless $(srcdir) KSC_5601 # redundant, see EUC-KR # /* CJK encodings */ -# -$(srcdir)/check-stateless $(srcdir) EUC-JP + -$(srcdir)/check-stateless $(srcdir) EUC-JP -$(srcdir)/check-stateless $(srcdir) SHIFT_JIS -$(srcdir)/check-stateless $(srcdir) CP932 -$(srcdir)/check-stateful $(srcdir) ISO-2022-JP -$(srcdir)/check-stateful $(srcdir) ISO-2022-JP-2 -$(srcdir)/check-stateful $(srcdir) ISO-2022-JP-1 -# -$(srcdir)/check-stateless $(srcdir) EUC-CN + -$(srcdir)/check-stateless $(srcdir) EUC-CN -$(srcdir)/check-stateless $(srcdir) GBK -$(srcdir)/check-stateless $(srcdir) CP936 -$(CC) $(LDFLAGS) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(srcdir)/gengb18030z.c ../../../../lib/libiconv/*.o -o gengb18030z && \ @@ -141,7 +141,7 @@ -$(srcdir)/check-stateful $(srcdir) BIG5-HKSCS:2001 -$(srcdir)/check-stateless $(srcdir) BIG5-HKSCS:2004 -$(srcdir)/check-stateful $(srcdir) BIG5-HKSCS:2004 -# -$(srcdir)/check-stateless $(srcdir) EUC-KR + -$(srcdir)/check-stateless $(srcdir) EUC-KR -$(srcdir)/check-stateless $(srcdir) CP949 -$(srcdir)/check-stateless $(srcdir) JOHAB # -$(srcdir)/check-stateful $(srcdir) ISO-2022-KR ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/BIG5/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= BIG5 -SRCS+= citrus_big5.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_big5.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/BIG5/citrus_big5.c#6 (text+ko) ==== @@ -251,7 +251,6 @@ { int err; const char *s; - void *ctx = (void *)&ei; memset((void *)ei, 0, sizeof(*ei)); TAILQ_INIT(&ei->excludes); @@ -271,9 +270,9 @@ } /* fallback Big5-1984, for backward compatibility. */ - _citrus_BIG5_fill_rowcol(&ctx, "row", 0xA1, 0xFE); - _citrus_BIG5_fill_rowcol(&ctx, "col", 0x40, 0x7E); - _citrus_BIG5_fill_rowcol(&ctx, "col", 0xA1, 0xFE); + _citrus_BIG5_fill_rowcol((void **)&ei, "row", 0xA1, 0xFE); + _citrus_BIG5_fill_rowcol((void **)&ei, "col", 0x40, 0x7E); + _citrus_BIG5_fill_rowcol((void **)&ei, "col", 0xA1, 0xFE); return 0; } ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/DECHanyu/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= DECHanyu -SRCS+= citrus_dechanyu.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_dechanyu.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUC/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= EUC -SRCS+= citrus_euc.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_euc.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUC/citrus_euc.c#6 (text+ko) ==== @@ -292,10 +292,8 @@ _citrus_EUC_wcrtomb_priv(_EUCEncodingInfo *ei, char *s, size_t n, wchar_t wc, _EUCState *psenc, size_t *nresult) { - wchar_t m, nm; - int ret; - short i; - unsigned int cs; + wchar_t m, nm; + int cs, i, ret; m = wc & ei->mask; nm = wc & ~m; @@ -311,7 +309,7 @@ cs = 1; i = ei->count[cs]; - if (n < (unsigned)i) { + if (n < i) { ret = E2BIG; goto err; } ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUCTW/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= EUCTW -SRCS+= citrus_euctw.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_euctw.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/GBK2K/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= GBK2K -SRCS+= citrus_gbk2k.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_gbk2k.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/HZ/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= HZ -SRCS+= citrus_hz.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_hz.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ISO2022/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= ISO2022 -SRCS+= citrus_iso2022.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_iso2022.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/JOHAB/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= JOHAB -SRCS+= citrus_johab.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_johab.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/MSKanji/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= MSKanji -SRCS+= citrus_mskanji.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_mskanji.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UES/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= UES -SRCS+= citrus_ues.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_ues.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF1632/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= UTF1632 -SRCS+= citrus_utf1632.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_utf1632.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF7/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= UTF7 -SRCS+= citrus_utf7.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_utf7.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF8/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= UTF8 -SRCS+= citrus_utf8.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_utf8.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/VIQR/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= VIQR -SRCS+= citrus_viqr.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_viqr.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ZW/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= ZW -SRCS+= citrus_zw.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_zw.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_none/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= iconv_none -SRCS+= citrus_iconv_none.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_iconv_none.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= iconv_std -SRCS+= citrus_iconv_std.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_iconv_std.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_646/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= mapper_646 -SRCS= citrus_mapper_646.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_mapper_646.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_none/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= mapper_none -SRCS+= citrus_mapper_none.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_mapper_none.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_serial/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= mapper_serial -SRCS+= citrus_mapper_serial.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_mapper_serial.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_std/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= mapper_std -SRCS+= citrus_mapper_std.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_mapper_std.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_zone/Makefile#6 (text+ko) ==== @@ -1,6 +1,33 @@ # $FreeBSD$ +.PATH: ../../libiconv + LIB= mapper_zone -SRCS+= citrus_mapper_zone.c +SHLIB_MAJOR= 4 +CFLAGS+= -I../../libiconv +LIBDIR= /usr/lib/i18n +SRCS= _iconv.c \ + citrus_bcs.c \ + citrus_bcs_strtol.c \ + citrus_bcs_strtoul.c \ + citrus_csmapper.c \ + citrus_ctype.c \ + citrus_ctype_fallback.c \ + citrus_db.c \ + citrus_db_hash.c \ + citrus_esdb.c \ + citrus_hash.c \ + citrus_iconv.c \ + citrus_lookup.c \ + citrus_mapper.c \ + citrus_memstream.c \ + citrus_mmap.c \ + citrus_module.c \ + citrus_none.c \ + citrus_prop.c \ + citrus_stdenc.c \ + citrus_mapper_zone.c + +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/Makefile#6 (text+ko) ==== @@ -4,7 +4,6 @@ MAPS= GB12345%UCS.mps \ GB18030%UCS@BMP.mps \ GB2312%UCS.mps \ - GB2312GBK%UCS.mps \ GB2312EXT%UCS.mps \ GB2312UDA1%UCS.mps \ GB2312UDA2%UCS.mps \ ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/charset.pivot.GB.src#6 (text+ko) ==== @@ -2,7 +2,6 @@ GB12345 UCS 1 GB2312 UCS 1 -GB2312GBK UCS 1 GB2312:GBK UCS 1 GB2312:GB18030 UCS 1 GBK UCS 1 @@ -11,7 +10,6 @@ ISO-IR-165 UCS 1 UCS GB12345 1 UCS GB2312 1 -UCS GB2312GBK 1 UCS GB2312:GBK 1 UCS GB2312:GB18030 1 UCS GBK 1 ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/mapper.dir.GB.src#6 (text+ko) ==== @@ -2,7 +2,6 @@ GB12345/UCS mapper_std GB/GB12345%UCS.mps GB2312/UCS mapper_std GB/GB2312%UCS.mps -GB2312GBK/UCS mapper_std GB/GB2312GBK%UCS.mps GB2312EXT/UCS mapper_std GB/GB2312EXT%UCS.mps GB2312UDA1/UCS mapper_std GB/GB2312UDA1%UCS.mps GB2312UDA2/UCS mapper_std GB/GB2312UDA2%UCS.mps @@ -10,7 +9,7 @@ GBKUDA/UCS mapper_std GB/GBKUDA%UCS.mps GB18030/UCS:BMP mapper_std GB/GB18030%UCS@BMP.mps ISO-IR-165EXT/UCS mapper_std GB/ISO-IR-165EXT%UCS.mps -GB2312:CP936/UCS mapper_parallel GB2312EXT/UCS,GB2312GBK/UCS >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jul 27 08:47:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9186C106566C; Mon, 27 Jul 2009 08:47: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 38663106566B for ; Mon, 27 Jul 2009 08:47:15 +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 257DB8FC20 for ; Mon, 27 Jul 2009 08:47:15 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6R8lFxr047891 for ; Mon, 27 Jul 2009 08:47:15 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6R8lFht047889 for perforce@freebsd.org; Mon, 27 Jul 2009 08:47:15 GMT (envelope-from gabor@freebsd.org) Date: Mon, 27 Jul 2009 08:47:15 GMT Message-Id: <200907270847.n6R8lFht047889@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 Cc: Subject: PERFORCE change 166604 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 08:47:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=166604 Change 166604 by gabor@gabor_aspire on 2009/07/27 08:47:09 MFHg Affected files ... .. //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Makefile#9 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/BIG5/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/BIG5/citrus_big5.c#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/DECHanyu/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUC/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUC/citrus_euc.c#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUCTW/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/GBK2K/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/HZ/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ISO2022/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/JOHAB/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/MSKanji/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UES/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF1632/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF7/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF8/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/VIQR/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ZW/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_none/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_646/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_none/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_parallel/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_serial/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_std/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_zone/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/charset.pivot.GB.src#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/mapper.dir.GB.src#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/charset.pivot.JIS.src#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/mapper.dir.JIS.src#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/EUC/EUC-JP.src#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/Makefile#2 edit Differences ... ==== //depot/projects/soc2009/gabor_iconv/extracted/gnu/share/iconv/regression-test/Makefile#9 (text+ko) ==== @@ -116,13 +116,13 @@ -$(srcdir)/check-stateless $(srcdir) ISO-IR-165 # -$(srcdir)/check-stateless $(srcdir) KSC_5601 # redundant, see EUC-KR # /* CJK encodings */ - -$(srcdir)/check-stateless $(srcdir) EUC-JP +# -$(srcdir)/check-stateless $(srcdir) EUC-JP -$(srcdir)/check-stateless $(srcdir) SHIFT_JIS -$(srcdir)/check-stateless $(srcdir) CP932 -$(srcdir)/check-stateful $(srcdir) ISO-2022-JP -$(srcdir)/check-stateful $(srcdir) ISO-2022-JP-2 -$(srcdir)/check-stateful $(srcdir) ISO-2022-JP-1 - -$(srcdir)/check-stateless $(srcdir) EUC-CN +# -$(srcdir)/check-stateless $(srcdir) EUC-CN -$(srcdir)/check-stateless $(srcdir) GBK -$(srcdir)/check-stateless $(srcdir) CP936 -$(CC) $(LDFLAGS) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(srcdir)/gengb18030z.c ../../../../lib/libiconv/*.o -o gengb18030z && \ @@ -141,7 +141,7 @@ -$(srcdir)/check-stateful $(srcdir) BIG5-HKSCS:2001 -$(srcdir)/check-stateless $(srcdir) BIG5-HKSCS:2004 -$(srcdir)/check-stateful $(srcdir) BIG5-HKSCS:2004 - -$(srcdir)/check-stateless $(srcdir) EUC-KR +# -$(srcdir)/check-stateless $(srcdir) EUC-KR -$(srcdir)/check-stateless $(srcdir) CP949 -$(srcdir)/check-stateless $(srcdir) JOHAB # -$(srcdir)/check-stateful $(srcdir) ISO-2022-KR ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/BIG5/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= BIG5 -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_big5.c - -WARNS?= 3 +SRCS+= citrus_big5.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/BIG5/citrus_big5.c#7 (text+ko) ==== @@ -251,6 +251,7 @@ { int err; const char *s; + void *ctx = (void *)&ei; memset((void *)ei, 0, sizeof(*ei)); TAILQ_INIT(&ei->excludes); @@ -270,9 +271,9 @@ } /* fallback Big5-1984, for backward compatibility. */ - _citrus_BIG5_fill_rowcol((void **)&ei, "row", 0xA1, 0xFE); - _citrus_BIG5_fill_rowcol((void **)&ei, "col", 0x40, 0x7E); - _citrus_BIG5_fill_rowcol((void **)&ei, "col", 0xA1, 0xFE); + _citrus_BIG5_fill_rowcol(&ctx, "row", 0xA1, 0xFE); + _citrus_BIG5_fill_rowcol(&ctx, "col", 0x40, 0x7E); + _citrus_BIG5_fill_rowcol(&ctx, "col", 0xA1, 0xFE); return 0; } ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/DECHanyu/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= DECHanyu -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_dechanyu.c - -WARNS?= 3 +SRCS+= citrus_dechanyu.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUC/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= EUC -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_euc.c - -WARNS?= 3 +SRCS+= citrus_euc.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUC/citrus_euc.c#7 (text+ko) ==== @@ -292,8 +292,10 @@ _citrus_EUC_wcrtomb_priv(_EUCEncodingInfo *ei, char *s, size_t n, wchar_t wc, _EUCState *psenc, size_t *nresult) { - wchar_t m, nm; - int cs, i, ret; + wchar_t m, nm; + int ret; + short i; + unsigned int cs; m = wc & ei->mask; nm = wc & ~m; @@ -309,7 +311,7 @@ cs = 1; i = ei->count[cs]; - if (n < i) { + if (n < (unsigned)i) { ret = E2BIG; goto err; } ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUCTW/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= EUCTW -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_euctw.c - -WARNS?= 3 +SRCS+= citrus_euctw.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/GBK2K/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= GBK2K -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_gbk2k.c - -WARNS?= 3 +SRCS+= citrus_gbk2k.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/HZ/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= HZ -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_hz.c - -WARNS?= 3 +SRCS+= citrus_hz.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ISO2022/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= ISO2022 -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_iso2022.c - -WARNS?= 3 +SRCS+= citrus_iso2022.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/JOHAB/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= JOHAB -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_johab.c - -WARNS?= 3 +SRCS+= citrus_johab.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/MSKanji/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= MSKanji -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_mskanji.c - -WARNS?= 3 +SRCS+= citrus_mskanji.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UES/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= UES -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_ues.c - -WARNS?= 3 +SRCS+= citrus_ues.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF1632/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= UTF1632 -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_utf1632.c - -WARNS?= 3 +SRCS+= citrus_utf1632.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF7/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= UTF7 -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_utf7.c - -WARNS?= 3 +SRCS+= citrus_utf7.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF8/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= UTF8 -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_utf8.c - -WARNS?= 3 +SRCS+= citrus_utf8.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/VIQR/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= VIQR -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_viqr.c - -WARNS?= 3 +SRCS+= citrus_viqr.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ZW/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= ZW -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_zw.c - -WARNS?= 3 +SRCS+= citrus_zw.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_none/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= iconv_none -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_iconv_none.c - -WARNS?= 3 +SRCS+= citrus_iconv_none.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= iconv_std -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_iconv_std.c - -WARNS?= 3 +SRCS+= citrus_iconv_std.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_646/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= mapper_646 -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_mapper_646.c - -WARNS?= 3 +SRCS= citrus_mapper_646.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_none/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= mapper_none -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_mapper_none.c - -WARNS?= 3 +SRCS+= citrus_mapper_none.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_parallel/Makefile#5 (text+ko) ==== @@ -3,31 +3,6 @@ .PATH: ../../libiconv ../mapper_serial LIB= mapper_parallel -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_mapper_serial.c - -WARNS?= 3 +SRCS+= citrus_mapper_serial.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_serial/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= mapper_serial -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_mapper_serial.c - -WARNS?= 3 +SRCS+= citrus_mapper_serial.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_std/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= mapper_std -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_mapper_std.c - -WARNS?= 3 +SRCS+= citrus_mapper_std.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_zone/Makefile#7 (text+ko) ==== @@ -1,33 +1,6 @@ # $FreeBSD$ -.PATH: ../../libiconv - LIB= mapper_zone -SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv -LIBDIR= /usr/lib/i18n -SRCS= _iconv.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_bcs_strtoul.c \ - citrus_csmapper.c \ - citrus_ctype.c \ - citrus_ctype_fallback.c \ - citrus_db.c \ - citrus_db_hash.c \ - citrus_esdb.c \ - citrus_hash.c \ - citrus_iconv.c \ - citrus_lookup.c \ - citrus_mapper.c \ - citrus_memstream.c \ - citrus_mmap.c \ - citrus_module.c \ - citrus_none.c \ - citrus_prop.c \ - citrus_stdenc.c \ - citrus_mapper_zone.c - -WARNS?= 3 +SRCS+= citrus_mapper_zone.c .include ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/Makefile#7 (text+ko) ==== @@ -4,6 +4,7 @@ MAPS= GB12345%UCS.mps \ GB18030%UCS@BMP.mps \ GB2312%UCS.mps \ + GB2312GBK%UCS.mps \ GB2312EXT%UCS.mps \ GB2312UDA1%UCS.mps \ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jul 27 09:00:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 065931065673; Mon, 27 Jul 2009 09:00:30 +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 A1A25106564A for ; Mon, 27 Jul 2009 09:00:29 +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 8E8C08FC17 for ; Mon, 27 Jul 2009 09:00:29 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6R90Tn1048814 for ; Mon, 27 Jul 2009 09:00:29 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6R90Tmn048812 for perforce@freebsd.org; Mon, 27 Jul 2009 09:00:29 GMT (envelope-from gabor@freebsd.org) Date: Mon, 27 Jul 2009 09:00:29 GMT Message-Id: <200907270900.n6R90Tmn048812@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 Cc: Subject: PERFORCE change 166605 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 09:00:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=166605 Change 166605 by gabor@gabor_aspire on 2009/07/27 09:00:23 - Force adding of some files, which weren't added due to special characters in their filenames Affected files ... .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/Makefile.inc#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/ARABIC%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/CELTIC%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/CENTEURO%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/CROATIAN%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/CYRILLIC%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/DEVANAGA%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/DINGBATS%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/FARSI%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/GAELIC%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/GREEK%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/GUJARATI%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/GURMUKHI%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/HEBREW%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/ICELAND%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/INUIT%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/KEYBOARD%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/ROMAN%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/ROMANIAN%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/SYMBOL%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/THAI%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/TURKISH%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25ARABIC.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25CELTIC.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25CENTEURO.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25CROATIAN.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25CYRILLIC.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25DEVANAGA.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25DINGBATS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25FARSI.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25GAELIC.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25GREEK.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25GUJARATI.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25GURMUKHI.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25HEBREW.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25ICELAND.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25INUIT.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25KEYBOARD.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25ROMAN.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25ROMANIAN.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25SYMBOL.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25THAI.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/APPLE/UCS%25TURKISH.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/AST/ARMSCII-7%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/AST/ARMSCII-8%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/AST/ARMSCII-8A%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/AST/UCS%25ARMSCII-7.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/AST/UCS%25ARMSCII-8.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/AST/UCS%25ARMSCII-8A.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/Big5%401984%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/Big5EXT%402003%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/Big5EXT%40E%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/Big5EXT%40IBM%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/Big5EXT%40Plus%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/Big5UDA%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/ETen%25UCS%40BMP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/ETen%25UCS%40SIP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/HKSCS%25UCS%40BMP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/HKSCS%25UCS%40SIP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/UCS%25Big5%401984.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/UCS%25Big5EXT%402003.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/UCS%25Big5EXT%40E.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/UCS%25Big5EXT%40IBM.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/UCS%25Big5EXT%40Plus.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/UCS%25Big5UDA.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/UCS%40BMP%25ETen.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/UCS%40BMP%25HKSCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/UCS%40SIP%25ETen.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/BIG5/UCS%40SIP%25HKSCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/CNS11643-1%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/CNS11643-2%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/CNS11643-3%25UCS%40BMP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/CNS11643-3%25UCS%40SIP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/CNS11643-4%25UCS%40BMP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/CNS11643-4%25UCS%40SIP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/CNS11643-5%25UCS%40BMP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/CNS11643-5%25UCS%40SIP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/CNS11643-6%25UCS%40BMP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/CNS11643-6%25UCS%40SIP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/CNS11643-7%25UCS%40BMP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/CNS11643-7%25UCS%40SIP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/UCS%25CNS11643-1.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/UCS%25CNS11643-2.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/UCS%40BMP%25CNS11643-3.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/UCS%40BMP%25CNS11643-4.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/UCS%40BMP%25CNS11643-5.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/UCS%40BMP%25CNS11643-6.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/UCS%40BMP%25CNS11643-7.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/UCS%40SIP%25CNS11643-3.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/UCS%40SIP%25CNS11643-4.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/UCS%40SIP%25CNS11643-5.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/UCS%40SIP%25CNS11643-6.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CNS/UCS%40SIP%25CNS11643-7.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP037%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP038%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP10000%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP10006%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP10007%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP10029%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1006%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP10079%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP10081%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1026%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1046%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1124%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1125%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1129%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1131%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1133%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1161%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1162%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1163%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1250%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1251%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1252%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1253%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1254%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1255%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1256%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1257%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP1258%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP273%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP274%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP275%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP277%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP278%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP280%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP281%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP284%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP285%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP290%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP297%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP420%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP423%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP424%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP437%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP500%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP737%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP775%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP850%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP851%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP852%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP853%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP855%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP856%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP857%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP858%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP860%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP861%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP862%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP863%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP864%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP865%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP866%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP868%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP869%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP870%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP871%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP874%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP875%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP880%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP891%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP903%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP904%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP905%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP918%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP922%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP932UDA%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP932VDC%40IBM%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP932VDC%40NEC_IBM%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP936EXT%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP942EXT%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP949EXT%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/CP950%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP037.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP038.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP10000.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP10006.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP10007.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP10029.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1006.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP10079.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP10081.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1026.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1046.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1124.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1125.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1129.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1131.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1133.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1161.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1162.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1163.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1250.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1251.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1252.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1253.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1254.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1255.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1256.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1257.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP1258.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP273.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP274.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP275.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP277.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP278.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP280.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP281.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP284.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP285.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP290.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP297.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP420.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP423.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP424.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP437.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP500.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP737.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP775.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP850.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP851.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP852.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP853.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP855.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP856.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP857.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP858.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP860.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP861.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP862.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP863.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP864.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP865.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP866.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP868.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP869.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP870.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP871.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP874.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP875.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP880.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP891.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP903.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP904.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP905.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP918.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP922.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP932UDA.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP932VDC%40IBM.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP932VDC%40NEC_IBM.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP936EXT.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP942EXT.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP949EXT.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/UCS%25CP950.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-AT-DE%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-AT-DE-A%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-CA-FR%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-DK-NO%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-DK-NO-A%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-ES%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-ES-A%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-ES-S%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-FI-SE%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-FI-SE-A%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-FR%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-IT%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-PT%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/EBCDIC-UK%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-AT-DE-A.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-AT-DE.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-CA-FR.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-DK-NO-A.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-DK-NO.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-ES-A.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-ES-S.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-ES.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-FI-SE-A.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-FI-SE.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-FR.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-IT.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-PT.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/EBCDIC/UCS%25EBCDIC-UK.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/GB12345%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/GB18030%25UCS%40BMP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/GB2312%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/GB2312EXT%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/GB2312GBK%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/GB2312UDA1%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/GB2312UDA2%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/GBKEXT%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/GBKUDA%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/ISO-IR-165EXT%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/UCS%25GB12345.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/UCS%25GB2312.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/UCS%25GB2312EXT.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/UCS%25GB2312UDA1.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/UCS%25GB2312UDA2.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/UCS%25GBKEXT.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/UCS%25GBKUDA.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/UCS%25ISO-IR-165EXT.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/UCS%40BMP%25GB18030.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GEORGIAN/GEORGIAN-ACADEMY%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GEORGIAN/GEORGIAN-ACADEMY%40OldCapital%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GEORGIAN/GEORGIAN-PS%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GEORGIAN/GEORGIAN-PS%40OldCapital%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GEORGIAN/UCS%25GEORGIAN-ACADEMY%40OldCapital.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GEORGIAN/UCS%25GEORGIAN-ACADEMY.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GEORGIAN/UCS%25GEORGIAN-PS%40OldCapital.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GEORGIAN/UCS%25GEORGIAN-PS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-10%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-11%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-13%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-14%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-15%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-16%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-2%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-3%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-4%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-5%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-6%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-7%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-8%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/ISO-8859-9%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-10.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-11.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-13.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-14.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-15.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-16.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-2.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-3.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-4.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-5.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-6.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-7.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-8.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO-8859/UCS%25ISO-8859-9.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-BASIC%401983%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-CA%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-CA2%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-CN%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-CU%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-DE%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-DK%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-ES%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-ES2%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-FI%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-FR%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-FR1%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-GB%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-HU%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-IRV%401983%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-IT%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-JP%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-JP-OCR-B%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-KR%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-NO%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-NO2%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-PT%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-PT2%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-SE%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-SE2%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-US%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/ISO646-YU%25UCS.646#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0201-KANA%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0208%401978%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0208%401990%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0208%40MS%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0208UDC%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0208VDC%40NEC%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0212%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0212%40MS%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0212UDC%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0212VDC%40IBM%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0213-1%25UCS%40BMP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0213-1%25UCS%40SIP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0213-2%25UCS%40BMP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/JISX0213-2%25UCS%40SIP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%25JISX0201-KANA.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%25JISX0208%401978.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%25JISX0208%401990.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%25JISX0208%40MS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%25JISX0208UDC.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%25JISX0208VDC%40NEC.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%25JISX0212%40MS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%25JISX0212.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%25JISX0212UDC.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%25JISX0212VDC%40IBM.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%40BMP%25JISX0213-1.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%40BMP%25JISX0213-2.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%40SIP%25JISX0213-1.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/JIS/UCS%40SIP%25JISX0213-2.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KAZAKH/KZ1048%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KAZAKH/PTCP154%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KAZAKH/UCS%25KZ1048.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KAZAKH/UCS%25PTCP154.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/GOST19768-74%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/ISO-5427%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/KOI7%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/KOI8%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/KOI8-C%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/KOI8-CyrillicOld%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/KOI8-E%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/KOI8-R%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/KOI8-RU%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/KOI8-T%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/KOI8-U%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/UCS%25GOST19768-74.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/UCS%25ISO-5427.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/UCS%25KOI7.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/UCS%25KOI8-C.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/UCS%25KOI8-CyrillicOld.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/UCS%25KOI8-E.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/UCS%25KOI8-R.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/UCS%25KOI8-RU.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/UCS%25KOI8-T.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/UCS%25KOI8-U.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/UCS%25KOI8.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KS/JOHAB%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KS/KSC5601HANGUL%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KS/KSC5601HANJA%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KS/UCS%25JOHAB.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KS/UCS%25KSC5601HANGUL.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KS/UCS%25KSC5601HANJA.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/ATARIST%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/DECMCS%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/HP-ROMAN8%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/MULELAO-1%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/NEXTSTEP%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/RISCOS-LATIN1%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/TDS565%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/UCS%25ATARIST.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/UCS%25DECMCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/UCS%25HP-ROMAN8.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/UCS%25MULELAO-1.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/UCS%25NEXTSTEP.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/UCS%25RISCOS-LATIN1.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/MISC/UCS%25TDS565.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/TCVN/TCVN5712-1%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/TCVN/UCS%25TCVN5712-1.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/TCVN/UCS%25VISCII.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/TCVN/VISCII%25UCS.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/MISC/JISX0208%401990.src#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/gen-rev.c#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/gentable.c#2 delete Differences ... From owner-p4-projects@FreeBSD.ORG Mon Jul 27 09:09:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 17F68106566C; Mon, 27 Jul 2009 09:09:40 +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 CBE37106564A for ; Mon, 27 Jul 2009 09:09:39 +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 B94A48FC0C for ; Mon, 27 Jul 2009 09:09:39 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6R99dPv050379 for ; Mon, 27 Jul 2009 09:09:39 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6R99d8x050377 for perforce@freebsd.org; Mon, 27 Jul 2009 09:09:39 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 27 Jul 2009 09:09:39 GMT Message-Id: <200907270909.n6R99d8x050377@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 Cc: Subject: PERFORCE change 166606 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 09:09:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=166606 Change 166606 by rene@rene_self on 2009/07/27 09:08:44 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#31 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#9 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#6 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#39 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/virtualization/chapter.sgml#10 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/share/sgml/trademarks.ent#7 integrate .. //depot/projects/docproj_nl/share/sgml/man-refs.ent#20 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#31 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -119,7 +119,7 @@ If you are looking for light-weight browsers, you should investigate the Ports Collection for - www/dillo, + www/dillo2, www/links, or www/w3m. @@ -247,23 +247,57 @@ exists. This wrapper also supports &adobe; &acrobat; plugin, &realplayer; plugin and more. - - The following text covers the installation of &flash; - 9.X on recent -STABLE branch, &os; 7.1-RELEASE and above. - If you run an older version of &os; or encounter issues, you - should install www/linux-flashplugin7 and skip - the &man.linprocfs.5; part. - + According to the version of &os; you run various steps are + required: + + + + Under &os; 7.X + + Install the www/nspluginwrapper port. This + port requires emulators/linux_base-fc4 which + is a large port. + + The next step is to install the www/linux-flashplugin9 + port. This will install &flash; 9.X, this version is + known to run correctly under &os; 7.X. + + + On &os; versions older than &os; 7.1-RELEASE you have + to install www/linux-flashplugin7 and + skip the &man.linprocfs.5; part below. + + + + + Under &os; 8.X + + Install the www/nspluginwrapper port. This + port requires emulators/linux_base-f10 which + is a large port. + + The next step is to install the www/linux-f10-flashplugin10 + port. This will install &flash; 10.X, this version is + known to run correctly under &os; 8.X. + + This version will require the following link to be + created: - Install the www/nspluginwrapper - port. This port requires - emulators/linux_base-fc4 which is a - large port. + &prompt.root; ln -s /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so \ + /usr/local/lib/browser_plugins/ + + - The next step is to install the www/linux-flashplugin9 port. Once - this port is installed, the plugin must be installed by each + Once the right &flash; port, according to the &os; version + you run, + is installed, the plugin must be installed by each user with nspluginwrapper: &prompt.user; nspluginwrapper -v -a -i ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#6 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -745,6 +745,7 @@ device pass device uhci device ohci +device ehci device usb device umass @@ -752,8 +753,10 @@ to the USB storage devices, your USB device will be seen as a SCSI device by the system. Depending on the USB chipset on your motherboard, you only need either device - uhci or device ohci, however - having both in the kernel configuration file is harmless. Do + uhci or device ohci for USB 1.X support, however + having both in the kernel configuration file is harmless. + Support for USB 2.0 controllers is provided by the + &man.ehci.4; driver (the device ehci line). Do not forget to compile and install the new kernel if you added any lines. @@ -768,15 +771,6 @@ &man.atapicam.4; should not be used in the kernel configuration. - - Support for USB 2.0 controllers is provided on - &os;; however, you must add: - - device ehci - - to your configuration file for USB 2.0 support. Note - &man.uhci.4; and &man.ohci.4; drivers are still needed if you - want USB 1.X support. @@ -891,7 +885,7 @@ Disks and Mounting and Unmounting File Systems sections, reading various manual pages may be also useful: &man.umass.4;, - &man.camcontrol.8;, and &man.usbdevs.8;. + &man.camcontrol.8;, and &man.usbconfig.8; under &os;  8.X or &man.usbdevs.8; under earlier versions of &os;. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#39 (text+ko) ==== @@ -1,7 +1,7 @@ 8.0-CURRENT after SYSVIPC ABI change. + 800101 + June 29, 2009 + 8.0-CURRENT after the removal of the + /dev/net/* per-interface character + devices. + + + 800102 + July 12, 2009 + 8.0-CURRENT after padding was added to + struct sackhint, struct tcpcb, and struct + tcpstat. + + + 800103 + July 13, 2009 + 8.0-CURRENT after replacing struct tcpopt + with struct toeopt in the TOE driver interface + to the TCP syncache. + + + 800104 + July 14, 2009 + 8.0-CURRENT after the addition of the + linker-set based per-vnet allocator. + + 800105 July 19, 2009 8.0-CURRENT after version bump for all shared libraries that do not have symbol versioning turned on. + + 800106 + July 24, 2009 + 8.0-CURRENT after introduction of OBJT_SG + VM object type. + ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/virtualization/chapter.sgml#10 (text+ko) ==== @@ -1,7 +1,7 @@ ==== //depot/projects/docproj_nl/share/sgml/man-refs.ent#20 (text+ko) ==== @@ -20,7 +20,7 @@ lexicographical order by the entity (i.e., the dots used in place of special characters should not be expanded when comparing). - $FreeBSD: doc/share/sgml/man-refs.ent,v 1.488 2009/06/16 10:28:11 hrs Exp $ + $FreeBSD: doc/share/sgml/man-refs.ent,v 1.489 2009/07/26 11:48:34 blackend Exp $ --> @@ -4601,6 +4601,7 @@ + From owner-p4-projects@FreeBSD.ORG Mon Jul 27 11:07:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 05CE9106567B; Mon, 27 Jul 2009 11:07:49 +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 B98241065679 for ; Mon, 27 Jul 2009 11:07:48 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8DCBE8FC3D for ; Mon, 27 Jul 2009 11:07:48 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RB7mA9060801 for ; Mon, 27 Jul 2009 11:07:48 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RB7mUM060799 for perforce@freebsd.org; Mon, 27 Jul 2009 11:07:48 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 11:07:48 GMT Message-Id: <200907271107.n6RB7mUM060799@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166607 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 11:07:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=166607 Change 166607 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 11:07:37 Checked in a missing file Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/policy.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Jul 27 11:27:10 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 36A171065675; Mon, 27 Jul 2009 11:27:10 +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 EA8F7106564A for ; Mon, 27 Jul 2009 11:27:09 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BE3758FC1B for ; Mon, 27 Jul 2009 11:27:09 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RBR92P062171 for ; Mon, 27 Jul 2009 11:27:09 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RBR9g1062169 for perforce@freebsd.org; Mon, 27 Jul 2009 11:27:09 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 11:27:09 GMT Message-Id: <200907271127.n6RBR9g1062169@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166608 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 11:27:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=166608 Change 166608 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 11:26:10 Added a little text editor Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.cpp#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.h#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.qrc#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/sandbox_qt.cpp#7 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/sandbox_qt.pro#4 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/sandbox_qt.cpp#7 (text+ko) ==== @@ -59,6 +59,8 @@ #include #include +#include + #include #include #include @@ -67,7 +69,8 @@ #include #include -#include +#include "TextEditor.h" + using namespace std; @@ -245,7 +248,7 @@ printf("\n"); printf("======================================\n"); fflush(stdout); - sleep(1); + QMessageBox::information(NULL, "Host", "This is on the host"); return 0; @@ -254,10 +257,11 @@ extern "C" int cap_main(int argc, char *argv[]) { + sleep(1); + printf("sandbox:\tIn sandbox: %i\n", ld_insandbox()); fflush(stdout); - printf("sandbox:\tOpening /etc/passwd directly... "); fflush(stdout); @@ -371,13 +375,7 @@ - // start QApplication - printf("sandbox:\tCreating QApplication...\n"); - fflush(stdout); - QApplication app(argc, argv); - printf("sandbox:\tQApplication started.\n"); - // now test file opening int fd = ua_open("/etc/passwd", O_RDONLY); if(fd < 0) err(EX_IOERR, "Error opening passwd via angel"); @@ -407,20 +405,29 @@ if(!group.open(QIODevice::ReadOnly | QIODevice::Text)) err(EX_IOERR, "Error opening /etc/group"); + printf("\t\tsize: %lli\n", group.size()); printf("\t\t%s\n", group.readLine().data()); fflush(stdout); - + + - printf("sandbox:\tDisplaying message box...\n"); + // start QApplication + printf("sandbox:\tCreating QApplication...\n"); fflush(stdout); - QMessageBox::information(NULL, "Sandbox", "This is sandboxed"); - printf("sandbox:\tMessage box closed\n"); - fflush(stdout); + QApplication app(argc, argv); + printf("sandbox:\tQApplication started.\n"); + + + // display a proper window + new TextEditor(); + int ret = app.exec(); + printf("sandbox:\tQApplication::exec() returned with code %i\n", ret); + fflush(stdout); - return 0; + return ret; } ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/sandbox_qt.pro#4 (text+ko) ==== @@ -9,5 +9,7 @@ QMAKE_LFLAGS += -rdynamic # Input -SOURCES += sandbox_qt.cpp xcb_auth.c +HEADERS = TextEditor.h +SOURCES = sandbox_qt.cpp TextEditor.cpp xcb_auth.c +RESOURCES = TextEditor.qrc From owner-p4-projects@FreeBSD.ORG Mon Jul 27 11:27:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 025CA1065721; Mon, 27 Jul 2009 11:27:10 +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 22637106566B for ; Mon, 27 Jul 2009 11:27:10 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EA3B98FC22 for ; Mon, 27 Jul 2009 11:27:09 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RBR9MF062176 for ; Mon, 27 Jul 2009 11:27:09 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RBR9Mo062174 for perforce@freebsd.org; Mon, 27 Jul 2009 11:27:09 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 11:27:09 GMT Message-Id: <200907271127.n6RBR9Mo062174@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166609 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 11:27:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=166609 Change 166609 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 11:27:02 Just allow powerboxes (for now, anyway) Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/policy.c#3 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/policy.c#3 (text+ko) ==== @@ -74,6 +74,7 @@ case UA_LOAD_LIBRARY: case UA_POWERBOX: + return 1; default: fprintf(stderr, "Unhandled policy request type %i\n", req); From owner-p4-projects@FreeBSD.ORG Mon Jul 27 11:31:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C26C91065673; Mon, 27 Jul 2009 11:31:14 +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 829B4106566B for ; Mon, 27 Jul 2009 11:31:14 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 70D6D8FC08 for ; Mon, 27 Jul 2009 11:31:14 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RBVE18062460 for ; Mon, 27 Jul 2009 11:31:14 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RBVEwL062458 for perforce@freebsd.org; Mon, 27 Jul 2009 11:31:14 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 11:31:14 GMT Message-Id: <200907271131.n6RBVEwL062458@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166610 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 11:31:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=166610 Change 166610 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 11:30:52 Removed some commented-out lines, changed some printf()s Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.c#17 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.c#17 (text+ko) ==== @@ -401,7 +401,7 @@ int sock = client->socket; if(ua_unmarshall_string(d, path, &pathlen) < 0) return -1; - printf(": %s\n", path); + printf(": '%s'\n", path); struct stat s; if(stat(path, &s)) return 1; @@ -421,18 +421,14 @@ int handle_path_request(struct client *client, struct ua_datum *d) { -// unsigned int fdlen = 0; char path[256] = ""; unsigned int pathlen = 256; int sock = client->socket; -// struct ua_datum *d = ua_recv(sock, NULL, &fdlen); if(ua_unmarshall_string(d, path, &pathlen) < 0) return -1; -// free(d); + printf(": '%s'\n", path); - printf(": %s\n", path); - int32_t flags, rights; if(ua_unmarshall_int(ua_recv(sock, NULL, NULL), &flags) < 0) return -1; if(ua_unmarshall_int(ua_recv(sock, NULL, NULL), &rights) < 0) return -1; @@ -485,18 +481,21 @@ return -1; } + printf(": "); for(int i = 0; i < len; i++) { const char *name = names[i]; struct ua_datum *d = ua_marshall_string(name, strlen(name)); + printf("'%s' ", name); if(ua_send(client->socket, d, fds + i, 1) < 0) { printf("Error sending file descriptor"); return -1; } } + printf("\n"); return 0; } From owner-p4-projects@FreeBSD.ORG Mon Jul 27 11:32:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 18D7B10656E0; Mon, 27 Jul 2009 11:32:16 +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 B835610656DE for ; Mon, 27 Jul 2009 11:32:15 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A5DD28FC2F for ; Mon, 27 Jul 2009 11:32:15 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RBWFK7062523 for ; Mon, 27 Jul 2009 11:32:15 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RBWFOc062521 for perforce@freebsd.org; Mon, 27 Jul 2009 11:32:15 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 11:32:15 GMT Message-Id: <200907271132.n6RBWFOc062521@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166611 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 11:32:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=166611 Change 166611 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 11:31:54 Added __BEGIN_DECLS/__END_DECLS to libuserangel-powerbox.h Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel-powerbox.h#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel-powerbox.h#2 (text+ko) ==== @@ -37,6 +37,8 @@ #include +__BEGIN_DECLS + /** Powerbox UI types */ enum ua_powerbox_ui_t { UA_QT, UA_KDE /* TODO: GNOME, NCURSES, etc. */ }; @@ -74,5 +76,7 @@ int ua_powerbox(struct ua_powerbox_options *options, int fds[], char *names[], int *len); +__END_DECLS + #endif /* !_LIBUSERANGEL_POWERBOX_H_ */ From owner-p4-projects@FreeBSD.ORG Mon Jul 27 11:33:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 394431065679; Mon, 27 Jul 2009 11:33:17 +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 ED4401065676 for ; Mon, 27 Jul 2009 11:33:16 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DBB018FC1A for ; Mon, 27 Jul 2009 11:33:16 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RBXG4P062626 for ; Mon, 27 Jul 2009 11:33:16 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RBXGos062624 for perforce@freebsd.org; Mon, 27 Jul 2009 11:33:16 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 11:33:16 GMT Message-Id: <200907271133.n6RBXGos062624@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166612 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 11:33:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=166612 Change 166612 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 11:32:34 Implemented ua_powerbox() Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.c#11 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.c#11 (text+ko) ==== @@ -324,6 +324,53 @@ } +int ua_powerbox(struct ua_powerbox_options *options, + int fds[], char *names[], int *len) +{ + if(angel < 0) angel = ua_find(); + if(angel < 0) return -1; + + struct ua_datum *data[2]; + data[0] = ua_marshall_int(UA_POWERBOX); + data[1] = ua_marshall_powerbox(options); + + for(int i = 0; i < 2; i++) + { + if(ua_send(angel, data[i], NULL, 0) < 0) return -1; + free(data[i]); + } + + + // retrieve the file descriptor(s) + struct ua_datum *fdcountd = ua_recv(angel, NULL, NULL); + if(!fdcountd) return -1; + + if(ua_unmarshall_int(fdcountd, len) < 0) return -1; + + uint32_t fdcount = *len; + int32_t fdarray[fdcount]; + + struct ua_datum *fd_datum = ua_recv(angel, fdarray, &fdcount); + if(!fd_datum) return -1; + *len = fdcount; + + int buflen = 1024; + char buffer[buflen]; + for(unsigned int i = 0; i < fdcount; i++) + { + fds[i] = fdarray[i]; + + int namelen = buflen; + if(ua_unmarshall_string(fd_datum, buffer, &namelen) < 0) return -1; + + names[i] = (char*) malloc(namelen); + memcpy(names[i], buffer, namelen); + } + + return 0; +} + + int ua_send(int sock, datum *d, int32_t fds[], int32_t fdlen) { From owner-p4-projects@FreeBSD.ORG Mon Jul 27 13:11:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 297F41065673; Mon, 27 Jul 2009 13:11:03 +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 A59B5106566B for ; Mon, 27 Jul 2009 13:11:03 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 932838FC1E for ; Mon, 27 Jul 2009 13:11:03 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RDB30H081659 for ; Mon, 27 Jul 2009 13:11:03 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RDB3JN081657 for perforce@freebsd.org; Mon, 27 Jul 2009 13:11:03 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 13:11:03 GMT Message-Id: <200907271311.n6RDB3JN081657@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166614 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 13:11:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=166614 Change 166614 by pgj@petymeg-current on 2009/07/27 13:10:48 Standardize struct tcpstat and add a general header structure for protocol-dependent statistics to support exporting information. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/tcp_input.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/tcp_var.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/tcp_input.c#2 (text+ko) ==== @@ -105,6 +105,10 @@ static const int tcprexmtthresh = 3; #ifdef VIMAGE_GLOBALS +struct stat_header tcpstat_header = { + .sth_version = TCPSTAT_VERSION, + .sth_len = sizeof(struct tcpstat) +}; struct tcpstat tcpstat; int blackhole; int tcp_delack_enabled; @@ -125,6 +129,9 @@ CTLFLAG_RW, tcpstat , tcpstat, "TCP statistics (struct tcpstat, netinet/tcp_var.h)"); +SYSCTL_V_STRUCT(V_NET, vnet_inet, _net_inet_tcp, OID_AUTO, stats_header, + CTLFLAG_RD, tcpstat_header, stat_header, "TCP statistics header"); + int tcp_log_in_vain = 0; SYSCTL_INT(_net_inet_tcp, OID_AUTO, log_in_vain, CTLFLAG_RW, &tcp_log_in_vain, 0, "Log all incoming TCP segments to closed ports"); ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/tcp_var.h#2 (text+ko) ==== @@ -352,114 +352,123 @@ max((tp)->t_rttmin, (((tp)->t_srtt >> (TCP_RTT_SHIFT - TCP_DELTA_SHIFT)) \ + (tp)->t_rttvar) >> TCP_DELTA_SHIFT) +/* XXX: should be moved to somewhere else. */ +struct stat_header { + const u_int32_t sth_version; + const u_int32_t sth_len; +}; + /* * TCP statistics. * Many of these should be kept per connection, * but that's inconvenient at the moment. */ -struct tcpstat { - u_long tcps_connattempt; /* connections initiated */ - u_long tcps_accepts; /* connections accepted */ - u_long tcps_connects; /* connections established */ - u_long tcps_drops; /* connections dropped */ - u_long tcps_conndrops; /* embryonic connections dropped */ - u_long tcps_minmssdrops; /* average minmss too low drops */ - u_long tcps_closed; /* conn. closed (includes drops) */ - u_long tcps_segstimed; /* segs where we tried to get rtt */ - u_long tcps_rttupdated; /* times we succeeded */ - u_long tcps_delack; /* delayed acks sent */ - u_long tcps_timeoutdrop; /* conn. dropped in rxmt timeout */ - u_long tcps_rexmttimeo; /* retransmit timeouts */ - u_long tcps_persisttimeo; /* persist timeouts */ - u_long tcps_keeptimeo; /* keepalive timeouts */ - u_long tcps_keepprobe; /* keepalive probes sent */ - u_long tcps_keepdrops; /* connections dropped in keepalive */ + +#define TCPSTAT_VERSION 0x00000001 + +struct tcpstat { + u_int64_t tcps_connattempt; /* connections initiated */ + u_int64_t tcps_accepts; /* connections accepted */ + u_int64_t tcps_connects; /* connections established */ + u_int64_t tcps_drops; /* connections dropped */ + u_int64_t tcps_conndrops; /* embryonic connections dropped */ + u_int64_t tcps_minmssdrops; /* average minmss too low drops */ + u_int64_t tcps_closed; /* conn. closed (includes drops) */ + u_int64_t tcps_segstimed; /* segs where we tried to get rtt */ + u_int64_t tcps_rttupdated; /* times we succeeded */ + u_int64_t tcps_delack; /* delayed acks sent */ + u_int64_t tcps_timeoutdrop; /* conn. dropped in rxmt timeout */ + u_int64_t tcps_rexmttimeo; /* retransmit timeouts */ + u_int64_t tcps_persisttimeo; /* persist timeouts */ + u_int64_t tcps_keeptimeo; /* keepalive timeouts */ + u_int64_t tcps_keepprobe; /* keepalive probes sent */ + u_int64_t tcps_keepdrops; /* connections dropped in keepalive */ - u_long tcps_sndtotal; /* total packets sent */ - u_long tcps_sndpack; /* data packets sent */ - u_long tcps_sndbyte; /* data bytes sent */ - u_long tcps_sndrexmitpack; /* data packets retransmitted */ - u_long tcps_sndrexmitbyte; /* data bytes retransmitted */ - u_long tcps_sndrexmitbad; /* unnecessary packet retransmissions */ - u_long tcps_sndacks; /* ack-only packets sent */ - u_long tcps_sndprobe; /* window probes sent */ - u_long tcps_sndurg; /* packets sent with URG only */ - u_long tcps_sndwinup; /* window update-only packets sent */ - u_long tcps_sndctrl; /* control (SYN|FIN|RST) packets sent */ + u_int64_t tcps_sndtotal; /* total packets sent */ + u_int64_t tcps_sndpack; /* data packets sent */ + u_int64_t tcps_sndbyte; /* data bytes sent */ + u_int64_t tcps_sndrexmitpack; /* data packets retransmitted */ + u_int64_t tcps_sndrexmitbyte; /* data bytes retransmitted */ + u_int64_t tcps_sndrexmitbad; /* unnecessary packet retransmissions */ + u_int64_t tcps_sndacks; /* ack-only packets sent */ + u_int64_t tcps_sndprobe; /* window probes sent */ + u_int64_t tcps_sndurg; /* packets sent with URG only */ + u_int64_t tcps_sndwinup; /* window update-only packets sent */ + u_int64_t tcps_sndctrl; /* control (SYN|FIN|RST) packets sent */ - u_long tcps_rcvtotal; /* total packets received */ - u_long tcps_rcvpack; /* packets received in sequence */ - u_long tcps_rcvbyte; /* bytes received in sequence */ - u_long tcps_rcvbadsum; /* packets received with ccksum errs */ - u_long tcps_rcvbadoff; /* packets received with bad offset */ - u_long tcps_rcvmemdrop; /* packets dropped for lack of memory */ - u_long tcps_rcvshort; /* packets received too short */ - u_long tcps_rcvduppack; /* duplicate-only packets received */ - u_long tcps_rcvdupbyte; /* duplicate-only bytes received */ - u_long tcps_rcvpartduppack; /* packets with some duplicate data */ - u_long tcps_rcvpartdupbyte; /* dup. bytes in part-dup. packets */ - u_long tcps_rcvoopack; /* out-of-order packets received */ - u_long tcps_rcvoobyte; /* out-of-order bytes received */ - u_long tcps_rcvpackafterwin; /* packets with data after window */ - u_long tcps_rcvbyteafterwin; /* bytes rcvd after window */ - u_long tcps_rcvafterclose; /* packets rcvd after "close" */ - u_long tcps_rcvwinprobe; /* rcvd window probe packets */ - u_long tcps_rcvdupack; /* rcvd duplicate acks */ - u_long tcps_rcvacktoomuch; /* rcvd acks for unsent data */ - u_long tcps_rcvackpack; /* rcvd ack packets */ - u_long tcps_rcvackbyte; /* bytes acked by rcvd acks */ - u_long tcps_rcvwinupd; /* rcvd window update packets */ - u_long tcps_pawsdrop; /* segments dropped due to PAWS */ - u_long tcps_predack; /* times hdr predict ok for acks */ - u_long tcps_preddat; /* times hdr predict ok for data pkts */ - u_long tcps_pcbcachemiss; - u_long tcps_cachedrtt; /* times cached RTT in route updated */ - u_long tcps_cachedrttvar; /* times cached rttvar updated */ - u_long tcps_cachedssthresh; /* times cached ssthresh updated */ - u_long tcps_usedrtt; /* times RTT initialized from route */ - u_long tcps_usedrttvar; /* times RTTVAR initialized from rt */ - u_long tcps_usedssthresh; /* times ssthresh initialized from rt*/ - u_long tcps_persistdrop; /* timeout in persist state */ - u_long tcps_badsyn; /* bogus SYN, e.g. premature ACK */ - u_long tcps_mturesent; /* resends due to MTU discovery */ - u_long tcps_listendrop; /* listen queue overflows */ - u_long tcps_badrst; /* ignored RSTs in the window */ + u_int64_t tcps_rcvtotal; /* total packets received */ + u_int64_t tcps_rcvpack; /* packets received in sequence */ + u_int64_t tcps_rcvbyte; /* bytes received in sequence */ + u_int64_t tcps_rcvbadsum; /* packets received with ccksum errs */ + u_int64_t tcps_rcvbadoff; /* packets received with bad offset */ + u_int64_t tcps_rcvmemdrop; /* packets dropped for lack of memory */ + u_int64_t tcps_rcvshort; /* packets received too short */ + u_int64_t tcps_rcvduppack; /* duplicate-only packets received */ + u_int64_t tcps_rcvdupbyte; /* duplicate-only bytes received */ + u_int64_t tcps_rcvpartduppack; /* packets with some duplicate data */ + u_int64_t tcps_rcvpartdupbyte; /* dup. bytes in part-dup. packets */ + u_int64_t tcps_rcvoopack; /* out-of-order packets received */ + u_int64_t tcps_rcvoobyte; /* out-of-order bytes received */ + u_int64_t tcps_rcvpackafterwin; /* packets with data after window */ + u_int64_t tcps_rcvbyteafterwin; /* bytes rcvd after window */ + u_int64_t tcps_rcvafterclose; /* packets rcvd after "close" */ + u_int64_t tcps_rcvwinprobe; /* rcvd window probe packets */ + u_int64_t tcps_rcvdupack; /* rcvd duplicate acks */ + u_int64_t tcps_rcvacktoomuch; /* rcvd acks for unsent data */ + u_int64_t tcps_rcvackpack; /* rcvd ack packets */ + u_int64_t tcps_rcvackbyte; /* bytes acked by rcvd acks */ + u_int64_t tcps_rcvwinupd; /* rcvd window update packets */ + u_int64_t tcps_pawsdrop; /* segments dropped due to PAWS */ + u_int64_t tcps_predack; /* times hdr predict ok for acks */ + u_int64_t tcps_preddat; /* times hdr predict ok for data pkts */ + u_int64_t tcps_pcbcachemiss; + u_int64_t tcps_cachedrtt; /* times cached RTT in route updated */ + u_int64_t tcps_cachedrttvar; /* times cached rttvar updated */ + u_int64_t tcps_cachedssthresh; /* times cached ssthresh updated */ + u_int64_t tcps_usedrtt; /* times RTT initialized from route */ + u_int64_t tcps_usedrttvar; /* times RTTVAR initialized from rt */ + u_int64_t tcps_usedssthresh; /* times ssthresh initialized from rt*/ + u_int64_t tcps_persistdrop; /* timeout in persist state */ + u_int64_t tcps_badsyn; /* bogus SYN, e.g. premature ACK */ + u_int64_t tcps_mturesent; /* resends due to MTU discovery */ + u_int64_t tcps_listendrop; /* listen queue overflows */ + u_int64_t tcps_badrst; /* ignored RSTs in the window */ - u_long tcps_sc_added; /* entry added to syncache */ - u_long tcps_sc_retransmitted; /* syncache entry was retransmitted */ - u_long tcps_sc_dupsyn; /* duplicate SYN packet */ - u_long tcps_sc_dropped; /* could not reply to packet */ - u_long tcps_sc_completed; /* successful extraction of entry */ - u_long tcps_sc_bucketoverflow; /* syncache per-bucket limit hit */ - u_long tcps_sc_cacheoverflow; /* syncache cache limit hit */ - u_long tcps_sc_reset; /* RST removed entry from syncache */ - u_long tcps_sc_stale; /* timed out or listen socket gone */ - u_long tcps_sc_aborted; /* syncache entry aborted */ - u_long tcps_sc_badack; /* removed due to bad ACK */ - u_long tcps_sc_unreach; /* ICMP unreachable received */ - u_long tcps_sc_zonefail; /* zalloc() failed */ - u_long tcps_sc_sendcookie; /* SYN cookie sent */ - u_long tcps_sc_recvcookie; /* SYN cookie received */ + u_int64_t tcps_sc_added; /* entry added to syncache */ + u_int64_t tcps_sc_retransmitted; /* syncache entry was retransmitted */ + u_int64_t tcps_sc_dupsyn; /* duplicate SYN packet */ + u_int64_t tcps_sc_dropped; /* could not reply to packet */ + u_int64_t tcps_sc_completed; /* successful extraction of entry */ + u_int64_t tcps_sc_bucketoverflow; /* syncache per-bucket limit hit */ + u_int64_t tcps_sc_cacheoverflow; /* syncache cache limit hit */ + u_int64_t tcps_sc_reset; /* RST removed entry from syncache */ + u_int64_t tcps_sc_stale; /* timed out or listen socket gone */ + u_int64_t tcps_sc_aborted; /* syncache entry aborted */ + u_int64_t tcps_sc_badack; /* removed due to bad ACK */ + u_int64_t tcps_sc_unreach; /* ICMP unreachable received */ + u_int64_t tcps_sc_zonefail; /* zalloc() failed */ + u_int64_t tcps_sc_sendcookie; /* SYN cookie sent */ + u_int64_t tcps_sc_recvcookie; /* SYN cookie received */ - u_long tcps_hc_added; /* entry added to hostcache */ - u_long tcps_hc_bucketoverflow; /* hostcache per bucket limit hit */ + u_int64_t tcps_hc_added; /* entry added to hostcache */ + u_int64_t tcps_hc_bucketoverflow; /* hostcache per bucket limit hit */ - u_long tcps_finwait2_drops; /* Drop FIN_WAIT_2 connection after time limit */ + u_int64_t tcps_finwait2_drops; /* Drop FIN_WAIT_2 connection after time limit */ /* SACK related stats */ - u_long tcps_sack_recovery_episode; /* SACK recovery episodes */ - u_long tcps_sack_rexmits; /* SACK rexmit segments */ - u_long tcps_sack_rexmit_bytes; /* SACK rexmit bytes */ - u_long tcps_sack_rcv_blocks; /* SACK blocks (options) received */ - u_long tcps_sack_send_blocks; /* SACK blocks (options) sent */ - u_long tcps_sack_sboverflow; /* times scoreboard overflowed */ + u_int64_t tcps_sack_recovery_episode; /* SACK recovery episodes */ + u_int64_t tcps_sack_rexmits; /* SACK rexmit segments */ + u_int64_t tcps_sack_rexmit_bytes; /* SACK rexmit bytes */ + u_int64_t tcps_sack_rcv_blocks; /* SACK blocks (options) received */ + u_int64_t tcps_sack_send_blocks; /* SACK blocks (options) sent */ + u_int64_t tcps_sack_sboverflow; /* times scoreboard overflowed */ /* ECN related stats */ - u_long tcps_ecn_ce; /* ECN Congestion Experienced */ - u_long tcps_ecn_ect0; /* ECN Capable Transport */ - u_long tcps_ecn_ect1; /* ECN Capable Transport */ - u_long tcps_ecn_shs; /* ECN successful handshakes */ - u_long tcps_ecn_rcwnd; /* # times ECN reduced the cwnd */ + u_int64_t tcps_ecn_ce; /* ECN Congestion Experienced */ + u_int64_t tcps_ecn_ect0; /* ECN Capable Transport */ + u_int64_t tcps_ecn_ect1; /* ECN Capable Transport */ + u_int64_t tcps_ecn_shs; /* ECN successful handshakes */ + u_int64_t tcps_ecn_rcwnd; /* # times ECN reduced the cwnd */ }; #ifdef _KERNEL From owner-p4-projects@FreeBSD.ORG Mon Jul 27 13:16:10 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B1280106566C; Mon, 27 Jul 2009 13:16: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 7064A106566B for ; Mon, 27 Jul 2009 13:16:09 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5DF228FC14 for ; Mon, 27 Jul 2009 13:16:09 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RDG9Ui081996 for ; Mon, 27 Jul 2009 13:16:09 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RDG9hK081994 for perforce@freebsd.org; Mon, 27 Jul 2009 13:16:09 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 13:16:09 GMT Message-Id: <200907271316.n6RDG9hK081994@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166615 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 13:16:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=166615 Change 166615 by pgj@petymeg-current on 2009/07/27 13:15:45 - Introduce a general stat_type for protocol-dependent statistics, together with resetting (netstat_zerostat()). - Add support for TCP statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#13 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#33 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#31 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#1 add .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#37 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#13 (text+ko) ==== @@ -4,7 +4,7 @@ LIB= netstat SRCS= netstat_socket.c netstat_mbuf.c netstat_if.c netstat_bpf.c \ - netstat_util.c + netstat_stat.c netstat_util.c INCS= netstat.h ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#33 (text+ko) ==== @@ -50,6 +50,7 @@ #define NETSTAT_ERROR_KVM_NOSYMBOL 4 #define NETSTAT_ERROR_KVM_SHORTREAD 5 #define NETSTAT_ERROR_UNSUPPORTED 6 +#define NETSTAT_ERROR_INVALID 7 /* Flags for netstat_socket(): */ #define NETSTAT_SOCKET_KVM 0x01 /* Use KVM. */ @@ -65,6 +66,9 @@ /* netstat_bpf(): */ #define NETSTAT_BPF_KVM 0x01 +/* netstat_stat(): */ +#define NETSTAT_STAT_KVM 0x01 + /* Testing flags for interface_type: */ #define NETSTAT_IF_UP 0x01 /* interface is up */ @@ -110,6 +114,12 @@ bpfdir_MAX, }; +enum stat { + stat_TCP = 0, + stat_MAX, + stat_Invalid, +}; + struct socket_type; struct sockaddr_type; struct sockbuf_type; @@ -130,6 +140,9 @@ struct bpf_type_list; struct bpf_type_iterator; +struct stat_type; +struct tcp_stat; + __BEGIN_DECLS const char *netstat_strerror(int); @@ -306,4 +319,110 @@ u_int64_t netstat_bpt_get_slen(const struct bpf_type *); u_int64_t netstat_bpt_get_hlen(const struct bpf_type *); const char *netstat_bpt_get_pidname(const struct bpf_type *); + + +/* Protocol-dependent statistics: */ +struct stat_type *netstat_stat_alloc(void); +void netstat_stat_free(struct stat_type *); +int netstat_stat_geterror(const struct stat_type *); + +int netstat_stat(enum stat, struct stat_type *, int flags, + void *kvm_handle); +int netstat_zerostat(enum stat); + +const struct tcp_stat *netstat_get_tcpstats(const struct stat_type *); + +u_int64_t netstat_tcps_get_connattempt(const struct tcp_stat *); +u_int64_t netstat_tcps_get_accepts(const struct tcp_stat *); +u_int64_t netstat_tcps_get_connects(const struct tcp_stat *); +u_int64_t netstat_tcps_get_drops(const struct tcp_stat *); +u_int64_t netstat_tcps_get_conndrops(const struct tcp_stat *); +u_int64_t netstat_tcps_get_minmssdrops(const struct tcp_stat *); +u_int64_t netstat_tcps_get_closed(const struct tcp_stat *); +u_int64_t netstat_tcps_get_segstimed(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rttupdated(const struct tcp_stat *); +u_int64_t netstat_tcps_get_delack(const struct tcp_stat *); +u_int64_t netstat_tcps_get_timeoutdrop(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rexmttimeo(const struct tcp_stat *); +u_int64_t netstat_tcps_get_persisttimeo(const struct tcp_stat *); +u_int64_t netstat_tcps_get_keeptimeo(const struct tcp_stat *); +u_int64_t netstat_tcps_get_keepprobe(const struct tcp_stat *); +u_int64_t netstat_tcps_get_keepdrops(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sndtotal(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sndpack(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sndbyte(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sndrexmitpack(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sndrexmitbyte(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sndrexmitbad(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sndacks(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sndprobe(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sndurg(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sndwinup(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sndctrl(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvtotal(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvpack(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvbyte(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvbadsum(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvbadoff(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvmemdrop(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvshort(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvduppack(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvdupbyte(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvpartduppack(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvpartdupbyte(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvoopack(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvoobyte(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvpackafterwin(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvbyteafterwin(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvafterclose(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvwinprobe(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvdupack(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvacktoomuch(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvackpack(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvackbyte(const struct tcp_stat *); +u_int64_t netstat_tcps_get_rcvwinupd(const struct tcp_stat *); +u_int64_t netstat_tcps_get_pawsdrop(const struct tcp_stat *); +u_int64_t netstat_tcps_get_predack(const struct tcp_stat *); +u_int64_t netstat_tcps_get_preddat(const struct tcp_stat *); +u_int64_t netstat_tcps_get_pcbcachemiss(const struct tcp_stat *); +u_int64_t netstat_tcps_get_cachedrtt(const struct tcp_stat *); +u_int64_t netstat_tcps_get_cachedrttvar(const struct tcp_stat *); +u_int64_t netstat_tcps_get_cachedssthresh(const struct tcp_stat *); +u_int64_t netstat_tcps_get_usedrtt(const struct tcp_stat *); +u_int64_t netstat_tcps_get_usedrttvar(const struct tcp_stat *); +u_int64_t netstat_tcps_get_usedssthresh(const struct tcp_stat *); +u_int64_t netstat_tcps_get_persistdrop(const struct tcp_stat *); +u_int64_t netstat_tcps_get_badsyn(const struct tcp_stat *); +u_int64_t netstat_tcps_get_mturesent(const struct tcp_stat *); +u_int64_t netstat_tcps_get_listendrop(const struct tcp_stat *); +u_int64_t netstat_tcps_get_badrst(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_added(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_retransmitted(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_dupsyn(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_dropped(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_completed(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_bucketoverflow(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_cacheoverflow(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_reset(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_stale(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_aborted(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_badack(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_unreach(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_zonefail(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_sendcookie(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sc_recvcookie(const struct tcp_stat *); +u_int64_t netstat_tcps_get_hc_added(const struct tcp_stat *); +u_int64_t netstat_tcps_get_hc_bucketoverflow(const struct tcp_stat *); +u_int64_t netstat_tcps_get_finwait2_drops(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sack_recovery_episode(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sack_rexmits(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sack_rexmit_bytes(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sack_rcv_blocks(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sack_send_blocks(const struct tcp_stat *); +u_int64_t netstat_tcps_get_sack_sboverflow(const struct tcp_stat *); +u_int64_t netstat_tcps_get_ecn_ce(const struct tcp_stat *); +u_int64_t netstat_tcps_get_ecn_ect0(const struct tcp_stat *); +u_int64_t netstat_tcps_get_ecn_ect1(const struct tcp_stat *); +u_int64_t netstat_tcps_get_ecn_shs(const struct tcp_stat *); +u_int64_t netstat_tcps_get_ecn_rcwnd(const struct tcp_stat *); #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#31 (text+ko) ==== @@ -270,6 +270,17 @@ struct bpf_type *bpti_next; }; +/* General statistics type. */ +struct stat_type { + enum stat stt_type; + void *stt_data; + int stt_error; +}; + +struct tcp_stat { + struct tcpstat s; +}; + int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#37 (text+ko) ==== @@ -1201,6 +1201,600 @@ return (btp->bpt_pidname); } +struct stat_type * +netstat_stat_alloc(void) +{ + struct stat_type *sttp; + + sttp = malloc(sizeof(*sttp)); + if (sttp == NULL) + return (NULL); + + bzero(sttp, sizeof(*sttp)); + return (sttp); +} + +void +netstat_stat_free(struct stat_type *sttp) +{ + free(sttp->stt_data); + free(sttp); +} + +int +netstat_stat_geterror(const struct stat_type *sttp) +{ + return (sttp->stt_error); +} + +const struct tcp_stat * +netstat_get_tcpstats(const struct stat_type *sttp) +{ + if (sttp->stt_type == stat_TCP) { + return ((const struct tcp_stat *) sttp->stt_data); + } + return (NULL); +} + +u_int64_t +netstat_tcps_get_connattempt(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_connattempt); +} + +u_int64_t +netstat_tcps_get_accepts(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_accepts); +} + +u_int64_t +netstat_tcps_get_connects(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_connects); +} + +u_int64_t +netstat_tcps_get_drops(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_drops); +} + +u_int64_t +netstat_tcps_get_conndrops(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_conndrops); +} + +u_int64_t +netstat_tcps_get_minmssdrops(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_minmssdrops); +} + +u_int64_t +netstat_tcps_get_closed(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_closed); +} + +u_int64_t +netstat_tcps_get_segstimed(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_segstimed); +} + +u_int64_t +netstat_tcps_get_rttupdated(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rttupdated); +} + +u_int64_t +netstat_tcps_get_delack(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_delack); +} + +u_int64_t +netstat_tcps_get_timeoutdrop(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_timeoutdrop); +} + +u_int64_t +netstat_tcps_get_rexmttimeo(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rexmttimeo); +} + +u_int64_t +netstat_tcps_get_persisttimeo(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_persisttimeo); +} + +u_int64_t +netstat_tcps_get_keeptimeo(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_keeptimeo); +} + +u_int64_t +netstat_tcps_get_keepprobe(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_keepprobe); +} + +u_int64_t +netstat_tcps_get_keepdrops(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_keepdrops); +} + +u_int64_t +netstat_tcps_get_sndtotal(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sndtotal); +} + +u_int64_t +netstat_tcps_get_sndpack(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sndpack); +} + +u_int64_t +netstat_tcps_get_sndbyte(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sndbyte); +} + +u_int64_t +netstat_tcps_get_sndrexmitpack(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sndrexmitpack); +} + +u_int64_t +netstat_tcps_get_sndrexmitbyte(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sndrexmitbyte); +} + +u_int64_t +netstat_tcps_get_sndrexmitbad(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sndrexmitbad); +} + +u_int64_t +netstat_tcps_get_sndacks(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sndacks); +} + +u_int64_t +netstat_tcps_get_sndprobe(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sndprobe); +} + +u_int64_t +netstat_tcps_get_sndurg(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sndurg); +} + +u_int64_t +netstat_tcps_get_sndwinup(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sndwinup); +} + +u_int64_t +netstat_tcps_get_sndctrl(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sndctrl); +} + +u_int64_t +netstat_tcps_get_rcvtotal(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvtotal); +} + +u_int64_t +netstat_tcps_get_rcvpack(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvpack); +} + +u_int64_t +netstat_tcps_get_rcvbyte(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvbyte); +} + +u_int64_t +netstat_tcps_get_rcvbadsum(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvbadsum); +} + +u_int64_t +netstat_tcps_get_rcvbadoff(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvbadoff); +} + +u_int64_t +netstat_tcps_get_rcvmemdrop(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvmemdrop); +} + +u_int64_t +netstat_tcps_get_rcvshort(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvshort); +} + +u_int64_t +netstat_tcps_get_rcvduppack(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvduppack); +} + +u_int64_t +netstat_tcps_get_rcvdupbyte(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvdupbyte); +} + +u_int64_t +netstat_tcps_get_rcvpartduppack(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvpartduppack); +} + +u_int64_t +netstat_tcps_get_rcvpartdupbyte(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvpartdupbyte); +} + +u_int64_t +netstat_tcps_get_rcvoopack(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvoopack); +} + +u_int64_t +netstat_tcps_get_rcvoobyte(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvoobyte); +} + +u_int64_t +netstat_tcps_get_rcvpackafterwin(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvpackafterwin); +} + +u_int64_t +netstat_tcps_get_rcvbyteafterwin(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvbyteafterwin); +} + +u_int64_t +netstat_tcps_get_rcvafterclose(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvafterclose); +} + +u_int64_t +netstat_tcps_get_rcvwinprobe(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvwinprobe); +} + +u_int64_t +netstat_tcps_get_rcvdupack(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvdupack); +} + +u_int64_t +netstat_tcps_get_rcvacktoomuch(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvacktoomuch); +} + +u_int64_t +netstat_tcps_get_rcvackpack(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvackpack); +} + +u_int64_t +netstat_tcps_get_rcvackbyte(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvackbyte); +} + +u_int64_t +netstat_tcps_get_rcvwinupd(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_rcvwinupd); +} + +u_int64_t +netstat_tcps_get_pawsdrop(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_pawsdrop); +} + +u_int64_t +netstat_tcps_get_predack(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_predack); +} + +u_int64_t +netstat_tcps_get_preddat(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_preddat); +} + +u_int64_t +netstat_tcps_get_pcbcachemiss(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_pcbcachemiss); +} + +u_int64_t +netstat_tcps_get_cachedrtt(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_cachedrtt); +} + +u_int64_t +netstat_tcps_get_cachedrttvar(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_cachedrttvar); +} + +u_int64_t +netstat_tcps_get_cachedssthresh(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_cachedssthresh); +} + +u_int64_t +netstat_tcps_get_usedrtt(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_usedrtt); +} + +u_int64_t +netstat_tcps_get_usedrttvar(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_usedrttvar); +} + +u_int64_t +netstat_tcps_get_usedssthresh(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_usedssthresh); +} + +u_int64_t +netstat_tcps_get_persistdrop(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_persistdrop); +} + +u_int64_t +netstat_tcps_get_badsyn(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_badsyn); +} + +u_int64_t +netstat_tcps_get_mturesent(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_mturesent); +} + +u_int64_t +netstat_tcps_get_listendrop(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_listendrop); +} + +u_int64_t +netstat_tcps_get_badrst(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_badrst); +} + +u_int64_t +netstat_tcps_get_sc_added(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_added); +} + +u_int64_t +netstat_tcps_get_sc_retransmitted(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_retransmitted); +} + +u_int64_t +netstat_tcps_get_sc_dupsyn(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_dupsyn); +} + +u_int64_t +netstat_tcps_get_sc_dropped(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_dropped); +} + +u_int64_t +netstat_tcps_get_sc_completed(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_completed); +} + +u_int64_t +netstat_tcps_get_sc_bucketoverflow(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_bucketoverflow); +} + +u_int64_t +netstat_tcps_get_sc_cacheoverflow(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_cacheoverflow); +} + +u_int64_t +netstat_tcps_get_sc_reset(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_reset); +} + +u_int64_t +netstat_tcps_get_sc_stale(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_stale); +} + +u_int64_t +netstat_tcps_get_sc_aborted(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_aborted); +} + +u_int64_t +netstat_tcps_get_sc_badack(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_badack); +} + +u_int64_t +netstat_tcps_get_sc_unreach(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_unreach); +} + +u_int64_t +netstat_tcps_get_sc_zonefail(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_zonefail); +} + +u_int64_t +netstat_tcps_get_sc_sendcookie(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_sendcookie); +} + +u_int64_t +netstat_tcps_get_sc_recvcookie(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sc_recvcookie); +} + +u_int64_t +netstat_tcps_get_hc_added(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_hc_added); +} + +u_int64_t +netstat_tcps_get_hc_bucketoverflow(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_hc_bucketoverflow); +} + +u_int64_t +netstat_tcps_get_finwait2_drops(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_finwait2_drops); +} + +u_int64_t +netstat_tcps_get_sack_recovery_episode(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sack_recovery_episode); +} + +u_int64_t +netstat_tcps_get_sack_rexmits(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sack_rexmits); +} + +u_int64_t +netstat_tcps_get_sack_rexmit_bytes(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sack_rexmit_bytes); +} + +u_int64_t +netstat_tcps_get_sack_rcv_blocks(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sack_rcv_blocks); +} + +u_int64_t +netstat_tcps_get_sack_send_blocks(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sack_send_blocks); +} + +u_int64_t +netstat_tcps_get_sack_sboverflow(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_sack_sboverflow); +} + +u_int64_t +netstat_tcps_get_ecn_ce(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_ecn_ce); +} + +u_int64_t +netstat_tcps_get_ecn_ect0(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_ecn_ect0); +} + +u_int64_t +netstat_tcps_get_ecn_ect1(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_ecn_ect1); +} + +u_int64_t +netstat_tcps_get_ecn_shs(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_ecn_shs); +} + +u_int64_t +netstat_tcps_get_ecn_rcwnd(const struct tcp_stat *tsp) +{ + return (tsp->s.tcps_ecn_rcwnd); +} + + const char * routename(in_addr_t in, int numeric) { From owner-p4-projects@FreeBSD.ORG Mon Jul 27 13:18:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5F3581065674; Mon, 27 Jul 2009 13:18:12 +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 798CE106567D for ; Mon, 27 Jul 2009 13:18:11 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6141F8FC0C for ; Mon, 27 Jul 2009 13:18:11 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RDIBsj082111 for ; Mon, 27 Jul 2009 13:18:11 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RDIBGE082109 for perforce@freebsd.org; Mon, 27 Jul 2009 13:18:11 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 13:18:11 GMT Message-Id: <200907271318.n6RDIBGE082109@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166616 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 13:18:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=166616 Change 166616 by pgj@petymeg-current on 2009/07/27 13:17:25 Make netstat(1) to use libnetstat(3) for displaying and resetting TCP statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#10 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#24 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#18 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#10 (text+ko) ==== @@ -74,7 +74,7 @@ void inetpr(void *, int, int); void inetppr(const struct socket_type *); void unixdomainpr(const struct socket_type *); -void tcp_stats(u_long, const char *, int, int); +void tcp_stats(void *, const char *); void udp_stats(u_long, const char *, int, int); #ifdef SCTP void sctp_protopr(u_long, const char *, int, int); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#24 (text+ko) ==== @@ -242,10 +242,11 @@ * Dump TCP statistics structure. */ void -tcp_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +tcp_stats(void *kvmd, const char *name) { - struct tcpstat tcpstat, zerostat; - size_t len = sizeof tcpstat; + const struct tcp_stat *s; + struct stat_type *sttp; + int stt_flags; #ifdef INET6 if (tcp_done != 0) @@ -254,125 +255,139 @@ tcp_done = 1; #endif - if (live) { - if (zflag) - memset(&zerostat, 0, len); - if (sysctlbyname("net.inet.tcp.stats", &tcpstat, &len, - zflag ? &zerostat : NULL, zflag ? len : 0) < 0) { - warn("sysctl: net.inet.tcp.stats"); - return; - } - } else - kread(off, &tcpstat, len); + if (zflag) { + netstat_zerostat(stat_TCP); + return; + } + + stt_flags = 0; + if (!live) + stt_flags |= NETSTAT_STAT_KVM; + + sttp = netstat_stat_alloc(); + if (sttp == NULL) { + warn("netstat_stat_alloc"); + return; + } + + if (netstat_stat(stat_TCP, sttp, stt_flags, kvmd) < 0) { + return; + } + + s = netstat_get_tcpstats(sttp); printf ("%s:\n", name); -#define p(f, m) if (tcpstat.f || sflag <= 1) \ - printf(m, tcpstat.f, plural(tcpstat.f)) -#define p1a(f, m) if (tcpstat.f || sflag <= 1) \ - printf(m, tcpstat.f) -#define p2(f1, f2, m) if (tcpstat.f1 || tcpstat.f2 || sflag <= 1) \ - printf(m, tcpstat.f1, plural(tcpstat.f1), tcpstat.f2, plural(tcpstat.f2)) -#define p2a(f1, f2, m) if (tcpstat.f1 || tcpstat.f2 || sflag <= 1) \ - printf(m, tcpstat.f1, plural(tcpstat.f1), tcpstat.f2) -#define p3(f, m) if (tcpstat.f || sflag <= 1) \ - printf(m, tcpstat.f, pluralies(tcpstat.f)) +#define p(f, m) if (netstat_tcps_get_##f(s) || sflag <= 1) \ + printf(m, netstat_tcps_get_##f(s), plural(netstat_tcps_get_##f(s))) +#define p1a(f, m) if (netstat_tcps_get_##f(s) || sflag <= 1) \ + printf(m, netstat_tcps_get_##f(s)) +#define p2(f1, f2, m) if (netstat_tcps_get_##f1(s) || netstat_tcps_get_##f2(s) || sflag <= 1) \ + printf(m, netstat_tcps_get_##f1(s), plural(netstat_tcps_get_##f1(s)), \ + netstat_tcps_get_##f2(s), plural(netstat_tcps_get_##f2(s))) +#define p2a(f1, f2, m) if (netstat_tcps_get_##f1(s) || netstat_tcps_get_##f2(s) || sflag <= 1) \ + printf(m, netstat_tcps_get_##f1(s), plural(netstat_tcps_get_##f1(s)), \ + netstat_tcps_get_##f2(s)) +#define p3(f, m) if (netstat_tcps_get_##f(s) || sflag <= 1) \ + printf(m, netstat_tcps_get_##f(s), plural(netstat_tcps_get_##f(s))) + + p(sndtotal, "\t%ju packet%s sent\n"); + p2(sndpack,sndbyte, "\t\t%ju data packet%s (%ju byte%s)\n"); + p2(sndrexmitpack, sndrexmitbyte, + "\t\t%ju data packet%s (%ju byte%s) retransmitted\n"); + p(sndrexmitbad, + "\t\t%ju data packet%s unnecessarily retransmitted\n"); + p(mturesent, "\t\t%ju resend%s initiated by MTU discovery\n"); + p2a(sndacks, delack, + "\t\t%ju ack-only packet%s (%ju delayed)\n"); + p(sndurg, "\t\t%ju URG only packet%s\n"); + p(sndprobe, "\t\t%ju window probe packet%s\n"); + p(sndwinup, "\t\t%ju window update packet%s\n"); + p(sndctrl, "\t\t%ju control packet%s\n"); + p(rcvtotal, "\t%ju packet%s received\n"); + p2(rcvackpack, rcvackbyte, + "\t\t%ju ack%s (for %ju byte%s)\n"); + p(rcvdupack, "\t\t%ju duplicate ack%s\n"); + p(rcvacktoomuch, "\t\t%ju ack%s for unsent data\n"); + p2(rcvpack, rcvbyte, + "\t\t%ju packet%s (%ju byte%s) received in-sequence\n"); + p2(rcvduppack, rcvdupbyte, + "\t\t%ju completely duplicate packet%s (%ju byte%s)\n"); + p(pawsdrop, "\t\t%ju old duplicate packet%s\n"); + p2(rcvpartduppack, rcvpartdupbyte, + "\t\t%ju packet%s with some dup. data (%ju byte%s duped)\n"); + p2(rcvoopack, rcvoobyte, + "\t\t%ju out-of-order packet%s (%ju byte%s)\n"); + p2(rcvpackafterwin, rcvbyteafterwin, + "\t\t%ju packet%s (%ju byte%s) of data after window\n"); + p(rcvwinprobe, "\t\t%ju window probe%s\n"); + p(rcvwinupd, "\t\t%ju window update packet%s\n"); + p(rcvafterclose, "\t\t%ju packet%s received after close\n"); + p(rcvbadsum, "\t\t%ju discarded for bad checksum%s\n"); + p(rcvbadoff, "\t\t%ju discarded for bad header offset field%s\n"); + p1a(rcvshort, "\t\t%ju discarded because packet too short\n"); + p1a(rcvmemdrop, "\t\t%ju discarded due to memory problems\n"); + p(connattempt, "\t%ju connection request%s\n"); + p(accepts, "\t%ju connection accept%s\n"); + p(badsyn, "\t%ju bad connection attempt%s\n"); + p(listendrop, "\t%ju listen queue overflow%s\n"); + p(badrst, "\t%ju ignored RSTs in the window%s\n"); + p(connects, "\t%ju connection%s established (including accepts)\n"); + p2(closed, drops, + "\t%ju connection%s closed (including %ju drop%s)\n"); + p(cachedrtt, "\t\t%ju connection%s updated cached RTT on close\n"); + p(cachedrttvar, + "\t\t%ju connection%s updated cached RTT variance on close\n"); + p(cachedssthresh, + "\t\t%ju connection%s updated cached ssthresh on close\n"); + p(conndrops, "\t%ju embryonic connection%s dropped\n"); + p2(rttupdated, segstimed, + "\t%ju segment%s updated rtt (of %ju attempt%s)\n"); + p(rexmttimeo, "\t%ju retransmit timeout%s\n"); + p(timeoutdrop, "\t\t%ju connection%s dropped by rexmit timeout\n"); + p(persisttimeo, "\t%ju persist timeout%s\n"); + p(persistdrop, "\t\t%ju connection%s dropped by persist timeout\n"); + p(finwait2_drops, + "\t%ju Connection%s (fin_wait_2) dropped because of timeout\n"); + p(keeptimeo, "\t%ju keepalive timeout%s\n"); + p(keepprobe, "\t\t%ju keepalive probe%s sent\n"); + p(keepdrops, "\t\t%ju connection%s dropped by keepalive\n"); + p(predack, "\t%ju correct ACK header prediction%s\n"); + p(preddat, "\t%ju correct data packet header prediction%s\n"); - p(tcps_sndtotal, "\t%lu packet%s sent\n"); - p2(tcps_sndpack,tcps_sndbyte, "\t\t%lu data packet%s (%lu byte%s)\n"); - p2(tcps_sndrexmitpack, tcps_sndrexmitbyte, - "\t\t%lu data packet%s (%lu byte%s) retransmitted\n"); - p(tcps_sndrexmitbad, - "\t\t%lu data packet%s unnecessarily retransmitted\n"); - p(tcps_mturesent, "\t\t%lu resend%s initiated by MTU discovery\n"); - p2a(tcps_sndacks, tcps_delack, - "\t\t%lu ack-only packet%s (%lu delayed)\n"); - p(tcps_sndurg, "\t\t%lu URG only packet%s\n"); - p(tcps_sndprobe, "\t\t%lu window probe packet%s\n"); - p(tcps_sndwinup, "\t\t%lu window update packet%s\n"); - p(tcps_sndctrl, "\t\t%lu control packet%s\n"); - p(tcps_rcvtotal, "\t%lu packet%s received\n"); - p2(tcps_rcvackpack, tcps_rcvackbyte, - "\t\t%lu ack%s (for %lu byte%s)\n"); - p(tcps_rcvdupack, "\t\t%lu duplicate ack%s\n"); - p(tcps_rcvacktoomuch, "\t\t%lu ack%s for unsent data\n"); - p2(tcps_rcvpack, tcps_rcvbyte, - "\t\t%lu packet%s (%lu byte%s) received in-sequence\n"); - p2(tcps_rcvduppack, tcps_rcvdupbyte, - "\t\t%lu completely duplicate packet%s (%lu byte%s)\n"); - p(tcps_pawsdrop, "\t\t%lu old duplicate packet%s\n"); - p2(tcps_rcvpartduppack, tcps_rcvpartdupbyte, - "\t\t%lu packet%s with some dup. data (%lu byte%s duped)\n"); - p2(tcps_rcvoopack, tcps_rcvoobyte, - "\t\t%lu out-of-order packet%s (%lu byte%s)\n"); - p2(tcps_rcvpackafterwin, tcps_rcvbyteafterwin, - "\t\t%lu packet%s (%lu byte%s) of data after window\n"); - p(tcps_rcvwinprobe, "\t\t%lu window probe%s\n"); - p(tcps_rcvwinupd, "\t\t%lu window update packet%s\n"); - p(tcps_rcvafterclose, "\t\t%lu packet%s received after close\n"); - p(tcps_rcvbadsum, "\t\t%lu discarded for bad checksum%s\n"); - p(tcps_rcvbadoff, "\t\t%lu discarded for bad header offset field%s\n"); - p1a(tcps_rcvshort, "\t\t%lu discarded because packet too short\n"); - p1a(tcps_rcvmemdrop, "\t\t%lu discarded due to memory problems\n"); - p(tcps_connattempt, "\t%lu connection request%s\n"); - p(tcps_accepts, "\t%lu connection accept%s\n"); - p(tcps_badsyn, "\t%lu bad connection attempt%s\n"); - p(tcps_listendrop, "\t%lu listen queue overflow%s\n"); - p(tcps_badrst, "\t%lu ignored RSTs in the window%s\n"); - p(tcps_connects, "\t%lu connection%s established (including accepts)\n"); - p2(tcps_closed, tcps_drops, - "\t%lu connection%s closed (including %lu drop%s)\n"); - p(tcps_cachedrtt, "\t\t%lu connection%s updated cached RTT on close\n"); - p(tcps_cachedrttvar, - "\t\t%lu connection%s updated cached RTT variance on close\n"); - p(tcps_cachedssthresh, - "\t\t%lu connection%s updated cached ssthresh on close\n"); - p(tcps_conndrops, "\t%lu embryonic connection%s dropped\n"); - p2(tcps_rttupdated, tcps_segstimed, - "\t%lu segment%s updated rtt (of %lu attempt%s)\n"); - p(tcps_rexmttimeo, "\t%lu retransmit timeout%s\n"); - p(tcps_timeoutdrop, "\t\t%lu connection%s dropped by rexmit timeout\n"); - p(tcps_persisttimeo, "\t%lu persist timeout%s\n"); - p(tcps_persistdrop, "\t\t%lu connection%s dropped by persist timeout\n"); - p(tcps_finwait2_drops, - "\t%lu Connection%s (fin_wait_2) dropped because of timeout\n"); - p(tcps_keeptimeo, "\t%lu keepalive timeout%s\n"); - p(tcps_keepprobe, "\t\t%lu keepalive probe%s sent\n"); - p(tcps_keepdrops, "\t\t%lu connection%s dropped by keepalive\n"); - p(tcps_predack, "\t%lu correct ACK header prediction%s\n"); - p(tcps_preddat, "\t%lu correct data packet header prediction%s\n"); + p3(sc_added, "\t%ju syncache entr%s added\n"); + p1a(sc_retransmitted, "\t\t%ju retransmitted\n"); + p1a(sc_dupsyn, "\t\t%ju dupsyn\n"); + p1a(sc_dropped, "\t\t%ju dropped\n"); + p1a(sc_completed, "\t\t%ju completed\n"); + p1a(sc_bucketoverflow, "\t\t%ju bucket overflow\n"); + p1a(sc_cacheoverflow, "\t\t%ju cache overflow\n"); + p1a(sc_reset, "\t\t%ju reset\n"); + p1a(sc_stale, "\t\t%ju stale\n"); + p1a(sc_aborted, "\t\t%ju aborted\n"); + p1a(sc_badack, "\t\t%ju badack\n"); + p1a(sc_unreach, "\t\t%ju unreach\n"); + p(sc_zonefail, "\t\t%ju zone failure%s\n"); + p(sc_sendcookie, "\t%ju cookie%s sent\n"); + p(sc_recvcookie, "\t%ju cookie%s received\n"); - p3(tcps_sc_added, "\t%lu syncache entr%s added\n"); - p1a(tcps_sc_retransmitted, "\t\t%lu retransmitted\n"); - p1a(tcps_sc_dupsyn, "\t\t%lu dupsyn\n"); - p1a(tcps_sc_dropped, "\t\t%lu dropped\n"); - p1a(tcps_sc_completed, "\t\t%lu completed\n"); - p1a(tcps_sc_bucketoverflow, "\t\t%lu bucket overflow\n"); - p1a(tcps_sc_cacheoverflow, "\t\t%lu cache overflow\n"); - p1a(tcps_sc_reset, "\t\t%lu reset\n"); - p1a(tcps_sc_stale, "\t\t%lu stale\n"); - p1a(tcps_sc_aborted, "\t\t%lu aborted\n"); - p1a(tcps_sc_badack, "\t\t%lu badack\n"); - p1a(tcps_sc_unreach, "\t\t%lu unreach\n"); - p(tcps_sc_zonefail, "\t\t%lu zone failure%s\n"); - p(tcps_sc_sendcookie, "\t%lu cookie%s sent\n"); - p(tcps_sc_recvcookie, "\t%lu cookie%s received\n"); + p(sack_recovery_episode, "\t%ju SACK recovery episode%s\n"); + p(sack_rexmits, + "\t%ju segment rexmit%s in SACK recovery episodes\n"); + p(sack_rexmit_bytes, + "\t%ju byte rexmit%s in SACK recovery episodes\n"); + p(sack_rcv_blocks, + "\t%ju SACK option%s (SACK blocks) received\n"); + p(sack_send_blocks, "\t%ju SACK option%s (SACK blocks) sent\n"); + p1a(sack_sboverflow, "\t%ju SACK scoreboard overflow\n"); - p(tcps_sack_recovery_episode, "\t%lu SACK recovery episode%s\n"); - p(tcps_sack_rexmits, - "\t%lu segment rexmit%s in SACK recovery episodes\n"); - p(tcps_sack_rexmit_bytes, - "\t%lu byte rexmit%s in SACK recovery episodes\n"); - p(tcps_sack_rcv_blocks, - "\t%lu SACK option%s (SACK blocks) received\n"); - p(tcps_sack_send_blocks, "\t%lu SACK option%s (SACK blocks) sent\n"); - p1a(tcps_sack_sboverflow, "\t%lu SACK scoreboard overflow\n"); + p(ecn_ce, "\t%ju packet%s with ECN CE bit set\n"); + p(ecn_ect0, "\t%ju packet%s with ECN ECT(0) bit set\n"); + p(ecn_ect1, "\t%ju packet%s with ECN ECT(1) bit set\n"); + p(ecn_shs, "\t%ju successful ECN handshake%s\n"); + p(ecn_rcwnd, "\t%ju time%s ECN reduced the congestion window\n"); - p(tcps_ecn_ce, "\t%lu packet%s with ECN CE bit set\n"); - p(tcps_ecn_ect0, "\t%lu packet%s with ECN ECT(0) bit set\n"); - p(tcps_ecn_ect1, "\t%lu packet%s with ECN ECT(1) bit set\n"); - p(tcps_ecn_shs, "\t%lu successful ECN handshake%s\n"); - p(tcps_ecn_rcwnd, "\t%lu time%s ECN reduced the congestion window\n"); + netstat_stat_free(sttp); #undef p #undef p1a #undef p2 ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#18 (text+ko) ==== @@ -129,23 +129,21 @@ { .n_name = "_espstat" }, #define N_IPCOMPSTAT 25 { .n_name = "_ipcompstat" }, -#define N_TCPSTAT 26 - { .n_name = "_tcpstat" }, -#define N_UDPSTAT 27 +#define N_UDPSTAT 26 { .n_name = "_udpstat" }, -#define N_IPSTAT 28 +#define N_IPSTAT 27 { .n_name = "_ipstat" }, -#define N_ICMPSTAT 29 +#define N_ICMPSTAT 28 { .n_name = "_icmpstat" }, -#define N_IGMPSTAT 30 +#define N_IGMPSTAT 29 { .n_name = "_igmpstat" }, -#define N_PIMSTAT 31 +#define N_PIMSTAT 30 { .n_name = "_pimstat" }, -#define N_RIP6STAT 32 +#define N_RIP6STAT 31 { .n_name = "_rip6stat" }, -#define N_SCTPSTAT 33 +#define N_SCTPSTAT 32 { .n_name = "_sctpstat" }, -#define N_MFCTABLESIZE 34 +#define N_MFCTABLESIZE 33 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -163,8 +161,8 @@ int pr_usesysctl; /* non-zero if we use sysctl, not kvm */ int pr_protocol; } protox[] = { - { 0, N_TCPSTAT, 1, NULL, - tcp_stats, NULL, "tcp", 1, IPPROTO_TCP }, + { 0, 0, 1, NULL, + NULL, NULL, "tcp", 1, IPPROTO_TCP }, { 0, N_UDPSTAT, 1, NULL, udp_stats, NULL, "udp", 1, IPPROTO_UDP }, #ifdef SCTP @@ -201,8 +199,8 @@ #ifdef INET6 struct protox ip6protox[] = { - { 0, N_TCPSTAT, 1, NULL, - tcp_stats, NULL, "tcp", 1, IPPROTO_TCP }, + { 0, 0, 1, NULL, + NULL, NULL, "tcp", 1, IPPROTO_TCP }, { 0, N_UDPSTAT, 1, NULL, udp_stats, NULL, "udp", 1, IPPROTO_UDP }, { 0, N_IP6STAT, 1, NULL, @@ -534,6 +532,8 @@ } if (tp) { + if (!live) + kread(0, NULL, 0); printproto(tp, tp->pr_name); exit(0); } @@ -561,11 +561,11 @@ kread(0, NULL, 0); unixpr(kvmd); } - if (af == AF_UNSPEC || af == AF_INET + if ((af == AF_UNSPEC || af == AF_INET #ifdef INET6 || af == AF_INET6 #endif - ) { + ) && !sflag) { stlp = netstat_stl_alloc(); if (stlp == NULL) { warn("netstat_stl_alloc"); @@ -603,6 +603,14 @@ netstat_sti_free(stip); netstat_stl_free(stlp); } + + if (sflag && af == AF_UNSPEC) { + if (!live) + kread(0, NULL, 0); + for (tp = protox; tp->pr_name; tp++) + printproto(tp, tp->pr_name); + } + exit(0); } @@ -644,23 +652,31 @@ tp->pr_name); return; } else { - pr = tp->pr_stats; - if (!pr) { - if (pflag) - printf("%s: no stats routine\n", - tp->pr_name); - return; + /* XXX: temp. hack */ + switch (tp->pr_protocol) { + case IPPROTO_TCP: + tcp_stats(kvmd, "tcp"); + break; + default: + pr = tp->pr_stats; + if (!pr) { + if (pflag) + printf("%s: no stats routine\n", + tp->pr_name); + return; + } + if (tp->pr_usesysctl && live) + off = 0; + else if (tp->pr_sindex < 0) { + if (pflag) + printf( + "%s: stats routine doesn't work on cores\n", + tp->pr_name); + return; + } else + off = nl[tp->pr_sindex].n_value; + break; } - if (tp->pr_usesysctl && live) - off = 0; - else if (tp->pr_sindex < 0) { - if (pflag) - printf( - "%s: stats routine doesn't work on cores\n", - tp->pr_name); - return; - } else - off = nl[tp->pr_sindex].n_value; } } else { pr = tp->pr_cblocks; @@ -675,6 +691,10 @@ } else off = nl[tp->pr_index].n_value; } + + if (sflag) + return; + if ((off || (live && tp->pr_usesysctl) || af != AF_UNSPEC)) { /* XXX: temp. hack */ From owner-p4-projects@FreeBSD.ORG Mon Jul 27 13:34:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 52D8D1065670; Mon, 27 Jul 2009 13:34: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 10E6D1065675; Mon, 27 Jul 2009 13:34:26 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id D61868FC15; Mon, 27 Jul 2009 13:34:25 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 8FBCA46B9D; Mon, 27 Jul 2009 09:34:25 -0400 (EDT) Received: from jhbbsd.hudson-trading.com (unknown [209.249.190.8]) by bigwig.baldwin.cx (Postfix) with ESMTPA id 034508A0A5; Mon, 27 Jul 2009 09:34:25 -0400 (EDT) From: John Baldwin To: Robert Watson Date: Mon, 27 Jul 2009 08:43:13 -0400 User-Agent: KMail/1.9.7 References: <200907230537.n6N5bfaM064484@repoman.freebsd.org> <200907240943.08676.jhb@freebsd.org> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200907270843.13699.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Mon, 27 Jul 2009 09:34:25 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.5 required=4.2 tests=BAYES_00,RDNS_NONE autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: Perforce Change Reviews , Jonathan Anderson Subject: Re: PERFORCE change 166430 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 13:34:27 -0000 On Sunday 26 July 2009 5:42:49 am Robert Watson wrote: > On Fri, 24 Jul 2009, John Baldwin wrote: > > > On Thursday 23 July 2009 1:37:41 am Jonathan Anderson wrote: > >> http://perforce.freebsd.org/chv.cgi?CH=166430 > >> > >> Change 166430 by jona@jona-trustedbsd-belle-vmware on 2009/07/23 05:36:50 > >> > >> mmap() can fail and return MAP_FAILED, not just NULL\! > > > > MAP_FAILED is actually the only invalid pointer it will return. This should > > probably not be checking for NULL. > > NULL is actually a valid place to map a page, and therefore can be returned by > a successful mapping. In fact, this has been a key requirement for exploiting > a number of recent Linux (and one FreeBSD) kernel security vulnerabilities, in > which a NULL function pointer is dereferenced by the kernel without properly > checking first. If userspace maps kernel exploit code at NULL or a suitable > relative offset, that code will run with kernel privilege. Ah, I did not realize the NULL check was a security check rather than a correctness check. -- John Baldwin From owner-p4-projects@FreeBSD.ORG Mon Jul 27 13:49:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5F34610656CA; Mon, 27 Jul 2009 13:49: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 1AC6F10656C8 for ; Mon, 27 Jul 2009 13:49:46 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 08D338FC08 for ; Mon, 27 Jul 2009 13:49:46 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RDnjUO084498 for ; Mon, 27 Jul 2009 13:49:45 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RDnj7V084496 for perforce@freebsd.org; Mon, 27 Jul 2009 13:49:45 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 13:49:45 GMT Message-Id: <200907271349.n6RDnj7V084496@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166618 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 13:49:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=166618 Change 166618 by pgj@petymeg-current on 2009/07/27 13:48:58 Improve error handling in tcp_stats(). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#25 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#25 (text+ko) ==== @@ -246,7 +246,7 @@ { const struct tcp_stat *s; struct stat_type *sttp; - int stt_flags; + int stt_flags, error; #ifdef INET6 if (tcp_done != 0) @@ -271,7 +271,12 @@ } if (netstat_stat(stat_TCP, sttp, stt_flags, kvmd) < 0) { - return; + error = netstat_stat_geterror(sttp); + if (error == NETSTAT_ERROR_KVM) + warnx("netstat_stat: %s", kvm_geterr(kvmd)); + else + warnx("netstat_stat: %s", netstat_strerror(error)); + goto out; } s = netstat_get_tcpstats(sttp); @@ -387,6 +392,7 @@ p(ecn_shs, "\t%ju successful ECN handshake%s\n"); p(ecn_rcwnd, "\t%ju time%s ECN reduced the congestion window\n"); +out: netstat_stat_free(sttp); #undef p #undef p1a From owner-p4-projects@FreeBSD.ORG Mon Jul 27 14:46:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1A8E3106566C; Mon, 27 Jul 2009 14:46:49 +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 CDED2106564A for ; Mon, 27 Jul 2009 14:46:48 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B10178FC31 for ; Mon, 27 Jul 2009 14:46:48 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6REkm0d089801 for ; Mon, 27 Jul 2009 14:46:48 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6REkmPB089799 for perforce@freebsd.org; Mon, 27 Jul 2009 14:46:48 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 14:46:48 GMT Message-Id: <200907271446.n6REkmPB089799@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166622 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 14:46:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=166622 Change 166622 by pgj@petymeg-current on 2009/07/27 14:46:41 Standardize struct udpstat, add header. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/udp_usrreq.c#4 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/udp_var.h#3 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/udp_usrreq.c#4 (text+ko) ==== @@ -82,6 +82,7 @@ #endif #include #include +#include #include #ifdef IPSEC @@ -139,6 +140,10 @@ struct inpcbhead udb; /* from udp_var.h */ struct inpcbinfo udbinfo; static uma_zone_t udpcb_zone; +struct stat_header udpstat_header = { + .sth_version = UDPSTAT_VERSION, + .sth_len = sizeof(struct udpstat) +}; struct udpstat udpstat; /* from udp_var.h */ #endif @@ -150,6 +155,10 @@ CTLFLAG_RW, udpstat, udpstat, "UDP statistics (struct udpstat, netinet/udp_var.h)"); +SYSCTL_V_STRUCT(V_NET, vnet_inet, _net_inet_udp, OID_AUTO, stats_header, + CTLFLAG_RD, udpstat_header, stat_header, + "UDP statistics header"); + static void udp_detach(struct socket *so); static int udp_output(struct inpcb *, struct mbuf *, struct sockaddr *, struct mbuf *, struct thread *); ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/udp_var.h#3 (text+ko) ==== @@ -64,24 +64,28 @@ #define intoudpcb(ip) ((struct udpcb *)(ip)->inp_ppcb) #define sotoudpcb(so) (intoudpcb(sotoinpcb(so))) +#define UDPSTAT_VERSION 0x00000001 + struct udpstat { /* input statistics: */ - u_long udps_ipackets; /* total input packets */ - u_long udps_hdrops; /* packet shorter than header */ - u_long udps_badsum; /* checksum error */ - u_long udps_nosum; /* no checksum */ - u_long udps_badlen; /* data length larger than packet */ - u_long udps_noport; /* no socket on port */ - u_long udps_noportbcast; /* of above, arrived as broadcast */ - u_long udps_fullsock; /* not delivered, input socket full */ - u_long udpps_pcbcachemiss; /* input packets missing pcb cache */ - u_long udpps_pcbhashmiss; /* input packets not for hashed pcb */ + u_int64_t udps_ipackets; /* total input packets */ + u_int64_t udps_hdrops; /* packet shorter than header */ + u_int64_t udps_badsum; /* checksum error */ + u_int64_t udps_nosum; /* no checksum */ + u_int64_t udps_badlen; /* data length larger than packet */ + u_int64_t udps_noport; /* no socket on port */ + u_int64_t udps_noportbcast; /* of above, arrived as broadcast */ + u_int64_t udps_fullsock; /* not delivered, input socket full */ + u_int64_t udpps_pcbcachemiss; /* input packets missing pcb cache */ + u_int64_t udpps_pcbhashmiss; /* input packets not for hashed pcb */ + u_int64_t udps_delivered; + /* output statistics: */ - u_long udps_opackets; /* total output packets */ - u_long udps_fastout; /* output packets on fast path */ + u_int64_t udps_opackets; /* total output packets */ + u_int64_t udps_fastout; /* output packets on fast path */ /* of no socket on port, arrived as multicast */ - u_long udps_noportmcast; - u_long udps_filtermcast; /* blocked by multicast filter */ + u_int64_t udps_noportmcast; + u_int64_t udps_filtermcast; /* blocked by multicast filter */ }; #ifdef _KERNEL From owner-p4-projects@FreeBSD.ORG Mon Jul 27 14:47:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4738E1065672; Mon, 27 Jul 2009 14:47:50 +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 07390106566B for ; Mon, 27 Jul 2009 14:47:50 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E8F538FC19 for ; Mon, 27 Jul 2009 14:47:49 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RElnPD089858 for ; Mon, 27 Jul 2009 14:47:49 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RElnS4089856 for perforce@freebsd.org; Mon, 27 Jul 2009 14:47:49 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 14:47:49 GMT Message-Id: <200907271447.n6RElnS4089856@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166623 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 14:47:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=166623 Change 166623 by pgj@petymeg-current on 2009/07/27 14:47:10 Add support for UDP statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#34 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#32 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#38 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#34 (text+ko) ==== @@ -116,6 +116,7 @@ enum stat { stat_TCP = 0, + stat_UDP, stat_MAX, stat_Invalid, }; @@ -142,6 +143,7 @@ struct stat_type; struct tcp_stat; +struct udp_stat; __BEGIN_DECLS const char *netstat_strerror(int); @@ -425,4 +427,22 @@ u_int64_t netstat_tcps_get_ecn_ect1(const struct tcp_stat *); u_int64_t netstat_tcps_get_ecn_shs(const struct tcp_stat *); u_int64_t netstat_tcps_get_ecn_rcwnd(const struct tcp_stat *); + +const struct udp_stat *netstat_get_udpstats(const struct stat_type *); + +u_int64_t netstat_udps_get_ipackets(const struct udp_stat *); +u_int64_t netstat_udps_get_hdrops(const struct udp_stat *); +u_int64_t netstat_udps_get_badsum(const struct udp_stat *); +u_int64_t netstat_udps_get_nosum(const struct udp_stat *); +u_int64_t netstat_udps_get_badlen(const struct udp_stat *); +u_int64_t netstat_udps_get_noport(const struct udp_stat *); +u_int64_t netstat_udps_get_noportbcast(const struct udp_stat *); +u_int64_t netstat_udps_get_fullsock(const struct udp_stat *); +u_int64_t netstat_udps_get_pcbcachemiss(const struct udp_stat *); +u_int64_t netstat_udps_get_pcbhashmiss(const struct udp_stat *); +u_int64_t netstat_udps_get_delivered(const struct udp_stat *); +u_int64_t netstat_udps_get_opackets(const struct udp_stat *); +u_int64_t netstat_udps_get_fastout(const struct udp_stat *); +u_int64_t netstat_udps_get_noportmcast(const struct udp_stat *); +u_int64_t netstat_udps_get_filtermcast(const struct udp_stat *); #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#32 (text+ko) ==== @@ -38,8 +38,12 @@ #include #include #include +#include +#include #include #include +#include +#include #include "netstat.h" @@ -281,6 +285,10 @@ struct tcpstat s; }; +struct udp_stat { + struct udpstat s; +}; + int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#2 (text+ko) ==== @@ -29,7 +29,12 @@ #include #include +#include +#include +#include #include +#include +#include #include #include @@ -50,6 +55,7 @@ const char *kvm; } stat_info [] = { { TCPSTAT_VERSION, "net.inet.tcp.stats", "_tcpstat" }, + { UDPSTAT_VERSION, "net.inet.udp.stats", "_udpstat" }, }; int @@ -60,6 +66,7 @@ char symbuf[64]; struct stat_header head; + struct udpstat *u; int res; if (type >= stat_MAX) { @@ -109,6 +116,15 @@ } memcpy(sttp->stt_data, buffer, head.sth_len); + + if (sttp->stt_type == stat_UDP) { + u = (struct udpstat *)sttp->stt_data; + u->udps_delivered = + u->udps_ipackets - u->udps_hdrops - u->udps_badlen - + u->udps_badsum - u->udps_noport - u->udps_noportbcast - + u->udps_fullsock; + } + return (0); } ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#38 (text+ko) ==== @@ -1794,6 +1794,105 @@ return (tsp->s.tcps_ecn_rcwnd); } +const struct udp_stat * +netstat_get_udpstats(const struct stat_type *sttp) +{ + if (sttp->stt_type == stat_UDP) { + return ((const struct udp_stat *) sttp->stt_data); + } + return (NULL); +} + +u_int64_t +netstat_udps_get_ipackets(const struct udp_stat *usp) +{ + return (usp->s.udps_ipackets); +} + +u_int64_t +netstat_udps_get_hdrops(const struct udp_stat *usp) +{ + return (usp->s.udps_hdrops); +} + +u_int64_t +netstat_udps_get_badsum(const struct udp_stat *usp) +{ + return (usp->s.udps_badsum); +} + +u_int64_t +netstat_udps_get_nosum(const struct udp_stat *usp) +{ + return (usp->s.udps_nosum); +} + +u_int64_t +netstat_udps_get_badlen(const struct udp_stat *usp) +{ + return (usp->s.udps_badlen); +} + +u_int64_t +netstat_udps_get_noport(const struct udp_stat *usp) +{ + return (usp->s.udps_noport); +} + +u_int64_t +netstat_udps_get_noportbcast(const struct udp_stat *usp) +{ + return (usp->s.udps_noportbcast); +} + +u_int64_t +netstat_udps_get_fullsock(const struct udp_stat *usp) +{ + return (usp->s.udps_fullsock); +} + +u_int64_t +netstat_udps_get_pcbcachemiss(const struct udp_stat *usp) +{ + return (usp->s.udpps_pcbcachemiss); +} + +u_int64_t +netstat_udps_get_pcbhashmiss(const struct udp_stat *usp) +{ + return (usp->s.udpps_pcbhashmiss); +} + +u_int64_t +netstat_udps_get_delivered(const struct udp_stat *usp) +{ + return (usp->s.udps_delivered); +} + +u_int64_t +netstat_udps_get_opackets(const struct udp_stat *usp) +{ + return (usp->s.udps_opackets); +} + +u_int64_t +netstat_udps_get_fastout(const struct udp_stat *usp) +{ + return (usp->s.udps_fastout); +} + +u_int64_t +netstat_udps_get_noportmcast(const struct udp_stat *usp) +{ + return (usp->s.udps_noportmcast); +} + +u_int64_t +netstat_udps_get_filtermcast(const struct udp_stat *usp) +{ + return (usp->s.udps_filtermcast); +} + const char * routename(in_addr_t in, int numeric) From owner-p4-projects@FreeBSD.ORG Mon Jul 27 14:48:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7FEA81065676; Mon, 27 Jul 2009 14:48: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 3FA2F106564A for ; Mon, 27 Jul 2009 14:48:51 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2CBFF8FC23 for ; Mon, 27 Jul 2009 14:48:51 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6REmpTo089925 for ; Mon, 27 Jul 2009 14:48:51 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6REmpYL089923 for perforce@freebsd.org; Mon, 27 Jul 2009 14:48:51 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 14:48:51 GMT Message-Id: <200907271448.n6REmpYL089923@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166624 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 14:48:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=166624 Change 166624 by pgj@petymeg-current on 2009/07/27 14:47:50 Teach netstat(1) to use libnetstat(3) for UDP statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#11 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#26 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#19 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#11 (text+ko) ==== @@ -75,7 +75,7 @@ void inetppr(const struct socket_type *); void unixdomainpr(const struct socket_type *); void tcp_stats(void *, const char *); -void udp_stats(u_long, const char *, int, int); +void udp_stats(void *, const char *); #ifdef SCTP void sctp_protopr(u_long, const char *, int, int); void sctp_stats(u_long, const char *, int, int); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#26 (text+ko) ==== @@ -405,11 +405,11 @@ * Dump UDP statistics structure. */ void -udp_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +udp_stats(void *kvmd, const char *name) { - struct udpstat udpstat, zerostat; - size_t len = sizeof udpstat; - u_long delivered; + const struct udp_stat *s; + struct stat_type *sttp; + int stt_flags, error; #ifdef INET6 if (udp_done != 0) @@ -418,45 +418,54 @@ udp_done = 1; #endif - if (live) { - if (zflag) - memset(&zerostat, 0, len); - if (sysctlbyname("net.inet.udp.stats", &udpstat, &len, - zflag ? &zerostat : NULL, zflag ? len : 0) < 0) { - warn("sysctl: net.inet.udp.stats"); - return; - } - } else - kread(off, &udpstat, len); + if (zflag) { + netstat_zerostat(stat_UDP); + return; + } + + stt_flags = 0; + if (!live) + stt_flags |= NETSTAT_STAT_KVM; + + sttp = netstat_stat_alloc(); + if (sttp == NULL) { + warn("netstat_stat_alloc"); + return; + } + + if (netstat_stat(stat_UDP, sttp, stt_flags, kvmd) < 0) { + error = netstat_stat_geterror(sttp); + if (error == NETSTAT_ERROR_KVM) + warnx("netstat_stat: %s", kvm_geterr(kvmd)); + else + warnx("netstat_stat: %s", netstat_strerror(error)); + goto out; + } + + s = netstat_get_udpstats(sttp); printf("%s:\n", name); -#define p(f, m) if (udpstat.f || sflag <= 1) \ - printf(m, udpstat.f, plural(udpstat.f)) -#define p1a(f, m) if (udpstat.f || sflag <= 1) \ - printf(m, udpstat.f) - p(udps_ipackets, "\t%lu datagram%s received\n"); - p1a(udps_hdrops, "\t%lu with incomplete header\n"); - p1a(udps_badlen, "\t%lu with bad data length field\n"); - p1a(udps_badsum, "\t%lu with bad checksum\n"); - p1a(udps_nosum, "\t%lu with no checksum\n"); - p1a(udps_noport, "\t%lu dropped due to no socket\n"); - p(udps_noportbcast, - "\t%lu broadcast/multicast datagram%s undelivered\n"); - p1a(udps_fullsock, "\t%lu dropped due to full socket buffers\n"); - p1a(udpps_pcbhashmiss, "\t%lu not for hashed pcb\n"); - delivered = udpstat.udps_ipackets - - udpstat.udps_hdrops - - udpstat.udps_badlen - - udpstat.udps_badsum - - udpstat.udps_noport - - udpstat.udps_noportbcast - - udpstat.udps_fullsock; - if (delivered || sflag <= 1) - printf("\t%lu delivered\n", delivered); - p(udps_opackets, "\t%lu datagram%s output\n"); +#define p(f, m) if (netstat_udps_get_##f(s) || sflag <= 1) \ + printf(m, netstat_udps_get_##f(s), plural(netstat_udps_get_##f(s))) +#define p1a(f, m) if (netstat_udps_get_##f(s) || sflag <= 1) \ + printf(m, netstat_udps_get_##f(s)) + p(ipackets, "\t%ju datagram%s received\n"); + p1a(hdrops, "\t%ju with incomplete header\n"); + p1a(badlen, "\t%ju with bad data length field\n"); + p1a(badsum, "\t%ju with bad checksum\n"); + p1a(nosum, "\t%ju with no checksum\n"); + p1a(noport, "\t%ju dropped due to no socket\n"); + p(noportbcast, + "\t%ju broadcast/multicast datagram%s undelivered\n"); + p1a(fullsock, "\t%ju dropped due to full socket buffers\n"); + p1a(pcbhashmiss, "\t%ju not for hashed pcb\n"); + p1a(delivered, "\t%ju delivered\n"); + p(opackets, "\t%ju datagram%s output\n"); /* the next statistic is cumulative in udps_noportbcast */ - p(udps_filtermcast, - "\t%lu time%s multicast source filter matched\n"); + p(filtermcast, + "\t%ju time%s multicast source filter matched\n"); +out: + netstat_stat_free(sttp); #undef p #undef p1a } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#19 (text+ko) ==== @@ -129,21 +129,19 @@ { .n_name = "_espstat" }, #define N_IPCOMPSTAT 25 { .n_name = "_ipcompstat" }, -#define N_UDPSTAT 26 - { .n_name = "_udpstat" }, -#define N_IPSTAT 27 +#define N_IPSTAT 26 { .n_name = "_ipstat" }, -#define N_ICMPSTAT 28 +#define N_ICMPSTAT 27 { .n_name = "_icmpstat" }, -#define N_IGMPSTAT 29 +#define N_IGMPSTAT 28 { .n_name = "_igmpstat" }, -#define N_PIMSTAT 30 +#define N_PIMSTAT 29 { .n_name = "_pimstat" }, -#define N_RIP6STAT 31 +#define N_RIP6STAT 30 { .n_name = "_rip6stat" }, -#define N_SCTPSTAT 32 +#define N_SCTPSTAT 31 { .n_name = "_sctpstat" }, -#define N_MFCTABLESIZE 33 +#define N_MFCTABLESIZE 32 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -163,8 +161,8 @@ } protox[] = { { 0, 0, 1, NULL, NULL, NULL, "tcp", 1, IPPROTO_TCP }, - { 0, N_UDPSTAT, 1, NULL, - udp_stats, NULL, "udp", 1, IPPROTO_UDP }, + { 0, 0, 1, NULL, + NULL, NULL, "udp", 1, IPPROTO_UDP }, #ifdef SCTP { -1, N_SCTPSTAT, 1, sctp_protopr, sctp_stats, NULL, "sctp", 1, IPPROTO_SCTP }, @@ -201,8 +199,8 @@ struct protox ip6protox[] = { { 0, 0, 1, NULL, NULL, NULL, "tcp", 1, IPPROTO_TCP }, - { 0, N_UDPSTAT, 1, NULL, - udp_stats, NULL, "udp", 1, IPPROTO_UDP }, + { 0, 0, 1, NULL, + NULL, NULL, "udp", 1, IPPROTO_UDP }, { 0, N_IP6STAT, 1, NULL, ip6_stats, ip6_ifstats, "ip6", 1, IPPROTO_RAW }, { 0, N_ICMP6STAT, 1, NULL, @@ -657,6 +655,9 @@ case IPPROTO_TCP: tcp_stats(kvmd, "tcp"); break; + case IPPROTO_UDP: + udp_stats(kvmd, "udp"); + break; default: pr = tp->pr_stats; if (!pr) { From owner-p4-projects@FreeBSD.ORG Mon Jul 27 15:39:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4D45D1065672; Mon, 27 Jul 2009 15:39:47 +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 0CF31106564A for ; Mon, 27 Jul 2009 15:39:47 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EDFBA8FC0C for ; Mon, 27 Jul 2009 15:39:46 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RFdksu094533 for ; Mon, 27 Jul 2009 15:39:46 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RFdkPd094531 for perforce@freebsd.org; Mon, 27 Jul 2009 15:39:46 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 15:39:46 GMT Message-Id: <200907271539.n6RFdkPd094531@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166626 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 15:39:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=166626 Change 166626 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 15:38:53 Handling passing of umasks for open() calls which create files (rather than using a default 0666) Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel-powerbox.h#3 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.c#12 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.h#12 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.cpp#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/cap.c#7 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/cap.h#4 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/powerbox.c#9 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.c#18 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel-powerbox.h#3 (text+ko) ==== @@ -60,6 +60,7 @@ int filterlen; /* length of filter expression */ int flags; /* open() flags, e.g. O_RDONLY */ cap_rights_t rights; /* capabilities, e.g. CAP_SEEK */ + int umask; /* umask, for open() with O_CREAT */ }; ==== //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.c#12 (text+ko) ==== @@ -199,7 +199,7 @@ -int ua_open(const char *path, int flags) +int ua_open(const char *path, int flags, ...) { cap_rights_t rights = CAP_FSTAT | CAP_SEEK | CAP_FSYNC; @@ -209,12 +209,21 @@ if(flags & O_DIRECTORY) rights |= CAP_FSTATFS | CAP_FEXECVE; - return ua_ropen(path, flags, rights); + int mask = 0; + if(flags & O_CREAT) + { + va_list args; + va_start(args, flags); + mask = va_arg(args, int); + va_end(args); + } + + return ua_ropen(path, flags, rights, mask); } -int ua_ropen(const char *path, int flags, cap_rights_t rights) +int ua_ropen(const char *path, int flags, cap_rights_t rights, int mask) { if(angel < 0) angel = ua_find(); if(angel < 0) return -1; @@ -224,14 +233,14 @@ data[1] = ua_marshall_string(path, strlen(path)); data[2] = ua_marshall_int(flags); data[3] = ua_marshall_int(rights); + data[4] = ua_marshall_int(mask); - for(int i = 0; i < 4; i++) if(ua_send(angel, data[i], NULL, 0) < 0) return -1; - - free(data[0]); - free(data[1]); - free(data[2]); - free(data[3]); + for(int i = 0; i <= 4; i++) + { + if(ua_send(angel, data[i], NULL, 0) < 0) return -1; + free(data[i]); + } @@ -639,7 +648,7 @@ datum* ua_marshall_powerbox(const struct ua_powerbox_options *options) { - datum *data[8]; + datum *data[9]; data[0] = ua_marshall_int(options->ui); data[1] = ua_marshall_int(options->operation); data[2] = ua_marshall_int(options->parent_window); @@ -648,9 +657,10 @@ data[5] = ua_marshall_string(options->filter, options->filterlen); data[6] = ua_marshall_int(options->flags); data[7] = ua_marshall_int(options->rights); + data[8] = ua_marshall_int(options->umask); int total_size = 0; - for(int i = 0; i < 8; i++) + for(int i = 0; i <= 8; i++) if(data[i] == NULL) { errno = EINVAL; @@ -664,7 +674,7 @@ char *buffer = ((char*) d) + sizeof(datum); char *head = buffer; - for(int i = 0; i < 8; i++) + for(int i = 0; i <= 8; i++) { memcpy(head, data[i], sizeof(datum) + data[i]->length); head += sizeof(datum) + data[i]->length; @@ -736,6 +746,10 @@ if(ua_unmarshall_int(head, &tmp_int) < 0) return -1; options->rights = tmp_int; + head = (const datum*) (((const char*) head) + sizeof(datum) + head->length); + + if(ua_unmarshall_int(head, &tmp_int) < 0) return -1; + options->umask = tmp_int; return sizeof(datum) + d->length; ==== //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.h#12 (text+ko) ==== @@ -63,10 +63,10 @@ int ua_stat(const char *path, struct stat *s); /** Open a file via the User Angel */ -int ua_open(const char *path, int flags); +int ua_open(const char *path, int flags, ...); /** Open a file via the User Angel, specifying rights the capability should have */ -int ua_ropen(const char *path, int flags, cap_rights_t rights); +int ua_ropen(const char *path, int flags, cap_rights_t rights, int umask); /** Open a file stream via the User Angel */ FILE* ua_fopen(const char *path, const char *mode); ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.cpp#2 (text+ko) ==== @@ -139,6 +139,7 @@ options.filterlen = 0; options.flags = O_WRONLY | O_CREAT | O_TRUNC; options.rights = CAP_FSTAT | CAP_SEEK | CAP_FSYNC | CAP_WRITE | CAP_FTRUNCATE; + options.umask = 0666; int fdcount = 1; int fd; ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/cap.c#7 (text+ko) ==== @@ -45,9 +45,9 @@ const char *cap_error() { return errstr; } -int cap_open(const char *path, int flags, cap_rights_t rights) +int cap_open(const char *path, int flags, cap_rights_t rights, int umask) { - int fd = open(path, flags); + int fd = open(path, flags, umask); if(fd < 0) { if(strlen(path) > 256) path = ""; ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/cap.h#4 (text+ko) ==== @@ -46,5 +46,5 @@ /** Open a file in capability mode with specified rights */ -int cap_open(const char *path, int flags, cap_rights_t rights); +int cap_open(const char *path, int flags, cap_rights_t rights, int umask); ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/powerbox.c#9 (text+ko) ==== @@ -70,7 +70,8 @@ // open the files using the requested flags and rights for(int i = 0; i < *len; i++) { - fds[i] = cap_open(names[i], options->flags, options->rights); + fds[i] = cap_open(names[i], options->flags, options->rights, + options->umask); if(fds[i] < 0) { perror("Error opening file capability"); ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.c#18 (text+ko) ==== @@ -429,12 +429,13 @@ if(ua_unmarshall_string(d, path, &pathlen) < 0) return -1; printf(": '%s'\n", path); - int32_t flags, rights; + int32_t flags, rights, umask; if(ua_unmarshall_int(ua_recv(sock, NULL, NULL), &flags) < 0) return -1; if(ua_unmarshall_int(ua_recv(sock, NULL, NULL), &rights) < 0) return -1; + if(ua_unmarshall_int(ua_recv(sock, NULL, NULL), &umask) < 0) return -1; - int cap = cap_open(path, flags, rights); + int cap = cap_open(path, flags, rights, umask); if(cap < 0) return 1; d = ua_marshall_int(1); From owner-p4-projects@FreeBSD.ORG Mon Jul 27 16:07:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 88A5D1065672; Mon, 27 Jul 2009 16:07:17 +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 432A3106566B for ; Mon, 27 Jul 2009 16:07:17 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 30DBF8FC1B for ; Mon, 27 Jul 2009 16:07:17 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RG7Hwu097541 for ; Mon, 27 Jul 2009 16:07:17 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RG7H1S097539 for perforce@freebsd.org; Mon, 27 Jul 2009 16:07:17 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 16:07:17 GMT Message-Id: <200907271607.n6RG7H1S097539@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166628 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 16:07:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=166628 Change 166628 by pgj@petymeg-current on 2009/07/27 16:06:46 Add header for CARP statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_carp.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_carp.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_carp.c#2 (text+ko) ==== @@ -88,6 +88,7 @@ #include #include +#include #define CARP_IFNAME "carp" static MALLOC_DEFINE(M_CARP, "CARP", "CARP interfaces"); @@ -149,11 +150,19 @@ SYSCTL_INT(_net_inet_carp, OID_AUTO, suppress_preempt, CTLFLAG_RD, &carp_suppress_preempt, 0, "Preemption is suppressed"); +struct stat_header carpstats_header = { + .sth_version = CARPSTAT_VERSION, + .sth_len = sizeof(struct carpstats), +}; struct carpstats carpstats; SYSCTL_STRUCT(_net_inet_carp, CARPCTL_STATS, stats, CTLFLAG_RW, &carpstats, carpstats, "CARP statistics (struct carpstats, netinet/ip_carp.h)"); +SYSCTL_STRUCT(_net_inet_carp, OID_AUTO, stats_header, CTLFLAG_RD, + &carpstats_header, stat_header, + "CARP statistics header"); + struct carp_if { TAILQ_HEAD(, carp_softc) vhif_vrs; int vhif_nvrs; ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_carp.h#2 (text+ko) ==== @@ -96,6 +96,8 @@ /* * Statistics. */ +#define CARPSTAT_VERSION 0x00000001 + struct carpstats { uint64_t carps_ipackets; /* total input packets, IPv4 */ uint64_t carps_ipackets6; /* total input packets, IPv6 */ From owner-p4-projects@FreeBSD.ORG Mon Jul 27 16:08:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 154561065679; Mon, 27 Jul 2009 16:08: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 7B2C01065677 for ; Mon, 27 Jul 2009 16:08:18 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 692508FC13 for ; Mon, 27 Jul 2009 16:08:18 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RG8IKj097599 for ; Mon, 27 Jul 2009 16:08:18 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RG8IGW097597 for perforce@freebsd.org; Mon, 27 Jul 2009 16:08:18 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 16:08:18 GMT Message-Id: <200907271608.n6RG8IGW097597@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166629 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 16:08:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=166629 Change 166629 by pgj@petymeg-current on 2009/07/27 16:07:51 Add support for CARP statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#35 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#33 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#39 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#35 (text+ko) ==== @@ -117,6 +117,7 @@ enum stat { stat_TCP = 0, stat_UDP, + stat_CARP, stat_MAX, stat_Invalid, }; @@ -144,6 +145,7 @@ struct stat_type; struct tcp_stat; struct udp_stat; +struct carp_stat; __BEGIN_DECLS const char *netstat_strerror(int); @@ -445,4 +447,23 @@ u_int64_t netstat_udps_get_fastout(const struct udp_stat *); u_int64_t netstat_udps_get_noportmcast(const struct udp_stat *); u_int64_t netstat_udps_get_filtermcast(const struct udp_stat *); + +const struct carp_stat *netstat_get_carpstats(const struct stat_type *); + +u_int64_t netstat_carps_get_ipackets(const struct carp_stat *); +u_int64_t netstat_carps_get_ipackets6(const struct carp_stat *); +u_int64_t netstat_carps_get_badif(const struct carp_stat *); +u_int64_t netstat_carps_get_badttl(const struct carp_stat *); +u_int64_t netstat_carps_get_hdrops(const struct carp_stat *); +u_int64_t netstat_carps_get_badsum(const struct carp_stat *); +u_int64_t netstat_carps_get_badver(const struct carp_stat *); +u_int64_t netstat_carps_get_badlen(const struct carp_stat *); +u_int64_t netstat_carps_get_badauth(const struct carp_stat *); +u_int64_t netstat_carps_get_badvhid(const struct carp_stat *); +u_int64_t netstat_carps_get_badaddrs(const struct carp_stat *); +u_int64_t netstat_carps_get_opackets(const struct carp_stat *); +u_int64_t netstat_carps_get_opackets6(const struct carp_stat *); +u_int64_t netstat_carps_get_onomem(const struct carp_stat *); +u_int64_t netstat_carps_get_ostates(const struct carp_stat *); +u_int64_t netstat_carps_get_preempt(const struct carp_stat *); #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#33 (text+ko) ==== @@ -44,6 +44,7 @@ #include #include #include +#include #include "netstat.h" @@ -289,6 +290,10 @@ struct udpstat s; }; +struct carp_stat { + struct carpstats s; +}; + int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#3 (text+ko) ==== @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -56,6 +57,7 @@ } stat_info [] = { { TCPSTAT_VERSION, "net.inet.tcp.stats", "_tcpstat" }, { UDPSTAT_VERSION, "net.inet.udp.stats", "_udpstat" }, + { CARPSTAT_VERSION, "net.inet.carp.stats", "_carpstats" }, }; int ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#39 (text+ko) ==== @@ -1893,6 +1893,111 @@ return (usp->s.udps_filtermcast); } +const struct carp_stat * +netstat_get_carpstats(const struct stat_type *sttp) +{ + if (sttp->stt_type == stat_CARP) { + return ((const struct carp_stat *) sttp->stt_data); + } + return (NULL); +} + +u_int64_t +netstat_carps_get_ipackets(const struct carp_stat *csp) +{ + return (csp->s.carps_ipackets); +} + +u_int64_t +netstat_carps_get_ipackets6(const struct carp_stat *csp) +{ + return (csp->s.carps_ipackets6); +} + +u_int64_t +netstat_carps_get_badif(const struct carp_stat *csp) +{ + return (csp->s.carps_badif); +} + +u_int64_t +netstat_carps_get_badttl(const struct carp_stat *csp) +{ + return (csp->s.carps_badttl); +} + +u_int64_t +netstat_carps_get_hdrops(const struct carp_stat *csp) +{ + return (csp->s.carps_hdrops); +} + +u_int64_t +netstat_carps_get_badsum(const struct carp_stat *csp) +{ + return (csp->s.carps_badsum); +} + +u_int64_t +netstat_carps_get_badver(const struct carp_stat *csp) +{ + return (csp->s.carps_badver); +} + +u_int64_t +netstat_carps_get_badlen(const struct carp_stat *csp) +{ + return (csp->s.carps_badlen); +} + +u_int64_t +netstat_carps_get_badauth(const struct carp_stat *csp) +{ + return (csp->s.carps_badauth); +} + +u_int64_t +netstat_carps_get_badvhid(const struct carp_stat *csp) +{ + return (csp->s.carps_badvhid); +} + +u_int64_t +netstat_carps_get_badaddrs(const struct carp_stat *csp) +{ + return (csp->s.carps_badaddrs); +} + +u_int64_t +netstat_carps_get_opackets(const struct carp_stat *csp) +{ + return (csp->s.carps_opackets); +} + +u_int64_t +netstat_carps_get_opackets6(const struct carp_stat *csp) +{ + return (csp->s.carps_opackets6); +} + +u_int64_t +netstat_carps_get_onomem(const struct carp_stat *csp) +{ + return (csp->s.carps_onomem); +} + +u_int64_t +netstat_carps_get_ostates(const struct carp_stat *csp) +{ + return (csp->s.carps_ostates); +} + +u_int64_t +netstat_carps_get_preempt(const struct carp_stat *csp) +{ + return (csp->s.carps_preempt); +} + const char * routename(in_addr_t in, int numeric) From owner-p4-projects@FreeBSD.ORG Mon Jul 27 16:09:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6DA3C1065673; Mon, 27 Jul 2009 16:09:20 +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 039E71065672 for ; Mon, 27 Jul 2009 16:09:20 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A1AA58FC12 for ; Mon, 27 Jul 2009 16:09:19 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RG9Jdq097664 for ; Mon, 27 Jul 2009 16:09:19 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RG9JgG097662 for perforce@freebsd.org; Mon, 27 Jul 2009 16:09:19 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 16:09:19 GMT Message-Id: <200907271609.n6RG9JgG097662@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166630 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 16:09:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=166630 Change 166630 by pgj@petymeg-current on 2009/07/27 16:08:46 Modify carp_stats() to call libnetstat(3). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#12 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#27 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#20 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#12 (text+ko) ==== @@ -84,7 +84,7 @@ void icmp_stats(u_long, const char *, int, int); void igmp_stats(u_long, const char *, int, int); void pim_stats(u_long, const char *, int, int); -void carp_stats(u_long, const char *, int, int); +void carp_stats(void *, const char *); void pfsync_stats(u_long, const char *, int, int); #ifdef IPSEC void ipsec_stats(u_long, const char *, int, int); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#27 (text+ko) ==== @@ -474,49 +474,63 @@ * Dump CARP statistics structure. */ void -carp_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +carp_stats(void *kvmd, const char *name) { - struct carpstats carpstat, zerostat; - size_t len = sizeof(struct carpstats); + const struct carp_stat *s; + struct stat_type *sttp; + int stt_flags, error; + + if (zflag) { + netstat_zerostat(stat_CARP); + return; + } + + stt_flags = 0; + if (!live) + stt_flags |= NETSTAT_STAT_KVM; + + sttp = netstat_stat_alloc(); + if (sttp == NULL) { + warn("netstat_stat_alloc"); + return; + } - if (live) { - if (zflag) - memset(&zerostat, 0, len); - if (sysctlbyname("net.inet.carp.stats", &carpstat, &len, - zflag ? &zerostat : NULL, zflag ? len : 0) < 0) { - if (errno != ENOENT) - warn("sysctl: net.inet.carp.stats"); - return; - } - } else { - if (off == 0) - return; - kread(off, &carpstat, len); + if (netstat_stat(stat_CARP, sttp, stt_flags, kvmd) < 0) { + error = netstat_stat_geterror(sttp); + if (error == NETSTAT_ERROR_KVM) + warnx("netstat_stat: %s", kvm_geterr(kvmd)); + else + warnx("netstat_stat: %s", netstat_strerror(error)); + goto out; } + s = netstat_get_carpstats(sttp); + printf("%s:\n", name); -#define p(f, m) if (carpstat.f || sflag <= 1) \ - printf(m, (uintmax_t)carpstat.f, plural(carpstat.f)) -#define p2(f, m) if (carpstat.f || sflag <= 1) \ - printf(m, (uintmax_t)carpstat.f) +#define p(f, m) if (netstat_carps_get_##f(s) || sflag <= 1) \ + printf(m, netstat_carps_get_##f(s), plural(netstat_carps_get_##f(s))) +#define p2(f, m) if (netstat_carps_get_##f(s) || sflag <= 1) \ + printf(m, netstat_carps_get_##f(s)) - p(carps_ipackets, "\t%ju packet%s received (IPv4)\n"); - p(carps_ipackets6, "\t%ju packet%s received (IPv6)\n"); - p(carps_badttl, "\t\t%ju packet%s discarded for wrong TTL\n"); - p(carps_hdrops, "\t\t%ju packet%s shorter than header\n"); - p(carps_badsum, "\t\t%ju discarded for bad checksum%s\n"); - p(carps_badver, "\t\t%ju discarded packet%s with a bad version\n"); - p2(carps_badlen, "\t\t%ju discarded because packet too short\n"); - p2(carps_badauth, "\t\t%ju discarded for bad authentication\n"); - p2(carps_badvhid, "\t\t%ju discarded for bad vhid\n"); - p2(carps_badaddrs, "\t\t%ju discarded because of a bad address list\n"); - p(carps_opackets, "\t%ju packet%s sent (IPv4)\n"); - p(carps_opackets6, "\t%ju packet%s sent (IPv6)\n"); - p2(carps_onomem, "\t\t%ju send failed due to mbuf memory error\n"); + p(ipackets, "\t%ju packet%s received (IPv4)\n"); + p(ipackets6, "\t%ju packet%s received (IPv6)\n"); + p(badttl, "\t\t%ju packet%s discarded for wrong TTL\n"); + p(hdrops, "\t\t%ju packet%s shorter than header\n"); + p(badsum, "\t\t%ju discarded for bad checksum%s\n"); + p(badver, "\t\t%ju discarded packet%s with a bad version\n"); + p2(badlen, "\t\t%ju discarded because packet too short\n"); + p2(badauth, "\t\t%ju discarded for bad authentication\n"); + p2(badvhid, "\t\t%ju discarded for bad vhid\n"); + p2(badaddrs, "\t\t%ju discarded because of a bad address list\n"); + p(opackets, "\t%ju packet%s sent (IPv4)\n"); + p(opackets6, "\t%ju packet%s sent (IPv6)\n"); + p2(onomem, "\t\t%ju send failed due to mbuf memory error\n"); #if notyet - p(carps_ostates, "\t\t%s state update%s sent\n"); + p(ostates, "\t\t%s state update%s sent\n"); #endif +out: + netstat_stat_free(sttp); #undef p #undef p2 } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#20 (text+ko) ==== @@ -119,29 +119,27 @@ { .n_name = "_pfkeystat" }, #define N_RTTRASH 20 { .n_name = "_rttrash" }, -#define N_CARPSTAT 21 - { .n_name = "_carpstats" }, -#define N_PFSYNCSTAT 22 +#define N_PFSYNCSTAT 21 { .n_name = "_pfsyncstats" }, -#define N_AHSTAT 23 +#define N_AHSTAT 22 { .n_name = "_ahstat" }, -#define N_ESPSTAT 24 +#define N_ESPSTAT 23 { .n_name = "_espstat" }, -#define N_IPCOMPSTAT 25 +#define N_IPCOMPSTAT 24 { .n_name = "_ipcompstat" }, -#define N_IPSTAT 26 +#define N_IPSTAT 25 { .n_name = "_ipstat" }, -#define N_ICMPSTAT 27 +#define N_ICMPSTAT 26 { .n_name = "_icmpstat" }, -#define N_IGMPSTAT 28 +#define N_IGMPSTAT 27 { .n_name = "_igmpstat" }, -#define N_PIMSTAT 29 +#define N_PIMSTAT 28 { .n_name = "_pimstat" }, -#define N_RIP6STAT 30 +#define N_RIP6STAT 29 { .n_name = "_rip6stat" }, -#define N_SCTPSTAT 31 +#define N_SCTPSTAT 30 { .n_name = "_sctpstat" }, -#define N_MFCTABLESIZE 32 +#define N_MFCTABLESIZE 31 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -187,8 +185,8 @@ #endif { 0, N_PIMSTAT, 1, NULL, pim_stats, NULL, "pim", 1, IPPROTO_PIM }, - { -1, N_CARPSTAT, 1, NULL, - carp_stats, NULL, "carp", 1, 0 }, + { -1, 0, 1, NULL, + NULL, NULL, "carp", 1, 0 }, { -1, N_PFSYNCSTAT, 1, NULL, pfsync_stats, NULL, "pfsync", 1, 0 }, { -1, -1, 0, NULL, @@ -651,14 +649,13 @@ return; } else { /* XXX: temp. hack */ - switch (tp->pr_protocol) { - case IPPROTO_TCP: - tcp_stats(kvmd, "tcp"); - break; - case IPPROTO_UDP: - udp_stats(kvmd, "udp"); - break; - default: + if (strcmp(tp->pr_name, "udp") == 0) + tcp_stats(kvmd, tp->pr_name); + else if (strcmp(tp->pr_name, "tcp") == 0) + udp_stats(kvmd, tp->pr_name); + else if (strcmp(tp->pr_name, "carp") == 0) + carp_stats(kvmd, tp->pr_name); + else { pr = tp->pr_stats; if (!pr) { if (pflag) @@ -676,7 +673,6 @@ return; } else off = nl[tp->pr_sindex].n_value; - break; } } } else { From owner-p4-projects@FreeBSD.ORG Mon Jul 27 16:41:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A58CA1065674; Mon, 27 Jul 2009 16:41:55 +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 658901065670 for ; Mon, 27 Jul 2009 16:41:55 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 53B958FC22 for ; Mon, 27 Jul 2009 16:41:55 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RGftKT000163 for ; Mon, 27 Jul 2009 16:41:55 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RGftlC000161 for perforce@freebsd.org; Mon, 27 Jul 2009 16:41:55 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 16:41:55 GMT Message-Id: <200907271641.n6RGftlC000161@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166632 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 16:41:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=166632 Change 166632 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 16:41:28 Added icons Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.qrc#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/icons/close.png#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/icons/document-open-folder.png#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/icons/document-open-recent.png#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/icons/document-open-remote.png#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/icons/document-open.png#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/icons/document-save-all.png#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/icons/document-save-as.png#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/icons/document-save.png#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/icons/open.png#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/icons/quit.png#1 add Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.qrc#2 (text+ko) ==== @@ -1,7 +1,10 @@ - - images/quit.png - + icons/document-open.png + icons/document-open-remote.png + icons/document-save.png + icons/document-save-as.png + icons/close.png + icons/quit.png From owner-p4-projects@FreeBSD.ORG Mon Jul 27 16:42:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E3F731065673; Mon, 27 Jul 2009 16:42:56 +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 A3E531065670 for ; Mon, 27 Jul 2009 16:42:56 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 885438FC17 for ; Mon, 27 Jul 2009 16:42:56 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RGgui4000230 for ; Mon, 27 Jul 2009 16:42:56 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RGguqg000228 for perforce@freebsd.org; Mon, 27 Jul 2009 16:42:56 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 16:42:56 GMT Message-Id: <200907271642.n6RGguqg000228@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166633 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 16:42:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=166633 Change 166633 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 16:42:02 Added close action, 'current file' Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.cpp#3 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.h#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.cpp#3 (text+ko) ==== @@ -44,27 +44,32 @@ TextEditor::TextEditor() - : QMainWindow() + : QMainWindow(), currentFile(this) { setAttribute(Qt::WA_QuitOnClose); setWindowTitle(tr("Sandboxed Text Editor")); - openFile = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this); + openFile = new QAction(QIcon(":/icons/open.png"), tr("&Open..."), this); openFile->setShortcuts(QKeySequence::Open); openFile->setStatusTip(tr("Open an existing file")); connect(openFile, SIGNAL(triggered()), this, SLOT(open())); - saveFile = new QAction(QIcon(":/images/save.png"), tr("&Save..."), this); + saveFile = new QAction(QIcon(":/icons/save.png"), tr("&Save..."), this); saveFile->setShortcuts(QKeySequence::Save); saveFile->setStatusTip(tr("Save the file")); connect(saveFile, SIGNAL(triggered()), this, SLOT(save())); - openFileRaw = new QAction(QIcon(":/images/open.png"), + openFileRaw = new QAction(QIcon(":/icons/open.png"), tr("&Open via raw syscalls..."), this); openFileRaw->setStatusTip(tr("Open a file via raw system calls")); connect(openFileRaw, SIGNAL(triggered()), this, SLOT(openRaw())); - quitEditor = new QAction(QIcon(":/images/quit.png"), tr("&Quit"), this); + closeFile = new QAction(QIcon(":/icons/close.png"), tr("&Close..."), this); + closeFile->setShortcuts(QKeySequence::Close); + closeFile->setStatusTip(tr("Close the current file")); + connect(closeFile, SIGNAL(triggered()), this, SLOT(close())); + + quitEditor = new QAction(QIcon(":/icons/quit.png"), tr("&Quit"), this); quitEditor->setShortcut(QKeySequence("Ctrl+Q")); quitEditor->setStatusTip(tr("Quit Text Editor")); connect(quitEditor, SIGNAL(triggered()), this, SLOT(quit())); @@ -73,14 +78,16 @@ fileMenu->addAction(openFile); fileMenu->addAction(openFileRaw); fileMenu->addAction(saveFile); + fileMenu->addAction(closeFile); fileMenu->addAction(quitEditor); -/* + fileToolBar = addToolBar("File"); fileToolBar->addAction(openFile); fileToolBar->addAction(openFileRaw); fileToolBar->addAction(saveFile); + fileToolBar->addAction(closeFile); fileToolBar->addAction(quitEditor); -*/ + setCentralWidget(text = new QTextEdit()); resize(640, 480); @@ -88,6 +95,12 @@ } +TextEditor::~TextEditor() +{ + close(); +} + + void TextEditor::open() { struct ua_powerbox_options options; @@ -108,58 +121,56 @@ char *name; if(ua_powerbox(&options, &fd, &name, &fdcount)) + { QMessageBox::critical(this, tr("Powerbox Error"), tr("Error opening User Angel powerbox: ") + strerror(errno)); + return; + } - else - { - QFile file(this); - FILE *fp = fdopen(fd, "r"); - file.open(fp, QFile::ReadOnly); - text->setPlainText(file.readAll()); - file.close(); - fclose(fp); - } + currentFile.open(fdopen(fd, "rw"), QFile::ReadWrite); + text->setPlainText(currentFile.readAll()); } void TextEditor::save() { - struct ua_powerbox_options options; - options.ui = UA_QT; - options.operation = UA_SAVE_FILE; - options.parent_window = this->winId(); - options.start_path = ""; - options.pathlen = 0; - options.start_fd = -1; - options.mult = false; - options.filter = ""; - options.filterlen = 0; - options.flags = O_WRONLY | O_CREAT | O_TRUNC; - options.rights = CAP_FSTAT | CAP_SEEK | CAP_FSYNC | CAP_WRITE | CAP_FTRUNCATE; - options.umask = 0666; + if(!currentFile.isOpen()) + { + struct ua_powerbox_options options; + options.ui = UA_QT; + options.operation = UA_SAVE_FILE; + options.parent_window = this->winId(); + options.start_path = ""; + options.pathlen = 0; + options.start_fd = -1; + options.mult = false; + options.filter = ""; + options.filterlen = 0; + options.flags = O_WRONLY | O_CREAT | O_TRUNC; + options.rights = CAP_FSTAT | CAP_SEEK | CAP_FSYNC | CAP_READ | CAP_WRITE | CAP_FTRUNCATE; + options.umask = 0666; - int fdcount = 1; - int fd; - char *name; + int fdcount = 1; + int fd; + char *name; - if(ua_powerbox(&options, &fd, &name, &fdcount)) - QMessageBox::critical(this, - tr("Powerbox Error"), - tr("Error opening User Angel powerbox: ") - + strerror(errno)); + if(ua_powerbox(&options, &fd, &name, &fdcount)) + { + QMessageBox::critical(this, + tr("Powerbox Error"), + tr("Error opening User Angel powerbox: ") + + strerror(errno)); + return; + } - else - { - QFile file(this); - file.open(fd, QFile::WriteOnly | QFile::Truncate); - int ret = file.write(text->toPlainText().toAscii()); - file.flush(); - file.close(); - ::close(fd); + currentFile.open(fd, QFile::ReadWrite); } + + currentFile.resize(0); + currentFile.write(text->toPlainText().toAscii()); + currentFile.flush(); } @@ -174,8 +185,16 @@ } +void TextEditor::close() +{ + currentFile.close(); + text->setPlainText(""); +} + + void TextEditor::quit() { close(); + QMainWindow::close(); } ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.h#2 (text+ko) ==== @@ -31,6 +31,7 @@ * SUCH DAMAGE. */ +#include #include class QAction; @@ -45,12 +46,14 @@ public: TextEditor(); + ~TextEditor(); public slots: void open(); void save(); void openRaw(); + void close(); void quit(); @@ -63,6 +66,9 @@ QAction *openFile; QAction *saveFile; QAction *openFileRaw; + QAction *closeFile; QAction *quitEditor; + + QFile currentFile; }; From owner-p4-projects@FreeBSD.ORG Mon Jul 27 17:08:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CC45D1065742; Mon, 27 Jul 2009 17:08:24 +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 8821D106574F for ; Mon, 27 Jul 2009 17:08:24 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6BE0F8FC0A for ; Mon, 27 Jul 2009 17:08:24 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RH8Oe8013234 for ; Mon, 27 Jul 2009 17:08:24 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RH8Ods013232 for perforce@freebsd.org; Mon, 27 Jul 2009 17:08:24 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 17:08:24 GMT Message-Id: <200907271708.n6RH8Ods013232@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166634 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 17:08:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=166634 Change 166634 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 17:07:23 Use a standard Qt Designer-based UI Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.cpp#4 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.h#3 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.ui#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/sandbox_qt.cpp#8 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/sandbox_qt.pro#5 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.cpp#4 (text+ko) ==== @@ -44,53 +44,15 @@ TextEditor::TextEditor() - : QMainWindow(), currentFile(this) + : QMainWindow() { - setAttribute(Qt::WA_QuitOnClose); - setWindowTitle(tr("Sandboxed Text Editor")); - - openFile = new QAction(QIcon(":/icons/open.png"), tr("&Open..."), this); - openFile->setShortcuts(QKeySequence::Open); - openFile->setStatusTip(tr("Open an existing file")); - connect(openFile, SIGNAL(triggered()), this, SLOT(open())); + ui.setupUi(this); + connect(ui.actionOpen, SIGNAL(activated()), this, SLOT(open())); + connect(ui.actionOpenRaw, SIGNAL(activated()), this, SLOT(openRaw())); + connect(ui.actionSave, SIGNAL(activated()), this, SLOT(save())); + connect(ui.actionClose, SIGNAL(activated()), this, SLOT(close())); + connect(ui.actionQuit, SIGNAL(activated()), this, SLOT(quit())); - saveFile = new QAction(QIcon(":/icons/save.png"), tr("&Save..."), this); - saveFile->setShortcuts(QKeySequence::Save); - saveFile->setStatusTip(tr("Save the file")); - connect(saveFile, SIGNAL(triggered()), this, SLOT(save())); - - openFileRaw = new QAction(QIcon(":/icons/open.png"), - tr("&Open via raw syscalls..."), this); - openFileRaw->setStatusTip(tr("Open a file via raw system calls")); - connect(openFileRaw, SIGNAL(triggered()), this, SLOT(openRaw())); - - closeFile = new QAction(QIcon(":/icons/close.png"), tr("&Close..."), this); - closeFile->setShortcuts(QKeySequence::Close); - closeFile->setStatusTip(tr("Close the current file")); - connect(closeFile, SIGNAL(triggered()), this, SLOT(close())); - - quitEditor = new QAction(QIcon(":/icons/quit.png"), tr("&Quit"), this); - quitEditor->setShortcut(QKeySequence("Ctrl+Q")); - quitEditor->setStatusTip(tr("Quit Text Editor")); - connect(quitEditor, SIGNAL(triggered()), this, SLOT(quit())); - - fileMenu = menuBar()->addMenu(tr("&File")); - fileMenu->addAction(openFile); - fileMenu->addAction(openFileRaw); - fileMenu->addAction(saveFile); - fileMenu->addAction(closeFile); - fileMenu->addAction(quitEditor); - - fileToolBar = addToolBar("File"); - fileToolBar->addAction(openFile); - fileToolBar->addAction(openFileRaw); - fileToolBar->addAction(saveFile); - fileToolBar->addAction(closeFile); - fileToolBar->addAction(quitEditor); - - setCentralWidget(text = new QTextEdit()); - - resize(640, 480); show(); } @@ -103,6 +65,8 @@ void TextEditor::open() { + close(); + struct ua_powerbox_options options; options.ui = UA_QT; options.operation = UA_OPEN_FILE; @@ -129,48 +93,46 @@ return; } - currentFile.open(fdopen(fd, "rw"), QFile::ReadWrite); - text->setPlainText(currentFile.readAll()); + QFile file(this); + file.open(fd, QFile::ReadWrite | QFile::Unbuffered); + ui.text->setPlainText(file.readAll()); + file.close(); } void TextEditor::save() { - if(!currentFile.isOpen()) - { - struct ua_powerbox_options options; - options.ui = UA_QT; - options.operation = UA_SAVE_FILE; - options.parent_window = this->winId(); - options.start_path = ""; - options.pathlen = 0; - options.start_fd = -1; - options.mult = false; - options.filter = ""; - options.filterlen = 0; - options.flags = O_WRONLY | O_CREAT | O_TRUNC; - options.rights = CAP_FSTAT | CAP_SEEK | CAP_FSYNC | CAP_READ | CAP_WRITE | CAP_FTRUNCATE; - options.umask = 0666; + struct ua_powerbox_options options; + options.ui = UA_QT; + options.operation = UA_SAVE_FILE; + options.parent_window = this->winId(); + options.start_path = ""; + options.pathlen = 0; + options.start_fd = -1; + options.mult = false; + options.filter = ""; + options.filterlen = 0; + options.flags = O_WRONLY | O_CREAT | O_TRUNC; + options.rights = CAP_FSTAT | CAP_SEEK | CAP_FSYNC | CAP_READ | CAP_WRITE | CAP_FTRUNCATE; + options.umask = 0666; - int fdcount = 1; - int fd; - char *name; + int fdcount = 1; + int fd; + char *name; - if(ua_powerbox(&options, &fd, &name, &fdcount)) - { - QMessageBox::critical(this, - tr("Powerbox Error"), - tr("Error opening User Angel powerbox: ") - + strerror(errno)); - return; - } - - currentFile.open(fd, QFile::ReadWrite); + if(ua_powerbox(&options, &fd, &name, &fdcount)) + { + QMessageBox::critical(this, + tr("Powerbox Error"), + tr("Error opening User Angel powerbox: ") + + strerror(errno)); + return; } - currentFile.resize(0); - currentFile.write(text->toPlainText().toAscii()); - currentFile.flush(); + QFile file(this); + file.open(fd, QFile::ReadWrite | QFile::Truncate); + file.write(ui.text->toPlainText().toAscii()); + file.flush(); } @@ -187,8 +149,7 @@ void TextEditor::close() { - currentFile.close(); - text->setPlainText(""); + ui.text->setPlainText(""); } ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.h#3 (text+ko) ==== @@ -31,8 +31,10 @@ * SUCH DAMAGE. */ +#include "ui_TextEditor.h" + +#include #include -#include class QAction; class QMenu; @@ -58,17 +60,6 @@ private: - QTextEdit *text; - - QMenu *fileMenu; - QToolBar *fileToolBar; - - QAction *openFile; - QAction *saveFile; - QAction *openFileRaw; - QAction *closeFile; - QAction *quitEditor; - - QFile currentFile; + Ui::TextEditor ui; }; ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/sandbox_qt.cpp#8 (text+ko) ==== @@ -61,6 +61,8 @@ #include +#include "TextEditor.h" + #include #include #include @@ -69,8 +71,6 @@ #include #include -#include "TextEditor.h" - using namespace std; ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/sandbox_qt.pro#5 (text+ko) ==== @@ -9,6 +9,7 @@ QMAKE_LFLAGS += -rdynamic # Input +FORMS = TextEditor.ui HEADERS = TextEditor.h SOURCES = sandbox_qt.cpp TextEditor.cpp xcb_auth.c RESOURCES = TextEditor.qrc From owner-p4-projects@FreeBSD.ORG Mon Jul 27 17:23:42 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2DDEF106566B; Mon, 27 Jul 2009 17:23:42 +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 E1CEA1065674 for ; Mon, 27 Jul 2009 17:23:41 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CEEE38FC08 for ; Mon, 27 Jul 2009 17:23:41 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RHNfIu014395 for ; Mon, 27 Jul 2009 17:23:41 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RHNfnB014393 for perforce@freebsd.org; Mon, 27 Jul 2009 17:23:41 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 17:23:41 GMT Message-Id: <200907271723.n6RHNfnB014393@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166637 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 17:23:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=166637 Change 166637 by pgj@petymeg-current on 2009/07/27 17:22:41 Simplify calling of statistics routines. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#13 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#28 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#21 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#13 (text+ko) ==== @@ -74,8 +74,8 @@ void inetpr(void *, int, int); void inetppr(const struct socket_type *); void unixdomainpr(const struct socket_type *); -void tcp_stats(void *, const char *); -void udp_stats(void *, const char *); +void tcp_stats(const struct stat_type *); +void udp_stats(const struct stat_type *); #ifdef SCTP void sctp_protopr(u_long, const char *, int, int); void sctp_stats(u_long, const char *, int, int); @@ -84,7 +84,7 @@ void icmp_stats(u_long, const char *, int, int); void igmp_stats(u_long, const char *, int, int); void pim_stats(u_long, const char *, int, int); -void carp_stats(void *, const char *); +void carp_stats(const struct stat_type *); void pfsync_stats(u_long, const char *, int, int); #ifdef IPSEC void ipsec_stats(u_long, const char *, int, int); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#28 (text+ko) ==== @@ -242,11 +242,9 @@ * Dump TCP statistics structure. */ void -tcp_stats(void *kvmd, const char *name) +tcp_stats(const struct stat_type *sttp) { const struct tcp_stat *s; - struct stat_type *sttp; - int stt_flags, error; #ifdef INET6 if (tcp_done != 0) @@ -254,35 +252,7 @@ else tcp_done = 1; #endif - - if (zflag) { - netstat_zerostat(stat_TCP); - return; - } - - stt_flags = 0; - if (!live) - stt_flags |= NETSTAT_STAT_KVM; - - sttp = netstat_stat_alloc(); - if (sttp == NULL) { - warn("netstat_stat_alloc"); - return; - } - - if (netstat_stat(stat_TCP, sttp, stt_flags, kvmd) < 0) { - error = netstat_stat_geterror(sttp); - if (error == NETSTAT_ERROR_KVM) - warnx("netstat_stat: %s", kvm_geterr(kvmd)); - else - warnx("netstat_stat: %s", netstat_strerror(error)); - goto out; - } - s = netstat_get_tcpstats(sttp); - - printf ("%s:\n", name); - #define p(f, m) if (netstat_tcps_get_##f(s) || sflag <= 1) \ printf(m, netstat_tcps_get_##f(s), plural(netstat_tcps_get_##f(s))) #define p1a(f, m) if (netstat_tcps_get_##f(s) || sflag <= 1) \ @@ -391,9 +361,6 @@ p(ecn_ect1, "\t%ju packet%s with ECN ECT(1) bit set\n"); p(ecn_shs, "\t%ju successful ECN handshake%s\n"); p(ecn_rcwnd, "\t%ju time%s ECN reduced the congestion window\n"); - -out: - netstat_stat_free(sttp); #undef p #undef p1a #undef p2 @@ -405,11 +372,9 @@ * Dump UDP statistics structure. */ void -udp_stats(void *kvmd, const char *name) +udp_stats(const struct stat_type *sttp) { const struct udp_stat *s; - struct stat_type *sttp; - int stt_flags, error; #ifdef INET6 if (udp_done != 0) @@ -417,34 +382,7 @@ else udp_done = 1; #endif - - if (zflag) { - netstat_zerostat(stat_UDP); - return; - } - - stt_flags = 0; - if (!live) - stt_flags |= NETSTAT_STAT_KVM; - - sttp = netstat_stat_alloc(); - if (sttp == NULL) { - warn("netstat_stat_alloc"); - return; - } - - if (netstat_stat(stat_UDP, sttp, stt_flags, kvmd) < 0) { - error = netstat_stat_geterror(sttp); - if (error == NETSTAT_ERROR_KVM) - warnx("netstat_stat: %s", kvm_geterr(kvmd)); - else - warnx("netstat_stat: %s", netstat_strerror(error)); - goto out; - } - s = netstat_get_udpstats(sttp); - - printf("%s:\n", name); #define p(f, m) if (netstat_udps_get_##f(s) || sflag <= 1) \ printf(m, netstat_udps_get_##f(s), plural(netstat_udps_get_##f(s))) #define p1a(f, m) if (netstat_udps_get_##f(s) || sflag <= 1) \ @@ -464,8 +402,6 @@ /* the next statistic is cumulative in udps_noportbcast */ p(filtermcast, "\t%ju time%s multicast source filter matched\n"); -out: - netstat_stat_free(sttp); #undef p #undef p1a } @@ -474,45 +410,15 @@ * Dump CARP statistics structure. */ void -carp_stats(void *kvmd, const char *name) +carp_stats(const struct stat_type *sttp) { const struct carp_stat *s; - struct stat_type *sttp; - int stt_flags, error; - - if (zflag) { - netstat_zerostat(stat_CARP); - return; - } - stt_flags = 0; - if (!live) - stt_flags |= NETSTAT_STAT_KVM; - - sttp = netstat_stat_alloc(); - if (sttp == NULL) { - warn("netstat_stat_alloc"); - return; - } - - if (netstat_stat(stat_CARP, sttp, stt_flags, kvmd) < 0) { - error = netstat_stat_geterror(sttp); - if (error == NETSTAT_ERROR_KVM) - warnx("netstat_stat: %s", kvm_geterr(kvmd)); - else - warnx("netstat_stat: %s", netstat_strerror(error)); - goto out; - } - s = netstat_get_carpstats(sttp); - - printf("%s:\n", name); - #define p(f, m) if (netstat_carps_get_##f(s) || sflag <= 1) \ printf(m, netstat_carps_get_##f(s), plural(netstat_carps_get_##f(s))) #define p2(f, m) if (netstat_carps_get_##f(s) || sflag <= 1) \ printf(m, netstat_carps_get_##f(s)) - p(ipackets, "\t%ju packet%s received (IPv4)\n"); p(ipackets6, "\t%ju packet%s received (IPv6)\n"); p(badttl, "\t\t%ju packet%s discarded for wrong TTL\n"); @@ -529,8 +435,6 @@ #if notyet p(ostates, "\t\t%s state update%s sent\n"); #endif -out: - netstat_stat_free(sttp); #undef p #undef p2 } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#21 (text+ko) ==== @@ -150,6 +150,8 @@ u_char pr_wanted; /* 1 if wanted, 0 otherwise */ void (*pr_cblocks)(u_long, const char *, int, int); /* control blocks printing routine */ + void (*pr_nstats)(const struct stat_type *); + enum stat pr_stx; void (*pr_stats)(u_long, const char *, int, int); /* statistics printing routine */ void (*pr_istats)(char *); /* per/if statistics printing routine */ @@ -157,99 +159,99 @@ int pr_usesysctl; /* non-zero if we use sysctl, not kvm */ int pr_protocol; } protox[] = { - { 0, 0, 1, NULL, + { 0, 0, 1, NULL, tcp_stats, stat_TCP, NULL, NULL, "tcp", 1, IPPROTO_TCP }, - { 0, 0, 1, NULL, + { 0, 0, 1, NULL, udp_stats, stat_UDP, NULL, NULL, "udp", 1, IPPROTO_UDP }, #ifdef SCTP - { -1, N_SCTPSTAT, 1, sctp_protopr, + { -1, N_SCTPSTAT, 1, sctp_protopr, NULL, stat_MAX, sctp_stats, NULL, "sctp", 1, IPPROTO_SCTP }, #endif - { 0, -1, 1, NULL, + { 0, -1, 1, NULL, NULL, stat_MAX, NULL, NULL, "divert", 1, IPPROTO_DIVERT }, - { 0, N_IPSTAT, 1, NULL, + { 0, N_IPSTAT, 1, NULL, NULL, stat_MAX, ip_stats, NULL, "ip", 1, IPPROTO_RAW }, - { 0, N_ICMPSTAT, 1, NULL, + { 0, N_ICMPSTAT, 1, NULL, NULL, stat_MAX, icmp_stats, NULL, "icmp", 1, IPPROTO_ICMP }, - { 0, N_IGMPSTAT, 1, NULL, + { 0, N_IGMPSTAT, 1, NULL, NULL, stat_MAX, igmp_stats, NULL, "igmp", 1, IPPROTO_IGMP }, #ifdef IPSEC - { -1, N_IPSECSTAT, 1, NULL, /* keep as compat */ + { -1, N_IPSECSTAT, 1, NULL, NULL, stat_MAX, /* keep as compat */ ipsec_stats, NULL, "ipsec", 0, 0}, - { -1, N_AHSTAT, 1, NULL, + { -1, N_AHSTAT, 1, NULL, NULL, stat_MAX, ah_stats, NULL, "ah", 0, 0}, - { -1, N_ESPSTAT, 1, NULL, + { -1, N_ESPSTAT, 1, NULL, NULL, stat_MAX, esp_stats, NULL, "esp", 0, 0}, - { -1, N_IPCOMPSTAT, 1, NULL, + { -1, N_IPCOMPSTAT, 1, NULL, NULL, stat_MAX, ipcomp_stats, NULL, "ipcomp", 0, 0}, #endif - { 0, N_PIMSTAT, 1, NULL, + { 0, N_PIMSTAT, 1, NULL, NULL, stat_MAX, pim_stats, NULL, "pim", 1, IPPROTO_PIM }, - { -1, 0, 1, NULL, + { -1, 0, 1, NULL, carp_stats, stat_CARP, NULL, NULL, "carp", 1, 0 }, - { -1, N_PFSYNCSTAT, 1, NULL, + { -1, N_PFSYNCSTAT, 1, NULL, NULL, stat_MAX, pfsync_stats, NULL, "pfsync", 1, 0 }, - { -1, -1, 0, NULL, + { -1, -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; #ifdef INET6 struct protox ip6protox[] = { - { 0, 0, 1, NULL, + { 0, 0, 1, NULL, tcp_stats, stat_TCP, NULL, NULL, "tcp", 1, IPPROTO_TCP }, - { 0, 0, 1, NULL, + { 0, 0, 1, NULL, udp_stats, stat_UDP, NULL, NULL, "udp", 1, IPPROTO_UDP }, - { 0, N_IP6STAT, 1, NULL, + { 0, N_IP6STAT, 1, NULL, NULL, stat_MAX, ip6_stats, ip6_ifstats, "ip6", 1, IPPROTO_RAW }, - { 0, N_ICMP6STAT, 1, NULL, + { 0, N_ICMP6STAT, 1, NULL, NULL, stat_MAX, icmp6_stats, icmp6_ifstats, "icmp6", 1, IPPROTO_ICMPV6 }, #ifdef IPSEC - { -1, N_IPSEC6STAT, 1, NULL, + { -1, N_IPSEC6STAT, 1, NULL, NULL, stat_MAX, ipsec_stats, NULL, "ipsec6", 0, 0 }, #endif #ifdef notyet - { -1, N_PIM6STAT, 1, NULL, + { -1, N_PIM6STAT, 1, NULL, NULL, stat_MAX, pim6_stats, NULL, "pim6", 1, 0 }, #endif - { -1, N_RIP6STAT, 1, NULL, + { -1, N_RIP6STAT, 1, NULL, NULL, stat_MAX, rip6_stats, NULL, "rip6", 1, 0 }, - { -1, -1, 0, NULL, + { -1, -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; #endif /*INET6*/ #ifdef IPSEC struct protox pfkeyprotox[] = { - { -1, N_PFKEYSTAT, 1, NULL, + { -1, N_PFKEYSTAT, 1, NULL, NULL, stat_MAX, pfkey_stats, NULL, "pfkey", 0, 0 }, - { -1, -1, 0, NULL, + { -1, -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; #endif struct protox atalkprotox[] = { - { N_DDPCB, N_DDPSTAT, 1, atalkprotopr, + { N_DDPCB, N_DDPSTAT, 1, atalkprotopr, NULL, stat_MAX, ddp_stats, NULL, "ddp", 0, 0 }, - { -1, -1, 0, NULL, + { -1, -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; #ifdef NETGRAPH struct protox netgraphprotox[] = { - { N_NGSOCKS, -1, 1, netgraphprotopr, + { N_NGSOCKS, -1, 1, netgraphprotopr, NULL, stat_MAX, NULL, NULL, "ctrl", 0, 0 }, - { N_NGSOCKS, -1, 1, netgraphprotopr, + { N_NGSOCKS, -1, 1, netgraphprotopr, NULL, stat_MAX, NULL, NULL, "data", 0, 0 }, - { -1, -1, 0, NULL, + { -1, -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; #endif #ifdef IPX struct protox ipxprotox[] = { - { N_IPX, N_IPXSTAT, 1, ipxprotopr, + { N_IPX, N_IPXSTAT, 1, ipxprotopr, NULL, stat_MAX, ipx_stats, NULL, "ipx", 0, 0 }, - { N_IPX, N_SPXSTAT, 1, ipxprotopr, + { N_IPX, N_SPXSTAT, 1, ipxprotopr, NULL, stat_MAX, spx_stats, NULL, "spx", 0, 0 }, - { -1, -1, 0, NULL, + { -1, -1, 0, NULL, NULL, stat_MAX, NULL, NULL, 0, 0, 0 } }; #endif @@ -268,6 +270,7 @@ atalkprotox, NULL }; static void connpr(const struct socket_type *); +static void statpr(void (*)(const struct stat_type *), enum stat, const char *); static void printproto(struct protox *, const char *); static void usage(void); static struct protox *name2protox(const char *); @@ -649,12 +652,8 @@ return; } else { /* XXX: temp. hack */ - if (strcmp(tp->pr_name, "udp") == 0) - tcp_stats(kvmd, tp->pr_name); - else if (strcmp(tp->pr_name, "tcp") == 0) - udp_stats(kvmd, tp->pr_name); - else if (strcmp(tp->pr_name, "carp") == 0) - carp_stats(kvmd, tp->pr_name); + if (tp->pr_nstats != NULL) + statpr(tp->pr_nstats, tp->pr_stx, tp->pr_name); else { pr = tp->pr_stats; if (!pr) { @@ -719,6 +718,43 @@ } } +void +statpr(void (*stats_routine)(const struct stat_type *), enum stat sts, + const char *name) +{ + struct stat_type *sttp; + int stt_flags, error; + + if (zflag) { + netstat_zerostat(sts); + return; + } + + stt_flags = 0; + if (!live) + stt_flags |= NETSTAT_STAT_KVM; + + sttp = netstat_stat_alloc(); + if (sttp == NULL) { + warn("netstat_stat_alloc"); + return; + } + + if (netstat_stat(sts, sttp, stt_flags, kvmd) < 0) { + error = netstat_stat_geterror(sttp); + if (error == NETSTAT_ERROR_KVM) + warnx("netstat_stat: %s", kvm_geterr(kvmd)); + else + warnx("netstat_stat: %s", netstat_strerror(error)); + goto out; + } + + printf("%s:\n", name); + stats_routine(sttp); +out: + netstat_stat_free(sttp); +} + /* * Read kernel memory, return 0 on success. */ From owner-p4-projects@FreeBSD.ORG Mon Jul 27 17:34:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6E0571065678; Mon, 27 Jul 2009 17:34: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 2B7D01065675 for ; Mon, 27 Jul 2009 17:34:54 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 195AA8FC1F for ; Mon, 27 Jul 2009 17:34:54 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RHYrCd015232 for ; Mon, 27 Jul 2009 17:34:53 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RHYrQM015230 for perforce@freebsd.org; Mon, 27 Jul 2009 17:34:53 GMT (envelope-from truncs@FreeBSD.org) Date: Mon, 27 Jul 2009 17:34:53 GMT Message-Id: <200907271734.n6RHYrQM015230@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 166639 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 17:34:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=166639 Change 166639 by truncs@aditya on 2009/07/27 17:34:19 Remove debugging uprintfs Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_alloc.c#33 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_alloc.c#33 (text+ko) ==== @@ -130,7 +130,6 @@ ip->i_blocks += btodb(fs->e2fs_bsize); ip->i_flag |= IN_CHANGE | IN_UPDATE; *bnp = bno; - uprintf("Allocation of block successfull"); return (0); } nospace: @@ -346,15 +345,12 @@ * else obtain it using ino_to_cg. The preferred inode is always the next * inode. */ - uprintf("a\n"); if((mode & IFMT) == IFDIR) cg = ext2_dirpref(fs); else cg = ino_to_cg(fs, pip->i_number); ipref = cg * fs->e2fs->e2fs_ipg + 1; - uprintf("b\n"); ino = (ino_t)ext2_hashalloc(pip, cg, (long)ipref, mode, ext2_nodealloccg); - uprintf("c\n"); if (ino == 0) goto noinodes; @@ -725,12 +721,10 @@ struct buf *bp; int error, start, len, loc, map, i; char *ibp; - uprintf("1\n"); ipref--; /* to avoid a lot of (ipref -1) */ if (ipref == -1) ipref = 0; fs = ip->i_e2fs; - uprintf("2\n"); if (fs->e2fs_gd[cg].ext2bgd_nifree == 0) return (0); lock_super(DEVVP(ip)); @@ -740,7 +734,6 @@ if (error) { brelse(bp); unlock_super(DEVVP(ip)); - uprintf("3\n"); return (0); } ibp = (char *)bp->b_data; @@ -782,9 +775,7 @@ if ((mode & IFMT) == IFDIR) { fs->e2fs_gd[cg].ext2bgd_ndirs++; } - uprintf("4\n"); bdwrite(bp); - uprintf("%d\n", fs->e2fs_gd[cg].ext2bgd_nifree); unlock_super(DEVVP(ip)); return (cg * fs->e2fs->e2fs_ipg + ipref +1); } From owner-p4-projects@FreeBSD.ORG Mon Jul 27 18:20:44 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 85D54106567A; Mon, 27 Jul 2009 18: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 41C211065675 for ; Mon, 27 Jul 2009 18:20:44 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2FCD68FC18 for ; Mon, 27 Jul 2009 18:20:44 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RIKipE019584 for ; Mon, 27 Jul 2009 18:20:44 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RIKimN019582 for perforce@freebsd.org; Mon, 27 Jul 2009 18:20:44 GMT (envelope-from mav@freebsd.org) Date: Mon, 27 Jul 2009 18:20:44 GMT Message-Id: <200907271820.n6RIKimN019582@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166640 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 18:20:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=166640 Change 166640 by mav@mav_mavbook on 2009/07/27 18:20:03 Change connection speed setting order, to make it work also on ICH8. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#46 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#46 (text+ko) ==== @@ -1664,9 +1664,6 @@ if (bootverbose) device_printf(dev, "hardware reset ...\n"); - ATA_OUTL(ch->r_mem, AHCI_P_SCTL, ATA_SC_IPM_DIS_PARTIAL | - ATA_SC_IPM_DIS_SLUMBER | ATA_SC_DET_RESET); - DELAY(50000); if (ch->sata_rev == 1) val = ATA_SC_SPD_SPEED_GEN1; else if (ch->sata_rev == 2) @@ -1676,6 +1673,10 @@ else val = 0; ATA_OUTL(ch->r_mem, AHCI_P_SCTL, + ATA_SC_DET_RESET | val | + ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER); + DELAY(50000); + ATA_OUTL(ch->r_mem, AHCI_P_SCTL, ATA_SC_DET_IDLE | val | ((ch->pm_level > 0) ? 0 : (ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER))); DELAY(50000); From owner-p4-projects@FreeBSD.ORG Mon Jul 27 18:32:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 40A471065673; Mon, 27 Jul 2009 18:32:58 +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 F12F8106566C for ; Mon, 27 Jul 2009 18:32:57 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DEEF38FC1A for ; Mon, 27 Jul 2009 18:32:57 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RIWvWJ020382 for ; Mon, 27 Jul 2009 18:32:57 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RIWvGK020380 for perforce@freebsd.org; Mon, 27 Jul 2009 18:32:57 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 18:32:57 GMT Message-Id: <200907271832.n6RIWvGK020380@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166641 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 18:32:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=166641 Change 166641 by pgj@petymeg-current on 2009/07/27 18:32:28 Standardize IP statistics and add header. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_input.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_var.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_input.c#3 (text+ko) ==== @@ -84,6 +84,7 @@ #endif /* IPSEC */ #include +#include /* XXX: Temporary until ipfw_ether and ipfw_bridge are converted. */ #include @@ -112,6 +113,10 @@ struct in_ifaddrhead in_ifaddrhead; /* first inet address */ struct in_ifaddrhashhead *in_ifaddrhashtbl; /* inet addr hash table */ u_long in_ifaddrhmask; /* mask for hash table */ +struct stat_header ipstat_header = { + .sth_version = IPSTAT_VERSION, + .sth_len = sizeof(struct ipstat) +}; struct ipstat ipstat; static int ip_rsvp_on; struct socket *ip_rsvpd; @@ -180,6 +185,9 @@ SYSCTL_V_STRUCT(V_NET, vnet_inet, _net_inet_ip, IPCTL_STATS, stats, CTLFLAG_RW, ipstat, ipstat, "IP statistics (struct ipstat, netinet/ip_var.h)"); +SYSCTL_V_STRUCT(V_NET, vnet_inet, _net_inet_ip, OID_AUTO, stats_header, + CTLFLAG_RD, ipstat_header, stat_header, "IP statistics header"); + #ifdef VIMAGE_GLOBALS static uma_zone_t ipq_zone; #endif ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_var.h#2 (text+ko) ==== @@ -98,36 +98,38 @@ struct in_mfilter *imo_mfilters; /* source filters */ }; +#define IPSTAT_VERSION 0x00000001 + struct ipstat { - u_long ips_total; /* total packets received */ - u_long ips_badsum; /* checksum bad */ - u_long ips_tooshort; /* packet too short */ - u_long ips_toosmall; /* not enough data */ - u_long ips_badhlen; /* ip header length < data size */ - u_long ips_badlen; /* ip length < ip header length */ - u_long ips_fragments; /* fragments received */ - u_long ips_fragdropped; /* frags dropped (dups, out of space) */ - u_long ips_fragtimeout; /* fragments timed out */ - u_long ips_forward; /* packets forwarded */ - u_long ips_fastforward; /* packets fast forwarded */ - u_long ips_cantforward; /* packets rcvd for unreachable dest */ - u_long ips_redirectsent; /* packets forwarded on same net */ - u_long ips_noproto; /* unknown or unsupported protocol */ - u_long ips_delivered; /* datagrams delivered to upper level*/ - u_long ips_localout; /* total ip packets generated here */ - u_long ips_odropped; /* lost packets due to nobufs, etc. */ - u_long ips_reassembled; /* total packets reassembled ok */ - u_long ips_fragmented; /* datagrams successfully fragmented */ - u_long ips_ofragments; /* output fragments created */ - u_long ips_cantfrag; /* don't fragment flag was set, etc. */ - u_long ips_badoptions; /* error in option processing */ - u_long ips_noroute; /* packets discarded due to no route */ - u_long ips_badvers; /* ip version != 4 */ - u_long ips_rawout; /* total raw ip packets generated */ - u_long ips_toolong; /* ip length > max ip packet size */ - u_long ips_notmember; /* multicasts for unregistered grps */ - u_long ips_nogif; /* no match gif found */ - u_long ips_badaddr; /* invalid address on header */ + u_int64_t ips_total; /* total packets received */ + u_int64_t ips_badsum; /* checksum bad */ + u_int64_t ips_tooshort; /* packet too short */ + u_int64_t ips_toosmall; /* not enough data */ + u_int64_t ips_badhlen; /* ip header length < data size */ + u_int64_t ips_badlen; /* ip length < ip header length */ + u_int64_t ips_fragments; /* fragments received */ + u_int64_t ips_fragdropped; /* frags dropped (dups, out of space) */ + u_int64_t ips_fragtimeout; /* fragments timed out */ + u_int64_t ips_forward; /* packets forwarded */ + u_int64_t ips_fastforward; /* packets fast forwarded */ + u_int64_t ips_cantforward; /* packets rcvd for unreachable dest */ + u_int64_t ips_redirectsent; /* packets forwarded on same net */ + u_int64_t ips_noproto; /* unknown or unsupported protocol */ + u_int64_t ips_delivered; /* datagrams delivered to upper level*/ + u_int64_t ips_localout; /* total ip packets generated here */ + u_int64_t ips_odropped; /* lost packets due to nobufs, etc. */ + u_int64_t ips_reassembled; /* total packets reassembled ok */ + u_int64_t ips_fragmented; /* datagrams successfully fragmented */ + u_int64_t ips_ofragments; /* output fragments created */ + u_int64_t ips_cantfrag; /* don't fragment flag was set, etc. */ + u_int64_t ips_badoptions; /* error in option processing */ + u_int64_t ips_noroute; /* packets discarded due to no route */ + u_int64_t ips_badvers; /* ip version != 4 */ + u_int64_t ips_rawout; /* total raw ip packets generated */ + u_int64_t ips_toolong; /* ip length > max ip packet size */ + u_int64_t ips_notmember; /* multicasts for unregistered grps */ + u_int64_t ips_nogif; /* no match gif found */ + u_int64_t ips_badaddr; /* invalid address on header */ }; #ifdef _KERNEL From owner-p4-projects@FreeBSD.ORG Mon Jul 27 18:33:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3E09510656D3; Mon, 27 Jul 2009 18:33:59 +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 F023610656D1 for ; Mon, 27 Jul 2009 18:33:58 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D4EC28FC13 for ; Mon, 27 Jul 2009 18:33:58 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RIXwJ8020490 for ; Mon, 27 Jul 2009 18:33:58 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RIXwf1020488 for perforce@freebsd.org; Mon, 27 Jul 2009 18:33:58 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 18:33:58 GMT Message-Id: <200907271833.n6RIXwf1020488@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166642 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 18:34:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=166642 Change 166642 by pgj@petymeg-current on 2009/07/27 18:33:21 Add support for IP statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#36 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#34 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#4 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#40 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#36 (text+ko) ==== @@ -118,6 +118,7 @@ stat_TCP = 0, stat_UDP, stat_CARP, + stat_IP, stat_MAX, stat_Invalid, }; @@ -146,6 +147,7 @@ struct tcp_stat; struct udp_stat; struct carp_stat; +struct ip_stat; __BEGIN_DECLS const char *netstat_strerror(int); @@ -466,4 +468,36 @@ u_int64_t netstat_carps_get_onomem(const struct carp_stat *); u_int64_t netstat_carps_get_ostates(const struct carp_stat *); u_int64_t netstat_carps_get_preempt(const struct carp_stat *); + +const struct ip_stat *netstat_get_ipstats(const struct stat_type *); + +u_int64_t netstat_ips_get_total(const struct ip_stat *); +u_int64_t netstat_ips_get_badsum(const struct ip_stat *); +u_int64_t netstat_ips_get_tooshort(const struct ip_stat *); +u_int64_t netstat_ips_get_toosmall(const struct ip_stat *); +u_int64_t netstat_ips_get_badhlen(const struct ip_stat *); +u_int64_t netstat_ips_get_badlen(const struct ip_stat *); +u_int64_t netstat_ips_get_fragments(const struct ip_stat *); +u_int64_t netstat_ips_get_fragdropped(const struct ip_stat *); +u_int64_t netstat_ips_get_fragtimeout(const struct ip_stat *); +u_int64_t netstat_ips_get_forward(const struct ip_stat *); +u_int64_t netstat_ips_get_fastforward(const struct ip_stat *); +u_int64_t netstat_ips_get_cantforward(const struct ip_stat *); +u_int64_t netstat_ips_get_redirectsent(const struct ip_stat *); +u_int64_t netstat_ips_get_noproto(const struct ip_stat *); +u_int64_t netstat_ips_get_delivered(const struct ip_stat *); +u_int64_t netstat_ips_get_localout(const struct ip_stat *); +u_int64_t netstat_ips_get_odropped(const struct ip_stat *); +u_int64_t netstat_ips_get_reassembled(const struct ip_stat *); +u_int64_t netstat_ips_get_fragmented(const struct ip_stat *); +u_int64_t netstat_ips_get_ofragments(const struct ip_stat *); +u_int64_t netstat_ips_get_cantfrag(const struct ip_stat *); +u_int64_t netstat_ips_get_badoptions(const struct ip_stat *); +u_int64_t netstat_ips_get_noroute(const struct ip_stat *); +u_int64_t netstat_ips_get_badvers(const struct ip_stat *); +u_int64_t netstat_ips_get_rawout(const struct ip_stat *); +u_int64_t netstat_ips_get_toolong(const struct ip_stat *); +u_int64_t netstat_ips_get_notmember(const struct ip_stat *); +u_int64_t netstat_ips_get_nogif(const struct ip_stat *); +u_int64_t netstat_ips_get_badaddr(const struct ip_stat *); #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#34 (text+ko) ==== @@ -294,6 +294,10 @@ struct carpstats s; }; +struct ip_stat { + struct ipstat s; +}; + int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#4 (text+ko) ==== @@ -58,6 +58,7 @@ { TCPSTAT_VERSION, "net.inet.tcp.stats", "_tcpstat" }, { UDPSTAT_VERSION, "net.inet.udp.stats", "_udpstat" }, { CARPSTAT_VERSION, "net.inet.carp.stats", "_carpstats" }, + { IPSTAT_VERSION, "net.inet.ip.stats", "_ipstat" }, }; int ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#40 (text+ko) ==== @@ -1998,6 +1998,189 @@ return (csp->s.carps_preempt); } +const struct ip_stat * +netstat_get_ipstats(const struct stat_type *sttp) +{ + if (sttp->stt_type == stat_IP) { + return ((const struct ip_stat *) sttp->stt_data); + } + return (NULL); +} + +u_int64_t +netstat_ips_get_total(const struct ip_stat *isp) +{ + return (isp->s.ips_total); +} + +u_int64_t +netstat_ips_get_badsum(const struct ip_stat *isp) +{ + return (isp->s.ips_badsum); +} + +u_int64_t +netstat_ips_get_tooshort(const struct ip_stat *isp) +{ + return (isp->s.ips_tooshort); +} + +u_int64_t +netstat_ips_get_toosmall(const struct ip_stat *isp) +{ + return (isp->s.ips_toosmall); +} + +u_int64_t +netstat_ips_get_badhlen(const struct ip_stat *isp) +{ + return (isp->s.ips_badhlen); +} + +u_int64_t +netstat_ips_get_badlen(const struct ip_stat *isp) +{ + return (isp->s.ips_badlen); +} + +u_int64_t +netstat_ips_get_fragments(const struct ip_stat *isp) +{ + return (isp->s.ips_fragments); +} + +u_int64_t +netstat_ips_get_fragdropped(const struct ip_stat *isp) +{ + return (isp->s.ips_fragdropped); +} + +u_int64_t +netstat_ips_get_fragtimeout(const struct ip_stat *isp) +{ + return (isp->s.ips_fragtimeout); +} + +u_int64_t +netstat_ips_get_forward(const struct ip_stat *isp) +{ + return (isp->s.ips_forward); +} + +u_int64_t +netstat_ips_get_fastforward(const struct ip_stat *isp) +{ + return (isp->s.ips_fastforward); +} + +u_int64_t +netstat_ips_get_cantforward(const struct ip_stat *isp) +{ + return (isp->s.ips_cantforward); +} + +u_int64_t +netstat_ips_get_redirectsent(const struct ip_stat *isp) +{ + return (isp->s.ips_redirectsent); +} + +u_int64_t +netstat_ips_get_noproto(const struct ip_stat *isp) +{ + return (isp->s.ips_noproto); +} + +u_int64_t +netstat_ips_get_delivered(const struct ip_stat *isp) +{ + return (isp->s.ips_delivered); +} + +u_int64_t +netstat_ips_get_localout(const struct ip_stat *isp) +{ + return (isp->s.ips_localout); +} + +u_int64_t +netstat_ips_get_odropped(const struct ip_stat *isp) +{ + return (isp->s.ips_odropped); +} + +u_int64_t +netstat_ips_get_reassembled(const struct ip_stat *isp) +{ + return (isp->s.ips_reassembled); +} + +u_int64_t +netstat_ips_get_fragmented(const struct ip_stat *isp) +{ + return (isp->s.ips_fragmented); +} + +u_int64_t +netstat_ips_get_ofragments(const struct ip_stat *isp) +{ + return (isp->s.ips_ofragments); +} + +u_int64_t +netstat_ips_get_cantfrag(const struct ip_stat *isp) +{ + return (isp->s.ips_cantfrag); +} + +u_int64_t +netstat_ips_get_badoptions(const struct ip_stat *isp) +{ + return (isp->s.ips_badoptions); +} + +u_int64_t +netstat_ips_get_noroute(const struct ip_stat *isp) +{ + return (isp->s.ips_noroute); +} + +u_int64_t +netstat_ips_get_badvers(const struct ip_stat *isp) +{ + return (isp->s.ips_badvers); +} + +u_int64_t +netstat_ips_get_rawout(const struct ip_stat *isp) +{ + return (isp->s.ips_rawout); +} + +u_int64_t +netstat_ips_get_toolong(const struct ip_stat *isp) +{ + return (isp->s.ips_toolong); +} + +u_int64_t +netstat_ips_get_notmember(const struct ip_stat *isp) +{ + return (isp->s.ips_notmember); +} + +u_int64_t +netstat_ips_get_nogif(const struct ip_stat *isp) +{ + return (isp->s.ips_nogif); +} + +u_int64_t +netstat_ips_get_badaddr(const struct ip_stat *isp) +{ + return (isp->s.ips_badaddr); +} + const char * routename(in_addr_t in, int numeric) From owner-p4-projects@FreeBSD.ORG Mon Jul 27 18:35:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 76AD21065673; Mon, 27 Jul 2009 18:35: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 357001065670 for ; Mon, 27 Jul 2009 18:35:00 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 198B58FC21 for ; Mon, 27 Jul 2009 18:35:00 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RIYx2J020549 for ; Mon, 27 Jul 2009 18:34:59 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RIYxG1020547 for perforce@freebsd.org; Mon, 27 Jul 2009 18:34:59 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 18:34:59 GMT Message-Id: <200907271834.n6RIYxG1020547@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166643 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 18:35:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=166643 Change 166643 by pgj@petymeg-current on 2009/07/27 18:34:20 Modify netstat(1) to display IP statistics by libnetstat(3). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#14 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#29 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#22 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#14 (text+ko) ==== @@ -80,7 +80,7 @@ void sctp_protopr(u_long, const char *, int, int); void sctp_stats(u_long, const char *, int, int); #endif -void ip_stats(u_long, const char *, int, int); +void ip_stats(const struct stat_type *); void icmp_stats(u_long, const char *, int, int); void igmp_stats(u_long, const char *, int, int); void pim_stats(u_long, const char *, int, int); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#29 (text+ko) ==== @@ -443,62 +443,48 @@ * Dump IP statistics structure. */ void -ip_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +ip_stats(const struct stat_type *sttp) { - struct ipstat ipstat, zerostat; - size_t len = sizeof ipstat; + const struct ip_stat *s; - if (live) { - if (zflag) - memset(&zerostat, 0, len); - if (sysctlbyname("net.inet.ip.stats", &ipstat, &len, - zflag ? &zerostat : NULL, zflag ? len : 0) < 0) { - warn("sysctl: net.inet.ip.stats"); - return; - } - } else - kread(off, &ipstat, len); - - printf("%s:\n", name); - -#define p(f, m) if (ipstat.f || sflag <= 1) \ - printf(m, ipstat.f, plural(ipstat.f)) -#define p1a(f, m) if (ipstat.f || sflag <= 1) \ - printf(m, ipstat.f) - - p(ips_total, "\t%lu total packet%s received\n"); - p(ips_badsum, "\t%lu bad header checksum%s\n"); - p1a(ips_toosmall, "\t%lu with size smaller than minimum\n"); - p1a(ips_tooshort, "\t%lu with data size < data length\n"); - p1a(ips_toolong, "\t%lu with ip length > max ip packet size\n"); - p1a(ips_badhlen, "\t%lu with header length < data size\n"); - p1a(ips_badlen, "\t%lu with data length < header length\n"); - p1a(ips_badoptions, "\t%lu with bad options\n"); - p1a(ips_badvers, "\t%lu with incorrect version number\n"); - p(ips_fragments, "\t%lu fragment%s received\n"); - p(ips_fragdropped, "\t%lu fragment%s dropped (dup or out of space)\n"); - p(ips_fragtimeout, "\t%lu fragment%s dropped after timeout\n"); - p(ips_reassembled, "\t%lu packet%s reassembled ok\n"); - p(ips_delivered, "\t%lu packet%s for this host\n"); - p(ips_noproto, "\t%lu packet%s for unknown/unsupported protocol\n"); - p(ips_forward, "\t%lu packet%s forwarded"); - p(ips_fastforward, " (%lu packet%s fast forwarded)"); - if (ipstat.ips_forward || sflag <= 1) + s = netstat_get_ipstats(sttp); +#define p(f, m) if (netstat_ips_get_##f(s) || sflag <= 1) \ + printf(m, netstat_ips_get_##f(s), plural(netstat_ips_get_##f(s))) +#define p1a(f, m) if (netstat_ips_get_##f(s) || sflag <= 1) \ + printf(m, netstat_ips_get_##f(s)) + p(total, "\t%ju total packet%s received\n"); + p(badsum, "\t%ju bad header checksum%s\n"); + p1a(toosmall, "\t%ju with size smaller than minimum\n"); + p1a(tooshort, "\t%ju with data size < data length\n"); + p1a(toolong, "\t%ju with ip length > max ip packet size\n"); + p1a(badhlen, "\t%ju with header length < data size\n"); + p1a(badlen, "\t%ju with data length < header length\n"); + p1a(badoptions, "\t%ju with bad options\n"); + p1a(badvers, "\t%ju with incorrect version number\n"); + p(fragments, "\t%ju fragment%s received\n"); + p(fragdropped, "\t%ju fragment%s dropped (dup or out of space)\n"); + p(fragtimeout, "\t%ju fragment%s dropped after timeout\n"); + p(reassembled, "\t%ju packet%s reassembled ok\n"); + p(delivered, "\t%ju packet%s for this host\n"); + p(noproto, "\t%ju packet%s for unknown/unsupported protocol\n"); + p(forward, "\t%ju packet%s forwarded"); + p(fastforward, " (%ju packet%s fast forwarded)"); + if (netstat_ips_get_forward(s) || sflag <= 1) putchar('\n'); - p(ips_cantforward, "\t%lu packet%s not forwardable\n"); - p(ips_notmember, - "\t%lu packet%s received for unknown multicast group\n"); - p(ips_redirectsent, "\t%lu redirect%s sent\n"); - p(ips_localout, "\t%lu packet%s sent from this host\n"); - p(ips_rawout, "\t%lu packet%s sent with fabricated ip header\n"); - p(ips_odropped, - "\t%lu output packet%s dropped due to no bufs, etc.\n"); - p(ips_noroute, "\t%lu output packet%s discarded due to no route\n"); - p(ips_fragmented, "\t%lu output datagram%s fragmented\n"); - p(ips_ofragments, "\t%lu fragment%s created\n"); - p(ips_cantfrag, "\t%lu datagram%s that can't be fragmented\n"); - p(ips_nogif, "\t%lu tunneling packet%s that can't find gif\n"); - p(ips_badaddr, "\t%lu datagram%s with bad address in header\n"); + p(cantforward, "\t%ju packet%s not forwardable\n"); + p(notmember, + "\t%ju packet%s received for unknown multicast group\n"); + p(redirectsent, "\t%ju redirect%s sent\n"); + p(localout, "\t%ju packet%s sent from this host\n"); + p(rawout, "\t%ju packet%s sent with fabricated ip header\n"); + p(odropped, + "\t%ju output packet%s dropped due to no bufs, etc.\n"); + p(noroute, "\t%ju output packet%s discarded due to no route\n"); + p(fragmented, "\t%ju output datagram%s fragmented\n"); + p(ofragments, "\t%ju fragment%s created\n"); + p(cantfrag, "\t%ju datagram%s that can't be fragmented\n"); + p(nogif, "\t%ju tunneling packet%s that can't find gif\n"); + p(badaddr, "\t%ju datagram%s with bad address in header\n"); #undef p #undef p1a } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#22 (text+ko) ==== @@ -127,19 +127,17 @@ { .n_name = "_espstat" }, #define N_IPCOMPSTAT 24 { .n_name = "_ipcompstat" }, -#define N_IPSTAT 25 - { .n_name = "_ipstat" }, -#define N_ICMPSTAT 26 +#define N_ICMPSTAT 25 { .n_name = "_icmpstat" }, -#define N_IGMPSTAT 27 +#define N_IGMPSTAT 26 { .n_name = "_igmpstat" }, -#define N_PIMSTAT 28 +#define N_PIMSTAT 27 { .n_name = "_pimstat" }, -#define N_RIP6STAT 29 +#define N_RIP6STAT 28 { .n_name = "_rip6stat" }, -#define N_SCTPSTAT 30 +#define N_SCTPSTAT 29 { .n_name = "_sctpstat" }, -#define N_MFCTABLESIZE 31 +#define N_MFCTABLESIZE 30 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -169,8 +167,8 @@ #endif { 0, -1, 1, NULL, NULL, stat_MAX, NULL, NULL, "divert", 1, IPPROTO_DIVERT }, - { 0, N_IPSTAT, 1, NULL, NULL, stat_MAX, - ip_stats, NULL, "ip", 1, IPPROTO_RAW }, + { 0, 0, 1, NULL, ip_stats, stat_IP, + NULL, NULL, "ip", 1, IPPROTO_RAW }, { 0, N_ICMPSTAT, 1, NULL, NULL, stat_MAX, icmp_stats, NULL, "icmp", 1, IPPROTO_ICMP }, { 0, N_IGMPSTAT, 1, NULL, NULL, stat_MAX, From owner-p4-projects@FreeBSD.ORG Mon Jul 27 20:34:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1BAAB1065698; Mon, 27 Jul 2009 20:34:12 +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 C8E8C1065693 for ; Mon, 27 Jul 2009 20:34:11 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9C3C98FC20 for ; Mon, 27 Jul 2009 20:34:11 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RKYBTc031112 for ; Mon, 27 Jul 2009 20:34:11 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RKYBSG031110 for perforce@freebsd.org; Mon, 27 Jul 2009 20:34:11 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 27 Jul 2009 20:34:11 GMT Message-Id: <200907272034.n6RKYBSG031110@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166650 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 20:34:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=166650 Change 166650 by hselasky@hselasky_laptop001 on 2009/07/27 20:33:20 USB CORE - Improve HID parsing See PR description for more info. Patch is implemented differently than suggested, but having the same result. PR: usb/137188 Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_hid.c#39 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_hid.c#39 (text+ko) ==== @@ -78,11 +78,19 @@ #define MAXUSAGE 64 #define MAXPUSH 4 +#define MAXID 16 + +struct hid_pos_data { + int32_t rid; + uint32_t pos; +}; + struct hid_data { const uint8_t *start; const uint8_t *end; const uint8_t *p; struct hid_item cur[MAXPUSH]; + struct hid_pos_data last_pos[MAXID]; int32_t usages_min[MAXUSAGE]; int32_t usages_max[MAXUSAGE]; int32_t usage_last; /* last seen usage */ @@ -119,6 +127,58 @@ c->set_delimiter = 0; } +static void +hid_switch_rid(struct hid_data *s, struct hid_item *c, int32_t next_rID) +{ + uint8_t i; + + /* check for same report ID - optimise */ + + if (c->report_ID == next_rID) + return; + + /* save current position for current rID */ + + if (c->report_ID == 0) { + i = 0; + } else { + for (i = 1; i != MAXID; i++) { + if (s->last_pos[i].rid == c->report_ID) + break; + if (s->last_pos[i].rid == 0) + break; + } + } + if (i != MAXID) { + s->last_pos[i].rid = c->report_ID; + s->last_pos[i].pos = c->loc.pos; + } + + /* store next report ID */ + + c->report_ID = next_rID; + + /* lookup last position for next rID */ + + if (next_rID == 0) { + i = 0; + } else { + for (i = 1; i != MAXID; i++) { + if (s->last_pos[i].rid == next_rID) + break; + if (s->last_pos[i].rid == 0) + break; + } + } + if (i != MAXID) { + s->last_pos[i].rid = next_rID; + c->loc.pos = s->last_pos[i].pos; + } else { + DPRINTF("Out of RID entries, position is set to zero!\n"); + c->loc.pos = 0; + } +} + /*------------------------------------------------------------------------* * hid_start_parse *------------------------------------------------------------------------*/ @@ -373,9 +433,7 @@ s->loc_size = dval & mask; break; case 8: - c->report_ID = dval; - /* new report - reset position */ - c->loc.pos = 0; + hid_switch_rid(s, c, dval); break; case 9: /* mask because value is unsigned */ From owner-p4-projects@FreeBSD.ORG Mon Jul 27 20:45:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8E5FE1065678; Mon, 27 Jul 2009 20:45:24 +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 49C7A1065674 for ; Mon, 27 Jul 2009 20:45:24 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1DC1F8FC26 for ; Mon, 27 Jul 2009 20:45:24 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RKjOfV031983 for ; Mon, 27 Jul 2009 20:45:24 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RKjN4T031981 for perforce@freebsd.org; Mon, 27 Jul 2009 20:45:23 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 20:45:23 GMT Message-Id: <200907272045.n6RKjN4T031981@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166652 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 20:45:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=166652 Change 166652 by pgj@petymeg-current on 2009/07/27 20:44:57 Standardize struct icmpstat, add header. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/icmp_var.h#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_icmp.c#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/icmp_var.h#2 (text+ko) ==== @@ -38,23 +38,26 @@ * Variables related to this implementation * of the internet control message protocol. */ + +#define ICMPSTAT_VERSION 0x00000001 + struct icmpstat { /* statistics related to icmp packets generated */ - u_long icps_error; /* # of calls to icmp_error */ - u_long icps_oldshort; /* no error 'cuz old ip too short */ - u_long icps_oldicmp; /* no error 'cuz old was icmp */ - u_long icps_outhist[ICMP_MAXTYPE + 1]; + u_int64_t icps_error; /* # of calls to icmp_error */ + u_int64_t icps_oldshort; /* no error 'cuz old ip too short */ + u_int64_t icps_oldicmp; /* no error 'cuz old was icmp */ + u_int64_t icps_outhist[ICMP_MAXTYPE + 1]; /* statistics related to input messages processed */ - u_long icps_badcode; /* icmp_code out of range */ - u_long icps_tooshort; /* packet < ICMP_MINLEN */ - u_long icps_checksum; /* bad checksum */ - u_long icps_badlen; /* calculated bound mismatch */ - u_long icps_reflect; /* number of responses */ - u_long icps_inhist[ICMP_MAXTYPE + 1]; - u_long icps_bmcastecho; /* b/mcast echo requests dropped */ - u_long icps_bmcasttstamp; /* b/mcast tstamp requests dropped */ - u_long icps_badaddr; /* bad return address */ - u_long icps_noroute; /* no route back */ + u_int64_t icps_badcode; /* icmp_code out of range */ + u_int64_t icps_tooshort; /* packet < ICMP_MINLEN */ + u_int64_t icps_checksum; /* bad checksum */ + u_int64_t icps_badlen; /* calculated bound mismatch */ + u_int64_t icps_reflect; /* number of responses */ + u_int64_t icps_inhist[ICMP_MAXTYPE + 1]; + u_int64_t icps_bmcastecho; /* b/mcast echo requests dropped */ + u_int64_t icps_bmcasttstamp; /* b/mcast tstamp requests dropped */ + u_int64_t icps_badaddr; /* bad return address */ + u_int64_t icps_noroute; /* no route back */ }; #ifdef _KERNEL ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_icmp.c#2 (text+ko) ==== @@ -79,6 +79,10 @@ */ #ifdef VIMAGE_GLOBALS +struct stat_header icmpstat_header = { + .sth_version = ICMPSTAT_VERSION, + .sth_len = sizeof(struct icmpstat) +}; struct icmpstat icmpstat; static int icmpmaskrepl; static u_int icmpmaskfake; @@ -93,7 +97,10 @@ #endif SYSCTL_V_STRUCT(V_NET, vnet_inet, _net_inet_icmp, ICMPCTL_STATS, stats, - CTLFLAG_RW, icmpstat, icmpstat, ""); + CTLFLAG_RW, icmpstat, icmpstat, "ICMP statistics"); + +SYSCTL_V_STRUCT(V_NET, vnet_inet, _net_inet_icmp, OID_AUTO, stats_header, + CTLFLAG_RW, icmpstat_header, stat_header, "ICMP statistics header"); SYSCTL_V_INT(V_NET, vnet_inet, _net_inet_icmp, ICMPCTL_MASKREPL, maskrepl, CTLFLAG_RW, icmpmaskrepl, 0, From owner-p4-projects@FreeBSD.ORG Mon Jul 27 20:46:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ACE9A1065748; Mon, 27 Jul 2009 20:46: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 68F361065746 for ; Mon, 27 Jul 2009 20:46:25 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 56BFD8FC0A for ; Mon, 27 Jul 2009 20:46:25 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RKkPxf032041 for ; Mon, 27 Jul 2009 20:46:25 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RKkPjp032039 for perforce@freebsd.org; Mon, 27 Jul 2009 20:46:25 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 20:46:25 GMT Message-Id: <200907272046.n6RKkPjp032039@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166653 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 20:46:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=166653 Change 166653 by pgj@petymeg-current on 2009/07/27 20:45:40 Add support for ICMP statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#37 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#35 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#5 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#41 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#37 (text+ko) ==== @@ -119,6 +119,7 @@ stat_UDP, stat_CARP, stat_IP, + stat_ICMP, stat_MAX, stat_Invalid, }; @@ -148,6 +149,7 @@ struct udp_stat; struct carp_stat; struct ip_stat; +struct icmp_stat; __BEGIN_DECLS const char *netstat_strerror(int); @@ -500,4 +502,23 @@ u_int64_t netstat_ips_get_notmember(const struct ip_stat *); u_int64_t netstat_ips_get_nogif(const struct ip_stat *); u_int64_t netstat_ips_get_badaddr(const struct ip_stat *); + +const struct icmp_stat *netstat_get_icmpstats(const struct stat_type *); + +u_int64_t netstat_icmps_get_error(const struct icmp_stat *); +u_int64_t netstat_icmps_get_oldshort(const struct icmp_stat *); +u_int64_t netstat_icmps_get_oldicmp(const struct icmp_stat *); +u_int64_t netstat_icmps_get_outhist(const struct icmp_stat *, int); +u_int64_t netstat_icmps_get_badcode(const struct icmp_stat *); +u_int64_t netstat_icmps_get_tooshort(const struct icmp_stat *); +u_int64_t netstat_icmps_get_checksum(const struct icmp_stat *); +u_int64_t netstat_icmps_get_badlen(const struct icmp_stat *); +u_int64_t netstat_icmps_get_reflect(const struct icmp_stat *); +u_int64_t netstat_icmps_get_inhist(const struct icmp_stat *, int); +u_int64_t netstat_icmps_get_bmcastecho(const struct icmp_stat *); +u_int64_t netstat_icmps_get_bmcasttstamp(const struct icmp_stat *); +u_int64_t netstat_icmps_get_badaddr(const struct icmp_stat *); +u_int64_t netstat_icmps_get_noroute(const struct icmp_stat *); +const char *netstat_icmpname(int); +int netstat_icmp_get_maskrepl(void *kvm_handle); #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#35 (text+ko) ==== @@ -45,6 +45,8 @@ #include #include #include +#include +#include #include "netstat.h" @@ -298,6 +300,10 @@ struct ipstat s; }; +struct icmp_stat { + struct icmpstat s; +}; + int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#5 (text+ko) ==== @@ -36,6 +36,8 @@ #include #include #include +#include +#include #include #include @@ -59,6 +61,7 @@ { UDPSTAT_VERSION, "net.inet.udp.stats", "_udpstat" }, { CARPSTAT_VERSION, "net.inet.carp.stats", "_carpstats" }, { IPSTAT_VERSION, "net.inet.ip.stats", "_ipstat" }, + { ICMPSTAT_VERSION, "net.inet.icmp.stats", "_icmpstat" }, }; int @@ -132,6 +135,30 @@ } int +netstat_icmp_get_maskrepl(void *kvm_handle) +{ + int res; + + res = 0; + + if (kvm_handle == NULL) { + if (read_sysctl("net.inet.icmp.maskrepl", &res, + sizeof(res)) < 0) { + warn("netstat_icmp_get_maskrepl"); + return (res); + } + } else { + if (read_kvm(kvm_handle, "_icmpmaskrepl", &res, + sizeof(res)) < 0) { + warn("netstat_icmp_get_maskrepl"); + return (res); + } + } + + return (res); +} + +int read_sysctl(const char *mib_symbol, void *addr, size_t len) { if (sysctlbyname(mib_symbol, addr, &len, 0, 0) < 0) { ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#41 (text+ko) ==== @@ -2181,6 +2181,157 @@ return (isp->s.ips_badaddr); } +const struct icmp_stat * +netstat_get_icmpstats(const struct stat_type *sttp) +{ + if (sttp->stt_type == stat_ICMP) { + return ((const struct icmp_stat *) sttp->stt_data); + } + return (NULL); +} + +u_int64_t +netstat_icmps_get_error(const struct icmp_stat *isp) +{ + return (isp->s.icps_error); +} + +u_int64_t +netstat_icmps_get_oldshort(const struct icmp_stat *isp) +{ + return (isp->s.icps_oldshort); +} + +u_int64_t +netstat_icmps_get_oldicmp(const struct icmp_stat *isp) +{ + return (isp->s.icps_oldicmp); +} + +u_int64_t +netstat_icmps_get_outhist(const struct icmp_stat *isp, int i) +{ + if (0 <= i && i < ICMP_MAXTYPE) + return (isp->s.icps_outhist[i]); + return (0); +} + +u_int64_t +netstat_icmps_get_badcode(const struct icmp_stat *isp) +{ + return (isp->s.icps_badcode); +} + +u_int64_t +netstat_icmps_get_tooshort(const struct icmp_stat *isp) +{ + return (isp->s.icps_tooshort); +} + +u_int64_t +netstat_icmps_get_checksum(const struct icmp_stat *isp) +{ + return (isp->s.icps_checksum); +} + +u_int64_t +netstat_icmps_get_badlen(const struct icmp_stat *isp) +{ + return (isp->s.icps_badlen); +} + +u_int64_t +netstat_icmps_get_reflect(const struct icmp_stat *isp) +{ + return (isp->s.icps_reflect); +} + +u_int64_t +netstat_icmps_get_inhist(const struct icmp_stat *isp, int i) +{ + if (0 <= i && i < ICMP_MAXTYPE) + return (isp->s.icps_inhist[i]); + return (0); +} + +u_int64_t +netstat_icmps_get_bmcastecho(const struct icmp_stat *isp) +{ + return (isp->s.icps_bmcastecho); +} + +u_int64_t +netstat_icmps_get_bmcasttstamp(const struct icmp_stat *isp) +{ + return (isp->s.icps_bmcasttstamp); +} + +u_int64_t +netstat_icmps_get_badaddr(const struct icmp_stat *isp) +{ + return (isp->s.icps_badaddr); +} + +u_int64_t +netstat_icmps_get_noroute(const struct icmp_stat *isp) +{ + return (isp->s.icps_noroute); +} + + + +static const char *icmpnames[ICMP_MAXTYPE + 1] = { + "echo reply", /* RFC 792 */ + "#1", + "#2", + "destination unreachable", /* RFC 792 */ + "source quench", /* RFC 792 */ + "routing redirect", /* RFC 792 */ + "#6", + "#7", + "echo", /* RFC 792 */ + "router advertisement", /* RFC 1256 */ + "router solicitation", /* RFC 1256 */ + "time exceeded", /* RFC 792 */ + "parameter problem", /* RFC 792 */ + "time stamp", /* RFC 792 */ + "time stamp reply", /* RFC 792 */ + "information request", /* RFC 792 */ + "information request reply", /* RFC 792 */ + "address mask request", /* RFC 950 */ + "address mask reply", /* RFC 950 */ + "#19", + "#20", + "#21", + "#22", + "#23", + "#24", + "#25", + "#26", + "#27", + "#28", + "#29", + "icmp traceroute", /* RFC 1393 */ + "datagram conversion error", /* RFC 1475 */ + "mobile host redirect", + "IPv6 where-are-you", + "IPv6 i-am-here", + "mobile registration req", + "mobile registration reply", + "domain name request", /* RFC 1788 */ + "domain name reply", /* RFC 1788 */ + "icmp SKIP", + "icmp photuris", /* RFC 2521 */ +}; + +const char * +netstat_icmpname(int type) +{ + if (0 <= type && type < ICMP_MAXTYPE) { + return (icmpnames[type]); + } + return (NULL); +} const char * routename(in_addr_t in, int numeric) From owner-p4-projects@FreeBSD.ORG Mon Jul 27 20:47:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EC89B1065673; Mon, 27 Jul 2009 20:47: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 AADD9106566C for ; Mon, 27 Jul 2009 20:47:26 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8E9058FC1B for ; Mon, 27 Jul 2009 20:47:26 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RKlQLx042143 for ; Mon, 27 Jul 2009 20:47:26 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RKlQlg042141 for perforce@freebsd.org; Mon, 27 Jul 2009 20:47:26 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 20:47:26 GMT Message-Id: <200907272047.n6RKlQlg042141@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166654 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 20:47:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=166654 Change 166654 by pgj@petymeg-current on 2009/07/27 20:46:59 Libnetstatify icmp_stats() of netstat(1). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#15 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#30 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#23 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#15 (text+ko) ==== @@ -81,7 +81,7 @@ void sctp_stats(u_long, const char *, int, int); #endif void ip_stats(const struct stat_type *); -void icmp_stats(u_long, const char *, int, int); +void icmp_stats(const struct stat_type *); void igmp_stats(u_long, const char *, int, int); void pim_stats(u_long, const char *, int, int); void carp_stats(const struct stat_type *); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#30 (text+ko) ==== @@ -489,130 +489,66 @@ #undef p1a } -static const char *icmpnames[ICMP_MAXTYPE + 1] = { - "echo reply", /* RFC 792 */ - "#1", - "#2", - "destination unreachable", /* RFC 792 */ - "source quench", /* RFC 792 */ - "routing redirect", /* RFC 792 */ - "#6", - "#7", - "echo", /* RFC 792 */ - "router advertisement", /* RFC 1256 */ - "router solicitation", /* RFC 1256 */ - "time exceeded", /* RFC 792 */ - "parameter problem", /* RFC 792 */ - "time stamp", /* RFC 792 */ - "time stamp reply", /* RFC 792 */ - "information request", /* RFC 792 */ - "information request reply", /* RFC 792 */ - "address mask request", /* RFC 950 */ - "address mask reply", /* RFC 950 */ - "#19", - "#20", - "#21", - "#22", - "#23", - "#24", - "#25", - "#26", - "#27", - "#28", - "#29", - "icmp traceroute", /* RFC 1393 */ - "datagram conversion error", /* RFC 1475 */ - "mobile host redirect", - "IPv6 where-are-you", - "IPv6 i-am-here", - "mobile registration req", - "mobile registration reply", - "domain name request", /* RFC 1788 */ - "domain name reply", /* RFC 1788 */ - "icmp SKIP", - "icmp photuris", /* RFC 2521 */ -}; - /* * Dump ICMP statistics. */ void -icmp_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +icmp_stats(const struct stat_type *sttp) { - struct icmpstat icmpstat, zerostat; + const struct icmp_stat *s; int i, first; - size_t len; - len = sizeof icmpstat; - if (live) { - if (zflag) - memset(&zerostat, 0, len); - if (sysctlbyname("net.inet.icmp.stats", &icmpstat, &len, - zflag ? &zerostat : NULL, zflag ? len : 0) < 0) { - warn("sysctl: net.inet.icmp.stats"); - return; - } - } else - kread(off, &icmpstat, len); - - printf("%s:\n", name); - -#define p(f, m) if (icmpstat.f || sflag <= 1) \ - printf(m, icmpstat.f, plural(icmpstat.f)) -#define p1a(f, m) if (icmpstat.f || sflag <= 1) \ - printf(m, icmpstat.f) -#define p2(f, m) if (icmpstat.f || sflag <= 1) \ - printf(m, icmpstat.f, plurales(icmpstat.f)) - - p(icps_error, "\t%lu call%s to icmp_error\n"); - p(icps_oldicmp, - "\t%lu error%s not generated in response to an icmp message\n"); + s = netstat_get_icmpstats(sttp); +#define p(f, m) if (netstat_icmps_get_##f(s) || sflag <= 1) \ + printf(m, netstat_icmps_get_##f(s), plural(netstat_icmps_get_##f(s))) +#define p1a(f, m) if (netstat_icmps_get_##f(s) || sflag <= 1) \ + printf(m, netstat_icmps_get_##f(s)) +#define p2(f, m) if (netstat_icmps_get_##f(s) || sflag <= 1) \ + printf(m, netstat_icmps_get_##f(s), plurales(netstat_icmps_get_##f(s))) + p(error, "\t%ju call%s to icmp_error\n"); + p(oldicmp, + "\t%ju error%s not generated in response to an icmp message\n"); for (first = 1, i = 0; i < ICMP_MAXTYPE + 1; i++) - if (icmpstat.icps_outhist[i] != 0) { + if (netstat_icmps_get_outhist(s, i) != 0) { if (first) { printf("\tOutput histogram:\n"); first = 0; } - if (icmpnames[i] != NULL) - printf("\t\t%s: %lu\n", icmpnames[i], - icmpstat.icps_outhist[i]); + if (netstat_icmpname(i) != NULL) + printf("\t\t%s: %ju\n", netstat_icmpname(i), + netstat_icmps_get_outhist(s, i)); else - printf("\t\tunknown ICMP #%d: %lu\n", i, - icmpstat.icps_outhist[i]); + printf("\t\tunknown ICMP #%d: %ju\n", i, + netstat_icmps_get_outhist(s, i)); } - p(icps_badcode, "\t%lu message%s with bad code fields\n"); - p(icps_tooshort, "\t%lu message%s less than the minimum length\n"); - p(icps_checksum, "\t%lu message%s with bad checksum\n"); - p(icps_badlen, "\t%lu message%s with bad length\n"); - p1a(icps_bmcastecho, "\t%lu multicast echo requests ignored\n"); - p1a(icps_bmcasttstamp, "\t%lu multicast timestamp requests ignored\n"); + p(badcode, "\t%ju message%s with bad code fields\n"); + p(tooshort, "\t%ju message%s less than the minimum length\n"); + p(checksum, "\t%ju message%s with bad checksum\n"); + p(badlen, "\t%ju message%s with bad length\n"); + p1a(bmcastecho, "\t%ju multicast echo requests ignored\n"); + p1a(bmcasttstamp, "\t%ju multicast timestamp requests ignored\n"); for (first = 1, i = 0; i < ICMP_MAXTYPE + 1; i++) - if (icmpstat.icps_inhist[i] != 0) { + if (netstat_icmps_get_inhist(s, i) != 0) { if (first) { printf("\tInput histogram:\n"); first = 0; } - if (icmpnames[i] != NULL) - printf("\t\t%s: %lu\n", icmpnames[i], - icmpstat.icps_inhist[i]); + if (netstat_icmpname(i) != NULL) + printf("\t\t%s: %ju\n", netstat_icmpname(i), + netstat_icmps_get_inhist(s, i)); else - printf("\t\tunknown ICMP #%d: %lu\n", i, - icmpstat.icps_inhist[i]); + printf("\t\tunknown ICMP #%d: %ju\n", i, + netstat_icmps_get_inhist(s, i)); } - p(icps_reflect, "\t%lu message response%s generated\n"); - p2(icps_badaddr, "\t%lu invalid return address%s\n"); - p(icps_noroute, "\t%lu no return route%s\n"); + p(reflect, "\t%ju message response%s generated\n"); + p2(badaddr, "\t%ju invalid return address%s\n"); + p(noroute, "\t%ju no return route%s\n"); #undef p #undef p1a #undef p2 - if (live) { - len = sizeof i; - if (sysctlbyname("net.inet.icmp.maskrepl", &i, &len, NULL, 0) < - 0) - return; + if (live) printf("\tICMP address mask responses are %sabled\n", - i ? "en" : "dis"); - } + netstat_icmp_get_maskrepl(NULL) ? "en" : "dis"); } #ifndef BURN_BRIDGES ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#23 (text+ko) ==== @@ -127,17 +127,15 @@ { .n_name = "_espstat" }, #define N_IPCOMPSTAT 24 { .n_name = "_ipcompstat" }, -#define N_ICMPSTAT 25 - { .n_name = "_icmpstat" }, -#define N_IGMPSTAT 26 +#define N_IGMPSTAT 25 { .n_name = "_igmpstat" }, -#define N_PIMSTAT 27 +#define N_PIMSTAT 26 { .n_name = "_pimstat" }, -#define N_RIP6STAT 28 +#define N_RIP6STAT 27 { .n_name = "_rip6stat" }, -#define N_SCTPSTAT 29 +#define N_SCTPSTAT 28 { .n_name = "_sctpstat" }, -#define N_MFCTABLESIZE 30 +#define N_MFCTABLESIZE 29 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -169,8 +167,8 @@ NULL, NULL, "divert", 1, IPPROTO_DIVERT }, { 0, 0, 1, NULL, ip_stats, stat_IP, NULL, NULL, "ip", 1, IPPROTO_RAW }, - { 0, N_ICMPSTAT, 1, NULL, NULL, stat_MAX, - icmp_stats, NULL, "icmp", 1, IPPROTO_ICMP }, + { 0, 0, 1, NULL, icmp_stats, stat_ICMP, + NULL, NULL, "icmp", 1, IPPROTO_ICMP }, { 0, N_IGMPSTAT, 1, NULL, NULL, stat_MAX, igmp_stats, NULL, "igmp", 1, IPPROTO_IGMP }, #ifdef IPSEC From owner-p4-projects@FreeBSD.ORG Mon Jul 27 21:52:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 66FA910656FE; Mon, 27 Jul 2009 21:52:38 +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 22A8010656FC for ; Mon, 27 Jul 2009 21:52:38 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 110478FC12 for ; Mon, 27 Jul 2009 21:52:38 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RLqbiZ047674 for ; Mon, 27 Jul 2009 21:52:37 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RLqbnx047672 for perforce@freebsd.org; Mon, 27 Jul 2009 21:52:37 GMT (envelope-from mav@freebsd.org) Date: Mon, 27 Jul 2009 21:52:37 GMT Message-Id: <200907272152.n6RLqbnx047672@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166655 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 21:52:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=166655 Change 166655 by mav@mav_mavbook on 2009/07/27 21:51:51 Add SNTF support. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#47 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#47 (text+ko) ==== @@ -848,6 +848,31 @@ } static void +ahci_notify_events(device_t dev) +{ + struct ahci_channel *ch = device_get_softc(dev); + struct cam_path *dpath; + u_int32_t status; + int i; + + status = ATA_INL(ch->r_mem, AHCI_P_SNTF); + if (status == 0) + return; + ATA_OUTL(ch->r_mem, AHCI_P_SNTF, status); + if (bootverbose) + device_printf(dev, "SNTF 0x%04x\n", status); + for (i = 0; i < 16; i++) { + if ((status & (1 << i)) == 0) + continue; + if (xpt_create_path(&dpath, NULL, + xpt_path_path_id(ch->path), i, 0) == CAM_REQ_CMP) { + xpt_async(AC_SCSI_AEN, dpath, NULL); + xpt_free_path(dpath); + } + } +} + +static void ahci_ch_intr_locked(void *data) { device_t dev = (device_t)data; @@ -936,6 +961,9 @@ if (ncq_err) ahci_issue_read_log(dev); } + /* Process NOTIFY events */ + if ((istatus & AHCI_P_IX_SDB) && (ch->caps & AHCI_CAP_SSNTF)) + ahci_notify_events(dev); } /* Must be called with channel locked. */ From owner-p4-projects@FreeBSD.ORG Mon Jul 27 21:55:42 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B30591065677; Mon, 27 Jul 2009 21:55:41 +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 721EA1065670 for ; Mon, 27 Jul 2009 21:55:41 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 46AEA8FC1A for ; Mon, 27 Jul 2009 21:55:41 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RLtfKV047952 for ; Mon, 27 Jul 2009 21:55:41 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RLtfsI047950 for perforce@freebsd.org; Mon, 27 Jul 2009 21:55:41 GMT (envelope-from mav@freebsd.org) Date: Mon, 27 Jul 2009 21:55:41 GMT Message-Id: <200907272155.n6RLtfsI047950@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166656 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 21:55:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=166656 Change 166656 by mav@mav_mavbook on 2009/07/27 21:54:43 Do not clean PME on port reset. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#3 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#3 (text+ko) ==== @@ -1294,7 +1294,6 @@ /* XXX; Commands in loading state. */ siis_end_transaction(&ch->slot[i], SIIS_ERR_INNOCENT); } - ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PME); /* Reset and reconnect PHY, */ if (!siis_sata_phy_reset(dev)) { ch->devices = 0; From owner-p4-projects@FreeBSD.ORG Mon Jul 27 22:00:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8E9CB10656AE; Mon, 27 Jul 2009 22:00:47 +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 0AC0410656B7 for ; Mon, 27 Jul 2009 22:00:47 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E81E18FC1F for ; Mon, 27 Jul 2009 22:00:46 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RM0k3u048303 for ; Mon, 27 Jul 2009 22:00:46 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RM0kNt048301 for perforce@freebsd.org; Mon, 27 Jul 2009 22:00:46 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 22:00:46 GMT Message-Id: <200907272200.n6RM0kNt048301@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166657 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 22:00:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=166657 Change 166657 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 22:00:14 Receive one file descriptor at a time, not a set of file descriptors in one shot Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.c#13 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.c#13 (text+ko) ==== @@ -356,18 +356,17 @@ if(ua_unmarshall_int(fdcountd, len) < 0) return -1; - uint32_t fdcount = *len; - int32_t fdarray[fdcount]; - - struct ua_datum *fd_datum = ua_recv(angel, fdarray, &fdcount); - if(!fd_datum) return -1; - *len = fdcount; - int buflen = 1024; char buffer[buflen]; - for(unsigned int i = 0; i < fdcount; i++) + for(int i = 0; i < *len; i++) { - fds[i] = fdarray[i]; + int32_t fd; + uint32_t count = 1; + + struct ua_datum *fd_datum = ua_recv(angel, &fd, &count); + if(!fd_datum) return -1; + + fds[i] = fd; int namelen = buflen; if(ua_unmarshall_string(fd_datum, buffer, &namelen) < 0) return -1; From owner-p4-projects@FreeBSD.ORG Mon Jul 27 22:00:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4C92710656F8; Mon, 27 Jul 2009 22:00: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 2C2D710656B9 for ; Mon, 27 Jul 2009 22:00:47 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 14B098FC28 for ; Mon, 27 Jul 2009 22:00:47 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RM0kLB048308 for ; Mon, 27 Jul 2009 22:00:46 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RM0kDf048306 for perforce@freebsd.org; Mon, 27 Jul 2009 22:00:46 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 22:00:46 GMT Message-Id: <200907272200.n6RM0kDf048306@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166658 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 22:00:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=166658 Change 166658 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 22:00:41 Handle the case of a powerbox not returning any files Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.cpp#5 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.cpp#5 (text+ko) ==== @@ -93,6 +93,16 @@ return; } + if(fdcount == 0) return; + else if(fdcount != 1) + { + QMessageBox::critical(this, + tr("Powerbox Error"), + tr("Received ") + QString::number(fdcount) + + tr(" files; expected 1")); + return; + } + QFile file(this); file.open(fd, QFile::ReadWrite | QFile::Unbuffered); ui.text->setPlainText(file.readAll()); From owner-p4-projects@FreeBSD.ORG Mon Jul 27 22:02:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BA8EE1065677; Mon, 27 Jul 2009 22:02:49 +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 7609C106564A for ; Mon, 27 Jul 2009 22:02:49 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 649858FC16 for ; Mon, 27 Jul 2009 22:02:49 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RM2nPJ048428 for ; Mon, 27 Jul 2009 22:02:49 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RM2n0E048426 for perforce@freebsd.org; Mon, 27 Jul 2009 22:02:49 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 22:02:49 GMT Message-Id: <200907272202.n6RM2n0E048426@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166659 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 22:02:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=166659 Change 166659 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 22:02:23 Only close the current file if we successfully open another one Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.cpp#6 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.cpp#6 (text+ko) ==== @@ -65,8 +65,6 @@ void TextEditor::open() { - close(); - struct ua_powerbox_options options; options.ui = UA_QT; options.operation = UA_OPEN_FILE; @@ -103,6 +101,8 @@ return; } + close(); + QFile file(this); file.open(fd, QFile::ReadWrite | QFile::Unbuffered); ui.text->setPlainText(file.readAll()); From owner-p4-projects@FreeBSD.ORG Mon Jul 27 22:04:52 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2106A10656CF; Mon, 27 Jul 2009 22:04: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 D245510656CB for ; Mon, 27 Jul 2009 22:04:51 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B7B068FC1A for ; Mon, 27 Jul 2009 22:04:51 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RM4pTw049530 for ; Mon, 27 Jul 2009 22:04:51 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RM4pQi049528 for perforce@freebsd.org; Mon, 27 Jul 2009 22:04:51 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 22:04:51 GMT Message-Id: <200907272204.n6RM4pQi049528@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166660 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 22:04:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=166660 Change 166660 by pgj@petymeg-current on 2009/07/27 22:04:33 Standardize PIM statistics and add header. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/pim_var.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.c#2 (text+ko) ==== @@ -209,13 +209,21 @@ static struct callout bw_upcalls_ch; #define BW_UPCALLS_PERIOD (hz) /* periodical flush of bw upcalls */ +static struct stat_header pimstat_header = { + .sth_version = PIMSTAT_VERSION, + .sth_len = sizeof(struct pimstat) +}; static struct pimstat pimstat; SYSCTL_NODE(_net_inet, IPPROTO_PIM, pim, CTLFLAG_RW, 0, "PIM"); -SYSCTL_STRUCT(_net_inet_pim, PIMCTL_STATS, stats, CTLFLAG_RD, +SYSCTL_STRUCT(_net_inet_pim, PIMCTL_STATS, stats, CTLFLAG_RW, &pimstat, pimstat, "PIM Statistics (struct pimstat, netinet/pim_var.h)"); +SYSCTL_STRUCT(_net_inet_pim, OID_AUTO, stats_header, CTLFLAG_RD, + &pimstat_header, stat_header, + "PIM Statistics header"); + static u_long pim_squelch_wholepkt = 0; SYSCTL_ULONG(_net_inet_pim, OID_AUTO, squelch_wholepkt, CTLFLAG_RW, &pim_squelch_wholepkt, 0, ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/pim_var.h#2 (text+ko) ==== @@ -45,18 +45,21 @@ /* * PIM statistics kept in the kernel */ + +#define PIMSTAT_VERSION 0x00000001 + struct pimstat { - u_quad_t pims_rcv_total_msgs; /* total PIM messages received */ - u_quad_t pims_rcv_total_bytes; /* total PIM bytes received */ - u_quad_t pims_rcv_tooshort; /* rcvd with too few bytes */ - u_quad_t pims_rcv_badsum; /* rcvd with bad checksum */ - u_quad_t pims_rcv_badversion; /* rcvd bad PIM version */ - u_quad_t pims_rcv_registers_msgs; /* rcvd regs. msgs (data only) */ - u_quad_t pims_rcv_registers_bytes; /* rcvd regs. bytes (data only) */ - u_quad_t pims_rcv_registers_wrongiif; /* rcvd regs. on wrong iif */ - u_quad_t pims_rcv_badregisters; /* rcvd invalid registers */ - u_quad_t pims_snd_registers_msgs; /* sent regs. msgs (data only) */ - u_quad_t pims_snd_registers_bytes; /* sent regs. bytes (data only) */ + u_int64_t pims_rcv_total_msgs; /* total PIM messages received */ + u_int64_t pims_rcv_total_bytes; /* total PIM bytes received */ + u_int64_t pims_rcv_tooshort; /* rcvd with too few bytes */ + u_int64_t pims_rcv_badsum; /* rcvd with bad checksum */ + u_int64_t pims_rcv_badversion; /* rcvd bad PIM version */ + u_int64_t pims_rcv_registers_msgs; /* rcvd regs. msgs (data only) */ + u_int64_t pims_rcv_registers_bytes; /* rcvd regs. bytes (data only) */ + u_int64_t pims_rcv_registers_wrongiif; /* rcvd regs. on wrong iif */ + u_int64_t pims_rcv_badregisters; /* rcvd invalid registers */ + u_int64_t pims_snd_registers_msgs; /* sent regs. msgs (data only) */ + u_int64_t pims_snd_registers_bytes; /* sent regs. bytes (data only) */ }; #ifdef _KERNEL From owner-p4-projects@FreeBSD.ORG Mon Jul 27 22:05:53 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5152710656A9; Mon, 27 Jul 2009 22:05: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 0E7C510656A5 for ; Mon, 27 Jul 2009 22:05:53 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F096F8FC1C for ; Mon, 27 Jul 2009 22:05:52 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RM5qgx049675 for ; Mon, 27 Jul 2009 22:05:52 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RM5qsv049673 for perforce@freebsd.org; Mon, 27 Jul 2009 22:05:52 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 22:05:52 GMT Message-Id: <200907272205.n6RM5qsv049673@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166661 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 22:05:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=166661 Change 166661 by pgj@petymeg-current on 2009/07/27 22:05:13 Add support for PIM statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#38 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#36 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#6 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#42 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#38 (text+ko) ==== @@ -120,6 +120,7 @@ stat_CARP, stat_IP, stat_ICMP, + stat_PIM, stat_MAX, stat_Invalid, }; @@ -150,6 +151,7 @@ struct carp_stat; struct ip_stat; struct icmp_stat; +struct pim_stat; __BEGIN_DECLS const char *netstat_strerror(int); @@ -521,4 +523,18 @@ u_int64_t netstat_icmps_get_noroute(const struct icmp_stat *); const char *netstat_icmpname(int); int netstat_icmp_get_maskrepl(void *kvm_handle); + +const struct pim_stat *netstat_get_pimstats(const struct stat_type *); + +u_int64_t netstat_pims_get_rcv_total_msgs(const struct pim_stat *); +u_int64_t netstat_pims_get_rcv_total_bytes(const struct pim_stat *); +u_int64_t netstat_pims_get_rcv_tooshort(const struct pim_stat *); +u_int64_t netstat_pims_get_rcv_badsum(const struct pim_stat *); +u_int64_t netstat_pims_get_rcv_badversion(const struct pim_stat *); +u_int64_t netstat_pims_get_rcv_registers_msgs(const struct pim_stat *); +u_int64_t netstat_pims_get_rcv_registers_bytes(const struct pim_stat *); +u_int64_t netstat_pims_get_rcv_registers_wrongiif(const struct pim_stat *); +u_int64_t netstat_pims_get_rcv_badregisters(const struct pim_stat *); +u_int64_t netstat_pims_get_snd_registers_msgs(const struct pim_stat *); +u_int64_t netstat_pims_get_snd_registers_bytes(const struct pim_stat *); #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#36 (text+ko) ==== @@ -47,6 +47,7 @@ #include #include #include +#include #include "netstat.h" @@ -304,6 +305,10 @@ struct icmpstat s; }; +struct pim_stat { + struct pimstat s; +}; + int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#6 (text+ko) ==== @@ -62,6 +62,7 @@ { CARPSTAT_VERSION, "net.inet.carp.stats", "_carpstats" }, { IPSTAT_VERSION, "net.inet.ip.stats", "_ipstat" }, { ICMPSTAT_VERSION, "net.inet.icmp.stats", "_icmpstat" }, + { PIMSTAT_VERSION, "net.inet.pim.stats", "_pimstat" }, }; int ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#42 (text+ko) ==== @@ -2278,6 +2278,80 @@ return (isp->s.icps_noroute); } +const struct pim_stat * +netstat_get_pimstats(const struct stat_type *sttp) +{ + if (sttp->stt_type == stat_PIM) { + return ((const struct pim_stat *) sttp->stt_data); + } + return (NULL); +} + +u_int64_t +netstat_pims_get_rcv_total_msgs(const struct pim_stat *psp) +{ + return (psp->s.pims_rcv_total_msgs); +} + +u_int64_t +netstat_pims_get_rcv_total_bytes(const struct pim_stat *psp) +{ + return (psp->s.pims_rcv_total_bytes); +} + +u_int64_t +netstat_pims_get_rcv_tooshort(const struct pim_stat *psp) +{ + return (psp->s.pims_rcv_tooshort); +} + +u_int64_t +netstat_pims_get_rcv_badsum(const struct pim_stat *psp) +{ + return (psp->s.pims_rcv_badsum); +} + +u_int64_t +netstat_pims_get_rcv_badversion(const struct pim_stat *psp) +{ + return (psp->s.pims_rcv_badversion); +} + +u_int64_t +netstat_pims_get_rcv_registers_msgs(const struct pim_stat *psp) +{ + return (psp->s.pims_rcv_registers_msgs); +} + +u_int64_t +netstat_pims_get_rcv_registers_bytes(const struct pim_stat *psp) +{ + return (psp->s.pims_rcv_registers_bytes); +} + +u_int64_t +netstat_pims_get_rcv_registers_wrongiif(const struct pim_stat *psp) +{ + return (psp->s.pims_rcv_registers_wrongiif); +} + +u_int64_t +netstat_pims_get_rcv_badregisters(const struct pim_stat *psp) +{ + return (psp->s.pims_rcv_badregisters); +} + +u_int64_t +netstat_pims_get_snd_registers_msgs(const struct pim_stat *psp) +{ + return (psp->s.pims_snd_registers_msgs); +} + +u_int64_t +netstat_pims_get_snd_registers_bytes(const struct pim_stat *psp) +{ + return (psp->s.pims_snd_registers_bytes); +} static const char *icmpnames[ICMP_MAXTYPE + 1] = { From owner-p4-projects@FreeBSD.ORG Mon Jul 27 22:06:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A1E4D10656A8; Mon, 27 Jul 2009 22:06: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 5BD25106568B for ; Mon, 27 Jul 2009 22:06:54 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4957C8FC13 for ; Mon, 27 Jul 2009 22:06:54 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RM6sNo049732 for ; Mon, 27 Jul 2009 22:06:54 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RM6sXu049730 for perforce@freebsd.org; Mon, 27 Jul 2009 22:06:54 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 22:06:54 GMT Message-Id: <200907272206.n6RM6sXu049730@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166662 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 22:06:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=166662 Change 166662 by pgj@petymeg-current on 2009/07/27 22:06:00 Move pim_stats() into libnetstat(3) in netstat(1). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#16 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#31 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#24 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#16 (text+ko) ==== @@ -83,7 +83,7 @@ void ip_stats(const struct stat_type *); void icmp_stats(const struct stat_type *); void igmp_stats(u_long, const char *, int, int); -void pim_stats(u_long, const char *, int, int); +void pim_stats(const struct stat_type *); void carp_stats(const struct stat_type *); void pfsync_stats(u_long, const char *, int, int); #ifdef IPSEC ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#31 (text+ko) ==== @@ -678,45 +678,27 @@ * Dump PIM statistics structure. */ void -pim_stats(u_long off __unused, const char *name, int af1 __unused, - int proto __unused) +pim_stats(const struct stat_type *sttp) { - struct pimstat pimstat, zerostat; - size_t len = sizeof pimstat; + const struct pim_stat *s; - if (live) { - if (zflag) - memset(&zerostat, 0, len); - if (sysctlbyname("net.inet.pim.stats", &pimstat, &len, - zflag ? &zerostat : NULL, zflag ? len : 0) < 0) { - if (errno != ENOENT) - warn("sysctl: net.inet.pim.stats"); - return; - } - } else { - if (off == 0) - return; - kread(off, &pimstat, len); - } - - printf("%s:\n", name); - -#define p(f, m) if (pimstat.f || sflag <= 1) \ - printf(m, (uintmax_t)pimstat.f, plural(pimstat.f)) -#define py(f, m) if (pimstat.f || sflag <= 1) \ - printf(m, (uintmax_t)pimstat.f, pimstat.f != 1 ? "ies" : "y") - p(pims_rcv_total_msgs, "\t%ju message%s received\n"); - p(pims_rcv_total_bytes, "\t%ju byte%s received\n"); - p(pims_rcv_tooshort, "\t%ju message%s received with too few bytes\n"); - p(pims_rcv_badsum, "\t%ju message%s received with bad checksum\n"); - p(pims_rcv_badversion, "\t%ju message%s received with bad version\n"); - p(pims_rcv_registers_msgs, "\t%ju data register message%s received\n"); - p(pims_rcv_registers_bytes, "\t%ju data register byte%s received\n"); - p(pims_rcv_registers_wrongiif, + s = netstat_get_pimstats(sttp); +#define p(f, m) if (netstat_pims_get_##f(s) || sflag <= 1) \ + printf(m, netstat_pims_get_##f(s), plural(netstat_pims_get_##f(s))) +#define py(f, m) if (netstat_pims_get_##f(s) || sflag <= 1) \ + printf(m, netstat_pims_get_##f(s), netstat_pims_get_##f(s) != 1 ? "ies" : "y") + p(rcv_total_msgs, "\t%ju message%s received\n"); + p(rcv_total_bytes, "\t%ju byte%s received\n"); + p(rcv_tooshort, "\t%ju message%s received with too few bytes\n"); + p(rcv_badsum, "\t%ju message%s received with bad checksum\n"); + p(rcv_badversion, "\t%ju message%s received with bad version\n"); + p(rcv_registers_msgs, "\t%ju data register message%s received\n"); + p(rcv_registers_bytes, "\t%ju data register byte%s received\n"); + p(rcv_registers_wrongiif, "\t%ju data register message%s received on wrong iif\n"); - p(pims_rcv_badregisters, "\t%ju bad register%s received\n"); - p(pims_snd_registers_msgs, "\t%ju data register message%s sent\n"); - p(pims_snd_registers_bytes, "\t%ju data register byte%s sent\n"); + p(rcv_badregisters, "\t%ju bad register%s received\n"); + p(snd_registers_msgs, "\t%ju data register message%s sent\n"); + p(snd_registers_bytes, "\t%ju data register byte%s sent\n"); #undef p #undef py } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#24 (text+ko) ==== @@ -129,13 +129,11 @@ { .n_name = "_ipcompstat" }, #define N_IGMPSTAT 25 { .n_name = "_igmpstat" }, -#define N_PIMSTAT 26 - { .n_name = "_pimstat" }, -#define N_RIP6STAT 27 +#define N_RIP6STAT 26 { .n_name = "_rip6stat" }, -#define N_SCTPSTAT 28 +#define N_SCTPSTAT 27 { .n_name = "_sctpstat" }, -#define N_MFCTABLESIZE 29 +#define N_MFCTABLESIZE 28 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -181,8 +179,8 @@ { -1, N_IPCOMPSTAT, 1, NULL, NULL, stat_MAX, ipcomp_stats, NULL, "ipcomp", 0, 0}, #endif - { 0, N_PIMSTAT, 1, NULL, NULL, stat_MAX, - pim_stats, NULL, "pim", 1, IPPROTO_PIM }, + { 0, 0, 1, NULL, pim_stats, stat_PIM, + NULL, NULL, "pim", 1, IPPROTO_PIM }, { -1, 0, 1, NULL, carp_stats, stat_CARP, NULL, NULL, "carp", 1, 0 }, { -1, N_PFSYNCSTAT, 1, NULL, NULL, stat_MAX, From owner-p4-projects@FreeBSD.ORG Mon Jul 27 22:10:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 31B1F10656BE; Mon, 27 Jul 2009 22:10:59 +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 E12FE10656AB for ; Mon, 27 Jul 2009 22:10:58 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CFC188FC16 for ; Mon, 27 Jul 2009 22:10:58 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RMAwmR050056 for ; Mon, 27 Jul 2009 22:10:58 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RMAwBU050054 for perforce@freebsd.org; Mon, 27 Jul 2009 22:10:58 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 22:10:58 GMT Message-Id: <200907272210.n6RMAwBU050054@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166663 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 22:11:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=166663 Change 166663 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 22:10:39 Added a low-level TODO: figure out what to do about fstat() Affected files ... .. //depot/projects/trustedbsd/capabilities/TODO#13 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/TODO#13 (text+ko) ==== @@ -49,5 +49,9 @@ - Implement pdwait4(). +- Decide what to do about fstat(), which is a very blunt instrument: I want + sandboxes to know the size of the file they're operating on, but not the UID + of it's owner, etc. + - Enable capability mode system calls in compat32. Add compat system call parts for new system calls. From owner-p4-projects@FreeBSD.ORG Mon Jul 27 22:44:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0AA031065672; Mon, 27 Jul 2009 22:44:36 +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 BF855106566C for ; Mon, 27 Jul 2009 22:44:35 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AE10A8FC08 for ; Mon, 27 Jul 2009 22:44:35 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RMiZON053072 for ; Mon, 27 Jul 2009 22:44:35 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RMiZFw053070 for perforce@freebsd.org; Mon, 27 Jul 2009 22:44:35 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 27 Jul 2009 22:44:35 GMT Message-Id: <200907272244.n6RMiZFw053070@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166664 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 22:44:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=166664 Change 166664 by jona@jona-trustedbsd-belle-vmware on 2009/07/27 22:44:02 No need for perror(), as error handling is now being done higher up in the stack Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.c#19 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.c#19 (text+ko) ==== @@ -476,11 +476,7 @@ struct ua_datum *fdcount = ua_marshall_int(len); - if(ua_send(client->socket, fdcount, NULL, 0) < 0) - { - perror("Error sending FD count"); - return -1; - } + if(ua_send(client->socket, fdcount, NULL, 0) < 0) return -1; printf(": "); for(int i = 0; i < len; i++) From owner-p4-projects@FreeBSD.ORG Tue Jul 28 07:09:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 761591065676; Tue, 28 Jul 2009 07:09:47 +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 25D381065674 for ; Tue, 28 Jul 2009 07:09:47 +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 1333E8FC14 for ; Tue, 28 Jul 2009 07:09:47 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6S79lOH018964 for ; Tue, 28 Jul 2009 07:09:47 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6S79k9X018962 for perforce@freebsd.org; Tue, 28 Jul 2009 07:09:46 GMT (envelope-from trasz@freebsd.org) Date: Tue, 28 Jul 2009 07:09:46 GMT Message-Id: <200907280709.n6S79k9X018962@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 Cc: Subject: PERFORCE change 166666 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 07:09:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=166666 Change 166666 by trasz@trasz_victim on 2009/07/28 07:09:32 Add setlogin(2), so that login(1) (and other programs using setusercontext(3)) can inform the kernel about login class, which is required for HRL rules with 'class' subject to work. 'id -c' may be used to display the current login class. Affected files ... .. //depot/projects/soc2009/trasz_limits/include/unistd.h#4 edit .. //depot/projects/soc2009/trasz_limits/lib/libc/sys/Symbol.map#8 edit .. //depot/projects/soc2009/trasz_limits/lib/libutil/login_cap.h#2 edit .. //depot/projects/soc2009/trasz_limits/lib/libutil/login_class.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_proto.h#5 edit .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscall.h#5 edit .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscalls.c#5 edit .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_sysent.c#6 edit .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/syscalls.master#7 edit .. //depot/projects/soc2009/trasz_limits/sys/conf/files#13 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/init_sysent.c#8 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#1 add .. //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.c#7 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.master#7 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/systrace_args.c#7 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#23 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/priv.h#8 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/proc.h#9 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/syscall.h#7 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/syscall.mk#7 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/sysproto.h#7 edit .. //depot/projects/soc2009/trasz_limits/usr.bin/id/id.1#2 edit .. //depot/projects/soc2009/trasz_limits/usr.bin/id/id.c#3 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/include/unistd.h#4 (text+ko) ==== @@ -503,6 +503,7 @@ char *fflagstostr(u_long); int getdomainname(char *, int); int getgrouplist(const char *, gid_t, gid_t *, int *); +int getloginclass(char *, size_t); mode_t getmode(const void *, mode_t); int getosreldate(void); int getpeereid(int, uid_t *, gid_t *); @@ -562,6 +563,7 @@ #define _SETKEY_DECLARED #endif int setlogin(const char *); +int setloginclass(const char *); void *setmode(const char *); void setproctitle(const char *_fmt, ...) __printf0like(1, 2); int setresgid(gid_t, gid_t, gid_t); ==== //depot/projects/soc2009/trasz_limits/lib/libc/sys/Symbol.map#8 (text) ==== @@ -341,6 +341,7 @@ fexecve; fstatat; futimesat; + getloginclass; jail_get; jail_set; jail_remove; @@ -354,6 +355,7 @@ readlinkat; renameat; setfib; + setloginclass; shmctl; symlinkat; unlinkat; ==== //depot/projects/soc2009/trasz_limits/lib/libutil/login_cap.h#2 (text+ko) ==== @@ -49,7 +49,8 @@ #define LOGIN_SETENV 0x0080 /* set user environment */ #define LOGIN_SETMAC 0x0100 /* set user default MAC label */ #define LOGIN_SETCPUMASK 0x0200 /* set user cpumask */ -#define LOGIN_SETALL 0x03ff /* set everything */ +#define LOGIN_SETLOGINCLASS 0x0400 /* set login class in the kernel */ +#define LOGIN_SETALL 0x07ff /* set everything */ #define BI_AUTH "authorize" /* accepted authentication */ #define BI_REJECT "reject" /* rejected authentication */ ==== //depot/projects/soc2009/trasz_limits/lib/libutil/login_class.c#3 (text+ko) ==== @@ -512,6 +512,18 @@ return (-1); } + if (lc != NULL && lc->lc_class != NULL) { + /* Inform the kernel about current login class */ + if ((flags & LOGIN_SETLOGINCLASS) && + setloginclass(lc->lc_class) != 0) { + syslog(LOG_ERR, "setloginclass(%s): %m", lc->lc_class); +#ifdef notyet + login_close(llc); + return (-1); +#endif + } + } + mymask = (flags & LOGIN_SETUMASK) ? umask(LOGIN_DEFUMASK) : 0; mymask = setlogincontext(lc, pwd, mymask, flags); login_close(llc); ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_proto.h#5 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.106 2009/07/08 16:30:34 trasz Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.123 2009/07/08 16:26:43 trasz Exp */ #ifndef _FREEBSD32_SYSPROTO_H_ @@ -453,6 +453,13 @@ char cmd_l_[PADL_(int)]; int cmd; char cmd_r_[PADR_(int)]; char buf_l_[PADL_(struct shmid_ds32 *)]; struct shmid_ds32 * buf; char buf_r_[PADR_(struct shmid_ds32 *)]; }; +struct hrl_args { + char op_l_[PADL_(int)]; int op; char op_r_[PADR_(int)]; + char inbufp_l_[PADL_(const void)]; const void inbufp; char inbufp_r_[PADR_(const void)]; + char inbuflen_l_[PADL_(size_t *)]; size_t * inbuflen; char inbuflen_r_[PADR_(size_t *)]; + char outbufp_l_[PADL_(void *)]; void * outbufp; char outbufp_r_[PADR_(void *)]; + char outbuflen_l_[PADL_(size_t)]; size_t outbuflen; char outbuflen_r_[PADR_(size_t)]; +}; int freebsd32_wait4(struct thread *, struct freebsd32_wait4_args *); int freebsd32_recvmsg(struct thread *, struct freebsd32_recvmsg_args *); int freebsd32_sendmsg(struct thread *, struct freebsd32_sendmsg_args *); @@ -536,6 +543,7 @@ int freebsd32_semctl(struct thread *, struct freebsd32_semctl_args *); int freebsd32_msgctl(struct thread *, struct freebsd32_msgctl_args *); int freebsd32_shmctl(struct thread *, struct freebsd32_shmctl_args *); +int hrl(struct thread *, struct hrl_args *); #ifdef COMPAT_43 @@ -814,6 +822,7 @@ #define FREEBSD32_SYS_AUE_freebsd32_semctl AUE_SEMCTL #define FREEBSD32_SYS_AUE_freebsd32_msgctl AUE_MSGCTL #define FREEBSD32_SYS_AUE_freebsd32_shmctl AUE_SHMCTL +#define FREEBSD32_SYS_AUE_hrl AUE_NULL #undef PAD_ #undef PADL_ ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscall.h#5 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.105 2009/07/08 16:30:34 trasz Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.123 2009/07/08 16:26:43 trasz Exp */ #define FREEBSD32_SYS_syscall 0 @@ -382,4 +382,7 @@ #define FREEBSD32_SYS_freebsd32_msgctl 511 #define FREEBSD32_SYS_freebsd32_shmctl 512 #define FREEBSD32_SYS_lpathconf 513 -#define FREEBSD32_SYS_MAXSYSCALL 514 +#define FREEBSD32_SYS_hrl 514 +#define FREEBSD32_SYS_getloginclass 515 +#define FREEBSD32_SYS_setloginclass 516 +#define FREEBSD32_SYS_MAXSYSCALL 517 ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscalls.c#5 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.96 2009/07/08 16:30:34 trasz Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.123 2009/07/08 16:26:43 trasz Exp */ const char *freebsd32_syscallnames[] = { @@ -521,4 +521,7 @@ "freebsd32_msgctl", /* 511 = freebsd32_msgctl */ "freebsd32_shmctl", /* 512 = freebsd32_shmctl */ "lpathconf", /* 513 = lpathconf */ + "hrl", /* 514 = hrl */ + "getloginclass", /* 515 = getloginclass */ + "setloginclass", /* 516 = setloginclass */ }; ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_sysent.c#6 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.107 2009/07/08 16:30:34 trasz Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.123 2009/07/08 16:26:43 trasz Exp */ #include "opt_compat.h" @@ -558,4 +558,7 @@ { AS(freebsd32_msgctl_args), (sy_call_t *)freebsd32_msgctl, AUE_MSGCTL, NULL, 0, 0, 0 }, /* 511 = freebsd32_msgctl */ { AS(freebsd32_shmctl_args), (sy_call_t *)freebsd32_shmctl, AUE_SHMCTL, NULL, 0, 0, 0 }, /* 512 = freebsd32_shmctl */ { AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0 }, /* 513 = lpathconf */ + { AS(hrl_args), (sy_call_t *)hrl, AUE_NULL, NULL, 0, 0, 0 }, /* 514 = hrl */ + { AS(getloginclass_args), (sy_call_t *)getloginclass, AUE_NULL, NULL, 0, 0, 0 }, /* 515 = getloginclass */ + { AS(setloginclass_args), (sy_call_t *)setloginclass, AUE_NULL, NULL, 0, 0, 0 }, /* 516 = setloginclass */ }; ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/syscalls.master#7 (text+ko) ==== @@ -902,3 +902,6 @@ struct shmid_ds32 *buf); } 513 AUE_LPATHCONF NOPROTO { int lpathconf(char *path, int name); } 514 AUE_NULL STD { int hrl(int op, const void inbufp, size_t *inbuflen, void *outbufp, size_t outbuflen); } +515 AUE_NULL NOPROTO { int getloginclass(char *namebuf, size_t \ + namelen); } +516 AUE_NULL NOPROTO { int setloginclass(const char *namebuf); } ==== //depot/projects/soc2009/trasz_limits/sys/conf/files#13 (text+ko) ==== @@ -1958,6 +1958,7 @@ kern/kern_lock.c standard kern/kern_lockf.c standard kern/kern_lockstat.c optional kdtrace_hooks +kern/kern_loginclass.c standard kern/kern_malloc.c standard kern/kern_mbuf.c standard kern/kern_mib.c standard ==== //depot/projects/soc2009/trasz_limits/sys/kern/init_sysent.c#8 (text+ko) ==== @@ -549,4 +549,6 @@ { AS(shmctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 512 = shmctl */ { AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0 }, /* 513 = lpathconf */ { AS(hrl_args), (sy_call_t *)hrl, AUE_NULL, NULL, 0, 0, 0 }, /* 514 = hrl */ + { AS(getloginclass_args), (sy_call_t *)getloginclass, AUE_NULL, NULL, 0, 0, 0 }, /* 515 = getloginclass */ + { AS(setloginclass_args), (sy_call_t *)setloginclass, AUE_NULL, NULL, 0, 0, 0 }, /* 516 = setloginclass */ }; ==== //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.c#7 (text+ko) ==== @@ -522,4 +522,6 @@ "shmctl", /* 512 = shmctl */ "lpathconf", /* 513 = lpathconf */ "hrl", /* 514 = hrl */ + "getloginclass", /* 515 = getloginclass */ + "setloginclass", /* 516 = setloginclass */ }; ==== //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.master#7 (text+ko) ==== @@ -912,5 +912,8 @@ struct shmid_ds *buf); } 513 AUE_LPATHCONF STD { int lpathconf(char *path, int name); } 514 AUE_NULL STD { int hrl(int op, const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } +515 AUE_NULL STD { int getloginclass(char *namebuf, size_t \ + namelen); } +516 AUE_NULL STD { int setloginclass(const char *namebuf); } ; Please copy any additions and changes to the following compatability tables: ; sys/compat/freebsd32/syscalls.master ==== //depot/projects/soc2009/trasz_limits/sys/kern/systrace_args.c#7 (text+ko) ==== @@ -3083,6 +3083,21 @@ *n_args = 5; break; } + /* getloginclass */ + case 515: { + struct getloginclass_args *p = params; + uarg[0] = (intptr_t) p->namebuf; /* char * */ + uarg[1] = p->namelen; /* size_t */ + *n_args = 2; + break; + } + /* setloginclass */ + case 516: { + struct setloginclass_args *p = params; + uarg[0] = (intptr_t) p->namebuf; /* const char * */ + *n_args = 1; + break; + } default: *n_args = 0; break; @@ -8187,6 +8202,29 @@ break; }; break; + /* getloginclass */ + case 515: + switch(ndx) { + case 0: + p = "char *"; + break; + case 1: + p = "size_t"; + break; + default: + break; + }; + break; + /* setloginclass */ + case 516: + switch(ndx) { + case 0: + p = "const char *"; + break; + default: + break; + }; + break; default: break; }; ==== //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#23 (text+ko) ==== @@ -115,9 +115,9 @@ }; /* - * 'hrl_limit' is used to link a subject with rules that apply - * to it. This way we don't have to search the whole HRL rules - * tree to enforce the limits. + * 'hrl_limit' connects rule with every subject it's related to. + * For example, rule 'user:X:openfiles:deny=N/process' is linked + * with uidinfo for user X, and to each process of that user. */ struct hrl_limit { LIST_ENTRY(hrl_limit) hl_next; ==== //depot/projects/soc2009/trasz_limits/sys/sys/priv.h#8 (text+ko) ==== @@ -156,6 +156,7 @@ #define PRIV_PROC_LIMIT 160 /* Exceed user process limit. */ #define PRIV_PROC_SETLOGIN 161 /* Can call setlogin. */ #define PRIV_PROC_SETRLIMIT 162 /* Can raise resources limits. */ +#define PRIV_PROC_SETLOGINCLASS 163 /* Can call setloginclass(2). */ /* System V IPC privileges. */ ==== //depot/projects/soc2009/trasz_limits/sys/sys/proc.h#9 (text+ko) ==== @@ -171,6 +171,7 @@ struct kdtrace_proc; struct kdtrace_thread; struct cpuset; +struct loginclass; /* * Kernel runnable context (thread). @@ -531,6 +532,7 @@ rlim_t p_cpulimit; /* (c) Current CPU limit in seconds. */ signed char p_nice; /* (c) Process "nice" value. */ int p_fibnum; /* in this routing domain XXX MRT */ + struct loginclass *p_loginclass; /* (c) login class */ /* End area that is copied on creation. */ #define p_endcopy p_xstat @@ -876,6 +878,8 @@ struct thread *thread_find(struct proc *p, lwpid_t tid); void thr_exit1(void); +struct loginclass *loginclass_find(const char *name); + #endif /* _KERNEL */ #endif /* !_SYS_PROC_H_ */ ==== //depot/projects/soc2009/trasz_limits/sys/sys/syscall.h#7 (text+ko) ==== @@ -429,4 +429,6 @@ #define SYS_shmctl 512 #define SYS_lpathconf 513 #define SYS_hrl 514 -#define SYS_MAXSYSCALL 515 +#define SYS_getloginclass 515 +#define SYS_setloginclass 516 +#define SYS_MAXSYSCALL 517 ==== //depot/projects/soc2009/trasz_limits/sys/sys/syscall.mk#7 (text+ko) ==== @@ -377,4 +377,6 @@ msgctl.o \ shmctl.o \ lpathconf.o \ - hrl.o + hrl.o \ + getloginclass.o \ + setloginclass.o ==== //depot/projects/soc2009/trasz_limits/sys/sys/sysproto.h#7 (text+ko) ==== @@ -1648,6 +1648,13 @@ char outbufp_l_[PADL_(void *)]; void * outbufp; char outbufp_r_[PADR_(void *)]; char outbuflen_l_[PADL_(size_t)]; size_t outbuflen; char outbuflen_r_[PADR_(size_t)]; }; +struct getloginclass_args { + char namebuf_l_[PADL_(char *)]; char * namebuf; char namebuf_r_[PADR_(char *)]; + char namelen_l_[PADL_(size_t)]; size_t namelen; char namelen_r_[PADR_(size_t)]; +}; +struct setloginclass_args { + char namebuf_l_[PADL_(const char *)]; const char * namebuf; char namebuf_r_[PADR_(const char *)]; +}; int nosys(struct thread *, struct nosys_args *); void sys_exit(struct thread *, struct sys_exit_args *); int fork(struct thread *, struct fork_args *); @@ -2007,6 +2014,8 @@ int shmctl(struct thread *, struct shmctl_args *); int lpathconf(struct thread *, struct lpathconf_args *); int hrl(struct thread *, struct hrl_args *); +int getloginclass(struct thread *, struct getloginclass_args *); +int setloginclass(struct thread *, struct setloginclass_args *); #ifdef COMPAT_43 @@ -2680,6 +2689,8 @@ #define SYS_AUE_shmctl AUE_SHMCTL #define SYS_AUE_lpathconf AUE_LPATHCONF #define SYS_AUE_hrl AUE_NULL +#define SYS_AUE_getloginclass AUE_NULL +#define SYS_AUE_setloginclass AUE_NULL #undef PAD_ #undef PADL_ ==== //depot/projects/soc2009/trasz_limits/usr.bin/id/id.1#2 (text+ko) ==== @@ -55,6 +55,8 @@ .Fl P .Op Ar user .Nm +.Fl c +.Nm .Fl g Op Fl nr .Op Ar user .Nm @@ -93,6 +95,8 @@ Ignored for compatibility with other .Nm implementations. +.It Fl c +Display current login class. .It Fl g Display the effective group ID as a number. .It Fl n ==== //depot/projects/soc2009/trasz_limits/usr.bin/id/id.c#3 (text+ko) ==== @@ -78,11 +78,13 @@ struct group *gr; struct passwd *pw; int Gflag, Mflag, Pflag, ch, gflag, id, nflag, pflag, rflag, uflag; - int Aflag; + int Aflag, cflag; + int error; const char *myname; + char loginclass[MAXLOGNAME]; Gflag = Mflag = Pflag = gflag = nflag = pflag = rflag = uflag = 0; - Aflag = 0; + Aflag = cflag = 0; myname = strrchr(argv[0], '/'); myname = (myname != NULL) ? myname + 1 : argv[0]; @@ -96,7 +98,7 @@ } while ((ch = getopt(argc, argv, - (isgroups || iswhoami) ? "" : "APGMagnpru")) != -1) + (isgroups || iswhoami) ? "" : "APGMacgnpru")) != -1) switch(ch) { #ifdef USE_BSM_AUDIT case 'A': @@ -114,6 +116,9 @@ break; case 'a': break; + case 'c': + cflag = 1; + break; case 'g': gflag = 1; break; @@ -162,6 +167,14 @@ } #endif + if (cflag) { + error = getloginclass(loginclass, sizeof(loginclass)); + if (error) + err(1, "loginclass"); + (void)printf("%s\n", loginclass); + exit(0); + } + if (gflag) { id = pw ? pw->pw_gid : rflag ? getgid() : getegid(); if (nflag && (gr = getgrgid(id))) From owner-p4-projects@FreeBSD.ORG Tue Jul 28 08:00:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 031A3106566C; Tue, 28 Jul 2009 08:00: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 B66BC106564A for ; Tue, 28 Jul 2009 08:00:42 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A2E4A8FC0A for ; Tue, 28 Jul 2009 08:00:42 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6S80g8l022829 for ; Tue, 28 Jul 2009 08:00:42 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6S80glb022827 for perforce@freebsd.org; Tue, 28 Jul 2009 08:00:42 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 28 Jul 2009 08:00:42 GMT Message-Id: <200907280800.n6S80glb022827@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166667 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 08:00:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=166667 Change 166667 by hselasky@hselasky_laptop001 on 2009/07/28 08:00:04 IFC manpages Affected files ... .. //depot/projects/usb/src/share/man/man4/aac.4#2 integrate .. //depot/projects/usb/src/share/man/man4/acpi.4#2 integrate .. //depot/projects/usb/src/share/man/man4/acpi_hp.4#1 branch .. //depot/projects/usb/src/share/man/man4/acpi_wmi.4#1 branch .. //depot/projects/usb/src/share/man/man4/ahci.4#1 branch .. //depot/projects/usb/src/share/man/man4/alc.4#1 branch .. //depot/projects/usb/src/share/man/man4/altq.4#2 integrate .. //depot/projects/usb/src/share/man/man4/asmc.4#2 integrate .. //depot/projects/usb/src/share/man/man4/ata.4#2 integrate .. //depot/projects/usb/src/share/man/man4/ath.4#2 integrate .. //depot/projects/usb/src/share/man/man4/audit.4#2 integrate .. //depot/projects/usb/src/share/man/man4/bge.4#2 integrate .. //depot/projects/usb/src/share/man/man4/bridge.4#1 branch .. //depot/projects/usb/src/share/man/man4/cas.4#1 branch .. //depot/projects/usb/src/share/man/man4/ch.4#2 integrate .. //depot/projects/usb/src/share/man/man4/cpuctl.4#2 integrate .. //depot/projects/usb/src/share/man/man4/epair.4#1 branch .. //depot/projects/usb/src/share/man/man4/gem.4#2 integrate .. //depot/projects/usb/src/share/man/man4/geom.4#2 integrate .. //depot/projects/usb/src/share/man/man4/gif.4#2 integrate .. //depot/projects/usb/src/share/man/man4/hme.4#2 integrate .. //depot/projects/usb/src/share/man/man4/ieee80211.4#2 delete .. //depot/projects/usb/src/share/man/man4/if_bridge.4#2 delete .. //depot/projects/usb/src/share/man/man4/ip.4#2 integrate .. //depot/projects/usb/src/share/man/man4/ipsec.4#2 integrate .. //depot/projects/usb/src/share/man/man4/iwn.4#2 integrate .. //depot/projects/usb/src/share/man/man4/ksyms.4#1 branch .. //depot/projects/usb/src/share/man/man4/miibus.4#2 integrate .. //depot/projects/usb/src/share/man/man4/mld.4#1 branch .. //depot/projects/usb/src/share/man/man4/msk.4#2 integrate .. //depot/projects/usb/src/share/man/man4/multicast.4#2 integrate .. //depot/projects/usb/src/share/man/man4/mwl.4#1 branch .. //depot/projects/usb/src/share/man/man4/mwlfw.4#1 branch .. //depot/projects/usb/src/share/man/man4/mxge.4#2 integrate .. //depot/projects/usb/src/share/man/man4/net80211.4#1 branch .. //depot/projects/usb/src/share/man/man4/ng_ipfw.4#2 integrate .. //depot/projects/usb/src/share/man/man4/nge.4#2 integrate .. //depot/projects/usb/src/share/man/man4/pcm.4#2 integrate .. //depot/projects/usb/src/share/man/man4/pts.4#2 integrate .. //depot/projects/usb/src/share/man/man4/ral.4#2 integrate .. //depot/projects/usb/src/share/man/man4/rum.4#2 integrate .. //depot/projects/usb/src/share/man/man4/scsi.4#2 integrate .. //depot/projects/usb/src/share/man/man4/siis.4#1 branch .. //depot/projects/usb/src/share/man/man4/ural.4#2 integrate .. //depot/projects/usb/src/share/man/man4/urtw.4#2 integrate .. //depot/projects/usb/src/share/man/man4/usb.4#3 integrate .. //depot/projects/usb/src/share/man/man4/vlan.4#2 integrate .. //depot/projects/usb/src/share/man/man4/wlan.4#2 integrate .. //depot/projects/usb/src/sys/i386/i386/pmap.c#22 edit .. //depot/projects/usb/src/sys/kern/kern_sysctl.c#19 edit .. //depot/projects/usb/src/sys/vm/uma_dbg.c#3 edit Differences ... ==== //depot/projects/usb/src/share/man/man4/aac.4#2 (text+ko) ==== @@ -22,8 +22,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/aac.4,v 1.40 2008/06/27 19:34:47 emaste Exp $ -.Dd June 27, 2008 +.\" $FreeBSD: src/share/man/man4/aac.4,v 1.41 2009/07/11 08:10:18 jkim Exp $ +.Dd July 10, 2009 .Dt AAC 4 .Os .Sh NAME @@ -86,24 +86,6 @@ .Xr ioctl 2 interface for the management device will be enabled and will allow Linux-based management applications to control the card. -.Ss Tuning -The read-only sysctl -.Va hw.aac.iosize_max -defaults to 65536 and may be set at boot time to another value via -.Xr loader 8 . -This value determines the maximum data transfer size allowed -to/from an array. -Setting it higher will result in better performance, -especially for large sequential access patterns. -.Em Beware : -internal limitations -of the card limit this value to 64K for arrays with many members. -While it may be safe to raise this value, this is done -.Em at the operator's own risk . -Note also that -performance peaks at a value of 96K, -and drops off dramatically at 128K, -due to other limitations of the card. .Sh HARDWARE Controllers supported by the .Nm @@ -300,9 +282,7 @@ .Xr kld 4 , .Xr linux 4 , .Xr scsi 4 , -.Xr kldload 8 , -.Xr loader 8 , -.Xr sysctl 8 +.Xr kldload 8 .Sh HISTORY The .Nm ==== //depot/projects/usb/src/share/man/man4/acpi.4#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/acpi.4,v 1.61 2006/09/18 15:24:18 ru Exp $ +.\" $FreeBSD: src/share/man/man4/acpi.4,v 1.62 2009/06/08 21:48:13 jkim Exp $ .\" -.Dd July 29, 2006 +.Dd June 8, 2009 .Dt ACPI 4 .Os .Sh NAME @@ -451,10 +451,6 @@ The supported levels are: .Pp .Bl -tag -compact -width ".Li ACPI_LV_AML_DISASSEMBLE" -.It Li ACPI_LV_ERROR -Fatal error conditions -.It Li ACPI_LV_WARN -Warnings and potential problems .It Li ACPI_LV_INIT Initialization progress .It Li ACPI_LV_DEBUG_OBJECT @@ -463,9 +459,7 @@ General information and progress .It Li ACPI_LV_ALL_EXCEPTIONS All the previous levels -.It Li ACPI_LV_INIT_NAMES .It Li ACPI_LV_PARSE -.It Li ACPI_LV_LOAD .It Li ACPI_LV_DISPATCH .It Li ACPI_LV_EXEC .It Li ACPI_LV_NAMES @@ -483,7 +477,10 @@ .It Li ACPI_LV_FUNCTIONS .It Li ACPI_LV_OPTIMIZATIONS .It Li ACPI_LV_VERBOSITY2 +All the previous levels .It Li ACPI_LV_ALL +Synonym for +.Qq Li ACPI_LV_VERBOSITY2 .It Li ACPI_LV_MUTEX .It Li ACPI_LV_THREADS .It Li ACPI_LV_IO @@ -497,6 +494,8 @@ .It Li ACPI_LV_VERBOSE All levels after .Qq Li ACPI_LV_VERBOSITY3 +.It Li ACPI_LV_INIT_NAMES +.It Li ACPI_LV_LOAD .El .Pp Selection of the appropriate layer and level values is important ==== //depot/projects/usb/src/share/man/man4/altq.4#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/altq.4,v 1.38 2009/03/12 01:21:48 yongari Exp $ +.\" $FreeBSD: src/share/man/man4/altq.4,v 1.42 2009/07/26 12:20:07 bz Exp $ .\" -.Dd March 12, 2009 +.Dd July 26, 2009 .Dt ALTQ 4 .Os .Sh NAME @@ -116,6 +116,7 @@ .Nm . They have been applied to the following hardware drivers: .Xr age 4 , +.Xr alc 4 , .Xr ale 4 , .Xr an 4 , .Xr ath 4 , @@ -124,11 +125,13 @@ .Xr bce 4 , .Xr bfe 4 , .Xr bge 4 , +.Xr cas 4 , .Xr dc 4 , .Xr de 4 , .Xr ed 4 , .Xr em 4 , .Xr ep 4 , +.Xr epair 4 , .Xr fxp 4 , .Xr gem 4 , .Xr hme 4 , @@ -140,6 +143,7 @@ .Xr mxge 4 , .Xr my 4 , .Xr nfe 4 , +.Xr nge 4 , .Xr npe 4 , .Xr nve 4 , .Xr ral 4 , ==== //depot/projects/usb/src/share/man/man4/asmc.4#2 (text+ko) ==== @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2007, 2008 Rui Paulo +.\" Copyright (c) 2007, 2008, 2009 Rui Paulo .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -23,9 +23,9 @@ .\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/asmc.4,v 1.4 2008/04/07 11:27:16 rpaulo Exp $ +.\" $FreeBSD: src/share/man/man4/asmc.4,v 1.5 2009/07/27 13:36:35 rpaulo Exp $ .\" -.Dd April 7, 2008 +.Dd July 27, 2009 .Dt ASMC 4 .Os .Sh NAME @@ -54,11 +54,17 @@ .Pp .Bl -bullet -offset indent -compact .It -MacBook (any generation) +MacBook .It -MacBook Pro (any generation) +MacBook Pro .It Intel MacMini +.It +Mac Pro +.It +MacBook Air +.It +Intel iMac .El .Pp With this driver, you can configure your keyboard backlight @@ -72,15 +78,16 @@ .Sh KEYBOARD BACKLIGHT On .Tn MacBook Pro -systems, you can control the keyboard brightness by writing values to +systems, you can control the keyboard brightness by writing a value to the +.Va dev.asmc.%d.light.control +sysctl MIB. +.Pp +The following sysctl MIBs contains the raw value returned by the left +and right light sensors: .Va dev.asmc.%d.light.left or -.Va dev.asmc.%d.light.right -sysctl MIBs. -.Pp -Each of these sysctl MIBs contains the raw value returned by the left -and right light sensors. +.Va dev.asmc.%d.light.right . .Sh TEMPERATURES The number of temperature sensors and their description varies among systems. ==== //depot/projects/usb/src/share/man/man4/ata.4#2 (text+ko) ==== @@ -25,9 +25,9 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/ata.4,v 1.78 2008/10/04 21:31:12 delphij Exp $ +.\" $FreeBSD: src/share/man/man4/ata.4,v 1.79 2009/06/24 19:25:47 mav Exp $ .\" -.Dd October 4, 2008 +.Dd June 24, 2009 .Dt ATA 4 .Os .Sh NAME @@ -93,6 +93,24 @@ set to 1 to enable Write Caching, 0 to disable (default is enabled). .Em WARNING : can cause data loss on power failures and crashes. +.It Va hint.atapci.X.msi +set to 1 to allow Message Signalled Interrupts (MSI) to be used by +specified PCI ATA controller, if supported. +.It Va hint.ata.X.pm_level +controls SATA interface Power Management for specified channel, +allowing to save some power by the cost of additional command latency. +Possible values: +.Bl -tag -compact +.It 0 +interface Power Management is disabled, default value. +.It 1 +device is allowed to initiate PM state change, host is passive. +.It 2 +host initiates PARTIAL PM state transition every time port becomes idle. +.It 3 +host initiates SLUMBER PM state transition every time port becomes idle. +.El +Modes 2 and 3 are implemented only for AHCI driver now. .El .Sh DESCRIPTION The ==== //depot/projects/usb/src/share/man/man4/ath.4#2 (text+ko) ==== @@ -26,9 +26,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGES. .\" -.\" $FreeBSD: src/share/man/man4/ath.4,v 1.48 2009/05/15 10:06:33 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/ath.4,v 1.50 2009/07/11 15:02:45 rpaulo Exp $ .\"/ -.Dd March 25, 2009 +.Dd July 8, 2009 .Dt ATH 4 .Os .Sh NAME @@ -61,7 +61,7 @@ a PCI and/or CardBus interface are supported. .Pp Supported features include 802.11 and 802.3 frames, power management, BSS, -IBSS, TDMA, and host-based access point operation modes. +IBSS, MBSS, TDMA, and host-based access point operation modes. All host/device interaction is via DMA. .Pp The @@ -102,6 +102,7 @@ .Cm adhoc , .Cm adhoc-demo , .Cm hostap , +.Cm mesh , .Cm wds , and .Cm monitor @@ -126,10 +127,8 @@ The driver also support .Cm tdma operation when compiled with -.Cd "options AH_SUPPORT_TDMA" -(and the wlan module is built with .Cd "options IEEE80211_SUPPORT_TDMA" -to enable the associated 802.11 support). +(which also enables the required 802.11 support). For more information on configuring this device, see .Xr ifconfig 8 . .Pp @@ -177,6 +176,12 @@ mode 11g .Ed .Pp +Create an 802.11a mesh station: +.Bd -literal -offset indent +ifconfig wlan0 create wlandev ath0 wlanmode mesh +ifconfig wlan0 meshid my_mesh mode 11a inet 192.168.0.10/24 +.Ed +.Pp Create two virtual 802.11a host-based access points, one with with WEP enabled and one with no security, and bridge them to the fxp0 (wired) device: ==== //depot/projects/usb/src/share/man/man4/audit.4#2 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/audit.4,v 1.10 2006/12/14 16:40:57 mpp Exp $ +.\" $FreeBSD: src/share/man/man4/audit.4,v 1.11 2009/05/31 09:03:14 rwatson Exp $ .\" -.Dd May 5, 2006 +.Dd May 31, 2009 .Os .Dt AUDIT 4 .Sh NAME @@ -125,13 +125,6 @@ .An Robert Watson Aq rwatson@FreeBSD.org . .Sh BUGS The -.Nm -facility in -.Fx -is considered experimental, and production deployment should occur only after -careful consideration of the risks of deploying experimental software. -.Pp -The .Fx kernel does not fully validate that audit records submitted by user applications are syntactically valid BSM; as submission of records is limited ==== //depot/projects/usb/src/share/man/man4/bge.4#2 (text+ko) ==== @@ -29,9 +29,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/bge.4,v 1.34 2009/01/15 22:00:22 marius Exp $ +.\" $FreeBSD: src/share/man/man4/bge.4,v 1.35 2009/05/19 17:17:53 joel Exp $ .\" -.Dd January 15, 2009 +.Dd May 19, 2009 .Dt BGE 4 .Os .Sh NAME @@ -186,6 +186,10 @@ .It Dell PowerEdge 2650 integrated BCM5703 NIC (10/100/1000baseTX) .It +Dell PowerEdge R200 integrated BCM5750 NIC (10/100/1000baseTX) +.It +Dell PowerEdge R300 integrated BCM5722 NIC (10/100/1000baseTX) +.It IBM x235 server integrated BCM5703x NIC (10/100/1000baseTX) .It HP Compaq dc7600 integrated BCM5752 NIC (10/100/1000baseTX) ==== //depot/projects/usb/src/share/man/man4/ch.4#2 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" $FreeBSD: src/share/man/man4/ch.4,v 1.35 2005/01/21 20:51:09 ru Exp $ +.\" $FreeBSD: src/share/man/man4/ch.4,v 1.36 2009/06/01 06:52:03 jmallett Exp $ .\" Copyright (c) 1996 .\" Julian Elischer . All rights reserved. .\" @@ -32,7 +32,6 @@ .Nd SCSI media-changer (juke box) driver .Sh SYNOPSIS .Cd device ch -.Cd device ch1 target 4 unit 0 .Sh DESCRIPTION The .Nm @@ -67,13 +66,12 @@ .Xr scsi 4 for details on kernel configuration. .Sh KERNEL CONFIGURATION -In configuring, if an optional -.Ar count -is given in the specification, that number of SCSI media changers -are configured; Most storage for them is allocated only when found -so a large number of configured devices is cheap. -(once the first -has included the driver). +It is only necessary to explicitly configure one +.Nm +device; data structures are dynamically allocated as media changes are found +on the +.Tn SCSI +bus. .Sh IOCTLS User mode programs communicate with the changer driver through a number of ioctls which are described below. ==== //depot/projects/usb/src/share/man/man4/cpuctl.4#2 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/cpuctl.4,v 1.6 2009/04/23 08:37:56 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/cpuctl.4,v 1.7 2009/06/30 12:35:47 stas Exp $ .\" -.Dd May 31, 2008 +.Dd June 30, 2009 .Dt CPUCTL 4 .Os .Sh NAME @@ -81,6 +81,11 @@ uint64_t data; } cpuctl_msr_args_t; .Ed +.It Dv CPUCTL_MSRSBIT Fa cpuctl_msr_args_t *args +.It Dv CPUCTL_MSRCBIT Fa cpuctl_msr_args_t *args +Set/clear MSR bits according to the mask given in the +.Va data +field. .It Dv CPUCTL_CPUID Fa cpuctl_cpuid_args_t *args Retrieve CPUID information. Arguments are supplied in ==== //depot/projects/usb/src/share/man/man4/gem.4#2 (text+ko) ==== @@ -31,9 +31,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/gem.4,v 1.9 2009/01/15 22:06:53 marius Exp $ +.\" $FreeBSD: src/share/man/man4/gem.4,v 1.10 2009/06/23 20:38:35 marius Exp $ .\" -.Dd January 15, 2009 +.Dd June 14, 2009 .Dt GEM 4 .Os .Sh NAME @@ -57,9 +57,16 @@ .Sh DESCRIPTION The .Nm -driver provides support for the GMac Ethernet hardware found mostly in +driver provides support for the GMAC Ethernet hardware found mostly in the last Apple PowerBooks G3s and most G4-based Apple hardware, as -well as many Sun UltraSPARCs. +well as Sun UltraSPARC machines. +.Pp +All controllers supported by the +.Nm +driver have TCP checksum offload capability for both receive and transmit, +support for the reception and transmission of extended frames for +.Xr vlan 4 +and a 512-bit multicast hash filter. .Sh HARDWARE .Pp Chips supported by the @@ -84,6 +91,9 @@ .It Sun Gigabit Ethernet PCI 2.0/3.0 (GBE/P) (part no.\& 501-4373) +.It +Sun Gigabit Ethernet SBus 2.0/3.0 (GBE/S) +(part no.\& 501-4375) .El .Sh NOTES On sparc64 the @@ -108,15 +118,11 @@ Supported interfaces having their own MAC address include the on-board Sun ERI 10/100 Mbps on boards equipped with more than one Ethernet interface and the Sun Gigabit Ethernet 2.0/3.0 GBE add-on cards. -.Sh CAVEATS -Currently the -.Nm -driver fails to attach to Sun Gigabit Ethernet SBus 2.0/3.0 (GBE/S) cards, -as no SBus front-end has been written so far. .Sh SEE ALSO .Xr altq 4 , .Xr miibus 4 , .Xr netintro 4 , +.Xr vlan 4 , .Xr eeprom 8 , .Xr ifconfig 8 .Sh HISTORY @@ -132,9 +138,19 @@ .An -nosplit The .Nm -driver was written by +driver was written for +.Nx +by .An Eduardo Horvath .Aq eeh@NetBSD.org . +It was ported to +.Fx +by +.An Thomas Moestl +.Aq tmm@FreeBSD.org +and later on improved by +.An Marius Strobl +.Aq marus@FreeBSD.org . The man page was written by .An Thomas Klausner .Aq wiz@NetBSD.org . ==== //depot/projects/usb/src/share/man/man4/geom.4#2 (text+ko) ==== @@ -32,7 +32,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/geom.4,v 1.17 2009/02/22 13:37:22 trasz Exp $ +.\" $FreeBSD: src/share/man/man4/geom.4,v 1.18 2009/05/19 12:10:48 trasz Exp $ .\" .Dd May 25, 2006 .Os @@ -432,6 +432,7 @@ Dump contents of gctl requests. .El .Sh SEE ALSO +.Xr libgeom 3 , .Xr disk 9 , .Xr DECLARE_GEOM_CLASS 9 , .Xr g_access 9 , ==== //depot/projects/usb/src/share/man/man4/gif.4#2 (text+ko) ==== @@ -27,9 +27,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/gif.4,v 1.26 2005/07/26 18:14:22 trhodes Exp $ +.\" $FreeBSD: src/share/man/man4/gif.4,v 1.27 2009/06/07 23:00:40 hrs Exp $ .\" -.Dd April 10, 1999 +.Dd June 8, 2009 .Dt GIF 4 .Os .Sh NAME @@ -256,3 +256,32 @@ .Dv IFF_LINK0 flag. The behavior is obsolete and is no longer supported. +.Pp +On +.Fx +6.1, 6.2, 6.3, 7.0, 7.1, and 7.2 +the +.Nm +sends and receives incorrect EtherIP packets with reversed version +field when +.Xr if_bridge 4 +is used together. As a workaround on this interoperability issue, the +following two +.Xr ifconfig 8 +flags can be used: +.Bl -tag -width "accept_rev_ethip_ver" -offset indent +.It accept_rev_ethip_ver +accepts both correct EtherIP packets and ones with reversed version +field, if enabled. If disabled, the +.Nm +accepts the correct packets only. This flag is enabled by default. +.It send_rev_ethip_ver +sends EtherIP packets with reversed version field intentionally, if +enabled. If disabled, the +.Nm +sends the correct packets only. This flag is disabled by default. +.El +.Pp +If interoperability with the older +.Fx +machines is needed, both of these two flags must be enabled. ==== //depot/projects/usb/src/share/man/man4/hme.4#2 (text+ko) ==== @@ -34,9 +34,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/hme.4,v 1.10 2009/01/16 19:43:21 marius Exp $ +.\" $FreeBSD: src/share/man/man4/hme.4,v 1.11 2009/06/14 14:46:20 marius Exp $ .\" -.Dd January 16, 2009 +.Dd June 14, 2009 .Dt HME 4 .Os .Sh NAME @@ -60,7 +60,16 @@ .Sh DESCRIPTION The .Nm -driver supports Sun Microelectronics STP2002-STQ Fast Ethernet interfaces. +driver supports Sun Microelectronics STP2002-STQ +.Dq Happy Meal Ethernet +Fast Ethernet interfaces. +.Pp +All controllers supported by the +.Nm +driver have TCP checksum offload capability for both receive and transmit, +support for the reception and transmission of extended frames for +.Xr vlan 4 +and a 128-bit multicast hash filter. .Sh HARDWARE The .Nm @@ -123,6 +132,7 @@ .Xr intro 4 , .Xr miibus 4 , .Xr netintro 4 , +.Xr vlan 4 , .Xr eeprom 8 , .Xr ifconfig 8 .Rs ==== //depot/projects/usb/src/share/man/man4/ip.4#2 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)ip.4 8.2 (Berkeley) 11/30/93 -.\" $FreeBSD: src/share/man/man4/ip.4,v 1.51 2009/03/09 17:53:05 bms Exp $ +.\" $FreeBSD: src/share/man/man4/ip.4,v 1.52 2009/06/01 10:30:52 pjd Exp $ .\" -.Dd March 9, 2009 +.Dd June 1, 2009 .Dt IP 4 .Os .Sh NAME @@ -243,6 +243,23 @@ .Dv IP_ONESBCAST option has no effect. .Pp If the +.Dv IP_BINDANY +option is enabled on a +.Dv SOCK_STREAM , +.Dv SOCK_DGRAM +or a +.Dv SOCK_RAW +socket, one can +.Xr bind 2 +to any address, even one not bound to any available network interface in the +system. +This functionality (in conjunction with special firewall rules) can be used for +implementing a transparent proxy. +The +.Dv PRIV_NETINET_BINDANY +privilege is needed to set this option. +.Pp +If the .Dv IP_RECVTTL option is enabled on a .Dv SOCK_DGRAM ==== //depot/projects/usb/src/share/man/man4/ipsec.4#2 (text+ko) ==== @@ -27,9 +27,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/ipsec.4,v 1.22 2007/08/05 16:16:14 bz Exp $ +.\" $FreeBSD: src/share/man/man4/ipsec.4,v 1.23 2009/05/23 16:42:38 bz Exp $ .\" -.Dd August 5, 2007 +.Dd May 23, 2009 .Dt IPSEC 4 .Os .Sh NAME @@ -37,7 +37,6 @@ .Nd Internet Protocol Security protocol .Sh SYNOPSIS .Cd "options IPSEC" -.Cd "options IPSEC_FILTERTUNNEL" .Cd "device crypto" .Pp .In sys/types.h @@ -88,9 +87,12 @@ .Pp To properly filter on the inner packets of an .Nm -tunnel with firewalls, add -.Cd "options IPSEC_FILTERTUNNEL" -to the kernel configuration file. +tunnel with firewalls, you can change the values of the following sysctls +.Bl -column net.inet6.ipsec6.filtertunnel default enable +.It Sy "Name Default Enable" +.It net.inet.ipsec.filtertunnel 0 1 +.It net.inet6.ipsec6.filtertunnel 0 1 +.El .\" .Ss Kernel interface .Nm ==== //depot/projects/usb/src/share/man/man4/iwn.4#2 (text+ko) ==== @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/iwn.4,v 1.4 2009/05/09 19:19:30 sam Exp $ +.\" $FreeBSD: src/share/man/man4/iwn.4,v 1.5 2009/06/10 03:28:34 sam Exp $ .\" .Dd April 13, 2008 .Os @@ -49,13 +49,6 @@ .Bd -literal -offset indent if_iwn_load="YES" .Ed -.Pp -In both cases, place the following line in -.Xr loader.conf 5 -to acknowledge the firmware license (see below): -.Bd -literal -offset indent -legal.intel_iwn.license_ack=1 -.Ed .Sh DESCRIPTION The .Nm @@ -76,18 +69,6 @@ This driver requires the firmware built with the .Nm iwnfw module to work. -For the loaded firmware to be enabled for use the license at -.Pa /usr/share/doc/legal/intel_iwn/LICENSE -must be agreed by adding the following line to -.Xr loader.conf 5 : -.Pp -.Dl "legal.intel_iwn.license_ack=1" -.Sh FILES -.Bl -tag -width ".Pa /usr/share/doc/legal/intel_iwn/LICENSE" -compact -.It Pa /usr/share/doc/legal/intel_iwn/LICENSE -.Nm -firmware license -.El .Sh EXAMPLES Join an existing BSS network (i.e., connect to an access point): .Pp @@ -130,9 +111,7 @@ subsystem. Verify the .Xr iwnfw 4 -firmware module is installed and the license agreement -.Xr loader 8 -tunable has been set. +firmware module is present. .It "iwn%d: could not load boot firmware" An attempt to upload the boot firmware image to the onboard microcontroller failed. ==== //depot/projects/usb/src/share/man/man4/miibus.4#2 (text+ko) ==== @@ -6,9 +6,9 @@ .\" Originally this file looked much like the NetBSD mii(4) manual page, but .\" I doubt you would ever notice due to large differences. .\" -.\" $FreeBSD: src/share/man/man4/miibus.4,v 1.26 2008/11/12 10:31:06 yongari Exp $ +.\" $FreeBSD: src/share/man/man4/miibus.4,v 1.28 2009/06/15 18:24:04 marius Exp $ .\" -.Dd November 12, 2008 +.Dd June 14, 2009 .Dt MIIBUS 4 .Os .Sh NAME @@ -47,6 +47,8 @@ .Bl -tag -compact -width ".Xr fxp 4" .It Xr age 4 Attansic/Atheros L1 Gigabit Ethernet +.It Xr alc 4 +Atheros AR8131/AR8132 PCIe Ethernet .It Xr ale 4 Atheros AR8121/AR8113/AR8114 PCIe Ethernet .It Xr aue 4 @@ -59,6 +61,8 @@ Broadcom BCM4401 Ethernet .It Xr bge 4 Broadcom BCM570xx Gigabit Ethernet +.It Xr cas 4 +Sun Cassini/Cassini+ and National Semiconductor DP83065 Saturn .It Xr dc 4 DEC/Intel 21143 and various workalikes .It Xr ed 4 @@ -127,6 +131,7 @@ but as a result are not well behaved newbus device drivers. .Sh SEE ALSO .Xr age 4 , +.Xr alc 4 , .Xr ale 4 , .Xr arp 4 , .Xr aue 4 , @@ -134,6 +139,7 @@ .Xr bce 4 , .Xr bfe 4 , .Xr bge 4 , +.Xr cas 4 , .Xr dc 4 , .Xr ed 4 , .Xr et 4 , ==== //depot/projects/usb/src/share/man/man4/msk.4#2 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/msk.4,v 1.6 2007/12/05 09:41:58 remko Exp $ +.\" $FreeBSD: src/share/man/man4/msk.4,v 1.9 2009/06/02 05:13:02 yongari Exp $ .\" -.Dd December 5, 2007 +.Dd June 2, 2009 .Dt MSK 4 .Os .Sh NAME @@ -176,13 +176,19 @@ .It Marvell Yukon 88E8062 SX/LX Gigabit Ethernet .It -Marvell Yukon 88E8035 Gigabit Ethernet +Marvell Yukon 88E8035 Fast Ethernet +.It +Marvell Yukon 88E8036 Fast Ethernet +.It +Marvell Yukon 88E8038 Fast Ethernet +.It +Marvell Yukon 88E8039 Fast Ethernet .It -Marvell Yukon 88E8036 Gigabit Ethernet +Marvell Yukon 88E8040 Fast Ethernet .It -Marvell Yukon 88E8038 Gigabit Ethernet +Marvell Yukon 88E8040T Fast Ethernet .It -Marvell Yukon 88E8039 Gigabit Ethernet +Marvell Yukon 88E8048 Fast Ethernet .It Marvell Yukon 88E8050 Gigabit Ethernet .It @@ -196,6 +202,12 @@ .It Marvell Yukon 88E8058 Gigabit Ethernet .It +Marvell Yukon 88E8070 Gigabit Ethernet +.It +Marvell Yukon 88E8071 Gigabit Ethernet +.It +Marvell Yukon 88E8072 Gigabit Ethernet +.It SysKonnect SK-9Sxx Gigabit Ethernet .It SysKonnect SK-9Exx Gigabit Ethernet ==== //depot/projects/usb/src/share/man/man4/multicast.4#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER .\" DEALINGS IN THE SOFTWARE. .\" -.\" $FreeBSD: src/share/man/man4/multicast.4,v 1.8 2009/03/09 17:53:05 bms Exp $ +.\" $FreeBSD: src/share/man/man4/multicast.4,v 1.9 2009/05/27 18:57:13 bms Exp $ .\" -.Dd February 13, 2009 +.Dd May 27, 2009 .Dt MULTICAST 4 .Os .\" @@ -962,6 +962,7 @@ .Xr intro 4 , .Xr ip 4 , .Xr ip6 4 , +.Xr mld 4 , .Xr pim 4 .\" .Sh HISTORY @@ -1002,6 +1003,8 @@ in collaboration with .An Chris Brown (NextHop). +The IGMPv3 and MLDv2 multicast support was implemented by +.An Bruce Simpson . .Pp This manual page was written by .An Pavlin Radoslavov ==== //depot/projects/usb/src/share/man/man4/mxge.4#2 (text+ko) ==== @@ -29,7 +29,7 @@ .\" .\" * Other names and brands may be claimed as the property of others. .\" -.\" $FreeBSD: src/share/man/man4/mxge.4,v 1.9 2008/02/13 08:09:55 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/mxge.4,v 1.10 2009/07/22 11:57:34 gallatin Exp $ .\" .Dd February 13, 2008 .Dt MXGE 4 @@ -125,14 +125,14 @@ of a set of receive queues and an associated interrupt thread. When using multiple slices, the NIC hashes traffic to different slices based on the value of -.Va hw.mxge.rss_hash_type . +.Va hw.mxge.rss_hashtype . Using multiple slices requires that your motherboard and Myri10GE NIC both be capable of MSI-X. Older Myri10GE NICs can be field upgraded to add MSI-X using the "10G NIC Tool Kit" for FreeBSD which is available from .Pa http://www.myri.com/scs/download-10g-tools.html . .Pp -.It Va hw.mxge.rss_hash_type +.It Va hw.mxge.rss_hashtype This value determines how incoming traffic is steered to different slices. This tunable is ignored when using just a single slice. ==== //depot/projects/usb/src/share/man/man4/ng_ipfw.4#2 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/ng_ipfw.4,v 1.2 2005/02/07 08:17:51 glebius Exp $ +.\" $FreeBSD: src/share/man/man4/ng_ipfw.4,v 1.3 2009/06/09 21:35:42 oleg Exp $ .\" -.Dd February 5, 2005 +.Dd June 10, 2009 .Dt NG_IPFW 4 .Os .Sh NAME @@ -84,11 +84,12 @@ struct ng_ipfw_tag { struct m_tag mt; /* tag header */ struct ip_fw *rule; /* matching rule */ + uint32_t rule_id; /* matching rule id */ + uint32_t chain_id; /* ruleset id */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jul 28 08:12:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AF8CA106568B; Tue, 28 Jul 2009 08:12:56 +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 67D99106566C for ; Tue, 28 Jul 2009 08:12:56 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 545588FC14 for ; Tue, 28 Jul 2009 08:12:56 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6S8Cur0024804 for ; Tue, 28 Jul 2009 08:12:56 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6S8Ct9n024802 for perforce@freebsd.org; Tue, 28 Jul 2009 08:12:55 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 28 Jul 2009 08:12:55 GMT Message-Id: <200907280812.n6S8Ct9n024802@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166668 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 08:12:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=166668 Change 166668 by hselasky@hselasky_laptop001 on 2009/07/28 08:12:47 IFC @ 166665 Affected files ... .. //depot/projects/usb/src/sys/amd64/amd64/machdep.c#23 integrate .. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#27 integrate .. //depot/projects/usb/src/sys/arm/arm/pmap.c#19 integrate .. //depot/projects/usb/src/sys/boot/forth/loader.conf#21 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#3 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_misc.c#20 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_mib.c#6 integrate .. //depot/projects/usb/src/sys/conf/NOTES#44 integrate .. //depot/projects/usb/src/sys/conf/files#75 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-all.c#17 integrate .. //depot/projects/usb/src/sys/dev/e1000/e1000_ich8lan.c#5 integrate .. //depot/projects/usb/src/sys/dev/e1000/if_em.c#11 integrate .. //depot/projects/usb/src/sys/dev/e1000/if_igb.c#12 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe.c#10 integrate .. //depot/projects/usb/src/sys/dev/uart/uart_cpu_powerpc.c#7 integrate .. //depot/projects/usb/src/sys/dev/usb/usbdevs#68 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_uath.c#15 integrate .. //depot/projects/usb/src/sys/fs/procfs/procfs_map.c#9 integrate .. //depot/projects/usb/src/sys/i386/i386/machdep.c#19 integrate .. //depot/projects/usb/src/sys/i386/i386/pmap.c#23 integrate .. //depot/projects/usb/src/sys/i386/xen/pmap.c#11 integrate .. //depot/projects/usb/src/sys/ia64/ia64/pmap.c#15 integrate .. //depot/projects/usb/src/sys/kern/kern_jail.c#26 integrate .. //depot/projects/usb/src/sys/kern/kern_proc.c#21 integrate .. //depot/projects/usb/src/sys/kern/kern_vimage.c#12 integrate .. //depot/projects/usb/src/sys/kern/uipc_domain.c#12 integrate .. //depot/projects/usb/src/sys/mips/mips/pmap.c#12 integrate .. //depot/projects/usb/src/sys/modules/Makefile#41 integrate .. //depot/projects/usb/src/sys/modules/if_epair/Makefile#1 branch .. //depot/projects/usb/src/sys/net/flowtable.c#7 integrate .. //depot/projects/usb/src/sys/net/if.c#36 integrate .. //depot/projects/usb/src/sys/net/if_clone.c#8 integrate .. //depot/projects/usb/src/sys/net/if_clone.h#4 integrate .. //depot/projects/usb/src/sys/net/if_epair.c#2 integrate .. //depot/projects/usb/src/sys/net/if_gif.c#17 integrate .. //depot/projects/usb/src/sys/net/if_loop.c#23 integrate .. //depot/projects/usb/src/sys/net/if_var.h#26 integrate .. //depot/projects/usb/src/sys/net/netisr.h#9 integrate .. //depot/projects/usb/src/sys/net/route.c#23 integrate .. //depot/projects/usb/src/sys/net/rtsock.c#29 integrate .. //depot/projects/usb/src/sys/net/vnet.c#2 integrate .. //depot/projects/usb/src/sys/net/vnet.h#15 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211.c#27 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_hwmp.c#3 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ioctl.h#16 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_mesh.c#3 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_mesh.h#3 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_output.c#27 integrate .. //depot/projects/usb/src/sys/netgraph/bluetooth/socket/ng_btsocket.c#4 integrate .. //depot/projects/usb/src/sys/netgraph/netgraph.h#14 integrate .. //depot/projects/usb/src/sys/netgraph/ng_base.c#20 integrate .. //depot/projects/usb/src/sys/netgraph/ng_eiface.c#14 integrate .. //depot/projects/usb/src/sys/netgraph/ng_ether.c#15 integrate .. //depot/projects/usb/src/sys/netgraph/ng_iface.c#17 integrate .. //depot/projects/usb/src/sys/netgraph/ng_socket.c#8 integrate .. //depot/projects/usb/src/sys/netinet/if_ether.c#26 integrate .. //depot/projects/usb/src/sys/netinet/igmp.c#22 integrate .. //depot/projects/usb/src/sys/netinet/in.c#32 integrate .. //depot/projects/usb/src/sys/netinet/in_proto.c#13 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw2.c#6 integrate .. //depot/projects/usb/src/sys/netinet/sctp_indata.c#19 integrate .. //depot/projects/usb/src/sys/netinet/sctp_uio.h#18 integrate .. //depot/projects/usb/src/sys/netinet/sctputil.c#21 integrate .. //depot/projects/usb/src/sys/netinet6/in6.c#29 integrate .. //depot/projects/usb/src/sys/netinet6/in6_proto.c#18 integrate .. //depot/projects/usb/src/sys/netinet6/mld6.c#21 integrate .. //depot/projects/usb/src/sys/netipsec/ipsec.c#22 integrate .. //depot/projects/usb/src/sys/netipsec/keysock.c#14 integrate .. //depot/projects/usb/src/sys/powerpc/booke/pmap.c#16 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/pmap.c#13 integrate .. //depot/projects/usb/src/sys/sys/domain.h#5 integrate .. //depot/projects/usb/src/sys/sys/jail.h#18 integrate .. //depot/projects/usb/src/sys/sys/kernel.h#16 integrate .. //depot/projects/usb/src/sys/sys/param.h#42 integrate .. //depot/projects/usb/src/sys/sys/sysctl.h#21 integrate .. //depot/projects/usb/src/sys/sys/user.h#11 integrate .. //depot/projects/usb/src/sys/sys/vimage.h#19 integrate .. //depot/projects/usb/src/sys/vm/sg_pager.c#1 branch .. //depot/projects/usb/src/sys/vm/vm.h#7 integrate .. //depot/projects/usb/src/sys/vm/vm_fault.c#17 integrate .. //depot/projects/usb/src/sys/vm/vm_map.c#19 integrate .. //depot/projects/usb/src/sys/vm/vm_meter.c#10 integrate .. //depot/projects/usb/src/sys/vm/vm_object.c#21 integrate .. //depot/projects/usb/src/sys/vm/vm_object.h#10 integrate .. //depot/projects/usb/src/sys/vm/vm_page.c#19 integrate .. //depot/projects/usb/src/sys/vm/vm_pageout.c#18 integrate .. //depot/projects/usb/src/sys/vm/vm_pager.c#5 integrate .. //depot/projects/usb/src/sys/vm/vm_pager.h#4 integrate Differences ... ==== //depot/projects/usb/src/sys/amd64/amd64/machdep.c#23 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.705 2009/07/09 09:34:11 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.706 2009/07/27 13:51:55 rpaulo Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -213,7 +213,10 @@ */ sysenv = getenv("smbios.system.product"); if (sysenv != NULL) { - if (strncmp(sysenv, "MacBook", 7) == 0) { + if (strncmp(sysenv, "MacBook1,1", 10) == 0 || + strncmp(sysenv, "MacBookPro1,1", 13) == 0 || + strncmp(sysenv, "MacBookPro1,2", 13) == 0 || + strncmp(sysenv, "Macmini1,1", 10) == 0) { if (bootverbose) printf("Disabling LEGACY_USB_EN bit on " "Intel ICH.\n"); ==== //depot/projects/usb/src/sys/amd64/amd64/pmap.c#27 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.666 2009/07/22 14:32:38 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.667 2009/07/24 13:50:29 jhb Exp $"); /* * Manages physical address maps. @@ -3359,7 +3359,7 @@ int pat_mode; VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); - KASSERT(object->type == OBJT_DEVICE, + KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, ("pmap_object_init_pt: non-device object")); if ((addr & (NBPDR - 1)) == 0 && (size & (NBPDR - 1)) == 0) { if (!vm_object_populate(object, pindex, pindex + atop(size))) ==== //depot/projects/usb/src/sys/arm/arm/pmap.c#19 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.112 2009/07/20 07:53:07 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.113 2009/07/24 13:50:29 jhb Exp $"); #include #include #include @@ -3101,7 +3101,7 @@ { VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); - KASSERT(object->type == OBJT_DEVICE, + KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, ("pmap_object_init_pt: non-device object")); } ==== //depot/projects/usb/src/sys/boot/forth/loader.conf#21 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.142 2009/06/15 18:22:41 marius Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.143 2009/07/26 12:20:07 bz Exp $ ############################################################## ### Basic configuration options ############################ @@ -190,6 +190,7 @@ if_disc_load="NO" # Discard device if_ef_load="NO" # pseudo-device providing support for multiple # ethernet frame types +if_epair_load="NO" # Virtual b-t-b Ethernet-like interface pair if_faith_load="NO" # IPv6-to-IPv4 TCP relay capturing interface if_gif_load="NO" # generic tunnel interface if_gre_load="NO" # encapsulating network device ==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#3 (text+ko) ==== @@ -78,7 +78,11 @@ /* * Is ID ephemeral? */ +#ifdef TODO #define IS_EPHEMERAL(x) (x > MAXUID) +#else +#define IS_EPHEMERAL(x) (0) +#endif /* * Should we use FUIDs? ==== //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_misc.c#20 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.92 2009/06/27 13:58:44 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.93 2009/07/27 16:03:04 jhb Exp $"); #include "opt_compat.h" #include "opt_inet.h" @@ -1416,8 +1416,8 @@ defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD7) switch (uap->which) { case 0: - return (freebsd32_semctl(td, - (struct freebsd32_semctl_args *)&uap->a2)); + return (freebsd7_freebsd32_semctl(td, + (struct freebsd7_freebsd32_semctl_args *)&uap->a2)); default: return (semsys(td, (struct semsys_args *)uap)); } @@ -1580,8 +1580,8 @@ defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD7) switch (uap->which) { case 0: - return (freebsd32_msgctl(td, - (struct freebsd32_msgctl_args *)&uap->a2)); + return (freebsd7_freebsd32_msgctl(td, + (struct freebsd7_freebsd32_msgctl_args *)&uap->a2)); case 2: return (freebsd32_msgsnd(td, (struct freebsd32_msgsnd_args *)&uap->a2)); @@ -1751,12 +1751,12 @@ return (sysent[SYS_shmget].sy_call(td, &ap)); } case 4: { /* shmctl */ - struct freebsd32_shmctl_args ap; + struct freebsd7_freebsd32_shmctl_args ap; ap.shmid = uap->a2; ap.cmd = uap->a3; ap.buf = PTRIN(uap->a4); - return (freebsd32_shmctl(td, &ap)); + return (freebsd7_freebsd32_shmctl(td, &ap)); } case 1: /* oshmctl */ default: ==== //depot/projects/usb/src/sys/compat/linux/linux_mib.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_mib.c,v 1.36 2009/05/27 14:11:23 jamie Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_mib.c,v 1.37 2009/07/25 14:48:57 jamie Exp $"); #include #include @@ -237,12 +237,14 @@ { struct prison *pr = obj; struct vfsoptlist *opts = data; + int jsys; - if (vfs_flagopt(opts, "nolinux", NULL, 0)) + if (vfs_copyopt(opts, "linux", &jsys, sizeof(jsys)) == 0 && + jsys == JAIL_SYS_INHERIT) return (0); /* * Inherit a prison's initial values from its parent - * (different from NULL which also inherits changes). + * (different from JAIL_SYS_INHERIT which also inherits changes). */ return linux_alloc_prison(pr, NULL); } @@ -252,11 +254,16 @@ { struct vfsoptlist *opts = data; char *osname, *osrelease; - int error, len, osrel, oss_version; + int error, jsys, len, osrel, oss_version; /* Check that the parameters are correct. */ - (void)vfs_flagopt(opts, "linux", NULL, 0); - (void)vfs_flagopt(opts, "nolinux", NULL, 0); + error = vfs_copyopt(opts, "linux", &jsys, sizeof(jsys)); + if (error != ENOENT) { + if (error != 0) + return (error); + if (jsys != JAIL_SYS_NEW && jsys != JAIL_SYS_INHERIT) + return (EINVAL); + } error = vfs_getopt(opts, "linux.osname", (void **)&osname, &len); if (error != ENOENT) { if (error != 0) @@ -296,33 +303,40 @@ struct prison *pr = obj; struct vfsoptlist *opts = data; char *osname, *osrelease; - int error, gotversion, len, nolinux, oss_version, yeslinux; + int error, gotversion, jsys, len, oss_version; /* Set the parameters, which should be correct. */ - yeslinux = vfs_flagopt(opts, "linux", NULL, 0); - nolinux = vfs_flagopt(opts, "nolinux", NULL, 0); + error = vfs_copyopt(opts, "linux", &jsys, sizeof(jsys)); + if (error == ENOENT) + jsys = -1; error = vfs_getopt(opts, "linux.osname", (void **)&osname, &len); if (error == ENOENT) osname = NULL; else - yeslinux = 1; + jsys = JAIL_SYS_NEW; error = vfs_getopt(opts, "linux.osrelease", (void **)&osrelease, &len); if (error == ENOENT) osrelease = NULL; else - yeslinux = 1; + jsys = JAIL_SYS_NEW; error = vfs_copyopt(opts, "linux.oss_version", &oss_version, sizeof(oss_version)); - gotversion = (error == 0); - yeslinux |= gotversion; - if (nolinux) { - /* "nolinux": inherit the parent's Linux info. */ + if (error == ENOENT) + gotversion = 0; + else { + gotversion = 1; + jsys = JAIL_SYS_NEW; + } + switch (jsys) { + case JAIL_SYS_INHERIT: + /* "linux=inherit": inherit the parent's Linux info. */ mtx_lock(&pr->pr_mtx); osd_jail_del(pr, linux_osd_jail_slot); mtx_unlock(&pr->pr_mtx); - } else if (yeslinux) { + break; + case JAIL_SYS_NEW: /* - * "linux" or "linux.*": + * "linux=new" or "linux.*": * the prison gets its own Linux info. */ error = linux_alloc_prison(pr, &lpr); @@ -348,9 +362,7 @@ return (0); } -SYSCTL_JAIL_PARAM_NODE(linux, "Jail Linux parameters"); -SYSCTL_JAIL_PARAM(, nolinux, CTLTYPE_INT | CTLFLAG_RW, - "BN", "Jail w/ no Linux parameters"); +SYSCTL_JAIL_PARAM_SYS_NODE(linux, CTLFLAG_RW, "Jail Linux parameters"); SYSCTL_JAIL_PARAM_STRING(_linux, osname, CTLFLAG_RW, LINUX_MAX_UTSNAME, "Jail Linux kernel OS name"); SYSCTL_JAIL_PARAM_STRING(_linux, osrelease, CTLFLAG_RW, LINUX_MAX_UTSNAME, @@ -371,15 +383,22 @@ /* See if this prison is the one with the Linux info. */ lpr = linux_find_prison(pr, &ppr); - i = (ppr == pr); + i = (ppr == pr) ? JAIL_SYS_NEW : JAIL_SYS_INHERIT; error = vfs_setopt(opts, "linux", &i, sizeof(i)); if (error != 0 && error != ENOENT) goto done; - i = !i; - error = vfs_setopt(opts, "nolinux", &i, sizeof(i)); - if (error != 0 && error != ENOENT) - goto done; if (i) { + error = vfs_setopts(opts, "linux.osname", lpr->pr_osname); + if (error != 0 && error != ENOENT) + goto done; + error = vfs_setopts(opts, "linux.osrelease", lpr->pr_osrelease); + if (error != 0 && error != ENOENT) + goto done; + error = vfs_setopt(opts, "linux.oss_version", + &lpr->pr_oss_version, sizeof(lpr->pr_oss_version)); + if (error != 0 && error != ENOENT) + goto done; + } else { /* * If this prison is inheriting its Linux info, report * empty/zero parameters. @@ -394,17 +413,6 @@ sizeof(lpr->pr_oss_version)); if (error != 0 && error != ENOENT) goto done; - } else { - error = vfs_setopts(opts, "linux.osname", lpr->pr_osname); - if (error != 0 && error != ENOENT) - goto done; - error = vfs_setopts(opts, "linux.osrelease", lpr->pr_osrelease); - if (error != 0 && error != ENOENT) - goto done; - error = vfs_setopt(opts, "linux.oss_version", - &lpr->pr_oss_version, sizeof(lpr->pr_oss_version)); - if (error != 0 && error != ENOENT) - goto done; } error = 0; ==== //depot/projects/usb/src/sys/conf/NOTES#44 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1550 2009/07/11 15:02:45 rpaulo Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1553 2009/07/26 12:20:07 bz Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -784,6 +784,10 @@ # included for testing and benchmarking purposes. device disc +# The `epair' device implements a virtual back-to-back connected Ethernet +# like interface pair. +device epair + # The `edsc' device implements a minimal Ethernet interface, # which discards all packets sent and receives none. device edsc @@ -1638,6 +1642,18 @@ device twe # 3ware ATA RAID # +# Serial ATA host controllers: +# +# ahci: Advanced Host Controller Interface (AHCI) compatible +# siis: SiliconImage SiI3124/SiI3132/SiI3531 controllers +# +# These drivers are part of cam(4) subsystem. They supersede less featured +# ata(4) subsystem drivers, supporting same hardware. + +device ahci +device siis + +# # The 'ATA' driver supports all ATA and ATAPI devices, including PC Card # devices. You only need one "device ata" for it to find all # PCI and PC Card ATA/ATAPI devices on modern machines. ==== //depot/projects/usb/src/sys/conf/files#75 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1455 2009/07/21 12:32:46 mav Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1457 2009/07/26 12:20:07 bz Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -2202,6 +2202,7 @@ net/if_edsc.c optional edsc net/if_ef.c optional ef net/if_enc.c optional enc ipsec inet | enc ipsec inet6 +net/if_epair.c optional epair net/if_ethersubr.c optional ether \ compile-with "${NORMAL_C} -I$S/contrib/pf" net/if_faith.c optional faith @@ -2637,6 +2638,7 @@ vm/device_pager.c standard vm/phys_pager.c standard vm/redzone.c optional DEBUG_REDZONE +vm/sg_pager.c standard vm/swap_pager.c standard vm/uma_core.c standard vm/uma_dbg.c standard ==== //depot/projects/usb/src/sys/dev/ata/ata-all.c#17 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.306 2009/07/16 19:48:39 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.307 2009/07/26 14:04:48 mav Exp $"); #include "opt_ata.h" #include @@ -711,7 +711,7 @@ struct ata_channel *ch = device_get_softc(dev); struct ata_device *atadev; device_t *children; - device_t child; + device_t child, master = NULL; int nchildren, i, n = ch->devices; if (bootverbose) @@ -748,6 +748,15 @@ unit = (device_get_unit(dev) << 1) + i; #endif if ((child = ata_add_child(dev, atadev, unit))) { + /* + * PATA slave should be identified first, to allow + * device cable detection on master to work properly. + */ + if (i == 0 && (n & ATA_PORTMULTIPLIER) == 0 && + (n & ((ATA_ATA_MASTER | ATA_ATAPI_MASTER) << 1)) != 0) { + master = child; + continue; + } if (ata_getparam(atadev, 1)) { device_delete_child(dev, child); free(atadev, M_ATA); @@ -757,6 +766,13 @@ free(atadev, M_ATA); } } + if (master) { + atadev = device_get_softc(master); + if (ata_getparam(atadev, 1)) { + device_delete_child(dev, master); + free(atadev, M_ATA); + } + } bus_generic_probe(dev); bus_generic_attach(dev); mtx_unlock(&Giant); ==== //depot/projects/usb/src/sys/dev/e1000/e1000_ich8lan.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ POSSIBILITY OF SUCH DAMAGE. ******************************************************************************/ -/*$FreeBSD: src/sys/dev/e1000/e1000_ich8lan.c,v 1.4 2009/06/24 17:41:29 jfv Exp $*/ +/*$FreeBSD: src/sys/dev/e1000/e1000_ich8lan.c,v 1.5 2009/07/24 16:54:22 jfv Exp $*/ /* * 82562G 10/100 Network Connection @@ -307,7 +307,6 @@ { struct e1000_nvm_info *nvm = &hw->nvm; struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; - union ich8_hws_flash_status hsfsts; u32 gfpreg, sector_base_addr, sector_end_addr; s32 ret_val = E1000_SUCCESS; u16 i; @@ -346,20 +345,6 @@ /* Adjust to word count */ nvm->flash_bank_size /= sizeof(u16); - /* - * Make sure the flash bank size does not overwrite the 4k - * sector ranges. We may have 64k allotted to us but we only care - * about the first 2 4k sectors. Therefore, if we have anything less - * than 64k set in the HSFSTS register, we will reduce the bank size - * down to 4k and let the rest remain unused. If berasesz == 3, then - * we are working in 64k mode. Otherwise we are not. - */ - if (nvm->flash_bank_size > E1000_SHADOW_RAM_WORDS) { - hsfsts.regval = E1000_READ_FLASH_REG16(hw, ICH_FLASH_HSFSTS); - if (hsfsts.hsf_status.berasesz != 3) - nvm->flash_bank_size = E1000_SHADOW_RAM_WORDS; - } - nvm->word_size = E1000_SHADOW_RAM_WORDS; /* Clear shadow ram */ @@ -1961,13 +1946,8 @@ iteration = 1; break; case 2: - if (hw->mac.type == e1000_ich9lan) { - sector_size = ICH_FLASH_SEG_SIZE_8K; - iteration = flash_bank_size / ICH_FLASH_SEG_SIZE_8K; - } else { - ret_val = -E1000_ERR_NVM; - goto out; - } + sector_size = ICH_FLASH_SEG_SIZE_8K; + iteration = 1; break; case 3: sector_size = ICH_FLASH_SEG_SIZE_64K; ==== //depot/projects/usb/src/sys/dev/e1000/if_em.c#11 (text+ko) ==== @@ -30,7 +30,7 @@ POSSIBILITY OF SUCH DAMAGE. ******************************************************************************/ -/*$FreeBSD: src/sys/dev/e1000/if_em.c,v 1.19 2009/06/29 18:17:10 jfv Exp $*/ +/*$FreeBSD: src/sys/dev/e1000/if_em.c,v 1.21 2009/07/24 21:35:52 jfv Exp $*/ #ifdef HAVE_KERNEL_OPTION_HEADERS #include "opt_device_polling.h" @@ -815,9 +815,9 @@ #if __FreeBSD_version >= 700029 /* Register for VLAN events */ adapter->vlan_attach = EVENTHANDLER_REGISTER(vlan_config, - em_register_vlan, 0, EVENTHANDLER_PRI_FIRST); + em_register_vlan, adapter, EVENTHANDLER_PRI_FIRST); adapter->vlan_detach = EVENTHANDLER_REGISTER(vlan_unconfig, - em_unregister_vlan, 0, EVENTHANDLER_PRI_FIRST); + em_unregister_vlan, adapter, EVENTHANDLER_PRI_FIRST); #endif /* Tell the stack that the interface is not active */ @@ -919,9 +919,6 @@ bus_generic_detach(dev); if_free(ifp); -#if __FreeBSD_version >= 800000 - drbr_free(adapter->br, M_DEVBUF); -#endif em_free_transmit_structures(adapter); em_free_receive_structures(adapter); @@ -3644,7 +3641,8 @@ adapter->txtag = NULL; } #if __FreeBSD_version >= 800000 - buf_ring_free(adapter->br, M_DEVBUF); + if (adapter->br != NULL) + buf_ring_free(adapter->br, M_DEVBUF); #endif } @@ -4715,12 +4713,15 @@ * config EVENT */ static void -em_register_vlan(void *unused, struct ifnet *ifp, u16 vtag) +em_register_vlan(void *arg, struct ifnet *ifp, u16 vtag) { struct adapter *adapter = ifp->if_softc; u32 index, bit; - if ((vtag == 0) || (vtag > 4095)) /* Invalid */ + if (ifp->if_softc != arg) /* Not our event */ + return; + + if ((vtag == 0) || (vtag > 4095)) /* Invalid ID */ return; index = (vtag >> 5) & 0x7F; @@ -4736,11 +4737,14 @@ * unconfig EVENT */ static void -em_unregister_vlan(void *unused, struct ifnet *ifp, u16 vtag) +em_unregister_vlan(void *arg, struct ifnet *ifp, u16 vtag) { struct adapter *adapter = ifp->if_softc; u32 index, bit; + if (ifp->if_softc != arg) + return; + if ((vtag == 0) || (vtag > 4095)) /* Invalid */ return; ==== //depot/projects/usb/src/sys/dev/e1000/if_igb.c#12 (text+ko) ==== @@ -30,7 +30,7 @@ POSSIBILITY OF SUCH DAMAGE. ******************************************************************************/ -/*$FreeBSD: src/sys/dev/e1000/if_igb.c,v 1.19 2009/07/14 19:32:36 bz Exp $*/ +/*$FreeBSD: src/sys/dev/e1000/if_igb.c,v 1.21 2009/07/24 21:35:52 jfv Exp $*/ #ifdef HAVE_KERNEL_OPTION_HEADERS @@ -600,9 +600,9 @@ /* Register for VLAN events */ adapter->vlan_attach = EVENTHANDLER_REGISTER(vlan_config, - igb_register_vlan, 0, EVENTHANDLER_PRI_FIRST); + igb_register_vlan, adapter, EVENTHANDLER_PRI_FIRST); adapter->vlan_detach = EVENTHANDLER_REGISTER(vlan_unconfig, - igb_unregister_vlan, 0, EVENTHANDLER_PRI_FIRST); + igb_unregister_vlan, adapter, EVENTHANDLER_PRI_FIRST); /* Tell the stack that the interface is not active */ adapter->ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); @@ -3068,7 +3068,8 @@ } } #if __FreeBSD_version >= 800000 - buf_ring_free(txr->br, M_DEVBUF); + if (txr->br != NULL) + buf_ring_free(txr->br, M_DEVBUF); #endif if (txr->tx_buffers != NULL) { free(txr->tx_buffers, M_DEVBUF); @@ -4304,11 +4305,14 @@ * config EVENT */ static void -igb_register_vlan(void *unused, struct ifnet *ifp, u16 vtag) +igb_register_vlan(void *arg, struct ifnet *ifp, u16 vtag) { struct adapter *adapter = ifp->if_softc; u32 index, bit; + if (ifp->if_softc != arg) /* Not our event */ + return; + if ((vtag == 0) || (vtag > 4095)) /* Invalid */ return; @@ -4325,11 +4329,14 @@ * unconfig EVENT */ static void -igb_unregister_vlan(void *unused, struct ifnet *ifp, u16 vtag) +igb_unregister_vlan(void *arg, struct ifnet *ifp, u16 vtag) { struct adapter *adapter = ifp->if_softc; u32 index, bit; + if (ifp->if_softc != arg) + return; + if ((vtag == 0) || (vtag > 4095)) /* Invalid */ return; ==== //depot/projects/usb/src/sys/dev/ixgbe/ixgbe.c#10 (text+ko) ==== @@ -30,7 +30,7 @@ POSSIBILITY OF SUCH DAMAGE. ******************************************************************************/ -/*$FreeBSD: src/sys/dev/ixgbe/ixgbe.c,v 1.15 2009/07/01 16:13:01 jfv Exp $*/ +/*$FreeBSD: src/sys/dev/ixgbe/ixgbe.c,v 1.17 2009/07/24 21:35:52 jfv Exp $*/ #ifdef HAVE_KERNEL_OPTION_HEADERS #include "opt_device_polling.h" @@ -539,9 +539,9 @@ /* Register for VLAN events */ adapter->vlan_attach = EVENTHANDLER_REGISTER(vlan_config, - ixgbe_register_vlan, 0, EVENTHANDLER_PRI_FIRST); + ixgbe_register_vlan, adapter, EVENTHANDLER_PRI_FIRST); adapter->vlan_detach = EVENTHANDLER_REGISTER(vlan_unconfig, - ixgbe_unregister_vlan, 0, EVENTHANDLER_PRI_FIRST); + ixgbe_unregister_vlan, adapter, EVENTHANDLER_PRI_FIRST); /* let hardware know driver is loaded */ ctrl_ext = IXGBE_READ_REG(hw, IXGBE_CTRL_EXT); @@ -2961,7 +2961,8 @@ } } #if __FreeBSD_version >= 800000 - buf_ring_free(txr->br, M_DEVBUF); + if (txr->br != NULL) + buf_ring_free(txr->br, M_DEVBUF); #endif if (txr->tx_buffers != NULL) { free(txr->tx_buffers, M_DEVBUF); @@ -4123,11 +4124,14 @@ ** repopulate the real table. */ static void -ixgbe_register_vlan(void *unused, struct ifnet *ifp, u16 vtag) +ixgbe_register_vlan(void *arg, struct ifnet *ifp, u16 vtag) { struct adapter *adapter = ifp->if_softc; u16 index, bit; + if (ifp->if_softc != arg) /* Not our event */ + return; + if ((vtag == 0) || (vtag > 4095)) /* Invalid */ return; @@ -4145,11 +4149,14 @@ ** in the soft vfta. */ static void -ixgbe_unregister_vlan(void *unused, struct ifnet *ifp, u16 vtag) +ixgbe_unregister_vlan(void *arg, struct ifnet *ifp, u16 vtag) { struct adapter *adapter = ifp->if_softc; u16 index, bit; + if (ifp->if_softc != arg) + return; + if ((vtag == 0) || (vtag > 4095)) /* Invalid */ return; ==== //depot/projects/usb/src/sys/dev/uart/uart_cpu_powerpc.c#7 (text) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_cpu_powerpc.c,v 1.7 2009/04/08 22:19:39 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_cpu_powerpc.c,v 1.8 2009/07/23 12:51:27 nwhitehorn Exp $"); #include "opt_platform.h" @@ -78,6 +78,27 @@ return (uart_getenv(devtype, di, class)); } #else +static int +ofw_get_uart_console(phandle_t opts, phandle_t *result, const char *inputdev, + const char *outputdev) +{ + char buf[64]; + phandle_t input; + + if (OF_getprop(opts, inputdev, buf, sizeof(buf)) == -1) + return (ENXIO); + input = OF_finddevice(buf); + if (input == -1) + return (ENXIO); + if (OF_getprop(opts, outputdev, buf, sizeof(buf)) == -1) + return (ENXIO); + if (OF_finddevice(buf) != input) + return (ENXIO); + + *result = input; + return (0); +} + int uart_cpu_getdev(int devtype, struct uart_devinfo *di) { @@ -94,15 +115,17 @@ return (ENXIO); switch (devtype) { case UART_DEV_CONSOLE: - if (OF_getprop(opts, "input-device", buf, sizeof(buf)) == -1) - return (ENXIO); - input = OF_finddevice(buf); - if (input == -1) - return (ENXIO); - if (OF_getprop(opts, "output-device", buf, sizeof(buf)) == -1) - return (ENXIO); - if (OF_finddevice(buf) != input) - return (ENXIO); + if (ofw_get_uart_console(opts, &input, "input-device", + "output-device")) { + /* + * At least some G5 Xserves require that we + * probe input-device-1 as well + */ + + if (ofw_get_uart_console(opts, &input, "input-device-1", + "output-device-1")) + return (ENXIO); + } break; case UART_DEV_DBGPORT: if (!getenv_string("hw.uart.dbgport", buf, sizeof(buf))) ==== //depot/projects/usb/src/sys/dev/usb/usbdevs#68 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.418 2009/06/26 21:47:37 delphij Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.419 2009/07/27 20:17:20 weongyo Exp $ /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */ /*- @@ -1181,6 +1181,8 @@ product DLINK2 WUA1340 0x3c04 WUA-1340 product DLINK2 DWA111 0x3c06 DWA-111 product DLINK2 DWA110 0x3c07 DWA-110 +product DLINK2 DWA120_NF 0x3c0d DWA-120 (no firmware) +product DLINK2 DWA120 0x3c0e DWA-120 /* DMI products */ product DMI CFSM_RW 0xa109 CF/SM Reader/Writer ==== //depot/projects/usb/src/sys/dev/usb/wlan/if_uath.c#15 (text+ko) ==== @@ -49,7 +49,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/wlan/if_uath.c,v 1.16 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/wlan/if_uath.c,v 1.17 2009/07/27 20:17:20 weongyo Exp $"); /*- * Driver for Atheros AR5523 USB parts. @@ -180,6 +180,7 @@ UATH_DEV(DLINK, DWLAG122), UATH_DEV(DLINK, DWLAG132), UATH_DEV(DLINK, DWLG132), + UATH_DEV(DLINK2, DWA120), UATH_DEV(GIGASET, AR5523), UATH_DEV(GIGASET, SMCWUSBTG), UATH_DEV(GLOBALSUN, AR5523_1), ==== //depot/projects/usb/src/sys/fs/procfs/procfs_map.c#9 (text+ko) ==== @@ -32,7 +32,7 @@ * * @(#)procfs_status.c 8.3 (Berkeley) 2/17/94 * - * $FreeBSD: src/sys/fs/procfs/procfs_map.c,v 1.50 2009/06/23 20:45:22 kib Exp $ + * $FreeBSD: src/sys/fs/procfs/procfs_map.c,v 1.51 2009/07/24 13:50:29 jhb Exp $ */ #include "opt_compat.h" @@ -174,6 +174,7 @@ type = "swap"; vp = NULL; break; + case OBJT_SG: case OBJT_DEVICE: type = "device"; vp = NULL; ==== //depot/projects/usb/src/sys/i386/i386/machdep.c#19 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/machdep.c,v 1.686 2009/06/23 22:42:39 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/machdep.c,v 1.687 2009/07/27 13:51:55 rpaulo Exp $"); #include "opt_apic.h" #include "opt_atalk.h" @@ -257,7 +257,10 @@ */ sysenv = getenv("smbios.system.product"); if (sysenv != NULL) { - if (strncmp(sysenv, "MacBook", 7) == 0) { + if (strncmp(sysenv, "MacBook1,1", 10) == 0 || + strncmp(sysenv, "MacBookPro1,1", 13) == 0 || + strncmp(sysenv, "MacBookPro1,2", 13) == 0 || + strncmp(sysenv, "Macmini1,1", 10) == 0) { if (bootverbose) printf("Disabling LEGACY_USB_EN bit on " "Intel ICH.\n"); ==== //depot/projects/usb/src/sys/i386/i386/pmap.c#23 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.642 2009/07/19 21:40:19 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.644 2009/07/24 13:50:29 jhb Exp $"); /* * Manages physical address maps. @@ -3439,7 +3439,7 @@ int pat_mode; VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); - KASSERT(object->type == OBJT_DEVICE, + KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, ("pmap_object_init_pt: non-device object")); if (pseflag && (addr & (NBPDR - 1)) == 0 && (size & (NBPDR - 1)) == 0) { @@ -4473,6 +4473,7 @@ pt_entry_t *pte; u_int opte, npte; pd_entry_t *pde; + boolean_t changed; base = trunc_page(va); offset = va & PAGE_MASK; @@ -4496,6 +4497,8 @@ return (EINVAL); } + changed = FALSE; + /* * Ok, all the pages exist and are 4k, so run through them updating * their cache mode. @@ -4513,6 +4516,8 @@ npte |= pmap_cache_bits(mode, 0); } while (npte != opte && !atomic_cmpset_int((u_int *)pte, opte, npte)); + if (npte != opte) + changed = TRUE; tmpva += PAGE_SIZE; size -= PAGE_SIZE; } @@ -4521,10 +4526,12 @@ * Flush CPU caches to make sure any data isn't cached that shouldn't * be, etc. */ - pmap_invalidate_range(kernel_pmap, base, tmpva); - /* If "Self Snoop" is supported, do nothing. */ - if (!(cpu_feature & CPUID_SS)) - pmap_invalidate_cache(); + if (changed) { + pmap_invalidate_range(kernel_pmap, base, tmpva); + /* If "Self Snoop" is supported, do nothing. */ + if (!(cpu_feature & CPUID_SS)) + pmap_invalidate_cache(); + } return (0); } >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jul 28 08:16:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3A0D71065674; Tue, 28 Jul 2009 08:16: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 EB3031065672 for ; Tue, 28 Jul 2009 08:15:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D8EAE8FC12 for ; Tue, 28 Jul 2009 08:15:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6S8Fx6h025027 for ; Tue, 28 Jul 2009 08:15:59 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6S8Fx8A025025 for perforce@freebsd.org; Tue, 28 Jul 2009 08:15:59 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 28 Jul 2009 08:15:59 GMT Message-Id: <200907280815.n6S8Fx8A025025@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166669 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 08:16:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=166669 Change 166669 by hselasky@hselasky_laptop001 on 2009/07/28 08:15:39 Revert some local MacBookPro5.5 patches which sneaked into change 166667. Affected files ... .. //depot/projects/usb/src/sys/i386/i386/pmap.c#24 integrate .. //depot/projects/usb/src/sys/kern/kern_sysctl.c#20 integrate .. //depot/projects/usb/src/sys/vm/uma_dbg.c#4 integrate Differences ... ==== //depot/projects/usb/src/sys/i386/i386/pmap.c#24 (text+ko) ==== @@ -211,6 +211,8 @@ static uma_zone_t pdptzone; #endif +static int pat_works; /* Is page attribute table sane? */ + SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD, 0, "VM/pmap parameters"); static int pg_ps_enabled; @@ -477,33 +479,36 @@ if (!(cpu_feature & CPUID_PAT)) return; -#ifdef PAT_WORKS - /* - * Leave the indices 0-3 at the default of WB, WT, UC, and UC-. - * Program 4 and 5 as WP and WC. - * Leave 6 and 7 as UC and UC-. - */ - pat_msr = rdmsr(MSR_PAT); - pat_msr &= ~(PAT_MASK(4) | PAT_MASK(5)); - pat_msr |= PAT_VALUE(4, PAT_WRITE_PROTECTED) | - PAT_VALUE(5, PAT_WRITE_COMBINING); -#else - /* - * Due to some Intel errata, we can only safely use the lower 4 - * PAT entries. Thus, just replace PAT Index 2 with WC instead - * of UC-. - * - * Intel Pentium III Processor Specification Update - * Errata E.27 (Upper Four PAT Entries Not Usable With Mode B - * or Mode C Paging) - * - * Intel Pentium IV Processor Specification Update - * Errata N46 (PAT Index MSB May Be Calculated Incorrectly) - */ - pat_msr = rdmsr(MSR_PAT); - pat_msr &= ~PAT_MASK(2); - pat_msr |= PAT_VALUE(2, PAT_WRITE_COMBINING); -#endif + if (cpu_vendor_id != CPU_VENDOR_INTEL || + (I386_CPU_FAMILY(cpu_id) == 6 && I386_CPU_MODEL(cpu_id) >= 0xe)) { + /* + * Leave the indices 0-3 at the default of WB, WT, UC, and UC-. + * Program 4 and 5 as WP and WC. + * Leave 6 and 7 as UC and UC-. + */ + pat_msr = rdmsr(MSR_PAT); + pat_msr &= ~(PAT_MASK(4) | PAT_MASK(5)); + pat_msr |= PAT_VALUE(4, PAT_WRITE_PROTECTED) | + PAT_VALUE(5, PAT_WRITE_COMBINING); + pat_works = 1; + } else { + /* + * Due to some Intel errata, we can only safely use the lower 4 + * PAT entries. Thus, just replace PAT Index 2 with WC instead + * of UC-. + * + * Intel Pentium III Processor Specification Update + * Errata E.27 (Upper Four PAT Entries Not Usable With Mode B + * or Mode C Paging) + * + * Intel Pentium IV Processor Specification Update + * Errata N46 (PAT Index MSB May Be Calculated Incorrectly) + */ + pat_msr = rdmsr(MSR_PAT); + pat_msr &= ~PAT_MASK(2); + pat_msr |= PAT_VALUE(2, PAT_WRITE_COMBINING); + pat_works = 0; + } wrmsr(MSR_PAT, pat_msr); } @@ -751,45 +756,49 @@ } /* Map the caching mode to a PAT index. */ - switch (mode) { -#ifdef PAT_WORKS - case PAT_UNCACHEABLE: - pat_index = 3; - break; - case PAT_WRITE_THROUGH: - pat_index = 1; - break; - case PAT_WRITE_BACK: - pat_index = 0; - break; - case PAT_UNCACHED: - pat_index = 2; - break; - case PAT_WRITE_COMBINING: - pat_index = 5; - break; - case PAT_WRITE_PROTECTED: - pat_index = 4; - break; -#else - case PAT_UNCACHED: - case PAT_UNCACHEABLE: - case PAT_WRITE_PROTECTED: - pat_index = 3; - break; - case PAT_WRITE_THROUGH: - pat_index = 1; - break; - case PAT_WRITE_BACK: - pat_index = 0; - break; - case PAT_WRITE_COMBINING: - pat_index = 2; - break; -#endif - default: - panic("Unknown caching mode %d\n", mode); - } + if (pat_works) { + switch (mode) { + case PAT_UNCACHEABLE: + pat_index = 3; + break; + case PAT_WRITE_THROUGH: + pat_index = 1; + break; + case PAT_WRITE_BACK: + pat_index = 0; + break; + case PAT_UNCACHED: + pat_index = 2; + break; + case PAT_WRITE_COMBINING: + pat_index = 5; + break; + case PAT_WRITE_PROTECTED: + pat_index = 4; + break; + default: + panic("Unknown caching mode %d\n", mode); + } + } else { + switch (mode) { + case PAT_UNCACHED: + case PAT_UNCACHEABLE: + case PAT_WRITE_PROTECTED: + pat_index = 3; + break; + case PAT_WRITE_THROUGH: + pat_index = 1; + break; + case PAT_WRITE_BACK: + pat_index = 0; + break; + case PAT_WRITE_COMBINING: + pat_index = 2; + break; + default: + panic("Unknown caching mode %d\n", mode); + } + } /* Map the 3-bit index value into the PAT, PCD, and PWT bits. */ cache_bits = 0; ==== //depot/projects/usb/src/sys/kern/kern_sysctl.c#20 (text+ko) ==== @@ -55,8 +55,6 @@ #include #include #include -#include - #ifdef KTRACE #include #endif @@ -242,14 +240,6 @@ return (0); } -static void -sysctl_free(void *ptr, struct malloc_type *mt, const char *file, int line) -{ - printf("%s:%d:0x%08lx\n", file, line, (long)ptr); - //kdb_backtrace(); - free(ptr, mt); -} - /* Free the context, and destroy all dynamic oids registered in this context */ int sysctl_ctx_free(struct sysctl_ctx_list *clist) @@ -270,7 +260,6 @@ if (error) break; } - /* * Restore deregistered entries, either from the end, * or from the place where error occured. @@ -296,7 +285,7 @@ if (error) panic("sysctl_remove_oid: corrupt tree, entry: %s", e->entry->oid_name); - sysctl_free(e, M_SYSCTLOID, __FILE__, __LINE__); + free(e, M_SYSCTLOID); e = e1; } SYSCTL_XUNLOCK(); @@ -351,7 +340,7 @@ if (e != NULL) { TAILQ_REMOVE(clist, e, link); SYSCTL_XUNLOCK(); - sysctl_free(e, M_SYSCTLOID, __FILE__, __LINE__); + free(e, M_SYSCTLOID); return (0); } else { SYSCTL_XUNLOCK(); @@ -407,7 +396,7 @@ return (error); } if (del) - sysctl_free(SYSCTL_CHILDREN(oidp), M_SYSCTLOID, __FILE__, __LINE__); + free(SYSCTL_CHILDREN(oidp), M_SYSCTLOID); } } if (oidp->oid_refcnt > 1 ) { @@ -421,10 +410,10 @@ sysctl_unregister_oid(oidp); if (del) { if (oidp->oid_descr) - sysctl_free((void *)(uintptr_t)(const void *)oidp->oid_descr, M_SYSCTLOID, __FILE__, __LINE__); - sysctl_free((void *)(uintptr_t)(const void *)oidp->oid_name, - M_SYSCTLOID, __FILE__, __LINE__); - sysctl_free(oidp, M_SYSCTLOID, __FILE__, __LINE__); + free((void *)(uintptr_t)(const void *)oidp->oid_descr, M_SYSCTLOID); + free((void *)(uintptr_t)(const void *)oidp->oid_name, + M_SYSCTLOID); + free(oidp, M_SYSCTLOID); } } return (0); @@ -518,7 +507,7 @@ oldname = (void *)(uintptr_t)(const void *)oidp->oid_name; oidp->oid_name = newname; SYSCTL_XUNLOCK(); - sysctl_free(oldname, M_SYSCTLOID, __FILE__, __LINE__); + free(oldname, M_SYSCTLOID); } /* @@ -672,13 +661,9 @@ if (req->oldidx) error = SYSCTL_OUT(req, ".", 1); - if (!error) { - if (oid->oid_name != NULL) + if (!error) error = SYSCTL_OUT(req, oid->oid_name, strlen(oid->oid_name)); - else - error = SYSCTL_OUT(req, "ZFAILED", sizeof("ZFAILED")-1); - } if (error) return (error); @@ -857,7 +842,7 @@ error = SYSCTL_IN(req, p, req->newlen); if (error) { - sysctl_free(p, M_SYSCTL, __FILE__, __LINE__); + free(p, M_SYSCTL); return (error); } @@ -865,7 +850,7 @@ error = name2oid(p, oid, &len, &op); - sysctl_free(p, M_SYSCTL, __FILE__, __LINE__); + free(p, M_SYSCTL); if (error) return (error); @@ -1067,12 +1052,12 @@ tmparg = malloc(outlen, M_SYSCTLTMP, M_WAITOK); if (strlcpy(tmparg, (char *)arg1, outlen) >= outlen) { - sysctl_free(tmparg, M_SYSCTLTMP, __FILE__, __LINE__); + free(tmparg, M_SYSCTLTMP); goto retry; } error = SYSCTL_OUT(req, tmparg, outlen); - sysctl_free(tmparg, M_SYSCTLTMP, __FILE__, __LINE__); + free(tmparg, M_SYSCTLTMP); if (error || !req->newptr) return (error); ==== //depot/projects/usb/src/sys/vm/uma_dbg.c#4 (text+ko) ==== @@ -134,10 +134,8 @@ if (*p != uma_junk) { printf("Memory modified after free %p(%d) val=%x @ %p\n", mem, size, *p, p); -#if 0 panic("Most recently used by %s\n", (*ksp == NULL)? "none" : (*ksp)->ks_shortdesc); -#endif } return (0); } From owner-p4-projects@FreeBSD.ORG Tue Jul 28 08:33:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6B69B1065670; Tue, 28 Jul 2009 08:33:19 +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 127CD106566C for ; Tue, 28 Jul 2009 08:33:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EBC448FC0C for ; Tue, 28 Jul 2009 08:33:18 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6S8XIOe026262 for ; Tue, 28 Jul 2009 08:33:18 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6S8XIrs026260 for perforce@freebsd.org; Tue, 28 Jul 2009 08:33:18 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 28 Jul 2009 08:33:18 GMT Message-Id: <200907280833.n6S8XIrs026260@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166670 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 08:33:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=166670 Change 166670 by hselasky@hselasky_laptop001 on 2009/07/28 08:32:40 Revert more local changes. Affected files ... .. //depot/projects/usb/src/share/man/man4/Makefile#1 branch .. //depot/projects/usb/src/sys/arm/conf/KB920X#20 integrate .. //depot/projects/usb/src/sys/kern/kern_conf.c#18 integrate .. //depot/projects/usb/src/sys/modules/sbni/Makefile#4 integrate .. //depot/projects/usb/src/sys/sys/conf.h#19 integrate .. //depot/projects/usb/src/usr.bin/usbhidctl/usbhid.c#3 integrate Differences ... ==== //depot/projects/usb/src/sys/arm/conf/KB920X#20 (text) ==== @@ -94,7 +94,6 @@ device icee device bpf - # USB support device ohci # OHCI localbus->USB interface device usb # USB Bus (required) @@ -105,7 +104,7 @@ device ural # Ralink Technology RT2500USB wireless NICs device rum # Ralink Technology RT2501USB wireless NICs device urio # Diamond Rio 500 MP3 player - +# USB Ethernet, requires miibus device miibus device aue # ADMtek USB Ethernet device axe # ASIX Electronics USB Ethernet ==== //depot/projects/usb/src/sys/kern/kern_conf.c#18 (text+ko) ==== @@ -264,7 +264,7 @@ #define dead_read (d_read_t *)enxio #define dead_write (d_write_t *)enxio #define dead_ioctl (d_ioctl_t *)enxio -#define dead_poll (d_poll_t *)devfs_no_poll +#define dead_poll (d_poll_t *)enodev #define dead_mmap (d_mmap_t *)enodev static void @@ -313,8 +313,8 @@ biofinish(bp, NULL, ENODEV); } -int -devfs_no_poll(struct cdev *dev __unused, int events, struct thread *td __unused) +static int +no_poll(struct cdev *dev __unused, int events, struct thread *td __unused) { return (poll_no_poll(events)); @@ -633,7 +633,7 @@ FIXUP(d_read, no_read, giant_read); FIXUP(d_write, no_write, giant_write); FIXUP(d_ioctl, no_ioctl, giant_ioctl); - FIXUP(d_poll, devfs_no_poll, giant_poll); + FIXUP(d_poll, no_poll, giant_poll); FIXUP(d_mmap, no_mmap, giant_mmap); FIXUP(d_strategy, no_strategy, giant_strategy); FIXUP(d_kqfilter, no_kqfilter, giant_kqfilter); ==== //depot/projects/usb/src/sys/modules/sbni/Makefile#4 (text+ko) ==== ==== //depot/projects/usb/src/sys/sys/conf.h#19 (text+ko) ==== @@ -281,7 +281,6 @@ int devfs_set_cdevpriv(void *priv, cdevpriv_dtr_t dtr); void devfs_clear_cdevpriv(void); void devfs_fpdrop(struct file *fp); /* XXX This is not public KPI */ -d_poll_t devfs_no_poll; #define UID_ROOT 0 #define UID_BIN 3 ==== //depot/projects/usb/src/usr.bin/usbhidctl/usbhid.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* $NetBSD: usbhid.c,v 1.14 2000/07/03 02:51:37 matt Exp $ */ -/* $FreeBSD: head/usr.bin/usbhidctl/usbhid.c 188945 2009-02-23 18:36:54Z thompsa $ */ +/* $FreeBSD: src/usr.bin/usbhidctl/usbhid.c,v 1.15 2009/06/23 23:16:00 delphij Exp $ */ /* * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -91,16 +91,15 @@ void usage(void) { - extern char *__progname; fprintf(stderr, "usage: %s -f device " "[-l] [-n] [-r] [-t tablefile] [-v] [-x] name ...\n", - __progname); + getprogname()); fprintf(stderr, " %s -f device " "[-l] [-n] [-r] [-t tablefile] [-v] [-x] -a\n", - __progname); + getprogname()); exit(1); } From owner-p4-projects@FreeBSD.ORG Tue Jul 28 09:51:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 16D4B1065697; Tue, 28 Jul 2009 09:51:45 +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 C33A210656A7 for ; Tue, 28 Jul 2009 09:51:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B02008FC17 for ; Tue, 28 Jul 2009 09:51:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6S9pi0S043580 for ; Tue, 28 Jul 2009 09:51:44 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6S9piPW043577 for perforce@freebsd.org; Tue, 28 Jul 2009 09:51:44 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 28 Jul 2009 09:51:44 GMT Message-Id: <200907280951.n6S9piPW043577@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166672 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 09:51:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=166672 Change 166672 by rwatson@rwatson_cinnamon on 2009/07/28 09:51:40 Fix bugs in printing audit class masks using audump. Affected files ... .. //depot/projects/trustedbsd/openbsm/tools/audump.c#9 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/tools/audump.c#9 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2005-2006 Robert N. M. Watson + * Copyright (c) 2005-2009 Robert N. M. Watson * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/tools/audump.c#8 $ + * $P4: //depot/projects/trustedbsd/openbsm/tools/audump.c#9 $ */ #include @@ -165,16 +165,16 @@ first = 1; for (i = 0; i < 32; i++) { - if (classmask & (2 << i)) { + if (classmask & (1 << i)) { if (first) first = 0; else printf(","); - c = getauclassnum(2 << i); + c = getauclassnum(1 << i); if (c != NULL) printf("%s", c->ac_name); else - printf("0x%x", 2 << i); + printf("0x%x", 1 << i); } } } From owner-p4-projects@FreeBSD.ORG Tue Jul 28 10:29:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6DEB21065672; Tue, 28 Jul 2009 10:29: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 2CFDE106566C for ; Tue, 28 Jul 2009 10:29:26 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1B11A8FC1B for ; Tue, 28 Jul 2009 10:29:26 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SATPvk047308 for ; Tue, 28 Jul 2009 10:29:25 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SATPUh047306 for perforce@freebsd.org; Tue, 28 Jul 2009 10:29:25 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 28 Jul 2009 10:29:25 GMT Message-Id: <200907281029.n6SATPUh047306@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166673 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 10:29:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=166673 Change 166673 by hselasky@hselasky_laptop001 on 2009/07/28 10:28:46 USB controller: - allow disabling "root_mount_hold()" by setting a sysctl Affected files ... .. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#22 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#22 (text+ko) ==== @@ -79,6 +79,10 @@ "Debug level"); #endif +static int usb_no_boot_wait = 0; +SYSCTL_INT(_hw_usb, OID_AUTO, no_boot_wait, CTLFLAG_RW, &usb_no_boot_wait, 0, + "No device enumerate waiting at boot."); + static uint8_t usb_post_init_called = 0; static devclass_t usb_devclass; @@ -132,8 +136,10 @@ return (ENXIO); } - /* delay vfs_mountroot until the bus is explored */ - bus->bus_roothold = root_mount_hold(device_get_nameunit(dev)); + if (usb_no_boot_wait == 0) { + /* delay vfs_mountroot until the bus is explored */ + bus->bus_roothold = root_mount_hold(device_get_nameunit(dev)); + } if (usb_post_init_called) { mtx_lock(&Giant); From owner-p4-projects@FreeBSD.ORG Tue Jul 28 13:00:44 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AFEAC10656B4; Tue, 28 Jul 2009 13:00: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 63C6B1065679; Tue, 28 Jul 2009 13:00:43 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from gizmo.2hip.net (gizmo.2hip.net [64.74.207.195]) by mx1.freebsd.org (Postfix) with ESMTP id 282D08FC14; Tue, 28 Jul 2009 13:00:42 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from [192.168.1.4] (adsl-154-218-245.ard.bellsouth.net [72.154.218.245]) (authenticated bits=0) by gizmo.2hip.net (8.14.3/8.14.3) with ESMTP id n6SCZi0S035956 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 28 Jul 2009 08:35:45 -0400 (EDT) (envelope-from rnoland@FreeBSD.org) From: Robert Noland To: Hans Petter Selasky In-Reply-To: <200907281029.n6SATPUh047306@repoman.freebsd.org> References: <200907281029.n6SATPUh047306@repoman.freebsd.org> Content-Type: text/plain Organization: FreeBSD Date: Tue, 28 Jul 2009 07:35:39 -0500 Message-Id: <1248784539.73923.4.camel@balrog.2hip.net> Mime-Version: 1.0 X-Mailer: Evolution 2.26.3 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_PBL, RCVD_IN_SORBS_DUL, RDNS_DYNAMIC, SPF_SOFTFAIL autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on gizmo.2hip.net Cc: Perforce Change Reviews Subject: Re: PERFORCE change 166673 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 13:00:44 -0000 On Tue, 2009-07-28 at 10:29 +0000, Hans Petter Selasky wrote: > http://perforce.freebsd.org/chv.cgi?CH=166673 > > Change 166673 by hselasky@hselasky_laptop001 on 2009/07/28 10:28:46 > > > USB controller: > - allow disabling "root_mount_hold()" by setting a sysctl Shouldn't this be a tuneable? Possibly mirrored by a read only sysctl? robert. > Affected files ... > > .. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#22 edit > > Differences ... > > ==== //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#22 (text+ko) ==== > > @@ -79,6 +79,10 @@ > "Debug level"); > #endif > > +static int usb_no_boot_wait = 0; > +SYSCTL_INT(_hw_usb, OID_AUTO, no_boot_wait, CTLFLAG_RW, &usb_no_boot_wait, 0, > + "No device enumerate waiting at boot."); > + > static uint8_t usb_post_init_called = 0; > > static devclass_t usb_devclass; > @@ -132,8 +136,10 @@ > return (ENXIO); > } > > - /* delay vfs_mountroot until the bus is explored */ > - bus->bus_roothold = root_mount_hold(device_get_nameunit(dev)); > + if (usb_no_boot_wait == 0) { > + /* delay vfs_mountroot until the bus is explored */ > + bus->bus_roothold = root_mount_hold(device_get_nameunit(dev)); > + } > > if (usb_post_init_called) { > mtx_lock(&Giant); -- Robert Noland FreeBSD From owner-p4-projects@FreeBSD.ORG Tue Jul 28 14:26:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 699A71065673; Tue, 28 Jul 2009 14:26:45 +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 2758D106566C for ; Tue, 28 Jul 2009 14:26:45 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 158D28FC15 for ; Tue, 28 Jul 2009 14:26:45 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SEQiEK082709 for ; Tue, 28 Jul 2009 14:26:44 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SEQiAg082707 for perforce@freebsd.org; Tue, 28 Jul 2009 14:26:44 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 28 Jul 2009 14:26:44 GMT Message-Id: <200907281426.n6SEQiAg082707@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166676 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 14:26:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=166676 Change 166676 by hselasky@hselasky_laptop001 on 2009/07/28 14:26:25 USB CORE: - Correct tunable type. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#23 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#23 (text+ko) ==== @@ -80,7 +80,7 @@ #endif static int usb_no_boot_wait = 0; -SYSCTL_INT(_hw_usb, OID_AUTO, no_boot_wait, CTLFLAG_RW, &usb_no_boot_wait, 0, +SYSCTL_INT(_hw_usb, OID_AUTO, no_boot_wait, CTLFLAG_RDTUN, &usb_no_boot_wait, 0, "No device enumerate waiting at boot."); static uint8_t usb_post_init_called = 0; From owner-p4-projects@FreeBSD.ORG Tue Jul 28 14:31:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6E68E106568C; Tue, 28 Jul 2009 14:31: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 E6697106567B for ; Tue, 28 Jul 2009 14:31:50 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B78288FC2C for ; Tue, 28 Jul 2009 14:31:50 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SEVoNB083129 for ; Tue, 28 Jul 2009 14:31:50 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SEVoSO083127 for perforce@freebsd.org; Tue, 28 Jul 2009 14:31:50 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 28 Jul 2009 14:31:50 GMT Message-Id: <200907281431.n6SEVoSO083127@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166677 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 14:31:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=166677 Change 166677 by hselasky@hselasky_laptop001 on 2009/07/28 14:30:52 USB CORE: - Add missing TUNABLE_INT(); Affected files ... .. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#24 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#24 (text+ko) ==== @@ -80,6 +80,7 @@ #endif static int usb_no_boot_wait = 0; +TUNABLE_INT("hw.usb.no_boot_wait", &usb_no_boot_wait); SYSCTL_INT(_hw_usb, OID_AUTO, no_boot_wait, CTLFLAG_RDTUN, &usb_no_boot_wait, 0, "No device enumerate waiting at boot."); From owner-p4-projects@FreeBSD.ORG Tue Jul 28 16:27:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7015B10656B1; Tue, 28 Jul 2009 16:27:58 +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 26A3110656C2 for ; Tue, 28 Jul 2009 16:27:58 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EF3C58FC17 for ; Tue, 28 Jul 2009 16:27:57 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SGRvmp093651 for ; Tue, 28 Jul 2009 16:27:57 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SGRvhM093649 for perforce@freebsd.org; Tue, 28 Jul 2009 16:27:57 GMT (envelope-from jona@FreeBSD.org) Date: Tue, 28 Jul 2009 16:27:57 GMT Message-Id: <200907281627.n6SGRvhM093649@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166681 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 16:28:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=166681 Change 166681 by jona@jona-trustedbsd-belle-vmware on 2009/07/28 16:26:58 Don't print the file size to stdout Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/sandbox_qt.cpp#9 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/sandbox_qt.cpp#9 (text+ko) ==== @@ -405,7 +405,6 @@ if(!group.open(QIODevice::ReadOnly | QIODevice::Text)) err(EX_IOERR, "Error opening /etc/group"); - printf("\t\tsize: %lli\n", group.size()); printf("\t\t%s\n", group.readLine().data()); fflush(stdout); From owner-p4-projects@FreeBSD.ORG Tue Jul 28 17:29:05 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 52CD21065721; Tue, 28 Jul 2009 17:29:05 +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 09E321065714 for ; Tue, 28 Jul 2009 17:29:05 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id ED2238FC0A for ; Tue, 28 Jul 2009 17:29:04 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SHT4eS011625 for ; Tue, 28 Jul 2009 17:29:04 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SHT4LT011623 for perforce@freebsd.org; Tue, 28 Jul 2009 17:29:04 GMT (envelope-from jona@FreeBSD.org) Date: Tue, 28 Jul 2009 17:29:04 GMT Message-Id: <200907281729.n6SHT4LT011623@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166683 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 17:29:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=166683 Change 166683 by jona@jona-trustedbsd-belle-vmware on 2009/07/28 17:28:24 Was missing dbus.h Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.cpp#7 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.ui#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/dbus.h#1 add Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.cpp#7 (text+ko) ==== @@ -68,7 +68,7 @@ struct ua_powerbox_options options; options.ui = UA_QT; options.operation = UA_OPEN_FILE; - options.parent_window = this->winId(); + options.parent_window = this->effectiveWinId(); options.start_path = ""; options.pathlen = 0; options.start_fd = -1; ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/TextEditor.ui#2 (text+ko) ==== @@ -42,22 +42,6 @@ - - - toolBar - - - TopToolBarArea - - - false - - - - - - - From owner-p4-projects@FreeBSD.ORG Tue Jul 28 17:42:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EE20D10656C4; Tue, 28 Jul 2009 17:42:19 +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 ABDDD10656DE for ; Tue, 28 Jul 2009 17:42:19 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 814A08FC13 for ; Tue, 28 Jul 2009 17:42:19 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SHgJdW012663 for ; Tue, 28 Jul 2009 17:42:19 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SHgJBN012661 for perforce@freebsd.org; Tue, 28 Jul 2009 17:42:19 GMT (envelope-from syl@FreeBSD.org) Date: Tue, 28 Jul 2009 17:42:19 GMT Message-Id: <200907281742.n6SHgJBN012661@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166684 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 17:42:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=166684 Change 166684 by syl@syl_rincewind on 2009/07/28 17:42:11 Removing the clear of funvtion register. (spotted by Hans Petter Selasky) Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.c#16 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.c#16 (text+ko) ==== @@ -213,8 +213,6 @@ /* wait 8 milliseconds */ /* Wait for reset to complete. */ usb_pause_mtx(&sc->sc_bus.bus_mtx, hz / 125); - - S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_FUNC_ADDR, 0); } From owner-p4-projects@FreeBSD.ORG Tue Jul 28 17:47:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8636A1065674; Tue, 28 Jul 2009 17:47: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 42A98106566C for ; Tue, 28 Jul 2009 17:47:25 +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 322B68FC17 for ; Tue, 28 Jul 2009 17:47:25 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SHlPvK013118 for ; Tue, 28 Jul 2009 17:47:25 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SHlPeX013116 for perforce@freebsd.org; Tue, 28 Jul 2009 17:47:25 GMT (envelope-from trasz@freebsd.org) Date: Tue, 28 Jul 2009 17:47:25 GMT Message-Id: <200907281747.n6SHlPeX013116@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 Cc: Subject: PERFORCE change 166685 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 17:47:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=166685 Change 166685 by trasz@trasz_victim on 2009/07/28 17:46:28 Add startup script to load HRL modules from /etc/hrl.conf. Affected files ... .. //depot/projects/soc2009/trasz_limits/etc/rc.d/Makefile#5 edit .. //depot/projects/soc2009/trasz_limits/etc/rc.d/hrl#1 add Differences ... ==== //depot/projects/soc2009/trasz_limits/etc/rc.d/Makefile#5 (text+ko) ==== @@ -13,7 +13,7 @@ fsck ftp-proxy ftpd \ gbde geli geli2 gssd \ hcsecd \ - hostapd hostid hostname \ + hostapd hostid hostname hrl \ inetd initrandom \ ip6addrctl ip6fw ipfilter ipfs ipfw ipmon \ ipnat ipsec ipxrouted \ From owner-p4-projects@FreeBSD.ORG Tue Jul 28 18:04:44 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8C4D2106567C; Tue, 28 Jul 2009 18:04: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 42B351065672 for ; Tue, 28 Jul 2009 18:04: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 306288FC1A for ; Tue, 28 Jul 2009 18:04:44 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SI4iNi015496 for ; Tue, 28 Jul 2009 18:04:44 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SI4iYg015494 for perforce@freebsd.org; Tue, 28 Jul 2009 18:04:44 GMT (envelope-from trasz@freebsd.org) Date: Tue, 28 Jul 2009 18:04:44 GMT Message-Id: <200907281804.n6SI4iYg015494@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 Cc: Subject: PERFORCE change 166686 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 18:04:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=166686 Change 166686 by trasz@trasz_victim on 2009/07/28 18:04:33 Update milestones. Affected files ... .. //depot/projects/soc2009/trasz_limits/MILESTONES#3 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/MILESTONES#3 (text+ko) ==== @@ -3,19 +3,19 @@ 1. Add some API to communicate between kernel and the userland. - <--- WE ARE HERE ---> - 2. Userland tools - either modify limits(1) or implement something new. 3. Add macros/routines to allocate and free resources. -4. Add calls to resource allocation and free routines all over the place. +4. Revise the API to be extensible, e.g. nmount(2)-like. + +8. Modify login.conf etc as neccessary. + + <--- WE ARE HERE ---> -5. Revise the API to be extensible, e.g. nmount(2)-like. +5. Add calls to resource allocation and free routines all over the place. 6. Make things fast. 7. Write documentation. -8. Modify login.conf etc as neccessary. - From owner-p4-projects@FreeBSD.ORG Tue Jul 28 18:58:44 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8A6421065675; Tue, 28 Jul 2009 18:58: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 49B05106564A for ; Tue, 28 Jul 2009 18:58:43 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 386018FC1A for ; Tue, 28 Jul 2009 18:58:43 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SIwhgi019746 for ; Tue, 28 Jul 2009 18:58:43 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SIwhm2019744 for perforce@freebsd.org; Tue, 28 Jul 2009 18:58:43 GMT (envelope-from pgj@FreeBSD.org) Date: Tue, 28 Jul 2009 18:58:43 GMT Message-Id: <200907281858.n6SIwhm2019744@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166687 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 18:58:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=166687 Change 166687 by pgj@petymeg-current on 2009/07/28 18:57:53 Add header for IGMP statistics. Note that it is required, because -z flag of netstat(1) would reset the version and length information too. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/igmp.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/igmp_var.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/igmp.c#3 (text+ko) ==== @@ -220,6 +220,10 @@ * IGMPv3 g/sg query response */ LIST_HEAD(, igmp_ifinfo) igi_head; +struct stat_header igmpstat_header = { + .sth_version = IGMPSTAT_VERSION, + .sth_len = sizeof(struct igmpstat) +}; struct igmpstat igmpstat; struct timeval igmp_gsrdelay; @@ -237,6 +241,10 @@ */ SYSCTL_V_STRUCT(V_NET, vnet_inet, _net_inet_igmp, IGMPCTL_STATS, stats, CTLFLAG_RW, igmpstat, igmpstat, ""); + +SYSCTL_V_STRUCT(V_NET, vnet_inet, _net_inet_igmp, OID_AUTO, stats_header, + CTLFLAG_RD, igmpstat_header, stat_header, "IGMP statistics header"); + SYSCTL_V_INT(V_NET, vnet_inet, _net_inet_igmp, OID_AUTO, recvifkludge, CTLFLAG_RW, igmp_recvifkludge, 0, "Rewrite IGMPv1/v2 reports from 0.0.0.0 to contain subnet address"); ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/igmp_var.h#2 (text+ko) ==== @@ -67,6 +67,7 @@ /* * IGMPv3 protocol statistics. */ +#define IGMPSTAT_VERSION 0x00000001 struct igmpstat { /* * Structure header (to insulate ABI changes). From owner-p4-projects@FreeBSD.ORG Tue Jul 28 18:58:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 496FF10656B2; Tue, 28 Jul 2009 18:58: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 6BE4A106566B for ; Tue, 28 Jul 2009 18:58:43 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5A8468FC1D for ; Tue, 28 Jul 2009 18:58:43 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SIwhFX019751 for ; Tue, 28 Jul 2009 18:58:43 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SIwh7g019749 for perforce@freebsd.org; Tue, 28 Jul 2009 18:58:43 GMT (envelope-from pgj@FreeBSD.org) Date: Tue, 28 Jul 2009 18:58:43 GMT Message-Id: <200907281858.n6SIwh7g019749@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166688 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 18:58:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=166688 Change 166688 by pgj@petymeg-current on 2009/07/28 18:58:23 Add support for IGMP stats. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#39 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#37 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#7 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#43 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#39 (text+ko) ==== @@ -121,6 +121,7 @@ stat_IP, stat_ICMP, stat_PIM, + stat_IGMP, stat_MAX, stat_Invalid, }; @@ -152,6 +153,7 @@ struct ip_stat; struct icmp_stat; struct pim_stat; +struct igmp_stat; __BEGIN_DECLS const char *netstat_strerror(int); @@ -537,4 +539,23 @@ u_int64_t netstat_pims_get_rcv_badregisters(const struct pim_stat *); u_int64_t netstat_pims_get_snd_registers_msgs(const struct pim_stat *); u_int64_t netstat_pims_get_snd_registers_bytes(const struct pim_stat *); + +const struct igmp_stat *netstat_get_igmpstats(const struct stat_type *); + +u_int64_t netstat_igmps_get_rcv_total(const struct igmp_stat *); +u_int64_t netstat_igmps_get_rcv_tooshort(const struct igmp_stat *); +u_int64_t netstat_igmps_get_rcv_badttl(const struct igmp_stat *); +u_int64_t netstat_igmps_get_rcv_badsum(const struct igmp_stat *); +u_int64_t netstat_igmps_get_rcv_v1v2_queries(const struct igmp_stat *); +u_int64_t netstat_igmps_get_rcv_v3_queries(const struct igmp_stat *); +u_int64_t netstat_igmps_get_rcv_badqueries(const struct igmp_stat *); +u_int64_t netstat_igmps_get_rcv_gen_queries(const struct igmp_stat *); +u_int64_t netstat_igmps_get_rcv_group_queries(const struct igmp_stat *); +u_int64_t netstat_igmps_get_rcv_gsr_queries(const struct igmp_stat *); +u_int64_t netstat_igmps_get_drop_gsr_queries(const struct igmp_stat *); +u_int64_t netstat_igmps_get_rcv_reports(const struct igmp_stat *); +u_int64_t netstat_igmps_get_rcv_badreports(const struct igmp_stat *); +u_int64_t netstat_igmps_get_rcv_ourreports(const struct igmp_stat *); +u_int64_t netstat_igmps_get_rcv_nora(const struct igmp_stat *); +u_int64_t netstat_igmps_get_snd_reports(const struct igmp_stat *); #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#37 (text+ko) ==== @@ -48,6 +48,7 @@ #include #include #include +#include #include "netstat.h" @@ -309,6 +310,10 @@ struct pimstat s; }; +struct igmp_stat { + struct igmpstat s; +}; + int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#7 (text+ko) ==== @@ -63,6 +63,7 @@ { IPSTAT_VERSION, "net.inet.ip.stats", "_ipstat" }, { ICMPSTAT_VERSION, "net.inet.icmp.stats", "_icmpstat" }, { PIMSTAT_VERSION, "net.inet.pim.stats", "_pimstat" }, + { IGMPSTAT_VERSION, "net.inet.igmp.stats", "_igmpstat" }, }; int ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#43 (text+ko) ==== @@ -2353,6 +2353,111 @@ return (psp->s.pims_snd_registers_bytes); } +const struct igmp_stat * +netstat_get_igmpstats(const struct stat_type *sttp) +{ + if (sttp->stt_type == stat_IGMP) { + return ((const struct igmp_stat *) sttp->stt_data); + } + return (NULL); +} + +u_int64_t +netstat_igmps_get_rcv_total(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_total); +} + +u_int64_t +netstat_igmps_get_rcv_tooshort(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_tooshort); +} + +u_int64_t +netstat_igmps_get_rcv_badttl(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_badttl); +} + +u_int64_t +netstat_igmps_get_rcv_badsum(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_badsum); +} + +u_int64_t +netstat_igmps_get_rcv_v1v2_queries(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_v1v2_queries); +} + +u_int64_t +netstat_igmps_get_rcv_v3_queries(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_v3_queries); +} + +u_int64_t +netstat_igmps_get_rcv_badqueries(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_badqueries); +} + +u_int64_t +netstat_igmps_get_rcv_gen_queries(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_gen_queries); +} + +u_int64_t +netstat_igmps_get_rcv_group_queries(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_group_queries); +} + +u_int64_t +netstat_igmps_get_rcv_gsr_queries(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_gsr_queries); +} + +u_int64_t +netstat_igmps_get_drop_gsr_queries(const struct igmp_stat *isp) +{ + return (isp->s.igps_drop_gsr_queries); +} + +u_int64_t +netstat_igmps_get_rcv_reports(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_reports); +} + +u_int64_t +netstat_igmps_get_rcv_badreports(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_badreports); +} + +u_int64_t +netstat_igmps_get_rcv_ourreports(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_ourreports); +} + +u_int64_t +netstat_igmps_get_rcv_nora(const struct igmp_stat *isp) +{ + return (isp->s.igps_rcv_nora); +} + +u_int64_t +netstat_igmps_get_snd_reports(const struct igmp_stat *isp) +{ + return (isp->s.igps_snd_reports); +} + static const char *icmpnames[ICMP_MAXTYPE + 1] = { "echo reply", /* RFC 792 */ From owner-p4-projects@FreeBSD.ORG Tue Jul 28 18:59:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 093BF1065675; Tue, 28 Jul 2009 18:59:45 +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 BC53E106566B for ; Tue, 28 Jul 2009 18:59:44 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A9C9E8FC30 for ; Tue, 28 Jul 2009 18:59:44 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SIxidB019813 for ; Tue, 28 Jul 2009 18:59:44 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SIxilR019811 for perforce@freebsd.org; Tue, 28 Jul 2009 18:59:44 GMT (envelope-from pgj@FreeBSD.org) Date: Tue, 28 Jul 2009 18:59:44 GMT Message-Id: <200907281859.n6SIxilR019811@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166689 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 18:59:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=166689 Change 166689 by pgj@petymeg-current on 2009/07/28 18:59:10 Make netstat(1) use libnetstat(3) for working with IGMP statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#17 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#32 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#25 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#17 (text+ko) ==== @@ -82,7 +82,7 @@ #endif void ip_stats(const struct stat_type *); void icmp_stats(const struct stat_type *); -void igmp_stats(u_long, const char *, int, int); +void igmp_stats(const struct stat_type *); void pim_stats(const struct stat_type *); void carp_stats(const struct stat_type *); void pfsync_stats(u_long, const char *, int, int); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#32 (text+ko) ==== @@ -551,125 +551,38 @@ netstat_icmp_get_maskrepl(NULL) ? "en" : "dis"); } -#ifndef BURN_BRIDGES /* - * Dump IGMP statistics structure (pre 8.x kernel). - */ -static void -igmp_stats_live_old(u_long off, const char *name) -{ - struct oigmpstat oigmpstat, zerostat; - size_t len = sizeof(oigmpstat); - - if (zflag) - memset(&zerostat, 0, len); - if (sysctlbyname("net.inet.igmp.stats", &oigmpstat, &len, - zflag ? &zerostat : NULL, zflag ? len : 0) < 0) { - warn("sysctl: net.inet.igmp.stats"); - return; - } - - printf("%s:\n", name); - -#define p(f, m) if (oigmpstat.f || sflag <= 1) \ - printf(m, oigmpstat.f, plural(oigmpstat.f)) -#define py(f, m) if (oigmpstat.f || sflag <= 1) \ - printf(m, oigmpstat.f, oigmpstat.f != 1 ? "ies" : "y") - p(igps_rcv_total, "\t%u message%s received\n"); - p(igps_rcv_tooshort, "\t%u message%s received with too few bytes\n"); - p(igps_rcv_badsum, "\t%u message%s received with bad checksum\n"); - py(igps_rcv_queries, "\t%u membership quer%s received\n"); - py(igps_rcv_badqueries, - "\t%u membership quer%s received with invalid field(s)\n"); - p(igps_rcv_reports, "\t%u membership report%s received\n"); - p(igps_rcv_badreports, - "\t%u membership report%s received with invalid field(s)\n"); - p(igps_rcv_ourreports, -"\t%u membership report%s received for groups to which we belong\n"); - p(igps_snd_reports, "\t%u membership report%s sent\n"); -#undef p -#undef py -} -#endif /* !BURN_BRIDGES */ - -/* * Dump IGMP statistics structure. */ void -igmp_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +igmp_stats(const struct stat_type *sttp) { - struct igmpstat igmpstat, zerostat; - size_t len; + const struct igmp_stat *s; -#ifndef BURN_BRIDGES - if (live) { - /* - * Detect if we are being run against a pre-IGMPv3 kernel. - * We cannot do this for a core file as the legacy - * struct igmpstat has no size field, nor does it - * export it in any readily-available symbols. - */ - len = 0; - if (sysctlbyname("net.inet.igmp.stats", NULL, &len, NULL, - 0) < 0) { - warn("sysctl: net.inet.igmp.stats"); - return; - } - if (len < sizeof(igmpstat)) { - igmp_stats_live_old(off, name); - return; - } - } -#endif /* !BURN_BRIDGES */ - - len = sizeof(igmpstat); - if (live) { - if (zflag) - memset(&zerostat, 0, len); - if (sysctlbyname("net.inet.igmp.stats", &igmpstat, &len, - zflag ? &zerostat : NULL, zflag ? len : 0) < 0) { - warn("sysctl: net.inet.igmp.stats"); - return; - } - } else { - len = sizeof(igmpstat); - kread(off, &igmpstat, len); - } - - if (igmpstat.igps_version != IGPS_VERSION_3) { - warnx("%s: version mismatch (%d != %d)", __func__, - igmpstat.igps_version, IGPS_VERSION_3); - } - if (igmpstat.igps_len != IGPS_VERSION3_LEN) { - warnx("%s: size mismatch (%d != %d)", __func__, - igmpstat.igps_len, IGPS_VERSION3_LEN); - } - - printf("%s:\n", name); - -#define p64(f, m) if (igmpstat.f || sflag <= 1) \ - printf(m, (uintmax_t) igmpstat.f, plural(igmpstat.f)) -#define py64(f, m) if (igmpstat.f || sflag <= 1) \ - printf(m, (uintmax_t) igmpstat.f, pluralies(igmpstat.f)) - p64(igps_rcv_total, "\t%ju message%s received\n"); - p64(igps_rcv_tooshort, "\t%ju message%s received with too few bytes\n"); - p64(igps_rcv_badttl, "\t%ju message%s received with wrong TTL\n"); - p64(igps_rcv_badsum, "\t%ju message%s received with bad checksum\n"); - py64(igps_rcv_v1v2_queries, "\t%ju V1/V2 membership quer%s received\n"); - py64(igps_rcv_v3_queries, "\t%ju V3 membership quer%s received\n"); - py64(igps_rcv_badqueries, + s = netstat_get_igmpstats(sttp); +#define p64(f, m) if (netstat_igmps_get_##f(s) || sflag <= 1) \ + printf(m, netstat_igmps_get_##f(s), plural(netstat_igmps_get_##f(s))) +#define py64(f, m) if (netstat_igmps_get_##f(s) || sflag <= 1) \ + printf(m, netstat_igmps_get_##f(s), pluralies(netstat_igmps_get_##f(s))) + p64(rcv_total, "\t%ju message%s received\n"); + p64(rcv_tooshort, "\t%ju message%s received with too few bytes\n"); + p64(rcv_badttl, "\t%ju message%s received with wrong TTL\n"); + p64(rcv_badsum, "\t%ju message%s received with bad checksum\n"); + py64(rcv_v1v2_queries, "\t%ju V1/V2 membership quer%s received\n"); + py64(rcv_v3_queries, "\t%ju V3 membership quer%s received\n"); + py64(rcv_badqueries, "\t%ju membership quer%s received with invalid field(s)\n"); - py64(igps_rcv_gen_queries, "\t%ju general quer%s received\n"); - py64(igps_rcv_group_queries, "\t%ju group quer%s received\n"); - py64(igps_rcv_gsr_queries, "\t%ju group-source quer%s received\n"); - py64(igps_drop_gsr_queries, "\t%ju group-source quer%s dropped\n"); - p64(igps_rcv_reports, "\t%ju membership report%s received\n"); - p64(igps_rcv_badreports, + py64(rcv_gen_queries, "\t%ju general quer%s received\n"); + py64(rcv_group_queries, "\t%ju group quer%s received\n"); + py64(rcv_gsr_queries, "\t%ju group-source quer%s received\n"); + py64(drop_gsr_queries, "\t%ju group-source quer%s dropped\n"); + p64(rcv_reports, "\t%ju membership report%s received\n"); + p64(rcv_badreports, "\t%ju membership report%s received with invalid field(s)\n"); - p64(igps_rcv_ourreports, + p64(rcv_ourreports, "\t%ju membership report%s received for groups to which we belong\n"); - p64(igps_rcv_nora, "\t%ju V3 report%s received without Router Alert\n"); - p64(igps_snd_reports, "\t%ju membership report%s sent\n"); + p64(rcv_nora, "\t%ju V3 report%s received without Router Alert\n"); + p64(snd_reports, "\t%ju membership report%s sent\n"); #undef p64 #undef py64 } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#25 (text+ko) ==== @@ -127,13 +127,11 @@ { .n_name = "_espstat" }, #define N_IPCOMPSTAT 24 { .n_name = "_ipcompstat" }, -#define N_IGMPSTAT 25 - { .n_name = "_igmpstat" }, -#define N_RIP6STAT 26 +#define N_RIP6STAT 25 { .n_name = "_rip6stat" }, -#define N_SCTPSTAT 27 +#define N_SCTPSTAT 26 { .n_name = "_sctpstat" }, -#define N_MFCTABLESIZE 28 +#define N_MFCTABLESIZE 27 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -167,8 +165,8 @@ NULL, NULL, "ip", 1, IPPROTO_RAW }, { 0, 0, 1, NULL, icmp_stats, stat_ICMP, NULL, NULL, "icmp", 1, IPPROTO_ICMP }, - { 0, N_IGMPSTAT, 1, NULL, NULL, stat_MAX, - igmp_stats, NULL, "igmp", 1, IPPROTO_IGMP }, + { 0, 0, 1, NULL, igmp_stats, stat_IGMP, + NULL, NULL, "igmp", 1, IPPROTO_IGMP }, #ifdef IPSEC { -1, N_IPSECSTAT, 1, NULL, NULL, stat_MAX, /* keep as compat */ ipsec_stats, NULL, "ipsec", 0, 0}, From owner-p4-projects@FreeBSD.ORG Tue Jul 28 19:29:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B361D106566C; Tue, 28 Jul 2009 19:29:17 +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 731021065674 for ; Tue, 28 Jul 2009 19:29:17 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 613548FC1E for ; Tue, 28 Jul 2009 19:29:17 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SJTHkI022885 for ; Tue, 28 Jul 2009 19:29:17 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SJTH9Z022883 for perforce@freebsd.org; Tue, 28 Jul 2009 19:29:17 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 28 Jul 2009 19:29:17 GMT Message-Id: <200907281929.n6SJTH9Z022883@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166691 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 19:29:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=166691 Change 166691 by hselasky@hselasky_laptop001 on 2009/07/28 19:29:07 Add mass storage quirk. PR: usb/137138 Affected files ... .. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#26 edit .. //depot/projects/usb/src/sys/dev/usb/usbdevs#69 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/storage/umass.c#26 (text+ko) ==== @@ -965,6 +965,10 @@ UMASS_PROTO_SCSI | UMASS_PROTO_BBB, NO_SYNCHRONIZE_CACHE }, + {USB_VENDOR_ASUS, USB_PRODUCT_ASUS_GMSC, RID_WILDCARD, + UMASS_PROTO_DEFAULT, + NO_SYNCHRONIZE_CACHE + }, {VID_EOT, PID_EOT, RID_EOT, 0, 0} }; ==== //depot/projects/usb/src/sys/dev/usb/usbdevs#69 (text+ko) ==== @@ -902,6 +902,7 @@ product ASUS RT2573_2 0x1724 RT2573 product ASUS LCM 0x1726 LCM display product ASUS P535 0x420f ASUS P535 PDA +product ASUS GMSC 0x422f ASUS Generic Mass Storage /* ATen products */ product ATEN UC1284 0x2001 Parallel printer From owner-p4-projects@FreeBSD.ORG Tue Jul 28 20:08:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A78BE106568F; Tue, 28 Jul 2009 20:08: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 CCDDA106568C for ; Tue, 28 Jul 2009 20:07:59 +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 B24CC8FC17 for ; Tue, 28 Jul 2009 20:07:59 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SK7x4s026685 for ; Tue, 28 Jul 2009 20:07:59 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SK7x8i026683 for perforce@freebsd.org; Tue, 28 Jul 2009 20:07:59 GMT (envelope-from trasz@freebsd.org) Date: Tue, 28 Jul 2009 20:07:59 GMT Message-Id: <200907282007.n6SK7x8i026683@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 Cc: Subject: PERFORCE change 166694 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 20:08:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=166694 Change 166694 by trasz@trasz_victim on 2009/07/28 20:07:43 Use correct constant. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#31 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#31 (text+ko) ==== @@ -506,10 +506,12 @@ #endif mtx_lock(&hrl_lock); +#ifdef notyet KASSERT(amount <= p->p_usage.hu_resources[resource], ("hrl_free_proc: freeing %lld of %s, which is more than allocated %lld " "for %s (pid %d)", amount, hrl_resource_name(resource), p->p_usage.hu_resources[resource], p->p_comm, p->p_pid)); +#endif p->p_usage.hu_resources[resource] -= amount; cred = p->p_ucred; cred->cr_ruidinfo->ui_usage.hu_resources[resource] -= amount; @@ -1116,7 +1118,7 @@ mtx_assert(&hrl_lock, MA_OWNED); for (i = 0; i < HRL_RESOURCE_MAX; i++) { - (*availablep)[i] = INT_MAX; /* XXX: It's int64_t, not int. */ + (*availablep)[i] = INT64_MAX; (*rulesp)[i] = NULL; } From owner-p4-projects@FreeBSD.ORG Tue Jul 28 20:08:07 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9777A10656D9; Tue, 28 Jul 2009 20:08:01 +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 231BD106568D for ; Tue, 28 Jul 2009 20:08:00 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 09E598FC08 for ; Tue, 28 Jul 2009 20:08:00 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SK7xVK026690 for ; Tue, 28 Jul 2009 20:07:59 GMT (envelope-from andre@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SK7xA2026688 for perforce@freebsd.org; Tue, 28 Jul 2009 20:07:59 GMT (envelope-from andre@freebsd.org) Date: Tue, 28 Jul 2009 20:07:59 GMT Message-Id: <200907282007.n6SK7xA2026688@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andre@freebsd.org using -f From: Andre Oppermann To: Perforce Change Reviews Cc: Subject: PERFORCE change 166695 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 20:08:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=166695 Change 166695 by andre@andre_flirtbox on 2009/07/28 20:07:57 IFC. Affected files ... .. //depot/projects/tcp_reass/amd64/amd64/machdep.c#9 integrate .. //depot/projects/tcp_reass/boot/forth/loader.conf#6 integrate .. //depot/projects/tcp_reass/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#4 integrate .. //depot/projects/tcp_reass/compat/freebsd32/freebsd32_misc.c#7 integrate .. //depot/projects/tcp_reass/compat/linux/linux_mib.c#5 integrate .. //depot/projects/tcp_reass/conf/NOTES#9 integrate .. //depot/projects/tcp_reass/conf/files#12 integrate .. //depot/projects/tcp_reass/dev/ata/ata-all.c#8 integrate .. //depot/projects/tcp_reass/dev/usb/usbdevs#6 integrate .. //depot/projects/tcp_reass/dev/usb/wlan/if_uath.c#5 integrate .. //depot/projects/tcp_reass/i386/i386/machdep.c#8 integrate .. //depot/projects/tcp_reass/kern/kern_jail.c#10 integrate .. //depot/projects/tcp_reass/kern/kern_vimage.c#10 integrate .. //depot/projects/tcp_reass/kern/uipc_socket.c#10 integrate .. //depot/projects/tcp_reass/modules/Makefile#10 integrate .. //depot/projects/tcp_reass/modules/if_epair/Makefile#1 branch .. //depot/projects/tcp_reass/net/if.c#13 integrate .. //depot/projects/tcp_reass/net/if_epair.c#3 integrate .. //depot/projects/tcp_reass/net/if_ethersubr.c#10 integrate .. //depot/projects/tcp_reass/net/if_var.h#9 integrate .. //depot/projects/tcp_reass/net/netisr.h#5 integrate .. //depot/projects/tcp_reass/net80211/ieee80211_hwmp.c#3 integrate .. //depot/projects/tcp_reass/net80211/ieee80211_ioctl.h#9 integrate .. //depot/projects/tcp_reass/net80211/ieee80211_mesh.c#3 integrate .. //depot/projects/tcp_reass/net80211/ieee80211_mesh.h#3 integrate .. //depot/projects/tcp_reass/netinet/if_ether.c#8 integrate .. //depot/projects/tcp_reass/netinet/in.c#9 integrate .. //depot/projects/tcp_reass/netinet/ipfw/ip_fw2.c#7 integrate .. //depot/projects/tcp_reass/netinet/sctp_auth.c#5 integrate .. //depot/projects/tcp_reass/netinet/sctp_indata.c#7 integrate .. //depot/projects/tcp_reass/netinet/sctp_sysctl.c#6 integrate .. //depot/projects/tcp_reass/netinet/sctp_sysctl.h#5 integrate .. //depot/projects/tcp_reass/netinet/sctp_uio.h#5 integrate .. //depot/projects/tcp_reass/netinet/sctputil.c#7 integrate .. //depot/projects/tcp_reass/netinet/sctputil.h#5 integrate .. //depot/projects/tcp_reass/netinet/tcp_input.c#17 integrate .. //depot/projects/tcp_reass/netinet/tcp_syncache.c#8 integrate .. //depot/projects/tcp_reass/netinet6/in6.c#8 integrate .. //depot/projects/tcp_reass/sys/jail.h#7 integrate .. //depot/projects/tcp_reass/sys/vimage.h#10 integrate Differences ... ==== //depot/projects/tcp_reass/amd64/amd64/machdep.c#9 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.705 2009/07/09 09:34:11 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.706 2009/07/27 13:51:55 rpaulo Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -213,7 +213,10 @@ */ sysenv = getenv("smbios.system.product"); if (sysenv != NULL) { - if (strncmp(sysenv, "MacBook", 7) == 0) { + if (strncmp(sysenv, "MacBook1,1", 10) == 0 || + strncmp(sysenv, "MacBookPro1,1", 13) == 0 || + strncmp(sysenv, "MacBookPro1,2", 13) == 0 || + strncmp(sysenv, "Macmini1,1", 10) == 0) { if (bootverbose) printf("Disabling LEGACY_USB_EN bit on " "Intel ICH.\n"); ==== //depot/projects/tcp_reass/boot/forth/loader.conf#6 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.142 2009/06/15 18:22:41 marius Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.143 2009/07/26 12:20:07 bz Exp $ ############################################################## ### Basic configuration options ############################ @@ -190,6 +190,7 @@ if_disc_load="NO" # Discard device if_ef_load="NO" # pseudo-device providing support for multiple # ethernet frame types +if_epair_load="NO" # Virtual b-t-b Ethernet-like interface pair if_faith_load="NO" # IPv6-to-IPv4 TCP relay capturing interface if_gif_load="NO" # generic tunnel interface if_gre_load="NO" # encapsulating network device ==== //depot/projects/tcp_reass/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#4 (text+ko) ==== @@ -78,7 +78,11 @@ /* * Is ID ephemeral? */ +#ifdef TODO #define IS_EPHEMERAL(x) (x > MAXUID) +#else +#define IS_EPHEMERAL(x) (0) +#endif /* * Should we use FUIDs? ==== //depot/projects/tcp_reass/compat/freebsd32/freebsd32_misc.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.92 2009/06/27 13:58:44 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.93 2009/07/27 16:03:04 jhb Exp $"); #include "opt_compat.h" #include "opt_inet.h" @@ -1416,8 +1416,8 @@ defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD7) switch (uap->which) { case 0: - return (freebsd32_semctl(td, - (struct freebsd32_semctl_args *)&uap->a2)); + return (freebsd7_freebsd32_semctl(td, + (struct freebsd7_freebsd32_semctl_args *)&uap->a2)); default: return (semsys(td, (struct semsys_args *)uap)); } @@ -1580,8 +1580,8 @@ defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD7) switch (uap->which) { case 0: - return (freebsd32_msgctl(td, - (struct freebsd32_msgctl_args *)&uap->a2)); + return (freebsd7_freebsd32_msgctl(td, + (struct freebsd7_freebsd32_msgctl_args *)&uap->a2)); case 2: return (freebsd32_msgsnd(td, (struct freebsd32_msgsnd_args *)&uap->a2)); @@ -1751,12 +1751,12 @@ return (sysent[SYS_shmget].sy_call(td, &ap)); } case 4: { /* shmctl */ - struct freebsd32_shmctl_args ap; + struct freebsd7_freebsd32_shmctl_args ap; ap.shmid = uap->a2; ap.cmd = uap->a3; ap.buf = PTRIN(uap->a4); - return (freebsd32_shmctl(td, &ap)); + return (freebsd7_freebsd32_shmctl(td, &ap)); } case 1: /* oshmctl */ default: ==== //depot/projects/tcp_reass/compat/linux/linux_mib.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_mib.c,v 1.36 2009/05/27 14:11:23 jamie Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_mib.c,v 1.37 2009/07/25 14:48:57 jamie Exp $"); #include #include @@ -237,12 +237,14 @@ { struct prison *pr = obj; struct vfsoptlist *opts = data; + int jsys; - if (vfs_flagopt(opts, "nolinux", NULL, 0)) + if (vfs_copyopt(opts, "linux", &jsys, sizeof(jsys)) == 0 && + jsys == JAIL_SYS_INHERIT) return (0); /* * Inherit a prison's initial values from its parent - * (different from NULL which also inherits changes). + * (different from JAIL_SYS_INHERIT which also inherits changes). */ return linux_alloc_prison(pr, NULL); } @@ -252,11 +254,16 @@ { struct vfsoptlist *opts = data; char *osname, *osrelease; - int error, len, osrel, oss_version; + int error, jsys, len, osrel, oss_version; /* Check that the parameters are correct. */ - (void)vfs_flagopt(opts, "linux", NULL, 0); - (void)vfs_flagopt(opts, "nolinux", NULL, 0); + error = vfs_copyopt(opts, "linux", &jsys, sizeof(jsys)); + if (error != ENOENT) { + if (error != 0) + return (error); + if (jsys != JAIL_SYS_NEW && jsys != JAIL_SYS_INHERIT) + return (EINVAL); + } error = vfs_getopt(opts, "linux.osname", (void **)&osname, &len); if (error != ENOENT) { if (error != 0) @@ -296,33 +303,40 @@ struct prison *pr = obj; struct vfsoptlist *opts = data; char *osname, *osrelease; - int error, gotversion, len, nolinux, oss_version, yeslinux; + int error, gotversion, jsys, len, oss_version; /* Set the parameters, which should be correct. */ - yeslinux = vfs_flagopt(opts, "linux", NULL, 0); - nolinux = vfs_flagopt(opts, "nolinux", NULL, 0); + error = vfs_copyopt(opts, "linux", &jsys, sizeof(jsys)); + if (error == ENOENT) + jsys = -1; error = vfs_getopt(opts, "linux.osname", (void **)&osname, &len); if (error == ENOENT) osname = NULL; else - yeslinux = 1; + jsys = JAIL_SYS_NEW; error = vfs_getopt(opts, "linux.osrelease", (void **)&osrelease, &len); if (error == ENOENT) osrelease = NULL; else - yeslinux = 1; + jsys = JAIL_SYS_NEW; error = vfs_copyopt(opts, "linux.oss_version", &oss_version, sizeof(oss_version)); - gotversion = (error == 0); - yeslinux |= gotversion; - if (nolinux) { - /* "nolinux": inherit the parent's Linux info. */ + if (error == ENOENT) + gotversion = 0; + else { + gotversion = 1; + jsys = JAIL_SYS_NEW; + } + switch (jsys) { + case JAIL_SYS_INHERIT: + /* "linux=inherit": inherit the parent's Linux info. */ mtx_lock(&pr->pr_mtx); osd_jail_del(pr, linux_osd_jail_slot); mtx_unlock(&pr->pr_mtx); - } else if (yeslinux) { + break; + case JAIL_SYS_NEW: /* - * "linux" or "linux.*": + * "linux=new" or "linux.*": * the prison gets its own Linux info. */ error = linux_alloc_prison(pr, &lpr); @@ -348,9 +362,7 @@ return (0); } -SYSCTL_JAIL_PARAM_NODE(linux, "Jail Linux parameters"); -SYSCTL_JAIL_PARAM(, nolinux, CTLTYPE_INT | CTLFLAG_RW, - "BN", "Jail w/ no Linux parameters"); +SYSCTL_JAIL_PARAM_SYS_NODE(linux, CTLFLAG_RW, "Jail Linux parameters"); SYSCTL_JAIL_PARAM_STRING(_linux, osname, CTLFLAG_RW, LINUX_MAX_UTSNAME, "Jail Linux kernel OS name"); SYSCTL_JAIL_PARAM_STRING(_linux, osrelease, CTLFLAG_RW, LINUX_MAX_UTSNAME, @@ -371,15 +383,22 @@ /* See if this prison is the one with the Linux info. */ lpr = linux_find_prison(pr, &ppr); - i = (ppr == pr); + i = (ppr == pr) ? JAIL_SYS_NEW : JAIL_SYS_INHERIT; error = vfs_setopt(opts, "linux", &i, sizeof(i)); if (error != 0 && error != ENOENT) goto done; - i = !i; - error = vfs_setopt(opts, "nolinux", &i, sizeof(i)); - if (error != 0 && error != ENOENT) - goto done; if (i) { + error = vfs_setopts(opts, "linux.osname", lpr->pr_osname); + if (error != 0 && error != ENOENT) + goto done; + error = vfs_setopts(opts, "linux.osrelease", lpr->pr_osrelease); + if (error != 0 && error != ENOENT) + goto done; + error = vfs_setopt(opts, "linux.oss_version", + &lpr->pr_oss_version, sizeof(lpr->pr_oss_version)); + if (error != 0 && error != ENOENT) + goto done; + } else { /* * If this prison is inheriting its Linux info, report * empty/zero parameters. @@ -394,17 +413,6 @@ sizeof(lpr->pr_oss_version)); if (error != 0 && error != ENOENT) goto done; - } else { - error = vfs_setopts(opts, "linux.osname", lpr->pr_osname); - if (error != 0 && error != ENOENT) - goto done; - error = vfs_setopts(opts, "linux.osrelease", lpr->pr_osrelease); - if (error != 0 && error != ENOENT) - goto done; - error = vfs_setopt(opts, "linux.oss_version", - &lpr->pr_oss_version, sizeof(lpr->pr_oss_version)); - if (error != 0 && error != ENOENT) - goto done; } error = 0; ==== //depot/projects/tcp_reass/conf/NOTES#9 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1550 2009/07/11 15:02:45 rpaulo Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1553 2009/07/26 12:20:07 bz Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -784,6 +784,10 @@ # included for testing and benchmarking purposes. device disc +# The `epair' device implements a virtual back-to-back connected Ethernet +# like interface pair. +device epair + # The `edsc' device implements a minimal Ethernet interface, # which discards all packets sent and receives none. device edsc @@ -1638,6 +1642,18 @@ device twe # 3ware ATA RAID # +# Serial ATA host controllers: +# +# ahci: Advanced Host Controller Interface (AHCI) compatible +# siis: SiliconImage SiI3124/SiI3132/SiI3531 controllers +# +# These drivers are part of cam(4) subsystem. They supersede less featured +# ata(4) subsystem drivers, supporting same hardware. + +device ahci +device siis + +# # The 'ATA' driver supports all ATA and ATAPI devices, including PC Card # devices. You only need one "device ata" for it to find all # PCI and PC Card ATA/ATAPI devices on modern machines. ==== //depot/projects/tcp_reass/conf/files#12 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1456 2009/07/24 13:50:29 jhb Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1457 2009/07/26 12:20:07 bz Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -2202,6 +2202,7 @@ net/if_edsc.c optional edsc net/if_ef.c optional ef net/if_enc.c optional enc ipsec inet | enc ipsec inet6 +net/if_epair.c optional epair net/if_ethersubr.c optional ether \ compile-with "${NORMAL_C} -I$S/contrib/pf" net/if_faith.c optional faith ==== //depot/projects/tcp_reass/dev/ata/ata-all.c#8 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.306 2009/07/16 19:48:39 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.307 2009/07/26 14:04:48 mav Exp $"); #include "opt_ata.h" #include @@ -711,7 +711,7 @@ struct ata_channel *ch = device_get_softc(dev); struct ata_device *atadev; device_t *children; - device_t child; + device_t child, master = NULL; int nchildren, i, n = ch->devices; if (bootverbose) @@ -748,6 +748,15 @@ unit = (device_get_unit(dev) << 1) + i; #endif if ((child = ata_add_child(dev, atadev, unit))) { + /* + * PATA slave should be identified first, to allow + * device cable detection on master to work properly. + */ + if (i == 0 && (n & ATA_PORTMULTIPLIER) == 0 && + (n & ((ATA_ATA_MASTER | ATA_ATAPI_MASTER) << 1)) != 0) { + master = child; + continue; + } if (ata_getparam(atadev, 1)) { device_delete_child(dev, child); free(atadev, M_ATA); @@ -757,6 +766,13 @@ free(atadev, M_ATA); } } + if (master) { + atadev = device_get_softc(master); + if (ata_getparam(atadev, 1)) { + device_delete_child(dev, master); + free(atadev, M_ATA); + } + } bus_generic_probe(dev); bus_generic_attach(dev); mtx_unlock(&Giant); ==== //depot/projects/tcp_reass/dev/usb/usbdevs#6 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.418 2009/06/26 21:47:37 delphij Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.419 2009/07/27 20:17:20 weongyo Exp $ /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */ /*- @@ -1179,6 +1179,8 @@ product DLINK2 WUA1340 0x3c04 WUA-1340 product DLINK2 DWA111 0x3c06 DWA-111 product DLINK2 DWA110 0x3c07 DWA-110 +product DLINK2 DWA120_NF 0x3c0d DWA-120 (no firmware) +product DLINK2 DWA120 0x3c0e DWA-120 /* DMI products */ product DMI CFSM_RW 0xa109 CF/SM Reader/Writer ==== //depot/projects/tcp_reass/dev/usb/wlan/if_uath.c#5 (text+ko) ==== @@ -49,7 +49,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/wlan/if_uath.c,v 1.16 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/wlan/if_uath.c,v 1.17 2009/07/27 20:17:20 weongyo Exp $"); /*- * Driver for Atheros AR5523 USB parts. @@ -180,6 +180,7 @@ UATH_DEV(DLINK, DWLAG122), UATH_DEV(DLINK, DWLAG132), UATH_DEV(DLINK, DWLG132), + UATH_DEV(DLINK2, DWA120), UATH_DEV(GIGASET, AR5523), UATH_DEV(GIGASET, SMCWUSBTG), UATH_DEV(GLOBALSUN, AR5523_1), ==== //depot/projects/tcp_reass/i386/i386/machdep.c#8 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/machdep.c,v 1.686 2009/06/23 22:42:39 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/machdep.c,v 1.687 2009/07/27 13:51:55 rpaulo Exp $"); #include "opt_apic.h" #include "opt_atalk.h" @@ -257,7 +257,10 @@ */ sysenv = getenv("smbios.system.product"); if (sysenv != NULL) { - if (strncmp(sysenv, "MacBook", 7) == 0) { + if (strncmp(sysenv, "MacBook1,1", 10) == 0 || + strncmp(sysenv, "MacBookPro1,1", 13) == 0 || + strncmp(sysenv, "MacBookPro1,2", 13) == 0 || + strncmp(sysenv, "Macmini1,1", 10) == 0) { if (bootverbose) printf("Disabling LEGACY_USB_EN bit on " "Intel ICH.\n"); ==== //depot/projects/tcp_reass/kern/kern_jail.c#10 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_jail.c,v 1.112 2009/07/17 14:48:21 jamie Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_jail.c,v 1.113 2009/07/25 14:48:57 jamie Exp $"); #include "opt_compat.h" #include "opt_ddb.h" @@ -120,29 +120,26 @@ */ static char *pr_flag_names[] = { [0] = "persist", - "host", -#ifdef INET - "ip4", -#endif -#ifdef INET6 - [3] = "ip6", -#endif -#ifdef VIMAGE - [4] = "vnet", -#endif }; static char *pr_flag_nonames[] = { [0] = "nopersist", - "nohost", +}; + +struct jailsys_flags { + const char *name; + unsigned disable; + unsigned new; +} pr_flag_jailsys[] = { + { "host", 0, PR_HOST }, +#ifdef VIMAGE + { "vnet", 0, PR_VNET }, +#endif #ifdef INET - "noip4", + { "ip4", PR_IP4_USER | PR_IP4_DISABLE, PR_IP4_USER }, #endif #ifdef INET6 - [3] = "noip6", -#endif -#ifdef VIMAGE - [4] = "novnet", + { "ip6", PR_IP6_USER | PR_IP6_DISABLE, PR_IP6_USER }, #endif }; @@ -478,7 +475,8 @@ unsigned long hid; size_t namelen, onamelen; int created, cuflags, descend, enforce, error, errmsg_len, errmsg_pos; - int gotchildmax, gotenforce, gothid, gotslevel, fi, jid, len, level; + int gotchildmax, gotenforce, gothid, gotslevel; + int fi, jid, jsys, len, level; int childmax, slevel, vfslocked; #if defined(INET) || defined(INET6) int ii, ij; @@ -569,6 +567,34 @@ vfs_flagopt(opts, pr_flag_nonames[fi], &ch_flags, 1 << fi); } ch_flags |= pr_flags; + for (fi = 0; fi < sizeof(pr_flag_jailsys) / sizeof(pr_flag_jailsys[0]); + fi++) { + error = vfs_copyopt(opts, pr_flag_jailsys[fi].name, &jsys, + sizeof(jsys)); + if (error == ENOENT) + continue; + if (error != 0) + goto done_free; + switch (jsys) { + case JAIL_SYS_DISABLE: + if (!pr_flag_jailsys[fi].disable) { + error = EINVAL; + goto done_free; + } + pr_flags |= pr_flag_jailsys[fi].disable; + break; + case JAIL_SYS_NEW: + pr_flags |= pr_flag_jailsys[fi].new; + break; + case JAIL_SYS_INHERIT: + break; + default: + error = EINVAL; + goto done_free; + } + ch_flags |= + pr_flag_jailsys[fi].new | pr_flag_jailsys[fi].disable; + } if ((flags & (JAIL_CREATE | JAIL_UPDATE | JAIL_ATTACH)) == JAIL_CREATE && !(pr_flags & PR_PERSIST)) { error = EINVAL; @@ -684,16 +710,18 @@ #ifdef INET error = vfs_getopt(opts, "ip4.addr", &op, &ip4s); if (error == ENOENT) - ip4s = -1; + ip4s = (pr_flags & PR_IP4_DISABLE) ? 0 : -1; else if (error != 0) goto done_free; else if (ip4s & (sizeof(*ip4) - 1)) { error = EINVAL; goto done_free; } else { - ch_flags |= PR_IP4_USER; - pr_flags |= PR_IP4_USER; - if (ip4s > 0) { + ch_flags |= PR_IP4_USER | PR_IP4_DISABLE; + if (ip4s == 0) + pr_flags |= PR_IP4_USER | PR_IP4_DISABLE; + else { + pr_flags = (pr_flags & ~PR_IP4_DISABLE) | PR_IP4_USER; ip4s /= sizeof(*ip4); if (ip4s > jail_max_af_ips) { error = EINVAL; @@ -745,16 +773,18 @@ #ifdef INET6 error = vfs_getopt(opts, "ip6.addr", &op, &ip6s); if (error == ENOENT) - ip6s = -1; + ip6s = (pr_flags & PR_IP6_DISABLE) ? 0 : -1; else if (error != 0) goto done_free; else if (ip6s & (sizeof(*ip6) - 1)) { error = EINVAL; goto done_free; } else { - ch_flags |= PR_IP6_USER; - pr_flags |= PR_IP6_USER; - if (ip6s > 0) { + ch_flags |= PR_IP6_USER | PR_IP6_DISABLE; + if (ip6s == 0) + pr_flags |= PR_IP6_USER | PR_IP6_DISABLE; + else { + pr_flags = (pr_flags & ~PR_IP6_DISABLE) | PR_IP6_USER; ip6s /= sizeof(*ip6); if (ip6s > jail_max_af_ips) { error = EINVAL; @@ -1968,6 +1998,19 @@ if (error != 0 && error != ENOENT) goto done_deref; } + for (fi = 0; fi < sizeof(pr_flag_jailsys) / sizeof(pr_flag_jailsys[0]); + fi++) { + i = pr->pr_flags & + (pr_flag_jailsys[fi].disable | pr_flag_jailsys[fi].new); + i = pr_flag_jailsys[fi].disable && + (i == pr_flag_jailsys[fi].disable) ? JAIL_SYS_DISABLE + : (i == pr_flag_jailsys[fi].new) ? JAIL_SYS_NEW + : JAIL_SYS_INHERIT; + error = + vfs_setopt(opts, pr_flag_jailsys[fi].name, &i, sizeof(i)); + if (error != 0 && error != ENOENT) + goto done_deref; + } for (fi = 0; fi < sizeof(pr_allow_names) / sizeof(pr_allow_names[0]); fi++) { if (pr_allow_names[fi] == NULL) @@ -2614,6 +2657,7 @@ } } if (pr->pr_ip4s == 0) { + pr->pr_flags |= PR_IP4_DISABLE; free(pr->pr_ip4, M_PRISON); pr->pr_ip4 = NULL; } @@ -2918,6 +2962,7 @@ } } if (pr->pr_ip6s == 0) { + pr->pr_flags |= PR_IP6_DISABLE; free(pr->pr_ip6, M_PRISON); pr->pr_ip6 = NULL; } @@ -4035,7 +4080,7 @@ "B", "Jail persistence"); #ifdef VIMAGE SYSCTL_JAIL_PARAM(, vnet, CTLTYPE_INT | CTLFLAG_RDTUN, - "B", "Virtual network stack"); + "E,jailsys", "Virtual network stack"); #endif SYSCTL_JAIL_PARAM(, dying, CTLTYPE_INT | CTLFLAG_RD, "B", "Jail is in the process of shutting down"); @@ -4046,9 +4091,7 @@ SYSCTL_JAIL_PARAM(_children, max, CTLTYPE_INT | CTLFLAG_RW, "I", "Maximum number of child jails"); -SYSCTL_JAIL_PARAM_NODE(host, "Jail host info"); -SYSCTL_JAIL_PARAM(, nohost, CTLTYPE_INT | CTLFLAG_RW, - "BN", "Jail w/ no host info"); +SYSCTL_JAIL_PARAM_SYS_NODE(host, CTLFLAG_RW, "Jail host info"); SYSCTL_JAIL_PARAM_STRING(_host, hostname, CTLFLAG_RW, MAXHOSTNAMELEN, "Jail hostname"); SYSCTL_JAIL_PARAM_STRING(_host, domainname, CTLFLAG_RW, MAXHOSTNAMELEN, @@ -4062,16 +4105,12 @@ SYSCTL_JAIL_PARAM(_cpuset, id, CTLTYPE_INT | CTLFLAG_RD, "I", "Jail cpuset ID"); #ifdef INET -SYSCTL_JAIL_PARAM_NODE(ip4, "Jail IPv4 address virtualization"); -SYSCTL_JAIL_PARAM(, noip4, CTLTYPE_INT | CTLFLAG_RW, - "BN", "Jail w/ no IP address virtualization"); +SYSCTL_JAIL_PARAM_SYS_NODE(ip4, CTLFLAG_RW, "Jail IPv4 address virtualization"); SYSCTL_JAIL_PARAM_STRUCT(_ip4, addr, CTLFLAG_RW, sizeof(struct in_addr), "S,in_addr,a", "Jail IPv4 addresses"); #endif #ifdef INET6 -SYSCTL_JAIL_PARAM_NODE(ip6, "Jail IPv6 address virtualization"); -SYSCTL_JAIL_PARAM(, noip6, CTLTYPE_INT | CTLFLAG_RW, - "BN", "Jail w/ no IP address virtualization"); +SYSCTL_JAIL_PARAM_SYS_NODE(ip6, CTLFLAG_RW, "Jail IPv6 address virtualization"); SYSCTL_JAIL_PARAM_STRUCT(_ip6, addr, CTLFLAG_RW, sizeof(struct in6_addr), "S,in6_addr,a", "Jail IPv6 addresses"); #endif @@ -4102,6 +4141,7 @@ #if defined(INET) || defined(INET6) int ii; #endif + unsigned jsf; #ifdef INET6 char ip6buf[INET6_ADDRSTRLEN]; #endif @@ -4128,6 +4168,16 @@ fi++) if (pr_flag_names[fi] != NULL && (pr->pr_flags & (1 << fi))) db_printf(" %s", pr_flag_names[fi]); + for (fi = 0; fi < sizeof(pr_flag_jailsys) / sizeof(pr_flag_jailsys[0]); + fi++) { + jsf = pr->pr_flags & + (pr_flag_jailsys[fi].disable | pr_flag_jailsys[fi].new); + db_printf(" %-16s= %s\n", pr_flag_jailsys[fi].name, + pr_flag_jailsys[fi].disable && + (jsf == pr_flag_jailsys[fi].disable) ? "disable" + : (jsf == pr_flag_jailsys[fi].new) ? "new" + : "inherit"); + } db_printf(" allow = %x", pr->pr_allow); for (fi = 0; fi < sizeof(pr_allow_names) / sizeof(pr_allow_names[0]); fi++) ==== //depot/projects/tcp_reass/kern/kern_vimage.c#10 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_vimage.c,v 1.17 2009/07/23 20:46:49 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_vimage.c,v 1.18 2009/07/26 11:29:26 bz Exp $"); #include "opt_ddb.h" @@ -68,61 +68,6 @@ struct vnet_list_head vnet_head; struct vnet *vnet0; -/* - * Move an ifnet to or from another vnet, specified by the jail id. - */ -int -vi_if_move(struct thread *td, struct ifnet *ifp, char *ifname, int jid) -{ - struct ifnet *t_ifp; - struct prison *pr; - struct vnet *new_vnet; - int error; - - sx_slock(&allprison_lock); - pr = prison_find_child(td->td_ucred->cr_prison, jid); - sx_sunlock(&allprison_lock); - if (pr == NULL) - return (ENXIO); - prison_hold_locked(pr); - mtx_unlock(&pr->pr_mtx); - if (ifp != NULL) { - /* SIOCSIFVNET */ - new_vnet = pr->pr_vnet; - } else { - /* SIOCSIFRVNET */ - new_vnet = TD_TO_VNET(td); - CURVNET_SET(pr->pr_vnet); - ifp = ifunit(ifname); - CURVNET_RESTORE(); - if (ifp == NULL) { - prison_free(pr); - return (ENXIO); - } - } - - error = 0; - if (new_vnet != ifp->if_vnet) { - /* - * Check for naming clashes in target vnet. Not locked so races - * are possible. - */ - CURVNET_SET_QUIET(new_vnet); - t_ifp = ifunit(ifname); - CURVNET_RESTORE(); - if (t_ifp != NULL) - error = EEXIST; - else { - /* Detach from curvnet and attach to new_vnet. */ - if_vmove(ifp, new_vnet); - - /* Report the new if_xname back to the userland */ - sprintf(ifname, "%s", ifp->if_xname); - } - } - prison_free(pr); - return (error); -} struct vnet * vnet_alloc(void) ==== //depot/projects/tcp_reass/kern/uipc_socket.c#10 (text+ko) ==== @@ -95,7 +95,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.338 2009/07/19 17:40:45 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.339 2009/07/28 19:43:27 julian Exp $"); #include "opt_inet.h" #include "opt_inet6.h" @@ -438,6 +438,7 @@ so->so_options = head->so_options &~ SO_ACCEPTCONN; so->so_linger = head->so_linger; so->so_state = head->so_state | SS_NOFDREF; + so->so_fibnum = head->so_fibnum; so->so_proto = head->so_proto; so->so_cred = crhold(head->so_cred); #ifdef MAC ==== //depot/projects/tcp_reass/modules/Makefile#10 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/modules/Makefile,v 1.622 2009/07/21 12:32:46 mav Exp $ +# $FreeBSD: src/sys/modules/Makefile,v 1.623 2009/07/26 12:20:07 bz Exp $ .include @@ -109,6 +109,7 @@ if_disc \ if_edsc \ if_ef \ + if_epair \ if_faith \ if_gif \ if_gre \ ==== //depot/projects/tcp_reass/net/if.c#13 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)if.c 8.5 (Berkeley) 1/9/95 - * $FreeBSD: src/sys/net/if.c,v 1.357 2009/07/23 20:46:49 rwatson Exp $ + * $FreeBSD: src/sys/net/if.c,v 1.358 2009/07/26 11:29:26 bz Exp $ */ #include "opt_compat.h" @@ -894,6 +894,94 @@ CURVNET_RESTORE(); } + +/* + * Move an ifnet to or from another child prison/vnet, specified by the jail id. + */ +static int +if_vmove_loan(struct thread *td, struct ifnet *ifp, char *ifname, int jid) +{ + struct prison *pr; + struct ifnet *difp; + + /* Try to find the prison within our visibility. */ + sx_slock(&allprison_lock); + pr = prison_find_child(td->td_ucred->cr_prison, jid); + sx_sunlock(&allprison_lock); + if (pr == NULL) + return (ENXIO); + prison_hold_locked(pr); + mtx_unlock(&pr->pr_mtx); + + /* Do not try to move the iface from and to the same prison. */ + if (pr->pr_vnet == ifp->if_vnet) { + prison_free(pr); + return (EEXIST); + } + + /* Make sure the named iface does not exists in the dst. prison/vnet. */ + /* XXX Lock interfaces to avoid races. */ + CURVNET_SET(pr->pr_vnet); + difp = ifunit(ifname); + CURVNET_RESTORE(); + if (difp != NULL) { + prison_free(pr); + return (EEXIST); + } + + /* Move the interface into the child jail/vnet. */ + if_vmove(ifp, pr->pr_vnet); + + /* Report the new if_xname back to the userland. */ + sprintf(ifname, "%s", ifp->if_xname); + + prison_free(pr); + return (0); +} + +static int +if_vmove_reclaim(struct thread *td, char *ifname, int jid) +{ + struct prison *pr; + struct vnet *vnet_dst; + struct ifnet *ifp; + + /* Try to find the prison within our visibility. */ + sx_slock(&allprison_lock); + pr = prison_find_child(td->td_ucred->cr_prison, jid); + sx_sunlock(&allprison_lock); + if (pr == NULL) + return (ENXIO); + prison_hold_locked(pr); + mtx_unlock(&pr->pr_mtx); + + /* Make sure the named iface exists in the source prison/vnet. */ + CURVNET_SET(pr->pr_vnet); + ifp = ifunit(ifname); /* XXX Lock to avoid races. */ + if (ifp == NULL) { + CURVNET_RESTORE(); + prison_free(pr); + return (ENXIO); + } + + /* Do not try to move the iface from and to the same prison. */ + vnet_dst = TD_TO_VNET(td); + if (vnet_dst == ifp->if_vnet) { + CURVNET_RESTORE(); + prison_free(pr); + return (EEXIST); + } + + /* Get interface back from child jail/vnet. */ + if_vmove(ifp, vnet_dst); + CURVNET_RESTORE(); + + /* Report the new if_xname back to the userland. */ + sprintf(ifname, "%s", ifp->if_xname); + + prison_free(pr); + return (0); +} #endif /* VIMAGE */ /* @@ -1990,7 +2078,7 @@ error = priv_check(td, PRIV_NET_SETIFVNET); if (error) return (error); - error = vi_if_move(td, ifp, ifr->ifr_name, ifr->ifr_jid); + error = if_vmove_loan(td, ifp, ifr->ifr_name, ifr->ifr_jid); break; #endif @@ -2184,7 +2272,7 @@ error = priv_check(td, PRIV_NET_SETIFVNET); if (error) return (error); - return (vi_if_move(td, NULL, ifr->ifr_name, ifr->ifr_jid)); + return (if_vmove_reclaim(td, ifr->ifr_name, ifr->ifr_jid)); #endif case SIOCIFCREATE: case SIOCIFCREATE2: ==== //depot/projects/tcp_reass/net/if_epair.c#3 (text+ko) ==== @@ -1,5 +1,6 @@ /*- * Copyright (c) 2008 The FreeBSD Foundation + * Copyright (c) 2009 Bjoern A. Zeeb * All rights reserved. * * This software was developed by CK Software GmbH under sponsorship @@ -28,22 +29,26 @@ */ /* - * A pair of virtual ethernet interfaces directly connected with - * a virtual cross-over cable. + * A pair of virtual back-to-back connected ethernet like interfaces + * (``two interfaces with a virtual cross-over cable''). + * * This is mostly intended to be used to provide connectivity between * different virtual network stack instances. */ /* * Things to re-think once we have more experience: - * - ifp->if_reassign function once we can test with vimage. - * - Real random etheraddrs that are checked to be uniquish; - * in case we bridge we may need this or let the user handle that case? - * - netisr and callback logic. - * - netisr queue lengths. + * - ifp->if_reassign function once we can test with vimage. Depending on + * how if_vomve() is going to be improved. + * - Real random etheraddrs that are checked to be uniquish; we would need + * to re-do them in case we move the interface between network stacks + * in a private if_reassign function. + * In case we bridge to a real interface/network or between indepedent >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jul 28 20:13:06 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 124DE1065670; Tue, 28 Jul 2009 20:13:06 +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 C2949106564A for ; Tue, 28 Jul 2009 20:13:05 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AF63D8FC0A for ; Tue, 28 Jul 2009 20:13:05 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SKD5YL027075 for ; Tue, 28 Jul 2009 20:13:05 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SKD5Ss027073 for perforce@freebsd.org; Tue, 28 Jul 2009 20:13:05 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 28 Jul 2009 20:13:05 GMT Message-Id: <200907282013.n6SKD5Ss027073@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166696 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 20:13:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=166696 Change 166696 by rwatson@rwatson_cinnamon on 2009/07/28 20:12:12 Correct AUE_OPENAT_RWT and AUE_OPENAT_RWTC entries in /etc/security/audit_events. They didn't match audit_kevents.h. Affected files ... .. //depot/projects/trustedbsd/openbsm/etc/audit_event#41 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/etc/audit_event#41 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $P4: //depot/projects/trustedbsd/openbsm/etc/audit_event#40 $ +# $P4: //depot/projects/trustedbsd/openbsm/etc/audit_event#41 $ # # The mapping between event identifiers and values is also hard-coded in # audit_kevents.h and audit_uevents.h, so changes must occur in both places, @@ -271,7 +271,8 @@ 277:AUE_OPENAT_WTC:openat(2) - write,creat,trunc:fc,fd,fw,fa,fm 278:AUE_OPENAT_RW:openat(2) - read,write:fr,fw 279:AUE_OPENAT_RWC:openat(2) - read,write,create:fc,fw,fr,fa,fm -280:AUE_OPENAT_RWTC:openat(2) - read,write,creat,trunc:fc,fd,fw,fr,fa,fm +280:AUE_OPENAT_RWT:openat(2) - read,write,trunc:fd,fw,fr,fa,fm +281:AUE_OPENAT_RWTC:openat(2) - read,write,creat,trunc:fc,fd,fw,fr,fa,fm 282:AUE_RENAMEAT:renameat(2):fc,fd 283:AUE_FSTATAT:fstatat(2):fa 284:AUE_FCHOWNAT:fchownat(2):fm From owner-p4-projects@FreeBSD.ORG Tue Jul 28 22:21:28 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8B0B5106568B; Tue, 28 Jul 2009 22:21: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 49B031065670 for ; Tue, 28 Jul 2009 22:21:27 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3633D8FC12 for ; Tue, 28 Jul 2009 22:21:27 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SMLR75049019 for ; Tue, 28 Jul 2009 22:21:27 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SMLRbO049017 for perforce@freebsd.org; Tue, 28 Jul 2009 22:21:27 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 28 Jul 2009 22:21:27 GMT Message-Id: <200907282221.n6SMLRbO049017@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166704 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 22:21:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=166704 Change 166704 by rwatson@rwatson_freebsd_capabilities on 2009/07/28 22:21:16 Minor cleanup. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_world/sandbox_world.c#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_world/sandbox_world.c#2 (text+ko) ==== @@ -61,7 +61,6 @@ struct iovec iov; size_t len; char ch; - int i; if (argc != 1) errx(-1, "usage: sandbox_world"); @@ -70,7 +69,7 @@ LCH_PERMIT_STDOUT, &lcsp) < 0) err(-1, "lch_start %s", argv[1]); - ch = i; + ch = 'X'; iov.iov_base = &ch; iov.iov_len = sizeof(ch); if (lch_rpc(lcsp, 0, &iov, 1, &iov, 1, &len) < 0) @@ -78,8 +77,8 @@ if (len != sizeof(ch)) errx(-1, "lch_rpc returned size %d not %d", len, sizeof(ch)); - if (ch != i) - errx(-1, "lch_recv: expected %d and got %d", i, ch); + if (ch != 'X') + errx(-1, "lch_recv: expected %d and got %d", 'X', ch); lch_stop(lcsp); } From owner-p4-projects@FreeBSD.ORG Tue Jul 28 22:23:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DCC1D1065677; Tue, 28 Jul 2009 22:23:29 +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 9D14D1065676 for ; Tue, 28 Jul 2009 22:23:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 89C348FC1F for ; Tue, 28 Jul 2009 22:23:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SMNTY7049150 for ; Tue, 28 Jul 2009 22:23:29 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SMNTQk049148 for perforce@freebsd.org; Tue, 28 Jul 2009 22:23:29 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 28 Jul 2009 22:23:29 GMT Message-Id: <200907282223.n6SMNTQk049148@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166705 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 22:23:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=166705 Change 166705 by rwatson@rwatson_freebsd_capabilities on 2009/07/28 22:23:29 More minor cleanup. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_world/sandbox_world.c#3 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_world/sandbox_world.c#3 (text+ko) ==== @@ -51,7 +51,7 @@ * doesn't exit until the sandbox is done. */ -#define MYNAME "sandbox_world" +#define MYNAME "sandbox_world" /* Binary to run in sandbox. */ int main(int argc, char *argv[]) @@ -69,6 +69,10 @@ LCH_PERMIT_STDOUT, &lcsp) < 0) err(-1, "lch_start %s", argv[1]); + /* + * Send a one-byte message to the sandbox and wait for a one-byte + * reply. + */ ch = 'X'; iov.iov_base = &ch; iov.iov_len = sizeof(ch); @@ -96,11 +100,10 @@ err(-1, "lcs_get"); while (1) { - if (lcs_recvrpc(lchp, &opno, &seqno, &buffer, &len) - < 0) { + if (lcs_recvrpc(lchp, &opno, &seqno, &buffer, &len) < 0) { if (errno != EPIPE) err(-6, "lcs_recvrpc"); - else + else exit(-6); } if (len != 1) @@ -111,7 +114,7 @@ iov.iov_len = 1; if (lcs_sendrpc(lchp, opno, seqno, &iov, 1) < 0) { if (errno != EPIPE) - err(-8, "lcs_sendrpc"); + err(-8, "lcs_sendrpc"); else exit(-8); } From owner-p4-projects@FreeBSD.ORG Tue Jul 28 23:57:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 525481065672; Tue, 28 Jul 2009 23:57:12 +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 12604106566C for ; Tue, 28 Jul 2009 23:57:12 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DA59D8FC0C for ; Tue, 28 Jul 2009 23:57:11 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SNvBOU056871 for ; Tue, 28 Jul 2009 23:57:11 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SNvBOA056869 for perforce@freebsd.org; Tue, 28 Jul 2009 23:57:11 GMT (envelope-from pgj@FreeBSD.org) Date: Tue, 28 Jul 2009 23:57:11 GMT Message-Id: <200907282357.n6SNvBOA056869@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166706 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 23:57:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=166706 Change 166706 by pgj@petymeg-current on 2009/07/28 23:57:02 - Standardize DDP statistics. - Export statistics via sysctl(3) [net.ddp.stats] - Add header. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netatalk/ddp_input.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netatalk/ddp_var.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netatalk/ddp_input.c#2 (text+ko) ==== @@ -60,8 +60,10 @@ #include #include #include +#include #include #include +#include #include #include @@ -74,8 +76,19 @@ static volatile int ddp_forward = 1; static volatile int ddp_firewall = 0; + +static struct stat_header ddpstat_header = { + .sth_version = DDPSTAT_VERSION, + .sth_len = sizeof(struct ddpstat) +}; static struct ddpstat ddpstat; +SYSCTL_NODE(_net, OID_AUTO, ddp, CTLFLAG_RW, 0, "DDP"); +SYSCTL_STRUCT(_net_ddp, OID_AUTO, stats, CTLFLAG_RW, &ddpstat, ddpstat, + "DDP Statistics (struct ddpstat, netatalk/ddp_var.h)"); +SYSCTL_STRUCT(_net_ddp, OID_AUTO, stats_header, CTLFLAG_RD, &ddpstat_header, + stat_header, "DDP Statistics header"); + static struct route forwro; static void ddp_input(struct mbuf *, struct ifnet *, struct elaphdr *, int); ==== //depot/projects/soc2009/pgj_libstat/src/sys/netatalk/ddp_var.h#2 (text+ko) ==== @@ -40,17 +40,19 @@ #define sotoddpcb(so) ((struct ddpcb *)(so)->so_pcb) +#define DDPSTAT_VERSION 0x00000001 + struct ddpstat { - long ddps_short; /* short header packets received */ - long ddps_long; /* long header packets received */ - long ddps_nosum; /* no checksum */ - long ddps_badsum; /* bad checksum */ - long ddps_tooshort; /* packet too short */ - long ddps_toosmall; /* not enough data */ - long ddps_forward; /* packets forwarded */ - long ddps_encap; /* packets encapsulated */ - long ddps_cantforward; /* packets rcvd for unreachable dest */ - long ddps_nosockspace; /* no space in sockbuf for packet */ + u_int64_t ddps_short; /* short header packets received */ + u_int64_t ddps_long; /* long header packets received */ + u_int64_t ddps_nosum; /* no checksum */ + u_int64_t ddps_badsum; /* bad checksum */ + u_int64_t ddps_tooshort; /* packet too short */ + u_int64_t ddps_toosmall; /* not enough data */ + u_int64_t ddps_forward; /* packets forwarded */ + u_int64_t ddps_encap; /* packets encapsulated */ + u_int64_t ddps_cantforward; /* packets rcvd for unreachable dest */ + u_int64_t ddps_nosockspace; /* no space in sockbuf for packet */ }; #ifdef _KERNEL From owner-p4-projects@FreeBSD.ORG Tue Jul 28 23:58:13 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 71055106566C; Tue, 28 Jul 2009 23:58: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 31106106564A for ; Tue, 28 Jul 2009 23:58:13 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1F40D8FC0A for ; Tue, 28 Jul 2009 23:58:13 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SNwD2a056932 for ; Tue, 28 Jul 2009 23:58:13 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SNwCVH056930 for perforce@freebsd.org; Tue, 28 Jul 2009 23:58:12 GMT (envelope-from pgj@FreeBSD.org) Date: Tue, 28 Jul 2009 23:58:12 GMT Message-Id: <200907282358.n6SNwCVH056930@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166707 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 23:58:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=166707 Change 166707 by pgj@petymeg-current on 2009/07/28 23:57:36 Add support for DDP statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#40 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#38 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#8 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#44 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#40 (text+ko) ==== @@ -122,6 +122,7 @@ stat_ICMP, stat_PIM, stat_IGMP, + stat_DDP, stat_MAX, stat_Invalid, }; @@ -154,6 +155,7 @@ struct icmp_stat; struct pim_stat; struct igmp_stat; +struct ddp_stat; __BEGIN_DECLS const char *netstat_strerror(int); @@ -558,4 +560,17 @@ u_int64_t netstat_igmps_get_rcv_ourreports(const struct igmp_stat *); u_int64_t netstat_igmps_get_rcv_nora(const struct igmp_stat *); u_int64_t netstat_igmps_get_snd_reports(const struct igmp_stat *); + +const struct ddp_stat *netstat_get_ddpstats(const struct stat_type *); + +u_int64_t netstat_ddps_get_short(const struct ddp_stat *); +u_int64_t netstat_ddps_get_long(const struct ddp_stat *); +u_int64_t netstat_ddps_get_nosum(const struct ddp_stat *); +u_int64_t netstat_ddps_get_badsum(const struct ddp_stat *); +u_int64_t netstat_ddps_get_tooshort(const struct ddp_stat *); +u_int64_t netstat_ddps_get_toosmall(const struct ddp_stat *); +u_int64_t netstat_ddps_get_forward(const struct ddp_stat *); +u_int64_t netstat_ddps_get_encap(const struct ddp_stat *); +u_int64_t netstat_ddps_get_cantforward(const struct ddp_stat *); +u_int64_t netstat_ddps_get_nosockspace(const struct ddp_stat *); #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#38 (text+ko) ==== @@ -49,6 +49,8 @@ #include #include #include +#include +#include #include "netstat.h" @@ -314,6 +316,10 @@ struct igmpstat s; }; +struct ddp_stat { + struct ddpstat s; +}; + int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#8 (text+ko) ==== @@ -64,6 +64,7 @@ { ICMPSTAT_VERSION, "net.inet.icmp.stats", "_icmpstat" }, { PIMSTAT_VERSION, "net.inet.pim.stats", "_pimstat" }, { IGMPSTAT_VERSION, "net.inet.igmp.stats", "_igmpstat" }, + { DDPSTAT_VERSION, "net.ddp.stats", "_ddpstat" }, }; int ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#44 (text+ko) ==== @@ -2458,6 +2458,75 @@ return (isp->s.igps_snd_reports); } +const struct ddp_stat * +netstat_get_ddpstats(const struct stat_type *sttp) +{ + if (sttp->stt_type == stat_DDP) { + return ((const struct ddp_stat *)sttp->stt_data); + } + return (NULL); +} + +u_int64_t +netstat_ddps_get_short(const struct ddp_stat *dsp) +{ + return (dsp->s.ddps_short); +} + +u_int64_t +netstat_ddps_get_long(const struct ddp_stat *dsp) +{ + return (dsp->s.ddps_long); +} + +u_int64_t +netstat_ddps_get_nosum(const struct ddp_stat *dsp) +{ + return (dsp->s.ddps_nosum); +} + +u_int64_t +netstat_ddps_get_badsum(const struct ddp_stat *dsp) +{ + return (dsp->s.ddps_badsum); +} + +u_int64_t +netstat_ddps_get_tooshort(const struct ddp_stat *dsp) +{ + return (dsp->s.ddps_tooshort); +} + +u_int64_t +netstat_ddps_get_toosmall(const struct ddp_stat *dsp) +{ + return (dsp->s.ddps_toosmall); +} + +u_int64_t +netstat_ddps_get_forward(const struct ddp_stat *dsp) +{ + return (dsp->s.ddps_forward); +} + +u_int64_t +netstat_ddps_get_encap(const struct ddp_stat *dsp) +{ + return (dsp->s.ddps_encap); +} + +u_int64_t +netstat_ddps_get_cantforward(const struct ddp_stat *dsp) +{ + return (dsp->s.ddps_cantforward); +} + +u_int64_t +netstat_ddps_get_nosockspace(const struct ddp_stat *dsp) +{ + return (dsp->s.ddps_nosockspace); +} + static const char *icmpnames[ICMP_MAXTYPE + 1] = { "echo reply", /* RFC 792 */ From owner-p4-projects@FreeBSD.ORG Tue Jul 28 23:59:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AB8AA1065676; Tue, 28 Jul 2009 23:59:14 +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 679E7106566B for ; Tue, 28 Jul 2009 23:59:14 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 554CD8FC08 for ; Tue, 28 Jul 2009 23:59:14 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6SNxEvQ056997 for ; Tue, 28 Jul 2009 23:59:14 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6SNxEnV056995 for perforce@freebsd.org; Tue, 28 Jul 2009 23:59:14 GMT (envelope-from pgj@FreeBSD.org) Date: Tue, 28 Jul 2009 23:59:14 GMT Message-Id: <200907282359.n6SNxEnV056995@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166708 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jul 2009 23:59:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=166708 Change 166708 by pgj@petymeg-current on 2009/07/28 23:58:34 Use libnetstat(3) for DDP statistics in netstat(1). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/atalk.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#18 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#26 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/atalk.c#3 (text+ko) ==== @@ -58,6 +58,7 @@ #include #include #include +#include #include "extern.h" struct ddpcb ddpcb; @@ -260,30 +261,26 @@ } } -#define ANY(x,y,z) if (x || sflag <= 1) \ - printf("\t%lu %s%s%s\n",x,y,plural(x),z) - /* * Dump DDP statistics structure. */ void -ddp_stats(u_long off __unused, const char *name, int af1 __unused, - int proto __unused) +ddp_stats(const struct stat_type *sttp) { - struct ddpstat ddpstat; + const struct ddp_stat *s; - if (off == 0) - return; - kread(off, (char *)&ddpstat, sizeof (ddpstat)); - printf("%s:\n", name); - ANY(ddpstat.ddps_short, "packet", " with short headers "); - ANY(ddpstat.ddps_long, "packet", " with long headers "); - ANY(ddpstat.ddps_nosum, "packet", " with no checksum "); - ANY(ddpstat.ddps_tooshort, "packet", " too short "); - ANY(ddpstat.ddps_badsum, "packet", " with bad checksum "); - ANY(ddpstat.ddps_toosmall, "packet", " with not enough data "); - ANY(ddpstat.ddps_forward, "packet", " forwarded "); - ANY(ddpstat.ddps_encap, "packet", " encapsulated "); - ANY(ddpstat.ddps_cantforward, "packet", " rcvd for unreachable dest "); - ANY(ddpstat.ddps_nosockspace, "packet", " dropped due to no socket space "); + s = netstat_get_ddpstats(sttp); +#define ANY(x,y,z) if (netstat_ddps_get_##x(s) || sflag <= 1) \ + printf("\t%ju %s%s%s\n",netstat_ddps_get_##x(s),y,\ + plural(netstat_ddps_get_##x(s)),z) + ANY(short, "packet", " with short headers "); + ANY(long, "packet", " with long headers "); + ANY(nosum, "packet", " with no checksum "); + ANY(tooshort, "packet", " too short "); + ANY(badsum, "packet", " with bad checksum "); + ANY(toosmall, "packet", " with not enough data "); + ANY(forward, "packet", " forwarded "); + ANY(encap, "packet", " encapsulated "); + ANY(cantforward, "packet", " rcvd for unreachable dest "); + ANY(nosockspace, "packet", " dropped due to no socket space "); } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#18 (text+ko) ==== @@ -148,7 +148,7 @@ void nserr_stats(u_long, const char *, int, int); void atalkprotopr(u_long, const char *, int, int); -void ddp_stats(u_long, const char *, int, int); +void ddp_stats(const struct stat_type *); #ifdef NETGRAPH void netgraphprotopr(u_long, const char *, int, int); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#26 (text+ko) ==== @@ -93,45 +93,43 @@ { .n_name = "_ipxstat"}, #define N_SPXSTAT 7 { .n_name = "_spx_istat"}, -#define N_DDPSTAT 8 - { .n_name = "_ddpstat"}, -#define N_DDPCB 9 +#define N_DDPCB 8 { .n_name = "_ddpcb"}, -#define N_NGSOCKS 10 +#define N_NGSOCKS 9 { .n_name = "_ngsocklist"}, -#define N_IP6STAT 11 +#define N_IP6STAT 10 { .n_name = "_ip6stat" }, -#define N_ICMP6STAT 12 +#define N_ICMP6STAT 11 { .n_name = "_icmp6stat" }, -#define N_IPSECSTAT 13 +#define N_IPSECSTAT 12 { .n_name = "_ipsec4stat" }, -#define N_IPSEC6STAT 14 +#define N_IPSEC6STAT 13 { .n_name = "_ipsec6stat" }, -#define N_PIM6STAT 15 +#define N_PIM6STAT 14 { .n_name = "_pim6stat" }, -#define N_MRT6STAT 16 +#define N_MRT6STAT 15 { .n_name = "_mrt6stat" }, -#define N_MF6CTABLE 17 +#define N_MF6CTABLE 16 { .n_name = "_mf6ctable" }, -#define N_MIF6TABLE 18 +#define N_MIF6TABLE 17 { .n_name = "_mif6table" }, -#define N_PFKEYSTAT 19 +#define N_PFKEYSTAT 18 { .n_name = "_pfkeystat" }, -#define N_RTTRASH 20 +#define N_RTTRASH 19 { .n_name = "_rttrash" }, -#define N_PFSYNCSTAT 21 +#define N_PFSYNCSTAT 20 { .n_name = "_pfsyncstats" }, -#define N_AHSTAT 22 +#define N_AHSTAT 21 { .n_name = "_ahstat" }, -#define N_ESPSTAT 23 +#define N_ESPSTAT 22 { .n_name = "_espstat" }, -#define N_IPCOMPSTAT 24 +#define N_IPCOMPSTAT 23 { .n_name = "_ipcompstat" }, -#define N_RIP6STAT 25 +#define N_RIP6STAT 24 { .n_name = "_rip6stat" }, -#define N_SCTPSTAT 26 +#define N_SCTPSTAT 25 { .n_name = "_sctpstat" }, -#define N_MFCTABLESIZE 27 +#define N_MFCTABLESIZE 26 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -222,8 +220,8 @@ #endif struct protox atalkprotox[] = { - { N_DDPCB, N_DDPSTAT, 1, atalkprotopr, NULL, stat_MAX, - ddp_stats, NULL, "ddp", 0, 0 }, + { N_DDPCB, 0, 1, atalkprotopr, ddp_stats, stat_DDP, + NULL, NULL, "ddp", 0, 0 }, { -1, -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; From owner-p4-projects@FreeBSD.ORG Wed Jul 29 02:02:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D99F21065673; Wed, 29 Jul 2009 02:02:29 +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 9971E106564A for ; Wed, 29 Jul 2009 02:02:29 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 880C98FC12 for ; Wed, 29 Jul 2009 02:02:29 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6T22T9F078345 for ; Wed, 29 Jul 2009 02:02:29 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6T22Tun078343 for perforce@freebsd.org; Wed, 29 Jul 2009 02:02:29 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 29 Jul 2009 02:02:29 GMT Message-Id: <200907290202.n6T22Tun078343@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166713 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 02:02:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=166713 Change 166713 by pgj@petymeg-current on 2009/07/29 02:02:05 Add header for SCTP statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/sctp_sysctl.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/sctp_uio.h#3 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/sctp_sysctl.c#2 (text+ko) ==== @@ -926,6 +926,15 @@ &SCTP_BASE_STATS, sctpstat, "SCTP statistics (struct sctp_stat)"); +struct stat_header sctpstat_header = { + .sth_version = SCTPSTAT_VERSION, + .sth_len = sizeof(SCTP_BASE_STATS) +}; + +SYSCTL_STRUCT(_net_inet_sctp, OID_AUTO, stats_header, CTLFLAG_RD, + &sctpstat_header, stat_header, + "SCTP statistics header"); + SYSCTL_PROC(_net_inet_sctp, OID_AUTO, assoclist, CTLFLAG_RD, 0, 0, sctp_assoclist, "S,xassoc", "List of active SCTP associations"); ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/sctp_uio.h#3 (text+ko) ==== @@ -763,6 +763,8 @@ uint32_t tv_usec; }; +#define SCTPSTAT_VERSION 0x00000001 + struct sctpstat { struct sctp_timeval sctps_discontinuitytime; /* sctpStats 18 * (TimeStamp) */ From owner-p4-projects@FreeBSD.ORG Wed Jul 29 02:06:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8D244106566B; Wed, 29 Jul 2009 02: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 4CF0E1065672 for ; Wed, 29 Jul 2009 02:06:34 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3B2938FC08 for ; Wed, 29 Jul 2009 02:06:34 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6T26Y31079645 for ; Wed, 29 Jul 2009 02:06:34 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6T26X36079643 for perforce@freebsd.org; Wed, 29 Jul 2009 02:06:33 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 29 Jul 2009 02:06:33 GMT Message-Id: <200907290206.n6T26X36079643@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166714 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 02:06:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=166714 Change 166714 by pgj@petymeg-current on 2009/07/29 02:05:56 - Add (optional) support for SCTP statistics. - Introduce timestamp_type for representing timestamps. - Create a STATS_ACC() macro to ease creation of accessor functions for larger statistics structures. - Add SCTP_ACC() for even less typing. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#14 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#41 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#39 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#9 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#45 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#14 (text+ko) ==== @@ -20,6 +20,8 @@ WITHOUT_MAN= yes +CFLAGS+=-DSCTP + .if ${MK_INET6_SUPPORT} != "no" CFLAGS+= -DINET6 .endif ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#41 (text+ko) ==== @@ -123,6 +123,9 @@ stat_PIM, stat_IGMP, stat_DDP, +#ifdef SCTP + stat_SCTP, +#endif stat_MAX, stat_Invalid, }; @@ -147,6 +150,8 @@ struct bpf_type_list; struct bpf_type_iterator; +struct timestamp_type; + struct stat_type; struct tcp_stat; struct udp_stat; @@ -156,6 +161,9 @@ struct pim_stat; struct igmp_stat; struct ddp_stat; +#ifdef SCTP +struct sctp_stat; +#endif __BEGIN_DECLS const char *netstat_strerror(int); @@ -334,6 +342,9 @@ u_int64_t netstat_bpt_get_hlen(const struct bpf_type *); const char *netstat_bpt_get_pidname(const struct bpf_type *); +/* Timestamp: */ +u_int32_t netstat_ts_get_sec(const struct timestamp_type *); +u_int32_t netstat_ts_get_usec(const struct timestamp_type *); /* Protocol-dependent statistics: */ struct stat_type *netstat_stat_alloc(void); @@ -573,4 +584,142 @@ u_int64_t netstat_ddps_get_encap(const struct ddp_stat *); u_int64_t netstat_ddps_get_cantforward(const struct ddp_stat *); u_int64_t netstat_ddps_get_nosockspace(const struct ddp_stat *); + +#ifdef SCTP +const struct sctp_stat *netstat_get_sctpstats(const struct stat_type *); + +const struct timestamp_type *netstat_sctps_get_discontinuitytime(const struct sctp_stat *); +u_int32_t netstat_sctps_get_currestab(const struct sctp_stat *); +u_int32_t netstat_sctps_get_activeestab(const struct sctp_stat *); +u_int32_t netstat_sctps_get_restartestab(const struct sctp_stat *); +u_int32_t netstat_sctps_get_collisionestab(const struct sctp_stat *); +u_int32_t netstat_sctps_get_passiveestab(const struct sctp_stat *); +u_int32_t netstat_sctps_get_aborted(const struct sctp_stat *); +u_int32_t netstat_sctps_get_shutdown(const struct sctp_stat *); +u_int32_t netstat_sctps_get_outoftheblue(const struct sctp_stat *); +u_int32_t netstat_sctps_get_checksumerrors(const struct sctp_stat *); +u_int32_t netstat_sctps_get_outcontrolchunks(const struct sctp_stat *); +u_int32_t netstat_sctps_get_outorderchunks(const struct sctp_stat *); +u_int32_t netstat_sctps_get_outunorderchunks(const struct sctp_stat *); +u_int32_t netstat_sctps_get_incontrolchunks(const struct sctp_stat *); +u_int32_t netstat_sctps_get_inorderchunks(const struct sctp_stat *); +u_int32_t netstat_sctps_get_inunorderchunks(const struct sctp_stat *); +u_int32_t netstat_sctps_get_fragusrmsgs(const struct sctp_stat *); +u_int32_t netstat_sctps_get_reasmusrmsgs(const struct sctp_stat *); +u_int32_t netstat_sctps_get_outpackets(const struct sctp_stat *); +u_int32_t netstat_sctps_get_inpackets(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvpackets(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvdatagrams(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvpktwithdata(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvsacks(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvdata(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvdupdata(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvheartbeat(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvheartbeatack(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvecne(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvauth(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvauthmissing(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvivalhmacid(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvivalkeyid(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvauthfailed(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvexpress(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvexpressm(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvnocrc(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvswcrc(const struct sctp_stat *); +u_int32_t netstat_sctps_get_recvhwcrc(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sendpackets(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sendsacks(const struct sctp_stat *); +u_int32_t netstat_sctps_get_senddata(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sendretransdata(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sendfastretrans(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sendmultfastretrans(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sendheartbeat(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sendecne(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sendauth(const struct sctp_stat *); +u_int32_t netstat_sctps_get_senderrors(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sendnocrc(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sendswcrc(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sendhwcrc(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrpfmbox(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrpfehos(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrpmbda(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrpmbct(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrpbwrpt(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrpcrupt(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrpnedat(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrppdbrk(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrptsnnf(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrpdnfnd(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrpdiwnp(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrpdizrw(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrpbadd(const struct sctp_stat *); +u_int32_t netstat_sctps_get_pdrpmark(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timoiterator(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timodata(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timowindowprobe(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timoinit(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timosack(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timoshutdown(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timoheartbeat(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timocookie(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timosecret(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timopathmtu(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timoshutdownack(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timoshutdownguard(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timostrmrst(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timoearlyfr(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timoasconf(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timodelprim(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timoautoclose(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timoassockill(const struct sctp_stat *); +u_int32_t netstat_sctps_get_timoinpkill(const struct sctp_stat *); +u_int32_t netstat_sctps_get_earlyfrstart(const struct sctp_stat *); +u_int32_t netstat_sctps_get_earlyfrstop(const struct sctp_stat *); +u_int32_t netstat_sctps_get_earlyfrmrkretrans(const struct sctp_stat *); +u_int32_t netstat_sctps_get_earlyfrstpout(const struct sctp_stat *); +u_int32_t netstat_sctps_get_earlyfrstpidsck1(const struct sctp_stat *); +u_int32_t netstat_sctps_get_earlyfrstpidsck2(const struct sctp_stat *); +u_int32_t netstat_sctps_get_earlyfrstpidsck3(const struct sctp_stat *); +u_int32_t netstat_sctps_get_earlyfrstpidsck4(const struct sctp_stat *); +u_int32_t netstat_sctps_get_earlyfrstrid(const struct sctp_stat *); +u_int32_t netstat_sctps_get_earlyfrstrout(const struct sctp_stat *); +u_int32_t netstat_sctps_get_earlyfrstrtmr(const struct sctp_stat *); +u_int32_t netstat_sctps_get_hdrops(const struct sctp_stat *); +u_int32_t netstat_sctps_get_badsum(const struct sctp_stat *); +u_int32_t netstat_sctps_get_noport(const struct sctp_stat *); +u_int32_t netstat_sctps_get_badvtag(const struct sctp_stat *); +u_int32_t netstat_sctps_get_badsid(const struct sctp_stat *); +u_int32_t netstat_sctps_get_nomem(const struct sctp_stat *); +u_int32_t netstat_sctps_get_fastretransinrtt(const struct sctp_stat *); +u_int32_t netstat_sctps_get_markedretrans(const struct sctp_stat *); +u_int32_t netstat_sctps_get_naglesent(const struct sctp_stat *); +u_int32_t netstat_sctps_get_naglequeued(const struct sctp_stat *); +u_int32_t netstat_sctps_get_maxburstqueued(const struct sctp_stat *); +u_int32_t netstat_sctps_get_ifnomemqueued(const struct sctp_stat *); +u_int32_t netstat_sctps_get_windowprobed(const struct sctp_stat *); +u_int32_t netstat_sctps_get_lowlevelerr(const struct sctp_stat *); +u_int32_t netstat_sctps_get_lowlevelerrusr(const struct sctp_stat *); +u_int32_t netstat_sctps_get_datadropchklmt(const struct sctp_stat *); +u_int32_t netstat_sctps_get_datadroprwnd(const struct sctp_stat *); +u_int32_t netstat_sctps_get_ecnereducedcwnd(const struct sctp_stat *); +u_int32_t netstat_sctps_get_vtagexpress(const struct sctp_stat *); +u_int32_t netstat_sctps_get_vtagbogus(const struct sctp_stat *); +u_int32_t netstat_sctps_get_primary_randry(const struct sctp_stat *); +u_int32_t netstat_sctps_get_cmt_randry(const struct sctp_stat *); +u_int32_t netstat_sctps_get_slowpath_sack(const struct sctp_stat *); +u_int32_t netstat_sctps_get_wu_sacks_sent(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sends_with_flags(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sends_with_unord(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sends_with_eof(const struct sctp_stat *); +u_int32_t netstat_sctps_get_sends_with_abort(const struct sctp_stat *); +u_int32_t netstat_sctps_get_protocol_drain_calls(const struct sctp_stat *); +u_int32_t netstat_sctps_get_protocol_drains_done(const struct sctp_stat *); +u_int32_t netstat_sctps_get_read_peeks(const struct sctp_stat *); +u_int32_t netstat_sctps_get_cached_chk(const struct sctp_stat *); +u_int32_t netstat_sctps_get_cached_strmoq(const struct sctp_stat *); +u_int32_t netstat_sctps_get_left_abandon(const struct sctp_stat *); +u_int32_t netstat_sctps_get_send_burst_avoid(const struct sctp_stat *); +u_int32_t netstat_sctps_get_send_cwnd_avoid(const struct sctp_stat *); +u_int32_t netstat_sctps_get_fwdtsn_map_over(const struct sctp_stat *); +#endif /* !SCTP */ #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#39 (text+ko) ==== @@ -51,6 +51,9 @@ #include #include #include +#ifdef SCTP +#include +#endif #include "netstat.h" @@ -320,6 +323,18 @@ struct ddpstat s; }; +#ifdef SCTP +struct sctp_stat { + struct sctpstat s; +}; +#endif + +/* Timestamp type. */ +struct timestamp_type { + u_int32_t ts_sec; + u_int32_t ts_usec; +}; + int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#9 (text+ko) ==== @@ -65,6 +65,9 @@ { PIMSTAT_VERSION, "net.inet.pim.stats", "_pimstat" }, { IGMPSTAT_VERSION, "net.inet.igmp.stats", "_igmpstat" }, { DDPSTAT_VERSION, "net.ddp.stats", "_ddpstat" }, +#ifdef SCTP + { SCTPSTAT_VERSION, "net.inet.sctp.stats", "_sctpstat" }, +#endif }; int ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#45 (text+ko) ==== @@ -1227,6 +1227,14 @@ return (sttp->stt_error); } + +#define STATS_ACC(returns, stats, field) \ +returns \ +netstat_##stats##s_get_##field(const struct stats##_stat *a) \ +{ \ + return (a->s.stats##s_##field); \ +} + const struct tcp_stat * netstat_get_tcpstats(const struct stat_type *sttp) { @@ -2527,6 +2535,170 @@ return (dsp->s.ddps_nosockspace); } +u_int32_t +netstat_ts_get_sec(const struct timestamp_type *tsp) +{ + return (tsp->ts_sec); +} + +u_int32_t +netstat_ts_get_usec(const struct timestamp_type *tsp) +{ + return (tsp->ts_usec); +} + +#ifdef SCTP +const struct sctp_stat * +netstat_get_sctpstats(const struct stat_type *sttp) +{ + if (sttp->stt_type == stat_SCTP) + return ((const struct sctp_stat *)sttp->stt_data); + return (NULL); +} + +#define SCTP_ACC(field) \ + STATS_ACC(u_int32_t,sctp,field) + +const struct timestamp_type * +netstat_sctps_get_discontinuitytime(const struct sctp_stat *ssp) +{ + return ((const struct timestamp_type *)&ssp->s.sctps_discontinuitytime); +} + +SCTP_ACC(currestab); +SCTP_ACC(activeestab); +SCTP_ACC(restartestab); +SCTP_ACC(collisionestab); +SCTP_ACC(passiveestab); +SCTP_ACC(aborted); +SCTP_ACC(shutdown); +SCTP_ACC(outoftheblue); +SCTP_ACC(checksumerrors); +SCTP_ACC(outcontrolchunks); +SCTP_ACC(outorderchunks); +SCTP_ACC(outunorderchunks); +SCTP_ACC(incontrolchunks); +SCTP_ACC(inorderchunks); +SCTP_ACC(inunorderchunks); +SCTP_ACC(fragusrmsgs); +SCTP_ACC(reasmusrmsgs); +SCTP_ACC(outpackets); +SCTP_ACC(inpackets); +SCTP_ACC(recvpackets); +SCTP_ACC(recvdatagrams); +SCTP_ACC(recvpktwithdata); +SCTP_ACC(recvsacks); +SCTP_ACC(recvdata); +SCTP_ACC(recvdupdata); +SCTP_ACC(recvheartbeat); +SCTP_ACC(recvheartbeatack); +SCTP_ACC(recvecne); +SCTP_ACC(recvauth); +SCTP_ACC(recvauthmissing); +SCTP_ACC(recvivalhmacid); +SCTP_ACC(recvivalkeyid); +SCTP_ACC(recvauthfailed); +SCTP_ACC(recvexpress); +SCTP_ACC(recvexpressm); +SCTP_ACC(recvnocrc); +SCTP_ACC(recvswcrc); +SCTP_ACC(recvhwcrc); +SCTP_ACC(sendpackets); +SCTP_ACC(sendsacks); +SCTP_ACC(senddata); +SCTP_ACC(sendretransdata); +SCTP_ACC(sendfastretrans); +SCTP_ACC(sendmultfastretrans); +SCTP_ACC(sendheartbeat); +SCTP_ACC(sendecne); +SCTP_ACC(sendauth); +SCTP_ACC(senderrors); +SCTP_ACC(sendnocrc); +SCTP_ACC(sendswcrc); +SCTP_ACC(sendhwcrc); +SCTP_ACC(pdrpfmbox); +SCTP_ACC(pdrpfehos); +SCTP_ACC(pdrpmbda); +SCTP_ACC(pdrpmbct); +SCTP_ACC(pdrpbwrpt); +SCTP_ACC(pdrpcrupt); +SCTP_ACC(pdrpnedat); +SCTP_ACC(pdrppdbrk); +SCTP_ACC(pdrptsnnf); +SCTP_ACC(pdrpdnfnd); +SCTP_ACC(pdrpdiwnp); +SCTP_ACC(pdrpdizrw); +SCTP_ACC(pdrpbadd); +SCTP_ACC(pdrpmark); +SCTP_ACC(timoiterator); +SCTP_ACC(timodata); +SCTP_ACC(timowindowprobe); +SCTP_ACC(timoinit); +SCTP_ACC(timosack); +SCTP_ACC(timoshutdown); +SCTP_ACC(timoheartbeat); +SCTP_ACC(timocookie); +SCTP_ACC(timosecret); +SCTP_ACC(timopathmtu); +SCTP_ACC(timoshutdownack); +SCTP_ACC(timoshutdownguard); +SCTP_ACC(timostrmrst); +SCTP_ACC(timoearlyfr); +SCTP_ACC(timoasconf); +SCTP_ACC(timodelprim); +SCTP_ACC(timoautoclose); +SCTP_ACC(timoassockill); +SCTP_ACC(timoinpkill); +SCTP_ACC(earlyfrstart); +SCTP_ACC(earlyfrstop); +SCTP_ACC(earlyfrmrkretrans); +SCTP_ACC(earlyfrstpout); +SCTP_ACC(earlyfrstpidsck1); +SCTP_ACC(earlyfrstpidsck2); +SCTP_ACC(earlyfrstpidsck3); +SCTP_ACC(earlyfrstpidsck4); +SCTP_ACC(earlyfrstrid); +SCTP_ACC(earlyfrstrout); +SCTP_ACC(earlyfrstrtmr); +SCTP_ACC(hdrops); +SCTP_ACC(badsum); +SCTP_ACC(noport); +SCTP_ACC(badvtag); +SCTP_ACC(badsid); +SCTP_ACC(nomem); +SCTP_ACC(fastretransinrtt); +SCTP_ACC(markedretrans); +SCTP_ACC(naglesent); +SCTP_ACC(naglequeued); +SCTP_ACC(maxburstqueued); +SCTP_ACC(ifnomemqueued); +SCTP_ACC(windowprobed); +SCTP_ACC(lowlevelerr); +SCTP_ACC(lowlevelerrusr); +SCTP_ACC(datadropchklmt); +SCTP_ACC(datadroprwnd); +SCTP_ACC(ecnereducedcwnd); +SCTP_ACC(vtagexpress); +SCTP_ACC(vtagbogus); +SCTP_ACC(primary_randry); +SCTP_ACC(cmt_randry); +SCTP_ACC(slowpath_sack); +SCTP_ACC(wu_sacks_sent); +SCTP_ACC(sends_with_flags); +SCTP_ACC(sends_with_unord); +SCTP_ACC(sends_with_eof); +SCTP_ACC(sends_with_abort); +SCTP_ACC(protocol_drain_calls); +SCTP_ACC(protocol_drains_done); +SCTP_ACC(read_peeks); +SCTP_ACC(cached_chk); +SCTP_ACC(cached_strmoq); +SCTP_ACC(left_abandon); +SCTP_ACC(send_burst_avoid); +SCTP_ACC(send_cwnd_avoid); +SCTP_ACC(fwdtsn_map_over); +#endif /* !SCTP */ + static const char *icmpnames[ICMP_MAXTYPE + 1] = { "echo reply", /* RFC 792 */ From owner-p4-projects@FreeBSD.ORG Wed Jul 29 02:07:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 915B81065672; Wed, 29 Jul 2009 02:07:35 +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 3844B1065674 for ; Wed, 29 Jul 2009 02:07:35 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 246598FC12 for ; Wed, 29 Jul 2009 02:07:35 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6T27ZEP079704 for ; Wed, 29 Jul 2009 02:07:35 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6T27ZaH079702 for perforce@freebsd.org; Wed, 29 Jul 2009 02:07:35 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 29 Jul 2009 02:07:35 GMT Message-Id: <200907290207.n6T27ZaH079702@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166715 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 02:07:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=166715 Change 166715 by pgj@petymeg-current on 2009/07/29 02:07:07 Convert SCTP statistics into their libnetstatified form. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#19 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#27 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/sctp.c#3 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#19 (text+ko) ==== @@ -78,7 +78,7 @@ void udp_stats(const struct stat_type *); #ifdef SCTP void sctp_protopr(u_long, const char *, int, int); -void sctp_stats(u_long, const char *, int, int); +void sctp_stats(const struct stat_type *); #endif void ip_stats(const struct stat_type *); void icmp_stats(const struct stat_type *); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#27 (text+ko) ==== @@ -127,9 +127,7 @@ { .n_name = "_ipcompstat" }, #define N_RIP6STAT 24 { .n_name = "_rip6stat" }, -#define N_SCTPSTAT 25 - { .n_name = "_sctpstat" }, -#define N_MFCTABLESIZE 26 +#define N_MFCTABLESIZE 25 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -154,8 +152,8 @@ { 0, 0, 1, NULL, udp_stats, stat_UDP, NULL, NULL, "udp", 1, IPPROTO_UDP }, #ifdef SCTP - { -1, N_SCTPSTAT, 1, sctp_protopr, NULL, stat_MAX, - sctp_stats, NULL, "sctp", 1, IPPROTO_SCTP }, + { -1, 0, 1, sctp_protopr, sctp_stats, stat_SCTP, + NULL, NULL, "sctp", 1, IPPROTO_SCTP }, #endif { 0, -1, 1, NULL, NULL, stat_MAX, NULL, NULL, "divert", 1, IPPROTO_DIVERT }, ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/sctp.c#3 (text+ko) ==== @@ -510,179 +510,159 @@ * Dump SCTP statistics structure. */ void -sctp_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +sctp_stats(const struct stat_type *sttp) { - struct sctpstat sctpstat, zerostat; - size_t len = sizeof(sctpstat); + const struct sctp_stat *s; - if (live) { - if (zflag) - memset(&zerostat, 0, len); - if (sysctlbyname("net.inet.sctp.stats", &sctpstat, &len, - zflag ? &zerostat : NULL, zflag ? len : 0) < 0) { - warn("sysctl: net.inet.sctp.stats"); - return; - } - } else - kread(off, &sctpstat, len); - - printf ("%s:\n", name); - -#define p(f, m) if (sctpstat.f || sflag <= 1) \ - printf(m, (uintmax_t)sctpstat.f, plural(sctpstat.f)) -#define p1a(f, m) if (sctpstat.f || sflag <= 1) \ - printf(m, (uintmax_t)sctpstat.f) - + s = netstat_get_sctpstats(sttp); +#define p(f, m) if (netstat_sctps_get_##f(s) || sflag <= 1) \ + printf(m, (uintmax_t)netstat_sctps_get_##f(s), plural(netstat_sctps_get_##f(s))) +#define p1a(f, m) if (netstat_sctps_get_##f(s) || sflag <= 1) \ + printf(m, (uintmax_t)netstat_sctps_get_##f(s)) /* * input statistics */ - p(sctps_recvpackets, "\t%ju input packet%s\n"); - p(sctps_recvdatagrams, "\t\t%ju datagram%s\n"); - p(sctps_recvpktwithdata, "\t\t%ju packet%s that had data\n"); - p(sctps_recvsacks, "\t\t%ju input SACK chunk%s\n"); - p(sctps_recvdata, "\t\t%ju input DATA chunk%s\n"); - p(sctps_recvdupdata, "\t\t%ju duplicate DATA chunk%s\n"); - p(sctps_recvheartbeat, "\t\t%ju input HB chunk%s\n"); - p(sctps_recvheartbeatack, "\t\t%ju HB-ACK chunk%s\n"); - p(sctps_recvecne, "\t\t%ju input ECNE chunk%s\n"); - p(sctps_recvauth, "\t\t%ju input AUTH chunk%s\n"); - p(sctps_recvauthmissing, "\t\t%ju chunk%s missing AUTH\n"); - p(sctps_recvivalhmacid, "\t\t%ju invalid HMAC id%s received\n"); - p(sctps_recvivalkeyid, "\t\t%ju invalid secret id%s received\n"); - p1a(sctps_recvauthfailed, "\t\t%ju auth failed\n"); - p1a(sctps_recvexpress, "\t\t%ju fast path receives all one chunk\n"); - p1a(sctps_recvexpressm, "\t\t%ju fast path multi-part data\n"); - + p(recvpackets, "\t%ju input packet%s\n"); + p(recvdatagrams, "\t\t%ju datagram%s\n"); + p(recvpktwithdata, "\t\t%ju packet%s that had data\n"); + p(recvsacks, "\t\t%ju input SACK chunk%s\n"); + p(recvdata, "\t\t%ju input DATA chunk%s\n"); + p(recvdupdata, "\t\t%ju duplicate DATA chunk%s\n"); + p(recvheartbeat, "\t\t%ju input HB chunk%s\n"); + p(recvheartbeatack, "\t\t%ju HB-ACK chunk%s\n"); + p(recvecne, "\t\t%ju input ECNE chunk%s\n"); + p(recvauth, "\t\t%ju input AUTH chunk%s\n"); + p(recvauthmissing, "\t\t%ju chunk%s missing AUTH\n"); + p(recvivalhmacid, "\t\t%ju invalid HMAC id%s received\n"); + p(recvivalkeyid, "\t\t%ju invalid secret id%s received\n"); + p1a(recvauthfailed, "\t\t%ju auth failed\n"); + p1a(recvexpress, "\t\t%ju fast path receives all one chunk\n"); + p1a(recvexpressm, "\t\t%ju fast path multi-part data\n"); /* * output statistics */ - p(sctps_sendpackets, "\t%ju output packet%s\n"); - p(sctps_sendsacks, "\t\t%ju output SACK%s\n"); - p(sctps_senddata, "\t\t%ju output DATA chunk%s\n"); - p(sctps_sendretransdata, "\t\t%ju retransmitted DATA chunk%s\n"); - p(sctps_sendfastretrans, "\t\t%ju fast retransmitted DATA chunk%s\n"); - p(sctps_sendmultfastretrans, "\t\t%ju FR'%s that happened more " + p(sendpackets, "\t%ju output packet%s\n"); + p(sendsacks, "\t\t%ju output SACK%s\n"); + p(senddata, "\t\t%ju output DATA chunk%s\n"); + p(sendretransdata, "\t\t%ju retransmitted DATA chunk%s\n"); + p(sendfastretrans, "\t\t%ju fast retransmitted DATA chunk%s\n"); + p(sendmultfastretrans, "\t\t%ju FR'%s that happened more " "than once to same chunk\n"); - p(sctps_sendheartbeat, "\t\t%ju intput HB chunk%s\n"); - p(sctps_sendecne, "\t\t%ju output ECNE chunk%s\n"); - p(sctps_sendauth, "\t\t%ju output AUTH chunk%s\n"); - p1a(sctps_senderrors, "\t\t%ju ip_output error counter\n"); - + p(sendheartbeat, "\t\t%ju intput HB chunk%s\n"); + p(sendecne, "\t\t%ju output ECNE chunk%s\n"); + p(sendauth, "\t\t%ju output AUTH chunk%s\n"); + p1a(senderrors, "\t\t%ju ip_output error counter\n"); /* * PCKDROPREP statistics */ printf("\tPacket drop statistics:\n"); - p1a(sctps_pdrpfmbox, "\t\t%ju from middle box\n"); - p1a(sctps_pdrpfehos, "\t\t%ju from end host\n"); - p1a(sctps_pdrpmbda, "\t\t%ju with data\n"); - p1a(sctps_pdrpmbct, "\t\t%ju non-data, non-endhost\n"); - p1a(sctps_pdrpbwrpt, "\t\t%ju non-endhost, bandwidth rep only\n"); - p1a(sctps_pdrpcrupt, "\t\t%ju not enough for chunk header\n"); - p1a(sctps_pdrpnedat, "\t\t%ju not enough data to confirm\n"); - p1a(sctps_pdrppdbrk, "\t\t%ju where process_chunk_drop said break\n"); - p1a(sctps_pdrptsnnf, "\t\t%ju failed to find TSN\n"); - p1a(sctps_pdrpdnfnd, "\t\t%ju attempt reverse TSN lookup\n"); - p1a(sctps_pdrpdiwnp, "\t\t%ju e-host confirms zero-rwnd\n"); - p1a(sctps_pdrpdizrw, "\t\t%ju midbox confirms no space\n"); - p1a(sctps_pdrpbadd, "\t\t%ju data did not match TSN\n"); - p(sctps_pdrpmark, "\t\t%ju TSN'%s marked for Fast Retran\n"); - + p1a(pdrpfmbox, "\t\t%ju from middle box\n"); + p1a(pdrpfehos, "\t\t%ju from end host\n"); + p1a(pdrpmbda, "\t\t%ju with data\n"); + p1a(pdrpmbct, "\t\t%ju non-data, non-endhost\n"); + p1a(pdrpbwrpt, "\t\t%ju non-endhost, bandwidth rep only\n"); + p1a(pdrpcrupt, "\t\t%ju not enough for chunk header\n"); + p1a(pdrpnedat, "\t\t%ju not enough data to confirm\n"); + p1a(pdrppdbrk, "\t\t%ju where process_chunk_drop said break\n"); + p1a(pdrptsnnf, "\t\t%ju failed to find TSN\n"); + p1a(pdrpdnfnd, "\t\t%ju attempt reverse TSN lookup\n"); + p1a(pdrpdiwnp, "\t\t%ju e-host confirms zero-rwnd\n"); + p1a(pdrpdizrw, "\t\t%ju midbox confirms no space\n"); + p1a(pdrpbadd, "\t\t%ju data did not match TSN\n"); + p(pdrpmark, "\t\t%ju TSN'%s marked for Fast Retran\n"); /* * Timeouts */ printf("\tTimeouts:\n"); - p(sctps_timoiterator, "\t\t%ju iterator timer%s fired\n"); - p(sctps_timodata, "\t\t%ju T3 data time out%s\n"); - p(sctps_timowindowprobe, "\t\t%ju window probe (T3) timer%s fired\n"); - p(sctps_timoinit, "\t\t%ju INIT timer%s fired\n"); - p(sctps_timosack, "\t\t%ju sack timer%s fired\n"); - p(sctps_timoshutdown, "\t\t%ju shutdown timer%s fired\n"); - p(sctps_timoheartbeat, "\t\t%ju heartbeat timer%s fired\n"); - p1a(sctps_timocookie, "\t\t%ju a cookie timeout fired\n"); - p1a(sctps_timosecret, "\t\t%ju an endpoint changed its cookie" + p(timoiterator, "\t\t%ju iterator timer%s fired\n"); + p(timodata, "\t\t%ju T3 data time out%s\n"); + p(timowindowprobe, "\t\t%ju window probe (T3) timer%s fired\n"); + p(timoinit, "\t\t%ju INIT timer%s fired\n"); + p(timosack, "\t\t%ju sack timer%s fired\n"); + p(timoshutdown, "\t\t%ju shutdown timer%s fired\n"); + p(timoheartbeat, "\t\t%ju heartbeat timer%s fired\n"); + p1a(timocookie, "\t\t%ju a cookie timeout fired\n"); + p1a(timosecret, "\t\t%ju an endpoint changed its cookie" "secret\n"); - p(sctps_timopathmtu, "\t\t%ju PMTU timer%s fired\n"); - p(sctps_timoshutdownack, "\t\t%ju shutdown ack timer%s fired\n"); - p(sctps_timoshutdownguard, "\t\t%ju shutdown guard timer%s fired\n"); - p(sctps_timostrmrst, "\t\t%ju stream reset timer%s fired\n"); - p(sctps_timoearlyfr, "\t\t%ju early FR timer%s fired\n"); - p1a(sctps_timoasconf, "\t\t%ju an asconf timer fired\n"); - p1a(sctps_timoautoclose, "\t\t%ju auto close timer fired\n"); - p(sctps_timoassockill, "\t\t%ju asoc free timer%s expired\n"); - p(sctps_timoinpkill, "\t\t%ju inp free timer%s expired\n"); - + p(timopathmtu, "\t\t%ju PMTU timer%s fired\n"); + p(timoshutdownack, "\t\t%ju shutdown ack timer%s fired\n"); + p(timoshutdownguard, "\t\t%ju shutdown guard timer%s fired\n"); + p(timostrmrst, "\t\t%ju stream reset timer%s fired\n"); + p(timoearlyfr, "\t\t%ju early FR timer%s fired\n"); + p1a(timoasconf, "\t\t%ju an asconf timer fired\n"); + p1a(timoautoclose, "\t\t%ju auto close timer fired\n"); + p(timoassockill, "\t\t%ju asoc free timer%s expired\n"); + p(timoinpkill, "\t\t%ju inp free timer%s expired\n"); #if 0 /* * Early fast retransmission counters */ - p(sctps_earlyfrstart, "\t%ju TODO:sctps_earlyfrstart\n"); - p(sctps_earlyfrstop, "\t%ju TODO:sctps_earlyfrstop\n"); - p(sctps_earlyfrmrkretrans, "\t%ju TODO:sctps_earlyfrmrkretrans\n"); - p(sctps_earlyfrstpout, "\t%ju TODO:sctps_earlyfrstpout\n"); - p(sctps_earlyfrstpidsck1, "\t%ju TODO:sctps_earlyfrstpidsck1\n"); - p(sctps_earlyfrstpidsck2, "\t%ju TODO:sctps_earlyfrstpidsck2\n"); - p(sctps_earlyfrstpidsck3, "\t%ju TODO:sctps_earlyfrstpidsck3\n"); - p(sctps_earlyfrstpidsck4, "\t%ju TODO:sctps_earlyfrstpidsck4\n"); - p(sctps_earlyfrstrid, "\t%ju TODO:sctps_earlyfrstrid\n"); - p(sctps_earlyfrstrout, "\t%ju TODO:sctps_earlyfrstrout\n"); - p(sctps_earlyfrstrtmr, "\t%ju TODO:sctps_earlyfrstrtmr\n"); + p(earlyfrstart, "\t%ju TODO:sctps_earlyfrstart\n"); + p(earlyfrstop, "\t%ju TODO:sctps_earlyfrstop\n"); + p(earlyfrmrkretrans, "\t%ju TODO:sctps_earlyfrmrkretrans\n"); + p(earlyfrstpout, "\t%ju TODO:sctps_earlyfrstpout\n"); + p(earlyfrstpidsck1, "\t%ju TODO:sctps_earlyfrstpidsck1\n"); + p(earlyfrstpidsck2, "\t%ju TODO:sctps_earlyfrstpidsck2\n"); + p(earlyfrstpidsck3, "\t%ju TODO:sctps_earlyfrstpidsck3\n"); + p(earlyfrstpidsck4, "\t%ju TODO:sctps_earlyfrstpidsck4\n"); + p(earlyfrstrid, "\t%ju TODO:sctps_earlyfrstrid\n"); + p(earlyfrstrout, "\t%ju TODO:sctps_earlyfrstrout\n"); + p(earlyfrstrtmr, "\t%ju TODO:sctps_earlyfrstrtmr\n"); #endif - /* * Others */ - p1a(sctps_hdrops, "\t%ju packet shorter than header\n"); - p1a(sctps_badsum, "\t%ju checksum error\n"); - p1a(sctps_noport, "\t%ju no endpoint for port\n"); - p1a(sctps_badvtag, "\t%ju bad v-tag\n"); - p1a(sctps_badsid, "\t%ju bad SID\n"); - p1a(sctps_nomem, "\t%ju no memory\n"); - p1a(sctps_fastretransinrtt, "\t%ju number of multiple FR in a RTT " + p1a(hdrops, "\t%ju packet shorter than header\n"); + p1a(badsum, "\t%ju checksum error\n"); + p1a(noport, "\t%ju no endpoint for port\n"); + p1a(badvtag, "\t%ju bad v-tag\n"); + p1a(badsid, "\t%ju bad SID\n"); + p1a(nomem, "\t%ju no memory\n"); + p1a(fastretransinrtt, "\t%ju number of multiple FR in a RTT " "window\n"); #if 0 - p(sctps_markedretrans, "\t%ju TODO:sctps_markedretrans\n"); + p(markedretrans, "\t%ju TODO:sctps_markedretrans\n"); #endif - p1a(sctps_naglesent, "\t%ju RFC813 allowed sending\n"); - p1a(sctps_naglequeued, "\t%ju RFC813 does not allow sending\n"); - p1a(sctps_maxburstqueued, "\t%ju times max burst prohibited sending\n"); - p1a(sctps_ifnomemqueued, "\t%ju look ahead tells us no memory in " + p1a(naglesent, "\t%ju RFC813 allowed sending\n"); + p1a(naglequeued, "\t%ju RFC813 does not allow sending\n"); + p1a(maxburstqueued, "\t%ju times max burst prohibited sending\n"); + p1a(ifnomemqueued, "\t%ju look ahead tells us no memory in " "interface\n"); - p(sctps_windowprobed, "\t%ju number%s of window probes sent\n"); - p(sctps_lowlevelerr, "\t%ju time%s an output error to clamp " + p(windowprobed, "\t%ju number%s of window probes sent\n"); + p(lowlevelerr, "\t%ju time%s an output error to clamp " "down on next user send\n"); - p(sctps_lowlevelerrusr, "\t%ju time%s sctp_senderrors were " + p(lowlevelerrusr, "\t%ju time%s sctp_senderrors were " "caused from a user\n"); - p(sctps_datadropchklmt, "\t%ju number of in data drop%s due to " + p(datadropchklmt, "\t%ju number of in data drop%s due to " "chunk limit reached\n"); - p(sctps_datadroprwnd, "\t%ju number of in data drop%s due to rwnd " + p(datadroprwnd, "\t%ju number of in data drop%s due to rwnd " "limit reached\n"); - p(sctps_ecnereducedcwnd, "\t%ju time%s a ECN reduced " + p(ecnereducedcwnd, "\t%ju time%s a ECN reduced " "the cwnd\n"); - p1a(sctps_vtagexpress, "\t%ju used express lookup via vtag\n"); - p1a(sctps_vtagbogus, "\t%ju collision in express lookup\n"); - p(sctps_primary_randry, "\t%ju time%s the sender ran dry " + p1a(vtagexpress, "\t%ju used express lookup via vtag\n"); + p1a(vtagbogus, "\t%ju collision in express lookup\n"); + p(primary_randry, "\t%ju time%s the sender ran dry " "of user data on primary\n"); - p1a(sctps_cmt_randry, "\t%ju same for above\n"); - p(sctps_slowpath_sack, "\t%ju sack%s the slow way\n"); - p(sctps_wu_sacks_sent, "\t%ju window update only sack%s sent\n"); - p(sctps_sends_with_flags, "\t%ju send%s with sinfo_flags !=0\n"); - p(sctps_sends_with_unord, "\t%ju unordered send%s\n"); - p(sctps_sends_with_eof, "\t%ju send%s with EOF flag set\n"); - p(sctps_sends_with_abort, "\t%ju send%s with ABORT flag set\n"); - p(sctps_protocol_drain_calls, "\t%ju time%s protocol drain called\n"); - p(sctps_protocol_drains_done, "\t%ju time%s we did a protocol " + p1a(cmt_randry, "\t%ju same for above\n"); + p(slowpath_sack, "\t%ju sack%s the slow way\n"); + p(wu_sacks_sent, "\t%ju window update only sack%s sent\n"); + p(sends_with_flags, "\t%ju send%s with sinfo_flags !=0\n"); + p(sends_with_unord, "\t%ju unordered send%s\n"); + p(sends_with_eof, "\t%ju send%s with EOF flag set\n"); + p(sends_with_abort, "\t%ju send%s with ABORT flag set\n"); + p(protocol_drain_calls, "\t%ju time%s protocol drain called\n"); + p(protocol_drains_done, "\t%ju time%s we did a protocol " "drain\n"); - p(sctps_read_peeks, "\t%ju time%s recv was called with peek\n"); - p(sctps_cached_chk, "\t%ju cached chunk%s used\n"); - p1a(sctps_cached_strmoq, "\t%ju cached stream oq's used\n"); - p(sctps_left_abandon, "\t%ju unread message%s abandonded by close\n"); - p1a(sctps_send_burst_avoid, "\t%ju send burst avoidance, already " + p(read_peeks, "\t%ju time%s recv was called with peek\n"); + p(cached_chk, "\t%ju cached chunk%s used\n"); + p1a(cached_strmoq, "\t%ju cached stream oq's used\n"); + p(left_abandon, "\t%ju unread message%s abandonded by close\n"); + p1a(send_burst_avoid, "\t%ju send burst avoidance, already " "max burst inflight to net\n"); - p1a(sctps_send_cwnd_avoid, "\t%ju send cwnd full avoidance, already " + p1a(send_cwnd_avoid, "\t%ju send cwnd full avoidance, already " "max burst inflight to net\n"); - p(sctps_fwdtsn_map_over, "\t%ju number of map array over-run%s via " + p(fwdtsn_map_over, "\t%ju number of map array over-run%s via " "fwd-tsn's\n"); - #undef p #undef p1a } From owner-p4-projects@FreeBSD.ORG Wed Jul 29 03:03:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 03E61106566C; Wed, 29 Jul 2009 03:03:36 +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 4D738106564A for ; Wed, 29 Jul 2009 03:03:36 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3AEF28FC20 for ; Wed, 29 Jul 2009 03:03:36 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6T33al6084872 for ; Wed, 29 Jul 2009 03:03:36 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6T33aP0084870 for perforce@freebsd.org; Wed, 29 Jul 2009 03:03:36 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 29 Jul 2009 03:03:36 GMT Message-Id: <200907290303.n6T33aP0084870@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166716 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 03:03:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=166716 Change 166716 by pgj@petymeg-current on 2009/07/29 03:03:18 Shrink accessor functions by adding some simple preprocessor macros. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#46 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#46 (text+ko) ==== @@ -1228,1313 +1228,303 @@ } -#define STATS_ACC(returns, stats, field) \ +#define STATS_ACCX(returns, stats, f1, f2) \ returns \ -netstat_##stats##s_get_##field(const struct stats##_stat *a) \ +netstat_##stats##s_get_##f1(const struct stats##_stat *a) \ { \ - return (a->s.stats##s_##field); \ + return (a->s.f2); \ } -const struct tcp_stat * -netstat_get_tcpstats(const struct stat_type *sttp) -{ - if (sttp->stt_type == stat_TCP) { - return ((const struct tcp_stat *) sttp->stt_data); - } - return (NULL); -} +#define STATS_ACC(returns, stats, field) \ + STATS_ACCX(returns, stats, field, stats##s_##field) -u_int64_t -netstat_tcps_get_connattempt(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_connattempt); +#define STATS_GET(S,I) \ +const struct S##_stat * \ +netstat_get_##S##stats(const struct stat_type *sttp) \ +{ \ + if (sttp->stt_type == stat_##I) \ + return ((const struct S##_stat *)sttp->stt_data); \ + return (NULL); \ } -u_int64_t -netstat_tcps_get_accepts(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_accepts); +#define STATS_ACCXA(returns, stats, f1, f2, limit) \ +returns \ +netstat_##stats##s_get_##f1(const struct stats##_stat *a, int i) \ +{ \ + if (0 <= i && i < (limit)) \ + return (a->s.f2[i]); \ + return (0); \ } -u_int64_t -netstat_tcps_get_connects(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_connects); -} -u_int64_t -netstat_tcps_get_drops(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_drops); -} -u_int64_t -netstat_tcps_get_conndrops(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_conndrops); -} +#define TCP_ACC(field) \ + STATS_ACC(u_int64_t,tcp,field) -u_int64_t -netstat_tcps_get_minmssdrops(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_minmssdrops); -} +STATS_GET(tcp,TCP); +TCP_ACC(connattempt); +TCP_ACC(accepts); +TCP_ACC(connects); +TCP_ACC(drops); +TCP_ACC(conndrops); +TCP_ACC(minmssdrops); +TCP_ACC(closed); +TCP_ACC(segstimed); +TCP_ACC(rttupdated); +TCP_ACC(delack); +TCP_ACC(timeoutdrop); +TCP_ACC(rexmttimeo); +TCP_ACC(persisttimeo); +TCP_ACC(keeptimeo); +TCP_ACC(keepprobe); +TCP_ACC(keepdrops); +TCP_ACC(sndtotal); +TCP_ACC(sndpack); +TCP_ACC(sndbyte); +TCP_ACC(sndrexmitpack); +TCP_ACC(sndrexmitbyte); +TCP_ACC(sndrexmitbad); +TCP_ACC(sndacks); +TCP_ACC(sndprobe); +TCP_ACC(sndurg); +TCP_ACC(sndwinup); +TCP_ACC(sndctrl); +TCP_ACC(rcvtotal); +TCP_ACC(rcvpack); +TCP_ACC(rcvbyte); +TCP_ACC(rcvbadsum); +TCP_ACC(rcvbadoff); +TCP_ACC(rcvmemdrop); +TCP_ACC(rcvshort); +TCP_ACC(rcvduppack); +TCP_ACC(rcvdupbyte); +TCP_ACC(rcvpartduppack); +TCP_ACC(rcvpartdupbyte); +TCP_ACC(rcvoopack); +TCP_ACC(rcvoobyte); +TCP_ACC(rcvpackafterwin); +TCP_ACC(rcvbyteafterwin); +TCP_ACC(rcvafterclose); +TCP_ACC(rcvwinprobe); +TCP_ACC(rcvdupack); +TCP_ACC(rcvacktoomuch); +TCP_ACC(rcvackpack); +TCP_ACC(rcvackbyte); +TCP_ACC(rcvwinupd); +TCP_ACC(pawsdrop); +TCP_ACC(predack); +TCP_ACC(preddat); +TCP_ACC(pcbcachemiss); +TCP_ACC(cachedrtt); +TCP_ACC(cachedrttvar); +TCP_ACC(cachedssthresh); +TCP_ACC(usedrtt); +TCP_ACC(usedrttvar); +TCP_ACC(usedssthresh); +TCP_ACC(persistdrop); +TCP_ACC(badsyn); +TCP_ACC(mturesent); +TCP_ACC(listendrop); +TCP_ACC(badrst); +TCP_ACC(sc_added); +TCP_ACC(sc_retransmitted); +TCP_ACC(sc_dupsyn); +TCP_ACC(sc_dropped); +TCP_ACC(sc_completed); +TCP_ACC(sc_bucketoverflow); +TCP_ACC(sc_cacheoverflow); +TCP_ACC(sc_reset); +TCP_ACC(sc_stale); +TCP_ACC(sc_aborted); +TCP_ACC(sc_badack); +TCP_ACC(sc_unreach); +TCP_ACC(sc_zonefail); +TCP_ACC(sc_sendcookie); +TCP_ACC(sc_recvcookie); +TCP_ACC(hc_added); +TCP_ACC(hc_bucketoverflow); +TCP_ACC(finwait2_drops); +TCP_ACC(sack_recovery_episode); +TCP_ACC(sack_rexmits); +TCP_ACC(sack_rexmit_bytes); +TCP_ACC(sack_rcv_blocks); +TCP_ACC(sack_send_blocks); +TCP_ACC(sack_sboverflow); +TCP_ACC(ecn_ce); +TCP_ACC(ecn_ect0); +TCP_ACC(ecn_ect1); +TCP_ACC(ecn_shs); +TCP_ACC(ecn_rcwnd); +#undef TCP_ACC -u_int64_t -netstat_tcps_get_closed(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_closed); -} -u_int64_t -netstat_tcps_get_segstimed(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_segstimed); -} +#define UDP_ACC(field) \ + STATS_ACC(u_int64_t,udp,field) -u_int64_t -netstat_tcps_get_rttupdated(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rttupdated); -} +#define UDP_ACCX(f1,f2) \ + STATS_ACCX(u_int64_t,udp,f1,f2) -u_int64_t -netstat_tcps_get_delack(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_delack); -} +STATS_GET(udp,UDP); +UDP_ACC(ipackets); +UDP_ACC(hdrops); +UDP_ACC(badsum); +UDP_ACC(nosum); +UDP_ACC(badlen); +UDP_ACC(noport); +UDP_ACC(noportbcast); +UDP_ACC(fullsock); +UDP_ACCX(pcbcachemiss,udpps_pcbcachemiss); +UDP_ACCX(pcbhashmiss,udpps_pcbhashmiss); +UDP_ACC(delivered); +UDP_ACC(opackets); +UDP_ACC(fastout); +UDP_ACC(noportmcast); +UDP_ACC(filtermcast); +#undef UDP_ACC +#undef UDP_ACCX -u_int64_t -netstat_tcps_get_timeoutdrop(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_timeoutdrop); -} -u_int64_t -netstat_tcps_get_rexmttimeo(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rexmttimeo); -} +#define CARP_ACC(field) \ + STATS_ACC(u_int64_t,carp,field) -u_int64_t -netstat_tcps_get_persisttimeo(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_persisttimeo); -} +STATS_GET(carp,CARP); +CARP_ACC(ipackets); +CARP_ACC(ipackets6); +CARP_ACC(badif); +CARP_ACC(badttl); +CARP_ACC(hdrops); +CARP_ACC(badsum); +CARP_ACC(badver); +CARP_ACC(badlen); +CARP_ACC(badauth); +CARP_ACC(badvhid); +CARP_ACC(badaddrs); +CARP_ACC(opackets); +CARP_ACC(opackets6); +CARP_ACC(onomem); +CARP_ACC(ostates); +CARP_ACC(preempt); +#undef CARP_ACC -u_int64_t -netstat_tcps_get_keeptimeo(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_keeptimeo); -} -u_int64_t -netstat_tcps_get_keepprobe(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_keepprobe); -} +#define IP_ACC(field) \ + STATS_ACC(u_int64_t,ip,field) -u_int64_t -netstat_tcps_get_keepdrops(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_keepdrops); -} +STATS_GET(ip,IP); +IP_ACC(total); +IP_ACC(badsum); +IP_ACC(tooshort); +IP_ACC(toosmall); +IP_ACC(badhlen); +IP_ACC(badlen); +IP_ACC(fragments); +IP_ACC(fragdropped); +IP_ACC(fragtimeout); +IP_ACC(forward); +IP_ACC(fastforward); +IP_ACC(cantforward); +IP_ACC(redirectsent); +IP_ACC(noproto); +IP_ACC(delivered); +IP_ACC(localout); +IP_ACC(odropped); +IP_ACC(reassembled); +IP_ACC(fragmented); +IP_ACC(ofragments); +IP_ACC(cantfrag); +IP_ACC(badoptions); +IP_ACC(noroute); +IP_ACC(badvers); +IP_ACC(rawout); +IP_ACC(toolong); +IP_ACC(notmember); +IP_ACC(nogif); +IP_ACC(badaddr); +#undef IP_ACC -u_int64_t -netstat_tcps_get_sndtotal(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sndtotal); -} -u_int64_t -netstat_tcps_get_sndpack(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sndpack); -} +#define ICMP_ACC(field) \ + STATS_ACCX(u_int64_t,icmp,field,icps_##field) -u_int64_t -netstat_tcps_get_sndbyte(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sndbyte); -} +#define ICMP_ACCA(field) \ + STATS_ACCXA(u_int64_t,icmp,field,icps_##field,ICMP_MAXTYPE) -u_int64_t -netstat_tcps_get_sndrexmitpack(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sndrexmitpack); -} +STATS_GET(icmp,ICMP); +ICMP_ACCA(inhist); +ICMP_ACCA(outhist); +ICMP_ACC(error); +ICMP_ACC(oldshort); +ICMP_ACC(oldicmp); +ICMP_ACC(badcode); +ICMP_ACC(tooshort); +ICMP_ACC(checksum); +ICMP_ACC(badlen); +ICMP_ACC(reflect); +ICMP_ACC(bmcastecho); +ICMP_ACC(bmcasttstamp); +ICMP_ACC(badaddr); +ICMP_ACC(noroute); +#undef ICMP_ACC +#undef ICMP_ACCA -u_int64_t -netstat_tcps_get_sndrexmitbyte(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sndrexmitbyte); -} -u_int64_t -netstat_tcps_get_sndrexmitbad(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sndrexmitbad); -} +#define PIM_ACC(field) \ + STATS_ACC(u_int64_t,pim,field) -u_int64_t -netstat_tcps_get_sndacks(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sndacks); -} +STATS_GET(pim,PIM); +PIM_ACC(rcv_total_msgs); +PIM_ACC(rcv_total_bytes); +PIM_ACC(rcv_tooshort); +PIM_ACC(rcv_badsum); +PIM_ACC(rcv_badversion); +PIM_ACC(rcv_registers_msgs); +PIM_ACC(rcv_registers_bytes); +PIM_ACC(rcv_registers_wrongiif); +PIM_ACC(rcv_badregisters); +PIM_ACC(snd_registers_msgs); +PIM_ACC(snd_registers_bytes); +#undef PIM_ACC -u_int64_t -netstat_tcps_get_sndprobe(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sndprobe); -} -u_int64_t -netstat_tcps_get_sndurg(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sndurg); -} +#define IGMP_ACC(field) \ + STATS_ACCX(u_int64_t,igmp,field,igps_##field) -u_int64_t -netstat_tcps_get_sndwinup(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sndwinup); -} +STATS_GET(igmp,IGMP); +IGMP_ACC(rcv_total); +IGMP_ACC(rcv_tooshort); +IGMP_ACC(rcv_badttl); +IGMP_ACC(rcv_badsum); +IGMP_ACC(rcv_v1v2_queries); +IGMP_ACC(rcv_v3_queries); +IGMP_ACC(rcv_badqueries); +IGMP_ACC(rcv_gen_queries); +IGMP_ACC(rcv_group_queries); +IGMP_ACC(rcv_gsr_queries); +IGMP_ACC(drop_gsr_queries); +IGMP_ACC(rcv_reports); +IGMP_ACC(rcv_badreports); +IGMP_ACC(rcv_ourreports); +IGMP_ACC(rcv_nora); +IGMP_ACC(snd_reports); +#undef IGMP_ACC -u_int64_t -netstat_tcps_get_sndctrl(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sndctrl); -} +#define DDP_ACC(field) \ + STATS_ACC(u_int64_t,ddp,field) -u_int64_t -netstat_tcps_get_rcvtotal(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvtotal); -} - -u_int64_t -netstat_tcps_get_rcvpack(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvpack); -} - -u_int64_t -netstat_tcps_get_rcvbyte(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvbyte); -} - -u_int64_t -netstat_tcps_get_rcvbadsum(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvbadsum); -} - -u_int64_t -netstat_tcps_get_rcvbadoff(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvbadoff); -} - -u_int64_t -netstat_tcps_get_rcvmemdrop(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvmemdrop); -} - -u_int64_t -netstat_tcps_get_rcvshort(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvshort); -} - -u_int64_t -netstat_tcps_get_rcvduppack(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvduppack); -} - -u_int64_t -netstat_tcps_get_rcvdupbyte(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvdupbyte); -} - -u_int64_t -netstat_tcps_get_rcvpartduppack(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvpartduppack); -} - -u_int64_t -netstat_tcps_get_rcvpartdupbyte(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvpartdupbyte); -} - -u_int64_t -netstat_tcps_get_rcvoopack(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvoopack); -} - -u_int64_t -netstat_tcps_get_rcvoobyte(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvoobyte); -} - -u_int64_t -netstat_tcps_get_rcvpackafterwin(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvpackafterwin); -} - -u_int64_t -netstat_tcps_get_rcvbyteafterwin(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvbyteafterwin); -} - -u_int64_t -netstat_tcps_get_rcvafterclose(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvafterclose); -} - -u_int64_t -netstat_tcps_get_rcvwinprobe(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvwinprobe); -} - -u_int64_t -netstat_tcps_get_rcvdupack(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvdupack); -} - -u_int64_t -netstat_tcps_get_rcvacktoomuch(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvacktoomuch); -} - -u_int64_t -netstat_tcps_get_rcvackpack(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvackpack); -} - -u_int64_t -netstat_tcps_get_rcvackbyte(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvackbyte); -} - -u_int64_t -netstat_tcps_get_rcvwinupd(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_rcvwinupd); -} - -u_int64_t -netstat_tcps_get_pawsdrop(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_pawsdrop); -} - -u_int64_t -netstat_tcps_get_predack(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_predack); -} - -u_int64_t -netstat_tcps_get_preddat(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_preddat); -} - -u_int64_t -netstat_tcps_get_pcbcachemiss(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_pcbcachemiss); -} - -u_int64_t -netstat_tcps_get_cachedrtt(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_cachedrtt); -} - -u_int64_t -netstat_tcps_get_cachedrttvar(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_cachedrttvar); -} - -u_int64_t -netstat_tcps_get_cachedssthresh(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_cachedssthresh); -} - -u_int64_t -netstat_tcps_get_usedrtt(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_usedrtt); -} +STATS_GET(ddp,DDP); +DDP_ACC(short); +DDP_ACC(long); +DDP_ACC(nosum); +DDP_ACC(badsum); +DDP_ACC(tooshort); +DDP_ACC(toosmall); +DDP_ACC(forward); +DDP_ACC(encap); +DDP_ACC(cantforward); +DDP_ACC(nosockspace); +#undef DDP_ACC -u_int64_t -netstat_tcps_get_usedrttvar(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_usedrttvar); -} -u_int64_t -netstat_tcps_get_usedssthresh(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_usedssthresh); -} - -u_int64_t -netstat_tcps_get_persistdrop(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_persistdrop); -} - -u_int64_t -netstat_tcps_get_badsyn(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_badsyn); -} - -u_int64_t -netstat_tcps_get_mturesent(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_mturesent); -} - -u_int64_t -netstat_tcps_get_listendrop(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_listendrop); -} - -u_int64_t -netstat_tcps_get_badrst(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_badrst); -} - -u_int64_t -netstat_tcps_get_sc_added(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_added); -} - -u_int64_t -netstat_tcps_get_sc_retransmitted(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_retransmitted); -} - -u_int64_t -netstat_tcps_get_sc_dupsyn(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_dupsyn); -} - -u_int64_t -netstat_tcps_get_sc_dropped(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_dropped); -} - -u_int64_t -netstat_tcps_get_sc_completed(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_completed); -} - -u_int64_t -netstat_tcps_get_sc_bucketoverflow(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_bucketoverflow); -} - -u_int64_t -netstat_tcps_get_sc_cacheoverflow(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_cacheoverflow); -} - -u_int64_t -netstat_tcps_get_sc_reset(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_reset); -} - -u_int64_t -netstat_tcps_get_sc_stale(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_stale); -} - -u_int64_t -netstat_tcps_get_sc_aborted(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_aborted); -} - -u_int64_t -netstat_tcps_get_sc_badack(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_badack); -} - -u_int64_t -netstat_tcps_get_sc_unreach(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_unreach); -} - -u_int64_t -netstat_tcps_get_sc_zonefail(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_zonefail); -} - -u_int64_t -netstat_tcps_get_sc_sendcookie(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_sendcookie); -} - -u_int64_t -netstat_tcps_get_sc_recvcookie(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sc_recvcookie); -} - -u_int64_t -netstat_tcps_get_hc_added(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_hc_added); -} - -u_int64_t -netstat_tcps_get_hc_bucketoverflow(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_hc_bucketoverflow); -} - -u_int64_t -netstat_tcps_get_finwait2_drops(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_finwait2_drops); -} - -u_int64_t -netstat_tcps_get_sack_recovery_episode(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sack_recovery_episode); -} - -u_int64_t -netstat_tcps_get_sack_rexmits(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sack_rexmits); -} - -u_int64_t -netstat_tcps_get_sack_rexmit_bytes(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sack_rexmit_bytes); -} - -u_int64_t -netstat_tcps_get_sack_rcv_blocks(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sack_rcv_blocks); -} - -u_int64_t -netstat_tcps_get_sack_send_blocks(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sack_send_blocks); -} - -u_int64_t -netstat_tcps_get_sack_sboverflow(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_sack_sboverflow); -} - -u_int64_t -netstat_tcps_get_ecn_ce(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_ecn_ce); -} - -u_int64_t -netstat_tcps_get_ecn_ect0(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_ecn_ect0); -} - -u_int64_t -netstat_tcps_get_ecn_ect1(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_ecn_ect1); -} - -u_int64_t -netstat_tcps_get_ecn_shs(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_ecn_shs); -} - -u_int64_t -netstat_tcps_get_ecn_rcwnd(const struct tcp_stat *tsp) -{ - return (tsp->s.tcps_ecn_rcwnd); -} - -const struct udp_stat * -netstat_get_udpstats(const struct stat_type *sttp) -{ - if (sttp->stt_type == stat_UDP) { - return ((const struct udp_stat *) sttp->stt_data); - } - return (NULL); -} - -u_int64_t -netstat_udps_get_ipackets(const struct udp_stat *usp) -{ - return (usp->s.udps_ipackets); -} - -u_int64_t -netstat_udps_get_hdrops(const struct udp_stat *usp) -{ - return (usp->s.udps_hdrops); -} - -u_int64_t -netstat_udps_get_badsum(const struct udp_stat *usp) -{ - return (usp->s.udps_badsum); -} - -u_int64_t -netstat_udps_get_nosum(const struct udp_stat *usp) -{ - return (usp->s.udps_nosum); -} - -u_int64_t -netstat_udps_get_badlen(const struct udp_stat *usp) -{ - return (usp->s.udps_badlen); -} - -u_int64_t -netstat_udps_get_noport(const struct udp_stat *usp) -{ - return (usp->s.udps_noport); -} - -u_int64_t -netstat_udps_get_noportbcast(const struct udp_stat *usp) -{ - return (usp->s.udps_noportbcast); -} - -u_int64_t -netstat_udps_get_fullsock(const struct udp_stat *usp) -{ - return (usp->s.udps_fullsock); -} - -u_int64_t -netstat_udps_get_pcbcachemiss(const struct udp_stat *usp) -{ - return (usp->s.udpps_pcbcachemiss); -} - -u_int64_t -netstat_udps_get_pcbhashmiss(const struct udp_stat *usp) -{ - return (usp->s.udpps_pcbhashmiss); -} - -u_int64_t -netstat_udps_get_delivered(const struct udp_stat *usp) -{ - return (usp->s.udps_delivered); -} - -u_int64_t -netstat_udps_get_opackets(const struct udp_stat *usp) -{ - return (usp->s.udps_opackets); -} - -u_int64_t -netstat_udps_get_fastout(const struct udp_stat *usp) -{ - return (usp->s.udps_fastout); -} - -u_int64_t -netstat_udps_get_noportmcast(const struct udp_stat *usp) -{ - return (usp->s.udps_noportmcast); -} - -u_int64_t -netstat_udps_get_filtermcast(const struct udp_stat *usp) -{ - return (usp->s.udps_filtermcast); -} - -const struct carp_stat * -netstat_get_carpstats(const struct stat_type *sttp) -{ - if (sttp->stt_type == stat_CARP) { - return ((const struct carp_stat *) sttp->stt_data); - } - return (NULL); -} - -u_int64_t -netstat_carps_get_ipackets(const struct carp_stat *csp) -{ - return (csp->s.carps_ipackets); -} - -u_int64_t -netstat_carps_get_ipackets6(const struct carp_stat *csp) -{ - return (csp->s.carps_ipackets6); -} - -u_int64_t -netstat_carps_get_badif(const struct carp_stat *csp) -{ - return (csp->s.carps_badif); -} - -u_int64_t -netstat_carps_get_badttl(const struct carp_stat *csp) -{ - return (csp->s.carps_badttl); -} - -u_int64_t -netstat_carps_get_hdrops(const struct carp_stat *csp) -{ - return (csp->s.carps_hdrops); -} - -u_int64_t -netstat_carps_get_badsum(const struct carp_stat *csp) -{ - return (csp->s.carps_badsum); -} - -u_int64_t -netstat_carps_get_badver(const struct carp_stat *csp) -{ - return (csp->s.carps_badver); -} >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jul 29 07:24:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1B5071065677; Wed, 29 Jul 2009 07:24: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 CCDA31065670 for ; Wed, 29 Jul 2009 07:24:20 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BB0268FC12 for ; Wed, 29 Jul 2009 07:24:20 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6T7OKBL017956 for ; Wed, 29 Jul 2009 07:24:20 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6T7OKJY017954 for perforce@freebsd.org; Wed, 29 Jul 2009 07:24:20 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 29 Jul 2009 07:24:20 GMT Message-Id: <200907290724.n6T7OKJY017954@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166718 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 07:24:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=166718 Change 166718 by hselasky@hselasky_laptop001 on 2009/07/29 07:23:25 USB storage: - add quirk PR: usb/137226 Affected files ... .. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#27 edit .. //depot/projects/usb/src/sys/dev/usb/usbdevs#70 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/storage/umass.c#27 (text+ko) ==== @@ -733,6 +733,10 @@ UMASS_PROTO_UFI, NO_QUIRKS }, + { USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_SPE3030CC, RID_WILDCARD, + UMASS_PROTO_DEFAULT, + NO_SYNCHRONIZE_CACHE + }, {USB_VENDOR_PLEXTOR, USB_PRODUCT_PLEXTOR_40_12_40U, RID_WILDCARD, UMASS_PROTO_SCSI | UMASS_PROTO_BBB, NO_TEST_UNIT_READY ==== //depot/projects/usb/src/sys/dev/usb/usbdevs#70 (text+ko) ==== @@ -1972,6 +1972,7 @@ product PHILIPS PCA646VC 0x0303 PCA646VC PC Camera product PHILIPS PCVC680K 0x0308 PCVC680K Vesta Pro PC Camera product PHILIPS DSS150 0x0471 DSS 150 Digital Speaker System +product PHILIPS SPE3030CC 0x083a USB 2.0 External Disk product PHILIPS SNU5600 0x1236 SNU5600 product PHILIPS UM10016 0x1552 ISP 1581 Hi-Speed USB MPEG2 Encoder Reference Kit product PHILIPS DIVAUSB 0x1801 DIVA USB mp3 player From owner-p4-projects@FreeBSD.ORG Wed Jul 29 08:17:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 933A81065672; Wed, 29 Jul 2009 08:17:20 +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 51D001065670 for ; Wed, 29 Jul 2009 08:17:20 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3E4C48FC18 for ; Wed, 29 Jul 2009 08:17:20 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6T8HITK023092 for ; Wed, 29 Jul 2009 08:17:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6T8HIYL023090 for perforce@freebsd.org; Wed, 29 Jul 2009 08:17:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 29 Jul 2009 08:17:18 GMT Message-Id: <200907290817.n6T8HIYL023090@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166721 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 08:17:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=166721 Change 166721 by rwatson@rwatson_freebsd_capabilities on 2009/07/29 08:17:11 Fix typos. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/cap_enter.2#5 edit .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld-elf-cap.1#8 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/cap_enter.2#5 (text+ko) ==== @@ -56,7 +56,7 @@ prevented. If the process is already in a capability mode sandbox, the system call is a no-op. -Future process descendents create with +Future process descendants create with .Xr fork 2 or .Xr pdfork 2 ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld-elf-cap.1#8 (text+ko) ==== @@ -67,8 +67,8 @@ .It Interprets the .Dv LD_CAPLIBINDEX -environmental variable set by sandbox start touines, and implements -.Fn ld_capibindex_lookup , +environmental variable set by sandbox start routines, and implements +.Fn ld_caplibindex_lookup , allowing file descriptors for binaries and libraries passed across .Xr fexecve 2 to be used by From owner-p4-projects@FreeBSD.ORG Wed Jul 29 08:41:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 193C41065679; Wed, 29 Jul 2009 08:41: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 C71CC1065673 for ; Wed, 29 Jul 2009 08:41:45 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B412C8FC18 for ; Wed, 29 Jul 2009 08:41:45 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6T8fjTX025081 for ; Wed, 29 Jul 2009 08:41:45 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6T8fjqI025079 for perforce@freebsd.org; Wed, 29 Jul 2009 08:41:45 GMT (envelope-from syl@FreeBSD.org) Date: Wed, 29 Jul 2009 08:41:45 GMT Message-Id: <200907290841.n6T8fjqI025079@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166722 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 08:41:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=166722 Change 166722 by syl@syl_twoflowers on 2009/07/29 08:41:13 Implement test and proposition part of the report. Affected files ... .. //depot/projects/soc2009/syl_usb/hps_report/DifferentAPI.tex#2 edit .. //depot/projects/soc2009/syl_usb/hps_report/GenericCode.tex#3 edit .. //depot/projects/soc2009/syl_usb/hps_report/Proposition.tex#2 edit .. //depot/projects/soc2009/syl_usb/hps_report/SomeTests.tex#2 edit .. //depot/projects/soc2009/syl_usb/hps_report/report.tex#2 edit Differences ... ==== //depot/projects/soc2009/syl_usb/hps_report/DifferentAPI.tex#2 (text+ko) ==== @@ -1,7 +1,7 @@ \chapter{Differents APIs} Only three portable Operating System have a USB Function Stack. In this chapter we will focus on the different API for Adding a -new Device Controler Interface on Linux Windows CE and FreeBSD. +new Device Controler Interface on Linux, Windows CE and FreeBSD. \section{Linux} @@ -162,7 +162,7 @@ The code is in dev/usb/usb\_controller.h. FreeBSD use the same structure for both Host and Device Controllers Interfaces. An USB DCI must implement an usb\_bus\_methods structure. These - structure is share between DCI and HCI. + structure are shared between DCI and HCI. \begin{lstlisting} struct usb_bus_methods { @@ -217,7 +217,7 @@ }; \end{lstlisting} - Concerning endpoint FreeBSD us usb\_pipe\_methods structure. + Concerning endpoint FreeBSD use usb\_pipe\_methods structure. \begin{lstlisting} /* @@ -240,8 +240,10 @@ void *info; }; \end{lstlisting} - For describing possibilities of the differennt endpoints contain by the xCI - FreeBSD have the structure usb\_hw\_ep\_profile. + + For describing possibilities of the different endpoints contained + by the xCI FreeBSD have the structure usb\_hw\_ep\_profile. + \begin{lstlisting} /* * The following structure keeps information about what a hardware USB ==== //depot/projects/soc2009/syl_usb/hps_report/GenericCode.tex#3 (text+ko) ==== @@ -10,8 +10,9 @@ diff -uNp at91dci.c s3c24xxdci.c \end{lstlisting} - We can see that only few function are different from a driver to another. - The code different is specific to the Hardware. Lets us describes this functions : + We can see that only few functions are different from a driver to another. + The different code is most of the time Hardware specific. Lets us describes + these functions : \section{Hardware Dependant Code} @@ -56,11 +57,13 @@ - xxxdci\_start\_standard\_chain - Concerning clock\_on, clock\_off, pull\_up, pull\_down, wakeup\_peer can be a little bit - factorised. A big part of this function do not move we can create a generic function called - directly after or before Hardware changes. Perhaps there is also something that could be - factorised in xxxdci\_uninit if there are not other possible access that interrupt disabling - in it. + Clock\_on, clock\_off, pull\_up, pull\_down, wakeup\_peer can be + factorised. A big part of this function do not move and we can create + a generic function called directly after or before Hardware changes. + + Perhaps there is also something that could be factorised in xxxdci\_uninit + if there are not other possible access to the Hardware that interrupt disabling + in this function. There are pehaps something to do with xxxdci\_device\_done and xxxdci\_start\_standard\_chain beacuse the only hardware code present int this function just enable Endpoint interrupt. @@ -95,3 +98,68 @@ - xxxdci\_xfer\_do\_fifo + xxdci\_ep\_init and xxxdci\_xfer\_setup are more or less generic. The only change we can have + between 2 controller afecting this function is the support or no of asynchronous endpoints. + This problem could be resolved if we parse xxxdci\_ep\_profile to know if the device support + asynchronous endpoints. + + All the HUB descriptor code are the same between the controller drivers. We can easily factorise it + without performance modification. + + There is some big change on the way to handle basic control request like GET\_STATUS etc. Linux and + Wince seems to handle That on a generic file who perform basic request during the configuration process. + In FreeBSD all these functionality are present in the controlleur code in the function roothub\_exec. + This function looks like the same on each controller. + + There is something for factorising the code for xxxdci\_device\_XXX\_methods. I have implemented it + on s3c24xxxdci driver this way : + + \begin{lstlisting} + /* + * s3c24xxdci ctrl/bulk/intr support + */ + + static void + s3c24dci_device_dummy(struct usb_xfer *xfer) + { + return ; + } + + static void + s3c24dci_device_xxx_start(struct usb_xfer *xfer) + { + s3c24dci_setup_standard_chain(xfer); + s3c24dci_start_standard_chain(xfer); + return ; + } + + static void + s3c24dci_device_xxx_close(struct usb_xfer *xfer) + { + s3c24dci_device_done(xfer, USB_ERR_CANCELLED); + return ; + } + + struct usb_pipe_methods s3c24dci_device_ctrl_methods = { + .open = s3c24dci_device_dummy, + .enter = s3c24dci_device_dummy, + .close = s3c24dci_device_xxx_close, + .start = s3c24dci_device_xxx_start, + }; + + struct usb_pipe_methods s3c24dci_device_bulk_methods = { + .open = s3c24dci_device_dummy, + .enter = s3c24dci_device_dummy, + .close = s3c24dci_device_xxx_close, + .start = s3c24dci_device_xxx_start, + }; + + struct usb_pipe_methods s3c24dci_device_intr_methods = { + .open = s3c24dci_device_dummy, + .enter = s3c24dci_device_dummy, + .close = s3c24dci_device_xxx_close, + .start = s3c24dci_device_xxx_start, + }; + \end{lstlisting} + + All the others functions seems to be generic. ==== //depot/projects/soc2009/syl_usb/hps_report/Proposition.tex#2 (text+ko) ==== @@ -1,1 +1,37 @@ \chapter{What can be done ?} + \section{HUB Descriptor} + + A good solution to factorise the USB descriptors is to add + another entry in the directory for HUB descripors. + /src/sys/dev/usb/template/ + + We implement this file like this one : + + /src/sys/dev/usb/template/usb\_template\_cdce.c + + \section{xxxdci\_device\_XXX\_methods} + + We can factorize some code on each driver with simply adding in a .h + something like that: + + \begin{lstlisting} +static inline void +dci_device_dummy ( struct usb_xfer * xfer ) +{ + return ; +} + \end{lstlisting} + + With this Change we can easily implement the xxxdci\_device\_XXX\_methods + with less code following the mothod used for the s3c2xxdci implementation. + + \section{roothub} + We can Create A GenericRootHub function who will takes a + struct with callback as parameters. + + It will permit the driver to implement roothub\_exec or call + GenericRootHub. + + \section{other generic functions} + + I Have no idea now how to factorise them, but any advices are welcome ! ==== //depot/projects/soc2009/syl_usb/hps_report/SomeTests.tex#2 (text+ko) ==== @@ -1,2 +1,162 @@ \chapter{Test} - \section{callback versus switch} + +Here is the result of some test used for finding the best implementation +for the Improvement into USB. + + \section{ops structure Versus Simple call} + + \begin{lstlisting} + +#include + +struct fops { + void (*f)(int i); +}; + +void +toto(int i) +{ + printf("%i\n", i); +} + +struct fops fops = + { + .f = &toto + }; + +int main() +{ + __asm("nop"); + __asm("nop"); + __asm("nop"); + __asm("nop"); + toto(42); + __asm("nop"); + __asm("nop"); + __asm("nop"); + __asm("nop"); + fops.f(42); +} + \end{lstlisting} + + Here is the assembly done by this code for x86. + + \begin{lstlisting} + 80483d4: 90 nop + 80483d5: 90 nop + 80483d6: 90 nop + 80483d7: 90 nop + 80483d8: c7 04 24 2a 00 00 00 movl $0x2a,(%esp) + 80483df: e8 c0 ff ff ff call 80483a4 + 80483e4: 90 nop + 80483e5: 90 nop + 80483e6: 90 nop + 80483e7: 90 nop + 80483e8: a1 e0 95 04 08 mov 0x80495e0,%eax + 80483ed: c7 04 24 2a 00 00 00 movl $0x2a,(%esp) + 80483f4: ff d0 call *%eax + \end{lstlisting} + + Here is the assembly done by this code for armv4i + + \begin{lstlisting} + 84ac: e1a00000 nop (mov r0,r0) + 84b0: e1a00000 nop (mov r0,r0) + 84b4: e1a00000 nop (mov r0,r0) + 84b8: e1a00000 nop (mov r0,r0) + 84bc: e3a0002a mov r0, #42 ; 0x2a + 84c0: ebffffe5 bl 845c + 84c4: e1a00000 nop (mov r0,r0) + 84c8: e1a00000 nop (mov r0,r0) + 84cc: e1a00000 nop (mov r0,r0) + 84d0: e1a00000 nop (mov r0,r0) + 84d4: e59f3028 ldr r3, [pc, #40] ; 8504 + 84d8: e5933000 ldr r3, [r3] + 84dc: e3a0002a mov r0, #42 ; 0x2a + 84e0: e1a0e00f mov lr, pc + 84e4: e12fff13 bx r3 + \end{lstlisting} + + \section{Single demultiplex vs multiple demultiplex} + + Finally there is no great difference between callbacks and simple call. + + \begin{lstlisting} +int +switcha(int toto) +{ + switch(toto) { + case 3: + break ; + case 4: + break ; + } + +} + +int +switchb(int toto) +{ + switch(toto) { + case 5: + break ; + case 6: + break ; + } +} + +int +multipleswitch(int toto) +{ + __asm("nop"); + __asm("nop"); + switch(toto) { + case 1: + switcha(toto -2 ); + break; + case 2: + switchb(toto - 4); + break; + } + __asm("nop"); + __asm("nop"); +} + +int +singleswitch(int toto) +{ + __asm("nop"); + __asm("nop"); + switch (toto) { + case 1: + switch (toto - 2) { + case 3: + break ; + case 4: + break ; + } + break ; + case 2: + switch(toto -4) { + case 5: + break ; + case 6: + break ; + } + break ; + } + __asm("nop"); + __asm("nop"); +} + +int +main() +{ + singleswitch(a); + singleswitch(b); +} + \end{lstlisting} + + With this code gcc dump exactly the same switch function that do nothing. + But for the multipleswitch the functionn switcha and switchb are also generated. + ==== //depot/projects/soc2009/syl_usb/hps_report/report.tex#2 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Wed Jul 29 08:49:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DC9651065687; Wed, 29 Jul 2009 08:49:14 +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 911931065696; Wed, 29 Jul 2009 08:49:14 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe01.swip.net [212.247.154.1]) by mx1.freebsd.org (Postfix) with ESMTP id F21528FC16; Wed, 29 Jul 2009 08:49:13 +0000 (UTC) (envelope-from hselasky@c2i.net) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.0 c=1 a=yIHwHit2HLUA:10 a=gg2W7PyvkLb8p4ie143lBA==:17 a=O-myITiocoLbCjUuXxsA:9 a=sDYw2sErWzcax-xO6kP50H2-4EgA:4 Received: from [194.248.135.20] (account mc467741@c2i.net HELO laptop.adsl.tele2.no) by mailfe01.swip.net (CommuniGate Pro SMTP 5.2.13) with ESMTPA id 232251613; Wed, 29 Jul 2009 10:49:12 +0200 From: Hans Petter Selasky To: Sylvestre Gallon Date: Wed, 29 Jul 2009 10:49:06 +0200 User-Agent: KMail/1.11.4 (FreeBSD/8.0-BETA2; KDE/4.2.4; i386; ; ) References: <200907290841.n6T8fjqI025079@repoman.freebsd.org> In-Reply-To: <200907290841.n6T8fjqI025079@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200907291049.07162.hselasky@c2i.net> Cc: Perforce Change Reviews Subject: Re: PERFORCE change 166722 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 08:49:16 -0000 On Wednesday 29 July 2009 10:41:45 Sylvestre Gallon wrote: > + With this code gcc dump exactly the same switch function > that do nothing. + But for the multipleswitch the functionn > switcha and switchb are also generated. If you put a "static" into the function declaration, will gcc remove those functions? Also, what happens when switch statements have more spread values than 1,2,3,4 ? E.g. 1,2,3,100,101,102,500,501,502 ... --HPS From owner-p4-projects@FreeBSD.ORG Wed Jul 29 09:16:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4354A1065674; Wed, 29 Jul 2009 09:16:03 +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 EF1441065672 for ; Wed, 29 Jul 2009 09:16:02 +0000 (UTC) (envelope-from ccna.syl@gmail.com) Received: from mail-yx0-f181.google.com (mail-yx0-f181.google.com [209.85.210.181]) by mx1.freebsd.org (Postfix) with ESMTP id A89948FC0C for ; Wed, 29 Jul 2009 09:16:02 +0000 (UTC) (envelope-from ccna.syl@gmail.com) Received: by yxe11 with SMTP id 11so1137037yxe.3 for ; Wed, 29 Jul 2009 02:16:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :from:date:message-id:subject:to:cc:content-type :content-transfer-encoding; bh=UCE3qQPTkHFq7/Gfu75ObchT6hBdxXRzJXpYL5BM4M8=; b=oCZjKsNiCAishNpKsZLwNU+d3d3aYdNI4OBzEyKhUB/z2a04jpgNeJHGu+cPTpvHY1 zIG62mQQHVC7LFQ+GPhZhA+TN5f9LNJ3N5WOTLAanvEBUBgr1Z4hIrnJSKETpq0Lzldf b51JnXqBfFixIDbxVTkjlKPVd+EftOA3xc4fE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; b=pu9+HvSFv7ByhTOPMMV2CGo7TW9PGCy5GLwtBR9AwGXOakZ5b6DWDbGS7HFEeOfm5x /Va+UF8tKdWfH0E6ei4NHUXXKVqJPFFFXKOjPKwzitUl2Zz0V3vvXcx3/yoD1OPAqdy6 Wmo1FKR0ZWQOE362oZ1VQ/OGMRX1e0BzGFi2o= MIME-Version: 1.0 Received: by 10.231.37.73 with SMTP id w9mr2773979ibd.2.1248857637071; Wed, 29 Jul 2009 01:53:57 -0700 (PDT) In-Reply-To: <200907291049.07162.hselasky@c2i.net> References: <200907290841.n6T8fjqI025079@repoman.freebsd.org> <200907291049.07162.hselasky@c2i.net> From: Sylvestre Gallon Date: Wed, 29 Jul 2009 10:53:37 +0200 Message-ID: <164b4c9c0907290153q1585390p4f4bb54045edf152@mail.gmail.com> To: Hans Petter Selasky Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Perforce Change Reviews Subject: Re: PERFORCE change 166722 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 09:16:04 -0000 On Wed, Jul 29, 2009 at 10:49 AM, Hans Petter Selasky wro= te: > On Wednesday 29 July 2009 10:41:45 Sylvestre Gallon wrote: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 With this code gcc dump exactly the same s= witch function >> that do nothing. + =A0 =A0 =A0 =A0 =A0 =A0 =A0 But for the multipleswitc= h the functionn >> switcha and switchb are also generated. > > If you put a "static" into the function declaration, will gcc remove thos= e > functions? > > Also, what happens when switch statements have more spread values than 1,= 2,3,4 > ? > > E.g. 1,2,3,100,101,102,500,501,502 ... > > --HPS > I will update the report following you advices. Cheers, --=20 Sylvestre Gallon (http://devsyl.blogspot.com) Fifth Grade Student @ Epitech & Researcher @ LSE R&D @ Rathaxes (http://www.rathaxes.org) From owner-p4-projects@FreeBSD.ORG Wed Jul 29 11:44:08 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B8C65106567A; Wed, 29 Jul 2009 11:44:08 +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 766B6106564A for ; Wed, 29 Jul 2009 11:44:08 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 651C48FC1A for ; Wed, 29 Jul 2009 11:44:08 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6TBi8T4051880 for ; Wed, 29 Jul 2009 11:44:08 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6TBi8i0051878 for perforce@freebsd.org; Wed, 29 Jul 2009 11:44:08 GMT (envelope-from jhb@freebsd.org) Date: Wed, 29 Jul 2009 11:44:08 GMT Message-Id: <200907291144.n6TBi8i0051878@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166728 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 11:44:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=166728 Change 166728 by jhb@jhb_jhbbsd on 2009/07/29 11:43:49 Address a LOR between vnode locks and the filedesc lock. The normal order is filedesc -> vnode (e.g. in the poll() system call). In this case, mountcheckdirs() doesn't actually need the vnodes in question locked, it just needs them referenced, so we can safely drop the vnode locks before mountcheckdirs() rather than after. Affected files ... .. //depot/projects/smpng/sys/kern/vfs_mount.c#97 edit Differences ... ==== //depot/projects/smpng/sys/kern/vfs_mount.c#97 (text+ko) ==== @@ -1069,9 +1069,10 @@ vfs_event_signal(NULL, VQ_MOUNT, 0); if (VFS_ROOT(mp, LK_EXCLUSIVE, &newdp)) panic("mount: lost mount"); + VOP_UNLOCK(newdp, 0); + VOP_UNLOCK(vp, 0); mountcheckdirs(vp, newdp); - vput(newdp); - VOP_UNLOCK(vp, 0); + vrele(newdp); if ((mp->mnt_flag & MNT_RDONLY) == 0) error = vfs_allocate_syncvnode(mp); vfs_unbusy(mp); From owner-p4-projects@FreeBSD.ORG Wed Jul 29 12:50:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D2C4D1065673; Wed, 29 Jul 2009 12:50:30 +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 8EECE106566B for ; Wed, 29 Jul 2009 12:50:30 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7AC7F8FC0A for ; Wed, 29 Jul 2009 12:50:30 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6TCoU03067633 for ; Wed, 29 Jul 2009 12:50:30 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6TCoKJw067623 for perforce@freebsd.org; Wed, 29 Jul 2009 12:50:20 GMT (envelope-from truncs@FreeBSD.org) Date: Wed, 29 Jul 2009 12:50:20 GMT Message-Id: <200907291250.n6TCoKJw067623@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 166729 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 12:50:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=166729 Change 166729 by truncs@aditya on 2009/07/29 12:49:52 IFC. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/acpica/acpi_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/acpica/acpi_wakeup.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/acpica/madt.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/cpu_switch.S#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/exception.S#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/genassym.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/identcpu.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/initcpu.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/intr_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/io_apic.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/local_apic.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/machdep.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/mp_machdep.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/msi.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/pmap.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/support.S#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/sys_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/amd64/vm_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/conf/DEFAULTS#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/conf/GENERIC#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/conf/GENERIC.hints#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/conf/NOTES#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/ia32/ia32_exception.S#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/ia32/ia32_reg.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/ia32/ia32_signal.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/include/cpufunc.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/include/intr_machdep.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/include/md_var.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/include/param.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/include/pcb.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/include/pmap.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/include/vm.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/isa/atpic.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/isa/clock.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/linux32/linux32_sysvec.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/amd64/pci/pci_bus.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/arm/busdma_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/arm/cpufunc.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/arm/elf_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/arm/elf_trampoline.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/arm/intr.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/arm/locore.S#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/arm/pmap.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/arm/vm_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/at91/at91.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/at91/at91_cfata.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/at91/at91_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/at91/at91_mci.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/at91/at91_twi.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/at91/if_ate.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/conf/AVILA#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/conf/AVILA.hints#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/conf/CAMBRIA#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/conf/CAMBRIA.hints#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/conf/DB-78XXX#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/conf/DB-88F5XXX#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/conf/DB-88F6XXX#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/include/intr.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/include/param.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/include/pmap.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/include/vm.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/common.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/discovery/db78xxx.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/discovery/discovery.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/files.mv#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/ic.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/kirkwood/db88f6xxx.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/kirkwood/kirkwood.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/mv_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/mv_sata.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/mvreg.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/mvwin.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/orion/db88f5xxx.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/orion/orion.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/mv/twsi.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/sa11x0/assabet_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/sa11x0/sa11x0_irqhandler.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/i80321/ep80219_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/i80321/i80321.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/i80321/i80321_pci.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/i80321/iq31244_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/i8134x/crb_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/i8134x/i81342.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/avila_ata.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/avila_led.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/avila_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/cambria_exp_space.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/cambria_led.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/files.avila#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/if_npe.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/ixp425.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/ixp425_iic.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/ixp425_npe.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/ixp425_npereg.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/ixp425reg.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/ixp425var.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/ixp425/uart_bus_ixp425.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/pxa/pxa_icu.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/arm/xscale/pxa/pxa_machdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/boot/forth/loader.conf#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/boot/i386/libi386/Makefile#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/boot/i386/libi386/biosacpi.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/boot/i386/libi386/biosdisk.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/boot/i386/libi386/biospnp.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/boot/ia64/ski/acpi_stub.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/boot/powerpc/uboot/version#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/bsm/audit.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/bsm/audit_kevents.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/ata/ata_all.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/ata/ata_all.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/ata/ata_da.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/ata/ata_xpt.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/cam.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/cam.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/cam_ccb.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/cam_periph.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/cam_periph.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/cam_xpt.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/cam_xpt.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/cam_xpt_internal.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/cam_xpt_periph.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/scsi/scsi_all.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/scsi/scsi_cd.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/scsi/scsi_ch.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/scsi/scsi_da.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/scsi/scsi_pass.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/scsi/scsi_pt.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/scsi/scsi_sa.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/scsi/scsi_ses.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/scsi/scsi_sg.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/scsi/scsi_target.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cam/scsi/scsi_xpt.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/compat/opensolaris/kern/opensolaris.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/compat/opensolaris/sys/sig.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/compat/opensolaris/sys/vnode.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/dev/dtrace/amd64/dtrace_isa.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/dev/dtrace/amd64/dtrace_subr.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/cddl/dev/dtrace/i386/dtrace_subr.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/freebsd32/freebsd32_ipc.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/freebsd32/freebsd32_misc.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/freebsd32/freebsd32_proto.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/freebsd32/freebsd32_syscall.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/freebsd32/freebsd32_syscalls.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/freebsd32/freebsd32_sysent.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/freebsd32/syscalls.master#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/linprocfs/linprocfs.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/linux/linux_file.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/linux/linux_futex.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/linux/linux_getcwd.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/linux/linux_ioctl.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/linux/linux_ipc.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/linux/linux_mib.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/linux/linux_misc.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/linux/linux_signal.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/linux/linux_socket.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/linux/linux_stats.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/linux/linux_uid16.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/ndis/kern_ndis.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/ndis/subr_ndis.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/ndis/subr_usbd.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/svr4/svr4_fcntl.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/svr4/svr4_ipc.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/svr4/svr4_misc.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/svr4/svr4_sockio.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/compat/svr4/svr4_stat.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/conf/NOTES#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/conf/files#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/conf/files.amd64#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/conf/files.i386#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/conf/files.powerpc#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/conf/kmod.mk#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/conf/newvers.sh#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/conf/options#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/altq/altq/altq_subr.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/CHANGES.txt#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acapps.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acconfig.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acdebug.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acdisasm.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acdispat.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acefi.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acenv.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acevents.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acexcep.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acfreebsd.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acgcc.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acglobal.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/achware.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acinterp.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/aclocal.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acmacros.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acnames.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acnamesp.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acobject.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acopcode.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acoutput.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acparser.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acpi.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acpica_prep.sh#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acpiosxf.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acpixf.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acresrc.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acstruct.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/actables.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/actbl.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/actbl1.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/actbl2.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/actypes.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/acutils.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/aecommon.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/amlcode.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/amlresrc.h#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/changes.txt#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/common/adfile.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/common/adisasm.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/common/adwalk.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/common/dmrestag.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/common/dmtable.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/common/dmtbdump.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/common/dmtbinfo.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/common/getopt.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslanalyze.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslcodegen.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslcompile.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslcompiler.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslcompiler.l#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslcompiler.y#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/asldefine.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslerror.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslfiles.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslfold.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslglobal.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/asllength.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/asllisting.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslload.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/asllookup.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslmain.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslmap.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslopcodes.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/asloperands.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslopt.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslresource.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslrestype1.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslrestype2.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslstartup.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslstubs.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/asltransform.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/asltree.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/asltypes.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/compiler/aslutils.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dbcmds.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dbdisply.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dbexec.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dbfileio.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dbhistry.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dbinput.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dbstats.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dbutils.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dbxface.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/debugger/dbcmds.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/debugger/dbdisply.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/debugger/dbexec.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/debugger/dbfileio.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/debugger/dbhistry.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/debugger/dbinput.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/debugger/dbstats.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/debugger/dbutils.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/debugger/dbxface.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/disassembler/dmbuffer.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/disassembler/dmnames.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/disassembler/dmobject.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/disassembler/dmopcode.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/disassembler/dmresrc.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/disassembler/dmresrcl.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/disassembler/dmresrcs.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/disassembler/dmutils.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/disassembler/dmwalk.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dispatcher/dsfield.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dispatcher/dsinit.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dispatcher/dsmethod.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dispatcher/dsmthdat.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dispatcher/dsobject.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dispatcher/dsopcode.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dispatcher/dsutils.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dispatcher/dswexec.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dispatcher/dswload.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dispatcher/dswscope.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dispatcher/dswstate.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dmbuffer.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dmnames.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dmobject.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dmopcode.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dmresrc.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dmresrcl.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dmresrcs.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dmutils.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dmwalk.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dsfield.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dsinit.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dsmethod.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dsmthdat.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dsobject.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dsopcode.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dsutils.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dswexec.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dswload.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dswscope.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/dswstate.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/events/evevent.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/events/evgpe.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/events/evgpeblk.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/events/evmisc.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/events/evregion.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/events/evrgnini.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/events/evsci.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/events/evxface.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/events/evxfevnt.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/events/evxfregn.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/evevent.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/evgpe.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/evgpeblk.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/evmisc.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/evregion.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/evrgnini.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/evsci.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/evxface.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/evxfevnt.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/evxfregn.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exconfig.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exconvrt.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/excreate.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exdump.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exconfig.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exconvrt.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/excreate.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exdump.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exfield.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exfldio.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exmisc.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exmutex.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exnames.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exoparg1.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exoparg2.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exoparg3.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exoparg6.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exprep.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exregion.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exresnte.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exresolv.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exresop.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exstore.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exstoren.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exstorob.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exsystem.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/executer/exutils.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exfield.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exfldio.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exmisc.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exmutex.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exnames.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exoparg1.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exoparg2.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exoparg3.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exoparg6.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exprep.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exregion.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exresnte.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exresolv.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exresop.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exstore.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exstoren.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exstorob.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exsystem.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/exutils.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/hardware/hwacpi.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/hardware/hwgpe.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/hardware/hwregs.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/hardware/hwsleep.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/hardware/hwtimer.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/hardware/hwvalid.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/hardware/hwxface.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/hwacpi.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/hwgpe.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/hwregs.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/hwsleep.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/hwtimer.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acapps.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/accommon.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acconfig.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acdebug.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acdisasm.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acdispat.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acevents.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acexcep.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acglobal.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/achware.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acinterp.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/aclocal.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acmacros.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acnames.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acnamesp.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acobject.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acopcode.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acoutput.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acparser.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acpi.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acpiosxf.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acpixf.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acpredef.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acresrc.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acrestyp.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acstruct.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/actables.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/actbl.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/actbl1.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/actypes.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/acutils.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/amlcode.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/amlresrc.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/platform/acenv.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/platform/acfreebsd.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/include/platform/acgcc.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nsaccess.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nsalloc.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nsdump.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nsdumpdv.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nseval.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nsinit.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nsload.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nsnames.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nsobject.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nsparse.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nspredef.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nssearch.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nsutils.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nswalk.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nsxfeval.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nsxfname.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/namespace/nsxfobj.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nsaccess.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nsalloc.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nsdump.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nsdumpdv.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nseval.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nsinit.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nsload.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nsnames.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nsobject.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nsparse.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nssearch.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nsutils.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nswalk.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nsxfeval.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nsxfname.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/nsxfobj.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/osunixxf.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/parser/psargs.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/parser/psloop.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/parser/psopcode.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/parser/psparse.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/parser/psscope.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/parser/pstree.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/parser/psutils.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/parser/pswalk.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/parser/psxface.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/psargs.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/psloop.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/psopcode.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/psparse.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/psscope.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/pstree.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/psutils.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/pswalk.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/psxface.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/resources/rsaddr.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/resources/rscalc.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/resources/rscreate.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/resources/rsdump.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/resources/rsinfo.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/resources/rsio.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/resources/rsirq.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/resources/rslist.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/resources/rsmemory.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/resources/rsmisc.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/resources/rsutils.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/resources/rsxface.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/rsaddr.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/rscalc.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/rscreate.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/rsdump.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/rsinfo.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/rsio.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/rsirq.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/rslist.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/rsmemory.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/rsmisc.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/rsutils.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/rsxface.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/tables/tbfadt.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/tables/tbfind.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/tables/tbinstal.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/tables/tbutils.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/tables/tbxface.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/tables/tbxfroot.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/tbfadt.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/tbfind.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/tbinstal.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/tbutils.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/tbxface.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/tbxfroot.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/tools/acpiexec/aecommon.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utalloc.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utcache.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utclib.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utcopy.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utdebug.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utdelete.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/uteval.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utglobal.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utalloc.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utcache.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utcopy.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utdebug.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utdelete.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/uteval.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utglobal.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utinit.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utlock.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utmath.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utmisc.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utmutex.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utobject.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utresrc.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utstate.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/uttrack.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utilities/utxface.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utinit.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utmath.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utmisc.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utmutex.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utobject.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utresrc.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utstate.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/uttrack.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/acpica/utxface.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/dev/mwl/mw88W8363.fw.uu#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/ngatm/netnatm/sig/sig_uni.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/pf/net/if_pflog.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/pf/net/pf.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/pf/net/pf_if.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/pf/net/pf_ioctl.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/pf/net/pf_subr.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/pf/net/pfvar.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/rdma/rdma_addr.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/contrib/rdma/rdma_cma.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/ddb/db_expr.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/ddb/db_sym.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/ddb/db_variables.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/ddb/db_variables.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/ddb/ddb.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/aac/aac_disk.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpi_support/acpi_aiboost.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpi_support/acpi_asus.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpi_support/acpi_fujitsu.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpi_support/acpi_hp.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpi_support/acpi_ibm.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpi_support/acpi_panasonic.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpi_support/acpi_sony.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpi_support/acpi_toshiba.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpi_support/acpi_wmi.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpi_support/acpi_wmi_if.m#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/Osd/OsdDebug.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/Osd/OsdHardware.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/Osd/OsdInterrupt.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/Osd/OsdMemory.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/Osd/OsdSchedule.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/Osd/OsdStream.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/Osd/OsdSynch.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/Osd/OsdTable.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_acad.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_battery.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_button.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_cmbat.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_cpu.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_dock.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_ec.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_hpet.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_if.m#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_isab.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_lid.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_package.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_pci.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_pci_link.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_pcib.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_pcib_acpi.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_pcib_pci.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_perf.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_powerres.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_quirk.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_resource.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_smbat.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_thermal.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_throttle.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_timer.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpi_video.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/acpica/acpivar.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/advansys/advansys.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/advansys/advlib.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ae/if_ae.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/age/if_age.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/agp/agp_ali.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/agp/agp_amd.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/agp/agp_ati.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/agp/agp_nvidia.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/agp/agp_sis.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ahci/ahci.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ahci/ahci.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/aic7xxx/aic79xx_osm.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/aic7xxx/aic7xxx_osm.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/alc/if_alc.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/alc/if_alcreg.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/alc/if_alcvar.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ale/if_ale.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/amd/amd.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/asmc/asmc.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/asmc/asmcvar.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/ata-all.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/ata-all.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/ata-dma.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/ata-pci.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/ata-sata.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/ata-usb.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/atapi-cam.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/atapi-cd.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-acard.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-acerlabs.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-adaptec.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-ahci.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-amd.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-ati.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-cenatek.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-cypress.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-cyrix.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-highpoint.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-intel.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-ite.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-jmicron.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-marvell.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-micron.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-national.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-netcell.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-nvidia.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-promise.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-serverworks.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-siliconimage.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-sis.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ata/chipsets/ata-via.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/ah_osdep.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/ah_osdep.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/ath_hal/ah.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/ath_hal/ah.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/ath_hal/ah_desc.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/ath_hal/ah_internal.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/ath_rate/sample/sample.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/if_ath.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ath/if_athvar.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/bce/if_bce.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/bce/if_bcereg.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/bfe/if_bfe.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/bge/if_bge.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/bm/if_bm.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cas/if_cas.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cas/if_casreg.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cas/if_casvar.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ce/if_ce.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cfi/cfi_core.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ciss/ciss.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ciss/cissvar.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cp/if_cp.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cpuctl/cpuctl.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cs/if_cs.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ctau/if_ct.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cx/if_cx.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cxgb/common/cxgb_t3_cpl.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cxgb/cxgb_adapter.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cxgb/cxgb_main.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cxgb/cxgb_multiq.c#3 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cxgb/cxgb_osdep.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cxgb/cxgb_sge.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cxgb/sys/cxgb_support.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cxgb/sys/mvec.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cxgb/sys/uipc_mvec.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/dc/if_dc.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/de/if_de.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/drmP.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/drm_bufs.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/drm_context.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/drm_drv.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/drm_irq.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/drm_pciids.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/drm_sysctl.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/i915_dma.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/i915_drv.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/i915_drv.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/i915_irq.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/r600_cp.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/radeon_cp.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/radeon_drv.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/drm/radeon_irq.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_82540.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_82541.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_82542.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_82571.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_82575.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_82575.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_api.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_defines.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_hw.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_ich8lan.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_ich8lan.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_mac.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_osdep.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_phy.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_phy.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/e1000_regs.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/if_em.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/if_em.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/if_igb.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/e1000/if_igb.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ed/if_ed.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/eisa/eisaconf.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/et/if_et.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ex/if_ex.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/fdc/fdc.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/fdc/fdc_acpi.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/fe/if_fe.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/firewire/firewire.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/firewire/fwdev.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/fxp/if_fxp.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/fxp/if_fxpvar.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/gem/if_gem.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/gem/if_gem_pci.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/gem/if_gem_sbus.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/gem/if_gemreg.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/gem/if_gemvar.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/hme/if_hme.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/hptmv/atapi.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/hptrr/hptrr_config.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/hwpmc/hwpmc_logging.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/hwpmc/hwpmc_mod.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ic/ns16550.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ie/if_ie.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/if_ndis/if_ndis.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/if_ndis/if_ndis_pccard.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/if_ndis/if_ndis_pci.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/if_ndis/if_ndis_usb.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ipmi/ipmi_acpi.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ipw/if_ipw.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/iscsi/initiator/isc_soc.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/isp/isp_freebsd.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/iwi/if_iwi.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/iwn/if_iwn.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ixgb/if_ixgb.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ixgbe/ixgbe.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ixgbe/ixgbe.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ixgbe/ixgbe_82598.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ixgbe/ixgbe_82599.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ixgbe/ixgbe_api.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ixgbe/ixgbe_api.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ixgbe/ixgbe_common.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ixgbe/ixgbe_osdep.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ixgbe/ixgbe_phy.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ixgbe/ixgbe_phy.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ixgbe/ixgbe_type.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/jme/if_jme.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/kbd/kbd.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/kbdmux/kbdmux.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ksyms/ksyms.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/le/lance.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/lge/if_lge.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/malo/if_malo.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mca/mca_bus.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/md/md.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mfi/mfi.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mfi/mfivar.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mge/if_mge.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mii/miidevs#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mii/nsgphy.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mlx/mlx.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mlx/mlxvar.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mpt/mpt.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mpt/mpt_cam.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mpt/mpt_pci.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/msk/if_msk.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mwl/if_mwl.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mwl/if_mwlvar.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mwl/mwlhal.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mwl/mwlhal.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mwl/mwlreg.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mxge/eth_z8e.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mxge/ethp_z8e.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mxge/if_mxge.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mxge/if_mxge_var.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mxge/mxge_lro.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mxge/rss_eth_z8e.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/mxge/rss_ethp_z8e.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/my/if_my.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ncv/ncr53c500_pccard.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/nfe/if_nfe.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/nge/if_nge.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/nmdm/nmdm.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/nsp/nsp_pccard.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/nve/if_nve.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/nxge/if_nxge.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ofw/ofw_bus_subr.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ofw/ofw_bus_subr.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ofw/ofw_disk.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ofw/ofw_if.m#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ofw/ofw_iicbus.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ofw/ofw_standard.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ofw/ofwvar.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ofw/openfirm.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ofw/openfirm.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ofw/openfirmio.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/pcf/pcf.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/pcf/pcfvar.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/pci/pci.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/pcn/if_pcn.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/pdq/if_fpa.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/pdq/pdq_ifsubr.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/puc/pucdata.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ral/rt2560.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ral/rt2661.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/re/if_re.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sec/sec.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sec/sec.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sf/if_sf.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/siis/siis.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/siis/siis.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sis/if_sis.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sk/if_sk.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/smc/if_smc.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/smc/if_smcvar.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sn/if_sn.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/snc/dp83932.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/snc/if_snc.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/snc/if_sncvar.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/clone.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/driver.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/isa/ad1816.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/isa/ess.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/isa/gusc.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/isa/mss.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/isa/sb16.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/isa/sb8.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/isa/sbc.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/isa/sndbuf_dma.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/macio/aoa.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/macio/davbus.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/macio/i2s.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/macio/snapper.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/macio/tumbler.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/midi/midi.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/midi/mpu401.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/midi/sequencer.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/midi/sequencer.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/als4000.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/atiixp.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/aureal.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/cmi.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/cs4281.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/csa.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/csapcm.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/ds1.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/emu10k1.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/emu10kx-midi.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/emu10kx-pcm.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/emu10kx.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/envy24.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/envy24ht.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/es137x.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/fm801.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/hda/hdac.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/ich.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/maestro.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/maestro3.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/neomagic.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/solo.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/spicds.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/t4dwave.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/via8233.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/via82c686.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pci/vibes.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/ac97.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/ac97_patch.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/buffer.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/buffer.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/channel.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/channel.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/channel_if.m#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/dsp.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/dsp.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/fake.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/feeder.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/feeder.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/feeder_chain.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/feeder_eq.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/feeder_fmt.c#2 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/feeder_format.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/feeder_matrix.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/feeder_mixer.c#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/feeder_rate.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/feeder_volume.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/g711.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/intpcm.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/matrix.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/matrix_map.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/mixer.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/mixer.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/pcm.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/sndstat.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/sndstat.h#1 branch .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/sound.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/sound.h#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/vchan.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/pcm/vchan.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/sbus/cs4231.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/unit.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/usb/uaudio.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/usb/uaudio.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/usb/uaudio_pcm.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/sound/version.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/speaker/spkr.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/spibus/spibus.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ste/if_ste.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/stg/tmc18c30.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/stg/tmc18c30_subr.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/stge/if_stge.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/syscons/daemon/daemon_saver.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/syscons/scterm-teken.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/syscons/teken/teken.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/syscons/teken/teken_demo.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/syscons/teken/teken_stress.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ti/if_ti.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/tl/if_tl.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/trm/trm.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/tsec/if_tsec.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/tsec/if_tsec.h#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/tx/if_tx.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/txp/if_txp.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/uart/uart_cpu_mv.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/uart/uart_cpu_powerpc.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/ubsec/ubsec.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/at91dci.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/at91dci_atmelarm.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/atmegadci.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/atmegadci_atmelarm.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/avr32dci.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/ehci.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/ehci_ixp4xx.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/ehci_mbus.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/ehci_pci.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/musb_otg.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/musb_otg_atmelarm.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/ohci.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/ohci_atmelarm.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/ohci_pci.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/uhci.c#3 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/uhci_pci.c#2 integrate .. //depot/projects/soc2009/soc_ext2fs/src/sys/dev/usb/controller/usb_controller.c#3 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jul 29 13:14:09 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2A7CD1065672; Wed, 29 Jul 2009 13:14: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 C6B6F106566C for ; Wed, 29 Jul 2009 13:14:08 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B3BF68FC17 for ; Wed, 29 Jul 2009 13:14:08 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6TDE8sR070649 for ; Wed, 29 Jul 2009 13:14:08 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6TDE8Gm070647 for perforce@freebsd.org; Wed, 29 Jul 2009 13:14:08 GMT (envelope-from truncs@FreeBSD.org) Date: Wed, 29 Jul 2009 13:14:08 GMT Message-Id: <200907291314.n6TDE8Gm070647@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 166731 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 13:14:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=166731 Change 166731 by truncs@aditya on 2009/07/29 13:13:28 Rearranging functions to make it consistent with NetBSD's src. Suggested by: Pedro Giffuni Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_alloc.c#34 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#16 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_alloc.c#34 (text+ko) ==== @@ -393,6 +393,31 @@ } /* + * Find a cylinder to place a directory. + * + * The policy implemented by this algorithm is to select from + * among those cylinder groups with above the average number of + * free inodes, the one with the smallest number of directories. + */ +static u_long +ext2_dirpref(struct m_ext2fs *fs) +{ + int cg, maxspace, mincg, avgifree; + avgifree = fs->e2fs->e2fs_ficount / fs->e2fs_gcount; + maxspace = 0; + mincg = -1; + for (cg = 0; cg < fs->e2fs_gcount; cg++) { + if ( fs->e2fs_gd[cg].ext2bgd_nifree >= avgifree) { + if (mincg == -1 || fs->e2fs_gd[cg].ext2bgd_nbfree > maxspace) { + mincg = cg; + maxspace = fs->e2fs_gd[cg].ext2bgd_nbfree; + } + } + } + return mincg; +} + +/* * Select the desired position for the next block in a file. * * we try to mimic what Remy does in inode_getblk/block_getblk @@ -439,143 +464,6 @@ } /* - * Free a block or fragment. - * - * pass on to the Linux code - */ -void -ext2_blkfree(ip, bno, size) - struct inode *ip; - int32_t bno; - long size; -{ - struct m_ext2fs *fs; - struct buf *bp; - int cg, error; - char *bbp; - - fs = ip->i_e2fs; - cg = dtog(fs, bno); - if ((u_int)bno >= fs->e2fs->e2fs_bcount) { - printf("bad block %lld, ino %llu\n", (long long)bno, - (unsigned long long)ip->i_number); - ext2_fserr(fs, ip->i_uid, "bad block"); - return; - } - error = bread(ip->i_devvp, - fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_b_bitmap), - (int)fs->e2fs_bsize, NOCRED, &bp); - if (error) { - brelse(bp); - return; - } - bbp = (char *)bp->b_data; - bno = dtogd(fs, bno); - if (isclr(bbp, bno)) { - printf("block = %lld, fs = %s\n", - (long long)bno, fs->e2fs_fsmnt); - panic("blkfree: freeing free block"); - } - clrbit(bbp, bno); - fs->e2fs->e2fs_fbcount++; - fs->e2fs_gd[cg].ext2bgd_nbfree++; - fs->e2fs_fmod = 1; - bdwrite(bp); -} - -/* - * Free an inode. - * - * the maintenance of the actual bitmaps is again up to the linux code - */ -int -ext2_vfree(pvp, ino, mode) - struct vnode *pvp; - ino_t ino; - int mode; -{ - struct m_ext2fs *fs; - struct inode *pip; - struct buf *bp; - int error, cg; - char * ibp; -/* mode_t save_i_mode; */ - - pip = VTOI(pvp); - fs = pip->i_e2fs; - if ((u_int)ino > fs->e2fs_ipg * fs->e2fs_gcount) - panic("ext2_vfree: range: devvp = %p, ino = %d, fs = %s", - pip->i_devvp, ino, fs->e2fs_fsmnt); - - cg = ino_to_cg(fs, ino); - error = bread(pip->i_devvp, - fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_i_bitmap), - (int)fs->e2fs_bsize, NOCRED, &bp); - if (error) { - brelse(bp); - return (0); - } - ibp = (char *)bp->b_data; - ino = (ino - 1) % fs->e2fs->e2fs_ipg; - if (isclr(ibp, ino)) { - printf("ino = %llu, fs = %s\n", - (unsigned long long)ino, fs->e2fs_fsmnt); - if (fs->e2fs_ronly == 0) - panic("ifree: freeing free inode"); - } - clrbit(ibp, ino); - fs->e2fs->e2fs_ficount++; - fs->e2fs_gd[cg].ext2bgd_nifree++; - if ((mode & IFMT) == IFDIR) { - fs->e2fs_gd[cg].ext2bgd_ndirs--; - } - fs->e2fs_fmod = 1; - bdwrite(bp); - return (0); -} - -/* - * Fserr prints the name of a file system with an error diagnostic. - * - * The form of the error message is: - * fs: error message - */ -static void -ext2_fserr(fs, uid, cp) - struct m_ext2fs *fs; - u_int uid; - char *cp; -{ - - log(LOG_ERR, "uid %d on %s: %s\n", uid, fs->e2fs_fsmnt, cp); -} - -/* - * Find a cylinder to place a directory. - * - * The policy implemented by this algorithm is to select from - * among those cylinder groups with above the average number of - * free inodes, the one with the smallest number of directories. - */ -static u_long -ext2_dirpref(struct m_ext2fs *fs) -{ - int cg, maxspace, mincg, avgifree; - avgifree = fs->e2fs->e2fs_ficount / fs->e2fs_gcount; - maxspace = 0; - mincg = -1; - for (cg = 0; cg < fs->e2fs_gcount; cg++) { - if ( fs->e2fs_gd[cg].ext2bgd_nifree >= avgifree) { - if (mincg == -1 || fs->e2fs_gd[cg].ext2bgd_nbfree > maxspace) { - mincg = cg; - maxspace = fs->e2fs_gd[cg].ext2bgd_nbfree; - } - } - } - return mincg; -} - -/* * Implement the cylinder overflow algorithm. * * The policy implemented by this algorithm is: @@ -708,6 +596,7 @@ bdwrite(bp); return (cg * fs->e2fs->e2fs_fpg + fs->e2fs->e2fs_first_dblock + bno); } + /* * Determine whether an inode can be allocated. * @@ -781,6 +670,102 @@ } /* + * Free a block or fragment. + * + * pass on to the Linux code + */ +void +ext2_blkfree(ip, bno, size) + struct inode *ip; + int32_t bno; + long size; +{ + struct m_ext2fs *fs; + struct buf *bp; + int cg, error; + char *bbp; + + fs = ip->i_e2fs; + cg = dtog(fs, bno); + if ((u_int)bno >= fs->e2fs->e2fs_bcount) { + printf("bad block %lld, ino %llu\n", (long long)bno, + (unsigned long long)ip->i_number); + ext2_fserr(fs, ip->i_uid, "bad block"); + return; + } + error = bread(ip->i_devvp, + fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_b_bitmap), + (int)fs->e2fs_bsize, NOCRED, &bp); + if (error) { + brelse(bp); + return; + } + bbp = (char *)bp->b_data; + bno = dtogd(fs, bno); + if (isclr(bbp, bno)) { + printf("block = %lld, fs = %s\n", + (long long)bno, fs->e2fs_fsmnt); + panic("blkfree: freeing free block"); + } + clrbit(bbp, bno); + fs->e2fs->e2fs_fbcount++; + fs->e2fs_gd[cg].ext2bgd_nbfree++; + fs->e2fs_fmod = 1; + bdwrite(bp); +} + +/* + * Free an inode. + * + * the maintenance of the actual bitmaps is again up to the linux code + */ +int +ext2_vfree(pvp, ino, mode) + struct vnode *pvp; + ino_t ino; + int mode; +{ + struct m_ext2fs *fs; + struct inode *pip; + struct buf *bp; + int error, cg; + char * ibp; +/* mode_t save_i_mode; */ + + pip = VTOI(pvp); + fs = pip->i_e2fs; + if ((u_int)ino > fs->e2fs_ipg * fs->e2fs_gcount) + panic("ext2_vfree: range: devvp = %p, ino = %d, fs = %s", + pip->i_devvp, ino, fs->e2fs_fsmnt); + + cg = ino_to_cg(fs, ino); + error = bread(pip->i_devvp, + fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_i_bitmap), + (int)fs->e2fs_bsize, NOCRED, &bp); + if (error) { + brelse(bp); + return (0); + } + ibp = (char *)bp->b_data; + ino = (ino - 1) % fs->e2fs->e2fs_ipg; + if (isclr(ibp, ino)) { + printf("ino = %llu, fs = %s\n", + (unsigned long long)ino, fs->e2fs_fsmnt); + if (fs->e2fs_ronly == 0) + panic("ifree: freeing free inode"); + } + clrbit(ibp, ino); + fs->e2fs->e2fs_ficount++; + fs->e2fs_gd[cg].ext2bgd_nifree++; + if ((mode & IFMT) == IFDIR) { + fs->e2fs_gd[cg].ext2bgd_ndirs--; + } + fs->e2fs_fmod = 1; + bdwrite(bp); + return (0); +} + +/* * Find a block in the specified cylinder group. * * It is a panic if a request is made to find a block if none are @@ -825,6 +810,22 @@ /* NOTREACHED */ } +/* + * Fserr prints the name of a file system with an error diagnostic. + * + * The form of the error message is: + * fs: error message + */ +static void +ext2_fserr(fs, uid, cp) + struct m_ext2fs *fs; + u_int uid; + char *cp; +{ + + log(LOG_ERR, "uid %d on %s: %s\n", uid, fs->e2fs_fsmnt, cp); +} + int cg_has_sb(int i) { @@ -839,5 +840,3 @@ return 1; return 0; } - - ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#16 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Wed Jul 29 15:36:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E17FC106576D; Wed, 29 Jul 2009 15:36: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 9D0DC1065732 for ; Wed, 29 Jul 2009 15:36:44 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8A5B88FC1F for ; Wed, 29 Jul 2009 15:36:44 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6TFaip6083548 for ; Wed, 29 Jul 2009 15:36:44 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6TFaiXf083546 for perforce@freebsd.org; Wed, 29 Jul 2009 15:36:44 GMT (envelope-from jhb@freebsd.org) Date: Wed, 29 Jul 2009 15:36:44 GMT Message-Id: <200907291536.n6TFaiXf083546@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166735 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 15:36:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=166735 Change 166735 by jhb@jhb_jhbbsd on 2009/07/29 15:35:51 Another LOR between filedesc and vnode locks during mountroot. Affected files ... .. //depot/projects/smpng/sys/kern/vfs_mount.c#98 edit Differences ... ==== //depot/projects/smpng/sys/kern/vfs_mount.c#98 (text+ko) ==== @@ -1481,6 +1481,8 @@ if (VFS_ROOT(TAILQ_FIRST(&mountlist), LK_EXCLUSIVE, &rootvnode)) panic("Cannot find root vnode"); + VOP_UNLOCK(rootvnode, 0); + p = curthread->td_proc; FILEDESC_XLOCK(p->p_fd); @@ -1496,8 +1498,6 @@ FILEDESC_XUNLOCK(p->p_fd); - VOP_UNLOCK(rootvnode, 0); - EVENTHANDLER_INVOKE(mountroot); } From owner-p4-projects@FreeBSD.ORG Wed Jul 29 17:14:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CB0E0106568D; Wed, 29 Jul 2009 17:14:33 +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 7CE03106568B for ; Wed, 29 Jul 2009 17:14:33 +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 6805B8FC23 for ; Wed, 29 Jul 2009 17:14:33 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6THEXIL002828 for ; Wed, 29 Jul 2009 17:14:33 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6THEX8s002826 for perforce@freebsd.org; Wed, 29 Jul 2009 17:14:33 GMT (envelope-from trasz@freebsd.org) Date: Wed, 29 Jul 2009 17:14:33 GMT Message-Id: <200907291714.n6THEX8s002826@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 Cc: Subject: PERFORCE change 166739 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 17:14:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=166739 Change 166739 by trasz@trasz_victim on 2009/07/29 17:14:03 Rework syscall interface. I'm quite happy with how it looks now, even though the implementation is still a little crappy. Affected files ... .. //depot/projects/soc2009/trasz_limits/lib/libc/sys/Symbol.map#9 edit .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_proto.h#6 edit .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscall.h#6 edit .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscalls.c#6 edit .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_sysent.c#7 edit .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/syscalls.master#8 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#7 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/init_sysent.c#9 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#32 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.c#8 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.master#8 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/systrace_args.c#8 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#24 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/syscall.h#8 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/syscall.mk#8 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/sysproto.h#8 edit .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#15 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/lib/libc/sys/Symbol.map#9 (text) ==== @@ -359,7 +359,11 @@ shmctl; symlinkat; unlinkat; - hrl; + hrl_get_usage; + hrl_get_rules; + hrl_get_limits; + hrl_add_rule; + hrl_remove_rule; }; FBSDprivate_1.0 { ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_proto.h#6 (text+ko) ==== @@ -453,13 +453,6 @@ char cmd_l_[PADL_(int)]; int cmd; char cmd_r_[PADR_(int)]; char buf_l_[PADL_(struct shmid_ds32 *)]; struct shmid_ds32 * buf; char buf_r_[PADR_(struct shmid_ds32 *)]; }; -struct hrl_args { - char op_l_[PADL_(int)]; int op; char op_r_[PADR_(int)]; - char inbufp_l_[PADL_(const void)]; const void inbufp; char inbufp_r_[PADR_(const void)]; - char inbuflen_l_[PADL_(size_t *)]; size_t * inbuflen; char inbuflen_r_[PADR_(size_t *)]; - char outbufp_l_[PADL_(void *)]; void * outbufp; char outbufp_r_[PADR_(void *)]; - char outbuflen_l_[PADL_(size_t)]; size_t outbuflen; char outbuflen_r_[PADR_(size_t)]; -}; int freebsd32_wait4(struct thread *, struct freebsd32_wait4_args *); int freebsd32_recvmsg(struct thread *, struct freebsd32_recvmsg_args *); int freebsd32_sendmsg(struct thread *, struct freebsd32_sendmsg_args *); @@ -543,7 +536,6 @@ int freebsd32_semctl(struct thread *, struct freebsd32_semctl_args *); int freebsd32_msgctl(struct thread *, struct freebsd32_msgctl_args *); int freebsd32_shmctl(struct thread *, struct freebsd32_shmctl_args *); -int hrl(struct thread *, struct hrl_args *); #ifdef COMPAT_43 @@ -822,7 +814,6 @@ #define FREEBSD32_SYS_AUE_freebsd32_semctl AUE_SEMCTL #define FREEBSD32_SYS_AUE_freebsd32_msgctl AUE_MSGCTL #define FREEBSD32_SYS_AUE_freebsd32_shmctl AUE_SHMCTL -#define FREEBSD32_SYS_AUE_hrl AUE_NULL #undef PAD_ #undef PADL_ ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscall.h#6 (text+ko) ==== @@ -382,7 +382,11 @@ #define FREEBSD32_SYS_freebsd32_msgctl 511 #define FREEBSD32_SYS_freebsd32_shmctl 512 #define FREEBSD32_SYS_lpathconf 513 -#define FREEBSD32_SYS_hrl 514 -#define FREEBSD32_SYS_getloginclass 515 -#define FREEBSD32_SYS_setloginclass 516 -#define FREEBSD32_SYS_MAXSYSCALL 517 +#define FREEBSD32_SYS_getloginclass 514 +#define FREEBSD32_SYS_setloginclass 515 +#define FREEBSD32_SYS_hrl_get_usage 516 +#define FREEBSD32_SYS_hrl_get_rules 517 +#define FREEBSD32_SYS_hrl_get_limits 518 +#define FREEBSD32_SYS_hrl_add_rule 519 +#define FREEBSD32_SYS_hrl_remove_rule 520 +#define FREEBSD32_SYS_MAXSYSCALL 521 ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscalls.c#6 (text+ko) ==== @@ -521,7 +521,11 @@ "freebsd32_msgctl", /* 511 = freebsd32_msgctl */ "freebsd32_shmctl", /* 512 = freebsd32_shmctl */ "lpathconf", /* 513 = lpathconf */ - "hrl", /* 514 = hrl */ - "getloginclass", /* 515 = getloginclass */ - "setloginclass", /* 516 = setloginclass */ + "getloginclass", /* 514 = getloginclass */ + "setloginclass", /* 515 = setloginclass */ + "hrl_get_usage", /* 516 = hrl_get_usage */ + "hrl_get_rules", /* 517 = hrl_get_rules */ + "hrl_get_limits", /* 518 = hrl_get_limits */ + "hrl_add_rule", /* 519 = hrl_add_rule */ + "hrl_remove_rule", /* 520 = hrl_remove_rule */ }; ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_sysent.c#7 (text+ko) ==== @@ -558,7 +558,11 @@ { AS(freebsd32_msgctl_args), (sy_call_t *)freebsd32_msgctl, AUE_MSGCTL, NULL, 0, 0, 0 }, /* 511 = freebsd32_msgctl */ { AS(freebsd32_shmctl_args), (sy_call_t *)freebsd32_shmctl, AUE_SHMCTL, NULL, 0, 0, 0 }, /* 512 = freebsd32_shmctl */ { AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0 }, /* 513 = lpathconf */ - { AS(hrl_args), (sy_call_t *)hrl, AUE_NULL, NULL, 0, 0, 0 }, /* 514 = hrl */ - { AS(getloginclass_args), (sy_call_t *)getloginclass, AUE_NULL, NULL, 0, 0, 0 }, /* 515 = getloginclass */ - { AS(setloginclass_args), (sy_call_t *)setloginclass, AUE_NULL, NULL, 0, 0, 0 }, /* 516 = setloginclass */ + { AS(getloginclass_args), (sy_call_t *)getloginclass, AUE_NULL, NULL, 0, 0, 0 }, /* 514 = getloginclass */ + { AS(setloginclass_args), (sy_call_t *)setloginclass, AUE_NULL, NULL, 0, 0, 0 }, /* 515 = setloginclass */ + { AS(hrl_get_usage_args), (sy_call_t *)hrl_get_usage, AUE_NULL, NULL, 0, 0, 0 }, /* 516 = hrl_get_usage */ + { AS(hrl_get_rules_args), (sy_call_t *)hrl_get_rules, AUE_NULL, NULL, 0, 0, 0 }, /* 517 = hrl_get_rules */ + { AS(hrl_get_limits_args), (sy_call_t *)hrl_get_limits, AUE_NULL, NULL, 0, 0, 0 }, /* 518 = hrl_get_limits */ + { AS(hrl_add_rule_args), (sy_call_t *)hrl_add_rule, AUE_NULL, NULL, 0, 0, 0 }, /* 519 = hrl_add_rule */ + { AS(hrl_remove_rule_args), (sy_call_t *)hrl_remove_rule, AUE_NULL, NULL, 0, 0, 0 }, /* 520 = hrl_remove_rule */ }; ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/syscalls.master#8 (text+ko) ==== @@ -901,7 +901,11 @@ 512 AUE_SHMCTL STD { int freebsd32_shmctl(int shmid, int cmd, \ struct shmid_ds32 *buf); } 513 AUE_LPATHCONF NOPROTO { int lpathconf(char *path, int name); } -514 AUE_NULL STD { int hrl(int op, const void inbufp, size_t *inbuflen, void *outbufp, size_t outbuflen); } -515 AUE_NULL NOPROTO { int getloginclass(char *namebuf, size_t \ +514 AUE_NULL NOPROTO { int getloginclass(char *namebuf, size_t \ namelen); } -516 AUE_NULL NOPROTO { int setloginclass(const char *namebuf); } +515 AUE_NULL NOPROTO { int setloginclass(const char *namebuf); } +516 AUE_NULL NOPROTO { int hrl_get_usage(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } +517 AUE_NULL NOPROTO { int hrl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } +518 AUE_NULL NOPROTO { int hrl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } +519 AUE_NULL NOPROTO { int hrl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } +520 AUE_NULL NOPROTO { int hrl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } ==== //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#7 (text+ko) ==== @@ -463,6 +463,9 @@ #endif td->td_ucred = crhold(p->p_ucred); + /* Set default login class. */ + p->p_loginclass = loginclass_find("default"); + /* Create sigacts. */ p->p_sigacts = sigacts_alloc(); ==== //depot/projects/soc2009/trasz_limits/sys/kern/init_sysent.c#9 (text+ko) ==== @@ -548,7 +548,11 @@ { AS(msgctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 511 = msgctl */ { AS(shmctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 512 = shmctl */ { AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0 }, /* 513 = lpathconf */ - { AS(hrl_args), (sy_call_t *)hrl, AUE_NULL, NULL, 0, 0, 0 }, /* 514 = hrl */ - { AS(getloginclass_args), (sy_call_t *)getloginclass, AUE_NULL, NULL, 0, 0, 0 }, /* 515 = getloginclass */ - { AS(setloginclass_args), (sy_call_t *)setloginclass, AUE_NULL, NULL, 0, 0, 0 }, /* 516 = setloginclass */ + { AS(getloginclass_args), (sy_call_t *)getloginclass, AUE_NULL, NULL, 0, 0, 0 }, /* 514 = getloginclass */ + { AS(setloginclass_args), (sy_call_t *)setloginclass, AUE_NULL, NULL, 0, 0, 0 }, /* 515 = setloginclass */ + { AS(hrl_get_usage_args), (sy_call_t *)hrl_get_usage, AUE_NULL, NULL, 0, 0, 0 }, /* 516 = hrl_get_usage */ + { AS(hrl_get_rules_args), (sy_call_t *)hrl_get_rules, AUE_NULL, NULL, 0, 0, 0 }, /* 517 = hrl_get_rules */ + { AS(hrl_get_limits_args), (sy_call_t *)hrl_get_limits, AUE_NULL, NULL, 0, 0, 0 }, /* 518 = hrl_get_limits */ + { AS(hrl_add_rule_args), (sy_call_t *)hrl_add_rule, AUE_NULL, NULL, 0, 0, 0 }, /* 519 = hrl_add_rule */ + { AS(hrl_remove_rule_args), (sy_call_t *)hrl_remove_rule, AUE_NULL, NULL, 0, 0, 0 }, /* 520 = hrl_remove_rule */ }; ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#32 (text+ko) ==== @@ -1020,58 +1020,6 @@ return (sb); } -static int -hrl_get_rules(struct thread *td, char *inputstr, struct sbuf **outputsbuf) -{ - int error = 0, copied = 0; - struct hrl_rule *buf, filter; - struct hrl_node *node; - - if (inputstr != NULL) { - error = hrl_rule_parse(&filter, inputstr); - if (error) - return (error); - } - - buf = malloc(HRL_MAX_RULES * sizeof(struct hrl_rule), M_HRL, M_WAITOK); - - /* - * Copy the limits to the temporary buffer. We cannot - * copy it directly to the userland because of the mutex. - */ - mtx_lock(&hrl_lock); - RB_FOREACH(node, hrl_tree, &hrls) { - /* - * XXX: Do not show everything to the client; just the - * nodes that affect him. - */ - if (copied >= HRL_MAX_RULES) { - /* - * XXX: Hey, what to do now? - */ - error = EDOOFUS; - break; - } - - if (inputstr != NULL) { - if (!hrl_rule_matches(&node->hn_rule, &filter)) - continue; - } - - *(buf + copied) = node->hn_rule; - copied++; - } - mtx_unlock(&hrl_lock); - if (error) - goto out; - - *outputsbuf = hrl_rules_to_sbuf(buf, copied); -out: - free(buf, M_HRL); - - return (error); -} - /* * XXX: We should sort the rules somewhat, so that 'log' rules are enforced * before 'deny', if both are for the same subject, resource and amount. @@ -1139,77 +1087,6 @@ rulesp); } -static int -hrl_get_rules_pid(struct thread *td, char *inputstr, struct sbuf **outputsbuf) -{ - int error = 0, copied = 0, i; - id_t pid; - struct proc *p; - struct hrl_rule *buf; - int64_t available[HRL_RESOURCE_MAX]; - struct hrl_rule *rules[HRL_RESOURCE_MAX]; - - error = str2id(inputstr, &pid); - if (error) - return (error); - - buf = malloc(HRL_RESOURCE_MAX * sizeof(struct hrl_rule), M_HRL, M_WAITOK); - - if ((p = pfind(pid)) == NULL) { - if ((p = zpfind(pid)) == NULL) { - free(buf, M_HRL); - return (ESRCH); - } - } - - mtx_lock(&hrl_lock); - hrl_compute_available(p, &available, &rules); - - /* - * Copy the limits to the temporary buffer. We cannot - * copy it directly to the userland because of the mutex. - */ - for (i = 0; i < HRL_RESOURCE_MAX; i++) { - if (rules[i] == NULL) - continue; - *(buf + copied) = *(rules[i]); - copied++; - } - mtx_unlock(&hrl_lock); - - PROC_UNLOCK(p); - if (error) - goto out; - - *outputsbuf = hrl_rules_to_sbuf(buf, copied); -out: - free(buf, M_HRL); - - return (error); -} - -static int -hrl_add_rule(struct thread *td, char *inputstr) -{ - int error; - struct hrl_rule rule; - - error = priv_check(td, PRIV_HRL_SET); - if (error) - return (error); - error = hrl_rule_parse(&rule, inputstr); - if (rule.hr_subject == HRL_SUBJECT_UNDEFINED || - rule.hr_subject_id <= 0 || - rule.hr_resource == HRL_RESOURCE_UNDEFINED || - rule.hr_action == HRL_ACTION_UNDEFINED || - rule.hr_amount < 0) - return (EINVAL); - if (error) - return (error); - error = hrl_rule_add(&rule); - return (error); -} - /* * Remove a rule from the ruleset. */ @@ -1242,19 +1119,48 @@ return (0); } +/* + * Routine used by HRL syscalls to read in input string. + */ static int -hrl_remove_rule(struct thread *td, char *inputstr) +hrl_read_inbuf(char **inputstr, const char *inbufp, size_t inbuflen) { int error; - struct hrl_rule rule; + char *str; + + if (inbuflen <= 0) + return (EINVAL); - error = priv_check(td, PRIV_HRL_SET); - if (error) + str = malloc(inbuflen + 1, M_HRL, M_WAITOK); + error = copyinstr(inbufp, str, inbuflen, NULL); + if (error) { + free(str, M_HRL); return (error); - error = hrl_rule_parse(&rule, inputstr); - if (error) - return (error); - error = hrl_rule_remove(&rule); + } + + *inputstr = str; + + return (0); +} + +/* + * Routine used by HRL syscalls to write out output string. + */ +static int +hrl_write_outbuf(struct sbuf *outputsbuf, char *outbufp, size_t outbuflen) +{ + int error; + + if (outputsbuf == NULL) + return (0); + + sbuf_finish(outputsbuf); + if (outbuflen < sbuf_len(outputsbuf) + 1) { + sbuf_delete(outputsbuf); + return (EFBIG); /* ERANGE? */ + } + error = copyout(sbuf_data(outputsbuf), outbufp, sbuf_len(outputsbuf) + 1); + sbuf_delete(outputsbuf); return (error); } @@ -1274,16 +1180,11 @@ } static int -hrl_get_usage_pid(struct thread *td, char *inputstr, struct sbuf **outputsbuf) +hrl_get_usage_pid(struct thread *td, id_t pid, struct sbuf **outputsbuf) { - int error; - id_t pid; struct proc *p; struct hrl_usage usage; - error = str2id(inputstr, &pid); - if (error) - return (error); if ((p = pfind(pid)) == NULL) { if ((p = zpfind(pid)) == NULL) return (ESRCH); @@ -1293,61 +1194,45 @@ *outputsbuf = hrl_usage_to_sbuf(&usage); - return (error); + return (0); } static int -hrl_get_usage_uid(struct thread *td, char *inputstr, struct sbuf **outputsbuf) +hrl_get_usage_uid(struct thread *td, id_t uid, struct sbuf **outputsbuf) { - int error; - id_t uid; struct uidinfo *uip; - error = str2id(inputstr, &uid); - if (error) - return (error); uip = uifind_existing(uid); if (uip == NULL) return (ESRCH); *outputsbuf = hrl_usage_to_sbuf(&uip->ui_usage); uifree(uip); - return (error); + return (0); } static int -hrl_get_usage_gid(struct thread *td, char *inputstr, struct sbuf **outputsbuf) +hrl_get_usage_gid(struct thread *td, id_t gid, struct sbuf **outputsbuf) { - int error; - id_t gid; struct gidinfo *gip; if (!hrl_group_accounting) return (EOPNOTSUPP); - error = str2id(inputstr, &gid); - if (error) - return (error); gip = gifind_existing(gid); if (gip == NULL) return (ESRCH); *outputsbuf = hrl_usage_to_sbuf(&gip->gi_usage); gifree(gip); - return (error); + return (0); } static int -hrl_get_usage_jid(struct thread *td, char *inputstr, struct sbuf **outputsbuf) +hrl_get_usage_jid(struct thread *td, id_t jid, struct sbuf **outputsbuf) { - int error; - id_t jid; struct prison *pr; - error = str2id(inputstr, &jid); - if (error) - return (error); - sx_xlock(&allprison_lock); pr = prison_find(jid); if (pr == NULL) { @@ -1358,69 +1243,176 @@ prison_free(pr); sx_xunlock(&allprison_lock); - return (error); + return (0); } int -hrl(struct thread *td, struct hrl_args *uap) +hrl_get_usage(struct thread *td, struct hrl_get_usage_args *uap) { int error; - char *inputstr = NULL; + char *inputstr; + struct hrl_rule filter; struct sbuf *outputsbuf = NULL; - if (uap->inbufp != NULL && uap->inbuflen != 0) { - if (uap->inbuflen <= 0) - return (EINVAL); + error = hrl_read_inbuf(&inputstr, uap->inbufp, uap->inbuflen); + if (error) + return (error); - inputstr = malloc(uap->inbuflen + 1, M_HRL, M_WAITOK); - error = copyinstr(uap->inbufp, inputstr, uap->inbuflen, NULL); - if (error) - goto out; - } + error = hrl_rule_parse(&filter, inputstr); + free(inputstr, M_HRL); + if (error) + return (error); - switch (uap->op) { - case HRL_OP_GET_RULES: - error = hrl_get_rules(td, inputstr, &outputsbuf); + switch (filter.hr_subject) { + case HRL_SUBJECT_PROCESS: + error = hrl_get_usage_pid(td, filter.hr_subject_id, &outputsbuf); break; - case HRL_OP_GET_RULES_PID: - error = hrl_get_rules_pid(td, inputstr, &outputsbuf); + case HRL_SUBJECT_USER: + error = hrl_get_usage_uid(td, filter.hr_subject_id, &outputsbuf); break; - case HRL_OP_ADD_RULE: - error = hrl_add_rule(td, inputstr); + case HRL_SUBJECT_GROUP: + error = hrl_get_usage_gid(td, filter.hr_subject_id, &outputsbuf); break; - case HRL_OP_REMOVE_RULE: - error = hrl_remove_rule(td, inputstr); - break; - case HRL_OP_GET_USAGE_PID: - error = hrl_get_usage_pid(td, inputstr, &outputsbuf); + case HRL_SUBJECT_JAIL: + error = hrl_get_usage_jid(td, filter.hr_subject_id, &outputsbuf); break; - case HRL_OP_GET_USAGE_UID: - error = hrl_get_usage_uid(td, inputstr, &outputsbuf); - break; - case HRL_OP_GET_USAGE_GID: - error = hrl_get_usage_gid(td, inputstr, &outputsbuf); - break; - case HRL_OP_GET_USAGE_JAILID: - error = hrl_get_usage_jid(td, inputstr, &outputsbuf); - break; default: - error = EINVAL; + return (EINVAL); } - if (outputsbuf != NULL) { - sbuf_finish(outputsbuf); - if (uap->outbuflen < sbuf_len(outputsbuf) + 1) { - error = EFBIG; - goto out; + error = hrl_write_outbuf(outputsbuf, uap->outbufp, uap->outbuflen); + + return (error); +} + +static int +hrl_get_rules_2(struct thread *td, char *inputstr, struct sbuf **outputsbuf) +{ + int error = 0, copied = 0; + struct hrl_rule *buf, filter; + struct hrl_node *node; + + error = hrl_rule_parse(&filter, inputstr); + if (error) + return (error); + + buf = malloc(HRL_MAX_RULES * sizeof(struct hrl_rule), M_HRL, M_WAITOK); + + /* + * Copy the limits to the temporary buffer. We cannot + * copy it directly to the userland because of the mutex. + */ + mtx_lock(&hrl_lock); + RB_FOREACH(node, hrl_tree, &hrls) { + /* + * XXX: Do not show everything to the client; just the + * nodes that affect him. + */ + if (copied >= HRL_MAX_RULES) { + /* + * XXX: Hey, what to do now? + */ + error = EDOOFUS; + break; } - error = copyout(sbuf_data(outputsbuf), uap->outbufp, sbuf_len(outputsbuf) + 1); + + if (!hrl_rule_matches(&node->hn_rule, &filter)) + continue; + + *(buf + copied) = node->hn_rule; + copied++; } + mtx_unlock(&hrl_lock); + if (error) + goto out; + *outputsbuf = hrl_rules_to_sbuf(buf, copied); out: - if (inputstr != NULL) - free(inputstr, M_HRL); - if (outputsbuf != NULL) - sbuf_delete(outputsbuf); + free(buf, M_HRL); + + return (error); +} + + +int +hrl_get_rules(struct thread *td, struct hrl_get_rules_args *uap) +{ + int error; + char *inputstr; + struct sbuf *outputsbuf; + + error = hrl_read_inbuf(&inputstr, uap->inbufp, uap->inbuflen); + if (error) + return (error); + + error = hrl_get_rules_2(td, inputstr, &outputsbuf); + free(inputstr, M_HRL); + if (error) + return (error); + + error = hrl_write_outbuf(outputsbuf, uap->outbufp, uap->outbuflen); + return (error); +} + +int +hrl_get_limits(struct thread *td, struct hrl_get_limits_args *uap) +{ + return (EDOOFUS); +} + +int +hrl_add_rule(struct thread *td, struct hrl_add_rule_args *uap) +{ + int error; + struct hrl_rule rule; + char *inputstr; + + error = priv_check(td, PRIV_HRL_SET); + if (error) + return (error); + + error = hrl_read_inbuf(&inputstr, uap->inbufp, uap->inbuflen); + if (error) + return (error); + + error = hrl_rule_parse(&rule, inputstr); + free(inputstr, M_HRL); + if (error) + return (error); + + if (rule.hr_subject == HRL_SUBJECT_UNDEFINED || + rule.hr_subject_id <= 0 || + rule.hr_resource == HRL_RESOURCE_UNDEFINED || + rule.hr_action == HRL_ACTION_UNDEFINED || + rule.hr_amount < 0) + return (EINVAL); + + error = hrl_rule_add(&rule); + + return (error); +} + +int +hrl_remove_rule(struct thread *td, struct hrl_remove_rule_args *uap) +{ + int error; + struct hrl_rule rule; + char *inputstr; + + error = priv_check(td, PRIV_HRL_SET); + if (error) + return (error); + + error = hrl_read_inbuf(&inputstr, uap->inbufp, uap->inbuflen); + if (error) + return (error); + + error = hrl_rule_parse(&rule, inputstr); + free(inputstr, M_HRL); + if (error) + return (error); + + error = hrl_rule_remove(&rule); return (error); } ==== //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.c#8 (text+ko) ==== @@ -521,7 +521,11 @@ "msgctl", /* 511 = msgctl */ "shmctl", /* 512 = shmctl */ "lpathconf", /* 513 = lpathconf */ - "hrl", /* 514 = hrl */ - "getloginclass", /* 515 = getloginclass */ - "setloginclass", /* 516 = setloginclass */ + "getloginclass", /* 514 = getloginclass */ + "setloginclass", /* 515 = setloginclass */ + "hrl_get_usage", /* 516 = hrl_get_usage */ + "hrl_get_rules", /* 517 = hrl_get_rules */ + "hrl_get_limits", /* 518 = hrl_get_limits */ + "hrl_add_rule", /* 519 = hrl_add_rule */ + "hrl_remove_rule", /* 520 = hrl_remove_rule */ }; ==== //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.master#8 (text+ko) ==== @@ -911,9 +911,13 @@ 512 AUE_SHMCTL NOSTD { int shmctl(int shmid, int cmd, \ struct shmid_ds *buf); } 513 AUE_LPATHCONF STD { int lpathconf(char *path, int name); } -514 AUE_NULL STD { int hrl(int op, const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } -515 AUE_NULL STD { int getloginclass(char *namebuf, size_t \ +514 AUE_NULL STD { int getloginclass(char *namebuf, size_t \ namelen); } -516 AUE_NULL STD { int setloginclass(const char *namebuf); } +515 AUE_NULL STD { int setloginclass(const char *namebuf); } +516 AUE_NULL STD { int hrl_get_usage(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } +517 AUE_NULL STD { int hrl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } +518 AUE_NULL STD { int hrl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } +519 AUE_NULL STD { int hrl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } +520 AUE_NULL STD { int hrl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } ; Please copy any additions and changes to the following compatability tables: ; sys/compat/freebsd32/syscalls.master ==== //depot/projects/soc2009/trasz_limits/sys/kern/systrace_args.c#8 (text+ko) ==== @@ -3072,19 +3072,8 @@ *n_args = 2; break; } - /* hrl */ + /* getloginclass */ case 514: { - struct hrl_args *p = params; - iarg[0] = p->op; /* int */ - uarg[1] = (intptr_t) p->inbufp; /* const void * */ - uarg[2] = p->inbuflen; /* size_t */ - uarg[3] = (intptr_t) p->outbufp; /* void * */ - uarg[4] = p->outbuflen; /* size_t */ - *n_args = 5; - break; - } - /* getloginclass */ - case 515: { struct getloginclass_args *p = params; uarg[0] = (intptr_t) p->namebuf; /* char * */ uarg[1] = p->namelen; /* size_t */ @@ -3092,12 +3081,62 @@ break; } /* setloginclass */ - case 516: { + case 515: { struct setloginclass_args *p = params; uarg[0] = (intptr_t) p->namebuf; /* const char * */ *n_args = 1; break; } + /* hrl_get_usage */ + case 516: { + struct hrl_get_usage_args *p = params; + uarg[0] = (intptr_t) p->inbufp; /* const void * */ + uarg[1] = p->inbuflen; /* size_t */ + uarg[2] = (intptr_t) p->outbufp; /* void * */ + uarg[3] = p->outbuflen; /* size_t */ + *n_args = 4; + break; + } + /* hrl_get_rules */ + case 517: { + struct hrl_get_rules_args *p = params; + uarg[0] = (intptr_t) p->inbufp; /* const void * */ + uarg[1] = p->inbuflen; /* size_t */ + uarg[2] = (intptr_t) p->outbufp; /* void * */ + uarg[3] = p->outbuflen; /* size_t */ + *n_args = 4; + break; + } + /* hrl_get_limits */ + case 518: { + struct hrl_get_limits_args *p = params; + uarg[0] = (intptr_t) p->inbufp; /* const void * */ + uarg[1] = p->inbuflen; /* size_t */ + uarg[2] = (intptr_t) p->outbufp; /* void * */ + uarg[3] = p->outbuflen; /* size_t */ + *n_args = 4; + break; + } + /* hrl_add_rule */ + case 519: { + struct hrl_add_rule_args *p = params; + uarg[0] = (intptr_t) p->inbufp; /* const void * */ + uarg[1] = p->inbuflen; /* size_t */ + uarg[2] = (intptr_t) p->outbufp; /* void * */ + uarg[3] = p->outbuflen; /* size_t */ + *n_args = 4; + break; + } + /* hrl_remove_rule */ + case 520: { + struct hrl_remove_rule_args *p = params; + uarg[0] = (intptr_t) p->inbufp; /* const void * */ + uarg[1] = p->inbuflen; /* size_t */ + uarg[2] = (intptr_t) p->outbufp; /* void * */ + uarg[3] = p->outbuflen; /* size_t */ + *n_args = 4; + break; + } default: *n_args = 0; break; @@ -8180,46 +8219,119 @@ break; }; break; - /* hrl */ + /* getloginclass */ case 514: switch(ndx) { case 0: - p = "int"; + p = "char *"; break; case 1: + p = "size_t"; + break; + default: + break; + }; + break; + /* setloginclass */ + case 515: + switch(ndx) { + case 0: + p = "const char *"; + break; + default: + break; + }; + break; + /* hrl_get_usage */ + case 516: + switch(ndx) { + case 0: p = "const void *"; break; + case 1: + p = "size_t"; + break; case 2: + p = "void *"; + break; + case 3: p = "size_t"; break; + default: + break; + }; + break; + /* hrl_get_rules */ + case 517: + switch(ndx) { + case 0: + p = "const void *"; + break; + case 1: + p = "size_t"; + break; + case 2: + p = "void *"; + break; case 3: + p = "size_t"; + break; + default: + break; + }; + break; + /* hrl_get_limits */ + case 518: + switch(ndx) { + case 0: + p = "const void *"; + break; + case 1: + p = "size_t"; + break; + case 2: p = "void *"; break; - case 4: + case 3: p = "size_t"; break; default: break; }; break; - /* getloginclass */ - case 515: + /* hrl_add_rule */ + case 519: switch(ndx) { case 0: - p = "char *"; + p = "const void *"; break; case 1: p = "size_t"; break; + case 2: + p = "void *"; + break; + case 3: + p = "size_t"; + break; default: break; }; break; - /* setloginclass */ - case 516: + /* hrl_remove_rule */ + case 520: switch(ndx) { case 0: - p = "const char *"; + p = "const void *"; + break; + case 1: + p = "size_t"; + break; + case 2: + p = "void *"; + break; + case 3: + p = "size_t"; break; default: break; ==== //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#24 (text+ko) ==== @@ -37,15 +37,6 @@ * Hierarchical Resource Limits. */ -#define HRL_OP_GET_RULES 1 -#define HRL_OP_GET_RULES_PID 2 -#define HRL_OP_ADD_RULE 3 -#define HRL_OP_REMOVE_RULE 4 -#define HRL_OP_GET_USAGE_PID 5 -#define HRL_OP_GET_USAGE_UID 6 -#define HRL_OP_GET_USAGE_GID 7 -#define HRL_OP_GET_USAGE_JAILID 8 - /* * 'hrl_rule' describes a single limit configured by the system * administrator or a temporary limit set using setrlimit(2). @@ -146,7 +137,11 @@ #else /* !_KERNEL */ __BEGIN_DECLS -int hrl(int op, const char *inbufp, size_t inbuflen, char *outbufp, size_t outbuflen); +int hrl_get_usage(const char *inbufp, size_t inbuflen, char *outbufp, size_t outbuflen); +int hrl_get_rules(const char *inbufp, size_t inbuflen, char *outbufp, size_t outbuflen); +int hrl_get_limits(const char *inbufp, size_t inbuflen, char *outbufp, size_t outbuflen); +int hrl_add_rule(const char *inbufp, size_t inbuflen, char *outbufp, size_t outbuflen); +int hrl_remove_rule(const char *inbufp, size_t inbuflen, char *outbufp, size_t outbuflen); __END_DECLS #endif /* !_KERNEL */ ==== //depot/projects/soc2009/trasz_limits/sys/sys/syscall.h#8 (text+ko) ==== @@ -428,7 +428,11 @@ #define SYS_msgctl 511 #define SYS_shmctl 512 #define SYS_lpathconf 513 -#define SYS_hrl 514 -#define SYS_getloginclass 515 -#define SYS_setloginclass 516 -#define SYS_MAXSYSCALL 517 +#define SYS_getloginclass 514 +#define SYS_setloginclass 515 +#define SYS_hrl_get_usage 516 +#define SYS_hrl_get_rules 517 +#define SYS_hrl_get_limits 518 +#define SYS_hrl_add_rule 519 +#define SYS_hrl_remove_rule 520 +#define SYS_MAXSYSCALL 521 ==== //depot/projects/soc2009/trasz_limits/sys/sys/syscall.mk#8 (text+ko) ==== @@ -377,6 +377,10 @@ msgctl.o \ shmctl.o \ lpathconf.o \ - hrl.o \ getloginclass.o \ - setloginclass.o + setloginclass.o \ + hrl_get_usage.o \ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jul 29 17:55:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7A22A1065673; Wed, 29 Jul 2009 17:55: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 37E61106566B for ; Wed, 29 Jul 2009 17:55:18 +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 0B17F8FC13 for ; Wed, 29 Jul 2009 17:55:18 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6THtHc3005758 for ; Wed, 29 Jul 2009 17:55:17 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6THtHGn005756 for perforce@freebsd.org; Wed, 29 Jul 2009 17:55:17 GMT (envelope-from trasz@freebsd.org) Date: Wed, 29 Jul 2009 17:55:17 GMT Message-Id: <200907291755.n6THtHGn005756@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 Cc: Subject: PERFORCE change 166740 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 17:55:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=166740 Change 166740 by trasz@trasz_victim on 2009/07/29 17:54:17 Make name -> id resolving a little nicer. Affected files ... .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#16 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#16 (text+ko) ==== @@ -124,30 +124,44 @@ * This routine replaces user/group name with numeric id. */ static char * -resolve_id(char *str) +resolve_ids(char *str) { id_t id; - char *subject, *textid, *resolved; + const char *subject, *textid, *rest; + char *resolved; subject = strsep(&str, ":"); textid = strsep(&str, ":"); if (textid == NULL) errx(1, "error in rule specification: no subject"); - if (str == NULL) - errx(1, "error in rule specification: no subject id"); + if (str != NULL) + rest = str; + else + rest = ""; + + if (strcasecmp(subject, "u") == 0) + subject = "user"; + else if (strcasecmp(subject, "g") == 0) + subject = "group"; + else if (strcasecmp(subject, "p") == 0) + subject = "process"; + else if (strcasecmp(subject, "l") == 0 || strcasecmp(subject, "c") == 0) + subject = "loginclass"; - if (strcasecmp(subject, "user") == 0) { + if (strcasecmp(subject, "user") == 0 && strlen(textid) > 0) { id = parse_user(textid); - asprintf(&resolved, "%s:%d:%s", subject, (int)id, str); - } else if (strcasecmp(subject, "group") == 0) { + asprintf(&resolved, "%s:%d:%s", subject, (int)id, rest); + } else if (strcasecmp(subject, "group") == 0 && strlen(textid) > 0) { id = parse_group(textid); - asprintf(&resolved, "%s:%d:%s", subject, (int)id, str); + asprintf(&resolved, "%s:%d:%s", subject, (int)id, rest); } else - asprintf(&resolved, "%s:%s:%s", subject, textid, str); + asprintf(&resolved, "%s:%s:%s", subject, textid, rest); if (resolved == NULL) err(1, "asprintf"); + fprintf(stderr, "resolved to '%s'\n", resolved); + return (resolved); } @@ -155,13 +169,11 @@ add_rule(char *rule) { int error; - char *resolved; - resolved = resolve_id(rule); - error = hrl_add_rule(resolved, strlen(resolved) + 1, NULL, 0); + error = hrl_add_rule(rule, strlen(rule) + 1, NULL, 0); if (error) err(1, "hrl_add_rule"); - free(resolved); + free(rule); } /* @@ -198,13 +210,11 @@ remove_rule(char *rule) { int error; - char *resolved; - resolved = resolve_id(rule); - error = hrl_remove_rule(resolved, strlen(resolved) + 1, NULL, 0); + error = hrl_remove_rule(rule, strlen(rule) + 1, NULL, 0); if (error) err(1, "hrl_remove_rule"); - free(resolved); + free(rule); } /* @@ -252,10 +262,6 @@ else filterlen = 0; - /* - * XXX: We should resolve user/group names here. - */ - do { outbuflen *= 4; outbuf = realloc(outbuf, outbuflen); @@ -337,6 +343,8 @@ errx(1, "only one flag or argument may be specified " "at the same time"); + rule = resolve_ids(rule); + if (aflag) { add_rule(rule); return (0); From owner-p4-projects@FreeBSD.ORG Wed Jul 29 18:28:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4FC001065670; Wed, 29 Jul 2009 18:28:55 +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 D32C41065677 for ; Wed, 29 Jul 2009 18:28:54 +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 C12FE8FC2F for ; Wed, 29 Jul 2009 18:28:54 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6TISs7l009199 for ; Wed, 29 Jul 2009 18:28:54 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6TISsor009197 for perforce@freebsd.org; Wed, 29 Jul 2009 18:28:54 GMT (envelope-from trasz@freebsd.org) Date: Wed, 29 Jul 2009 18:28:54 GMT Message-Id: <200907291828.n6TISsor009197@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 Cc: Subject: PERFORCE change 166741 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 18:29:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=166741 Change 166741 by trasz@trasz_victim on 2009/07/29 18:28:15 Resolve numeric ids back into user/group names. Affected files ... .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#17 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#17 (text+ko) ==== @@ -44,8 +44,6 @@ static void print_subject(int subject, id_t id) { - struct passwd *pwd; - struct group *grp; switch (subject) { case HRL_SUBJECT_PROCESS: @@ -124,18 +122,18 @@ * This routine replaces user/group name with numeric id. */ static char * -resolve_ids(char *str) +resolve_ids(char *rule) { id_t id; const char *subject, *textid, *rest; char *resolved; - subject = strsep(&str, ":"); - textid = strsep(&str, ":"); + subject = strsep(&rule, ":"); + textid = strsep(&rule, ":"); if (textid == NULL) - errx(1, "error in rule specification: no subject"); - if (str != NULL) - rest = str; + errx(1, "error in rule specification -- no subject"); + if (rule != NULL) + rest = rule; else rest = ""; @@ -160,9 +158,47 @@ if (resolved == NULL) err(1, "asprintf"); - fprintf(stderr, "resolved to '%s'\n", resolved); + return (resolved); +} + +/* + * Print rules, one per line, */ +static void +print_rules(char *rules) +{ + char *rule; + const char *subject, *textid, *rest; + id_t id; + struct passwd *pwd; + struct group *grp; + + while ((rule = strsep(&rules, ",")) != NULL) { + if (rule[0] == '\0') + break; /* XXX */ + subject = strsep(&rule, ":"); + textid = strsep(&rule, ":"); + if (textid == NULL) + errx(1, "rule passed from the kernel didn't contain subject"); + if (rule != NULL) + rest = rule; + else + rest = ""; + + /* Replace numerical user and group ids with names. */ + if (strcasecmp(subject, "user") == 0) { + id = parse_user(textid); + pwd = getpwuid(id); + if (pwd != NULL) + textid = pwd->pw_name; + } else if (strcasecmp(subject, "group") == 0) { + id = parse_group(textid); + grp = getgrgid(id); + if (grp != NULL) + textid = grp->gr_name; + } - return (resolved); + printf("%s:%s:%s\n", subject, textid, rest); + } } static void @@ -176,14 +212,11 @@ free(rule); } -/* - * Query the kernel about a resource usage and print it out. - */ static void show_limits(char *filter) { int error; - char *outbuf = NULL, *tmp; + char *outbuf = NULL; size_t outbuflen = BUFLEN_DEFAULT / 4; do { @@ -197,11 +230,8 @@ err(1, "hrl_get_limits"); } while (error && errno == EFBIG); - for (tmp = outbuf; *tmp != '\0'; tmp++) - if (*tmp == ',') - *tmp = '\n'; - - printf("Resource utilisation:\n%s\n", outbuf); + printf("Resource utilisation:\n"); + print_rules(outbuf); free(filter); free(outbuf); } @@ -254,7 +284,7 @@ show_rules(char *filter) { int error; - char *outbuf = NULL, *tmp; + char *outbuf = NULL; size_t filterlen, outbuflen = BUFLEN_DEFAULT / 4; if (filter != NULL) @@ -273,19 +303,8 @@ err(1, "hrl_get_rules"); } while (error && errno == EFBIG); - for (tmp = outbuf; *tmp != '\0'; tmp++) - if (*tmp == ',') - *tmp = '\n'; - - if (filter != NULL) - printf("Defined resource limits matching \"%s\":\n%s\n", filter, outbuf); - else - printf("Defined resource limits:\n%s\n", outbuf); - - /* - * XXX: Resolve numeric ID-s back to names. - */ - + printf("Defined resource limits:\n"); + print_rules(outbuf); free(outbuf); } From owner-p4-projects@FreeBSD.ORG Wed Jul 29 18:55:24 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6CCAB1065672; Wed, 29 Jul 2009 18:55:24 +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 231BD106564A for ; Wed, 29 Jul 2009 18:55:24 +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 EAE818FC15 for ; Wed, 29 Jul 2009 18:55:23 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6TItN1A011183 for ; Wed, 29 Jul 2009 18:55:23 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6TItNn4011181 for perforce@freebsd.org; Wed, 29 Jul 2009 18:55:23 GMT (envelope-from trasz@freebsd.org) Date: Wed, 29 Jul 2009 18:55:23 GMT Message-Id: <200907291855.n6TItNn4011181@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 Cc: Subject: PERFORCE change 166742 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2009 18:55:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=166742 Change 166742 by trasz@trasz_victim on 2009/07/29 18:54:48 Signal overflow by ERANGE, not EFBIG. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#33 edit .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#18 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#33 (text+ko) ==== @@ -1157,7 +1157,7 @@ sbuf_finish(outputsbuf); if (outbuflen < sbuf_len(outputsbuf) + 1) { sbuf_delete(outputsbuf); - return (EFBIG); /* ERANGE? */ + return (ERANGE); } error = copyout(sbuf_data(outputsbuf), outbufp, sbuf_len(outputsbuf) + 1); sbuf_delete(outputsbuf); ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#18 (text+ko) ==== @@ -40,42 +40,6 @@ #define BUFLEN_DEFAULT 1024 -#if 0 -static void -print_subject(int subject, id_t id) -{ - - switch (subject) { - case HRL_SUBJECT_PROCESS: - printf("process:%u", (unsigned int)id); - break; - case HRL_SUBJECT_USER: - pwd = getpwuid(id); - if (pwd != NULL) - printf("user:%s", pwd->pw_name); - else - printf("user:%u", (unsigned int)id); - break; - case HRL_SUBJECT_GROUP: - grp = getgrgid(id); - if (grp != NULL) - printf("group:%s", grp->gr_name); - else - printf("group:%u", (unsigned int)id); - break; - case HRL_SUBJECT_LOGINCLASS: - printf("class:%u", (unsigned int)id); - break; - case HRL_SUBJECT_JAIL: - printf("jail:%u", (unsigned int)id); - break; - default: - printf("undefined<0x%x>:%u", subject, (unsigned int)id); - break; - } -} -#endif - static id_t parse_user(const char *s) { @@ -226,9 +190,9 @@ err(1, "realloc"); error = hrl_get_limits(filter, strlen(filter) + 1, outbuf, outbuflen); - if (error && errno != EFBIG) + if (error && errno != ERANGE) err(1, "hrl_get_limits"); - } while (error && errno == EFBIG); + } while (error && errno == ERANGE); printf("Resource utilisation:\n"); print_rules(outbuf); @@ -264,9 +228,9 @@ err(1, "realloc"); error = hrl_get_usage(filter, strlen(filter) + 1, outbuf, outbuflen); - if (error && errno != EFBIG) + if (error && errno != ERANGE) err(1, "hrl_get_usage"); - } while (error && errno == EFBIG); + } while (error && errno == ERANGE); for (tmp = outbuf; *tmp != '\0'; tmp++) if (*tmp == ',') @@ -299,9 +263,9 @@ err(1, "realloc"); error = hrl_get_rules(filter, filterlen, outbuf, outbuflen); - if (error && errno != EFBIG) + if (error && errno != ERANGE) err(1, "hrl_get_rules"); - } while (error && errno == EFBIG); + } while (error && errno == ERANGE); printf("Defined resource limits:\n"); print_rules(outbuf); From owner-p4-projects@FreeBSD.ORG Thu Jul 30 05:40:09 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 244C61065672; Thu, 30 Jul 2009 05:40: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 DA5A1106566C for ; Thu, 30 Jul 2009 05:40:08 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BD4CC8FC17 for ; Thu, 30 Jul 2009 05:40:08 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6U5e8nr099011 for ; Thu, 30 Jul 2009 05:40:08 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6U5e8dM099009 for perforce@freebsd.org; Thu, 30 Jul 2009 05:40:08 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 05:40:08 GMT Message-Id: <200907300540.n6U5e8dM099009@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166756 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 05:40:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=166756 Change 166756 by pgj@beehive on 2009/07/30 05:39:46 IFC Affected files ... .. //depot/projects/docproj_hu/doc/share/sgml/man-refs.ent#21 integrate .. //depot/projects/docproj_hu/www/en/donations/donors.sgml#19 integrate .. //depot/projects/docproj_hu/www/en/donations/wantlist.sgml#12 integrate .. //depot/projects/docproj_hu/www/hu/share/sgml/news.xml#43 integrate .. //depot/projects/docproj_hu/www/share/sgml/advisories.xml#13 integrate .. //depot/projects/docproj_hu/www/share/sgml/header.ent#5 integrate Differences ... ==== //depot/projects/docproj_hu/doc/share/sgml/man-refs.ent#21 (text+ko) ==== @@ -20,7 +20,7 @@ lexicographical order by the entity (i.e., the dots used in place of special characters should not be expanded when comparing). - $FreeBSD: doc/share/sgml/man-refs.ent,v 1.488 2009/06/16 10:28:11 hrs Exp $ + $FreeBSD: doc/share/sgml/man-refs.ent,v 1.489 2009/07/26 11:48:34 blackend Exp $ --> @@ -4601,6 +4601,7 @@ + ==== //depot/projects/docproj_hu/www/en/donations/donors.sgml#19 (text+ko) ==== @@ -1,6 +1,6 @@ - + %developers; @@ -2600,6 +2600,13 @@ glewis Received + + + bms + MPLS and Label Switching Networks book + rpaulo + Received + &footer; ==== //depot/projects/docproj_hu/www/en/donations/wantlist.sgml#12 (text+ko) ==== @@ -1,6 +1,6 @@ - + @@ -28,10 +28,7 @@ testing and improving our Sparc port. Even small, old (or new!) Sparc64 machines are perfectly usable. No matter which country you're in, we almost certainly have someone local who - could use it. We could specifically use 1U rack-mounted Sparcs - (such as E220R, E420R, Fire V100, Fire V120, or Netra T1 AC200) - for our development and package-building clusters in the - USA.

+ could use it.

@@ -266,7 +263,29 @@ but I only have access to an ISAN PCIIA controller. - + + + + + + + + + + + + ==== //depot/projects/docproj_hu/www/hu/share/sgml/news.xml#43 (text+ko) ==== @@ -11,7 +11,7 @@ - $FreeBSD: www/hu/share/sgml/news.xml,v 1.16 2009/07/19 11:15:17 pgj Exp $ + $FreeBSD: www/hu/share/sgml/news.xml,v 1.17 2009/07/22 19:27:59 pgj Exp $ ==== //depot/projects/docproj_hu/www/share/sgml/advisories.xml#13 (text+ko) ==== @@ -2,7 +2,7 @@ - $FreeBSD: www/share/sgml/advisories.xml,v 1.230 2009/06/10 10:43:06 cperciva Exp $ + $FreeBSD: www/share/sgml/advisories.xml,v 1.231 2009/07/29 00:50:20 simon Exp $ @@ -10,6 +10,18 @@ 2009 + 7 + + + 29 + + + FreeBSD-SA-09:12.bind + + + + + 6 ==== //depot/projects/docproj_hu/www/share/sgml/header.ent#5 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -166,7 +166,7 @@
  • Handbook
  • Porter's Handbook
  • Developer's Handbook
  • -
  • Manual Pages
  • +
  • Manual Pages
  • @@ -195,7 +195,7 @@ From owner-p4-projects@FreeBSD.ORG Thu Jul 30 05:48:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9B3551065673; Thu, 30 Jul 2009 05:48: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 5B5B11065670 for ; Thu, 30 Jul 2009 05:48:18 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 49AE48FC0A for ; Thu, 30 Jul 2009 05:48:18 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6U5mI7c099620 for ; Thu, 30 Jul 2009 05:48:18 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6U5mIRp099618 for perforce@freebsd.org; Thu, 30 Jul 2009 05:48:18 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 05:48:18 GMT Message-Id: <200907300548.n6U5mIRp099618@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166758 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 05:48:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=166758 Change 166758 by pgj@beehive on 2009/07/30 05:47:20 MFen (www): 1.12 -> 1.13 hu/share/sgml/header.l10n.ent Affected files ... .. //depot/projects/docproj_hu/www/hu/share/sgml/header.l10n.ent#15 edit Differences ... ==== //depot/projects/docproj_hu/www/hu/share/sgml/header.l10n.ent#15 (text+ko) ==== @@ -4,7 +4,7 @@ @@ -65,7 +65,7 @@ kézikönyve
  • Fejlesztõk kézikönyve
  • -
  • Man oldalak
  • +
  • Man oldalak
  • @@ -100,7 +100,7 @@
  • Biztonsági tudnivalók
  • Hibajelentések
  • + href="&cgibase;/query-pr-summary.cgi">Hibajelentések
  • Hibajelentések küldése
  • From owner-p4-projects@FreeBSD.ORG Thu Jul 30 05:56:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D0BFA1065679; Thu, 30 Jul 2009 05:56:29 +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 8ED9B106564A for ; Thu, 30 Jul 2009 05:56:29 +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 7CDAD8FC0C for ; Thu, 30 Jul 2009 05:56:29 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6U5uTWP000299 for ; Thu, 30 Jul 2009 05:56:29 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6U5uTko000297 for perforce@freebsd.org; Thu, 30 Jul 2009 05:56:29 GMT (envelope-from trasz@freebsd.org) Date: Thu, 30 Jul 2009 05:56:29 GMT Message-Id: <200907300556.n6U5uTko000297@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 Cc: Subject: PERFORCE change 166761 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 05:56:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=166761 Change 166761 by trasz@trasz_victim on 2009/07/30 05:55:57 Fix rule addition and removal. Previously, we always rewrote the rule with "::". Affected files ... .. //depot/projects/soc2009/trasz_limits/TODO#5 edit .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#19 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/TODO#5 (text+ko) ==== @@ -10,7 +10,7 @@ - Add sorting to hrl(8). - - Add resolving numeric IDs into names to hrl(8). + - Use expand_number(3) in hrl(8). Limits to do: ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#19 (text+ko) ==== @@ -317,10 +317,12 @@ if (argc > 1) usage(); - if (argc == 1) - rule = strdup(argv[0]); - else - rule = strdup("::"); + if (rule == NULL) { + if ( argc == 1) + rule = strdup(argv[0]); + else + rule = strdup("::"); + } if (aflag + lflag + rflag + uflag + argc > 1) errx(1, "only one flag or argument may be specified " From owner-p4-projects@FreeBSD.ORG Thu Jul 30 06:01:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F1281106566C; Thu, 30 Jul 2009 06:01:35 +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 B0D5D106564A for ; Thu, 30 Jul 2009 06:01:35 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9CDA68FC15 for ; Thu, 30 Jul 2009 06:01:35 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6U61ZiJ000668 for ; Thu, 30 Jul 2009 06:01:35 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6U61Zle000666 for perforce@freebsd.org; Thu, 30 Jul 2009 06:01:35 GMT (envelope-from dforsyth@FreeBSD.org) Date: Thu, 30 Jul 2009 06:01:35 GMT Message-Id: <200907300601.n6U61Zle000666@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 166764 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 06:01:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=166764 Change 166764 by dforsyth@squirrel on 2009/07/30 06:01:03 Generalize to manifest, rewrite parser, add magic values, reorganize db. Builds, but is broken. Submitting for backup. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/Makefile#14 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#39 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#34 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_command.c#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_command.h#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_conflict.c#6 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_conflict.h#4 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db.c#7 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db.h#4 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb.c#6 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb.h#5 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb_read.c#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb_read.h#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb_write.c#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb_write.h#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_private.h#6 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_read.c#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_read.h#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_write.c#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_write.h#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_depend.c#5 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_depend.h#4 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_error.c#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_error.h#3 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_file.c#11 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_file.h#10 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.c#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.h#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest_plist.c#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest_plist.h#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#30 delete .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.h#26 delete .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_private.h#16 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#14 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#12 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#25 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/Makefile#14 (text+ko) ==== @@ -1,8 +1,23 @@ LIB= pkg INCS= pkg.h WARNS= 6 -SRCS= pkg_db.c pkg_db_hierdb.c pkg.c pkg_util.c pkg_file.c \ - pkg_depend.c pkg_conflict.c pkg_command.c pkg_plist.c + +SRCS= pkg.c \ + pkg_db.c \ + pkg_db_read.c \ + pkg_db_write.c \ + pkg_db_hierdb.c \ + pkg_db_hierdb_read.c \ + pkg_db_hierdb_write.c \ + pkg_manifest.c \ + pkg_manifest_plist.c \ + pkg_file.c \ + pkg_depend.c \ + pkg_conflict.c \ + pkg_command.c \ + pkg_util.c \ + pkg_error.c + NO_MAN= yes .include ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#39 (text+ko) ==== @@ -3,14 +3,29 @@ #include #include "pkg_util.h" +#include "pkg_error.h" #include "pkg_depend.h" #include "pkg_file.h" #include "pkg_conflict.h" -#include "pkg_plist.h" +#include "pkg_db_write.h" +#include "pkg_db_read.h" +#include "pkg_db.h" +#include "pkg_manifest.h" #include "pkg_private.h" #include "pkg.h" -/* Maybe I should add a pkg_init routine? */ +void pkg_check_magic(struct pkg *p, const char *where); +static int pkg_set_field(char *dest, const char *src); +static int pkg_read_pkg_element_from_db(struct pkg *p, int element); +static int pkg_write_pkg_element_to_db(struct pkg *p, int element); +static int pkg_parse_manifest(struct pkg *p); + +void +pkg_check_magic(struct pkg *p, const char *where) +{ + if (p == NULL || p->magic != PKG_MAGIC) + bad_magic_quit("pkg", where); +} /* Create a new pkg. */ @@ -18,30 +33,27 @@ pkg_new() { struct pkg *p; - + p = calloc(1, sizeof(*p)); + if (p == NULL) + return (NULL); + __pkg_init(p); - /* Because I changed plist into a pointer, I need alloc it somewhere - * for now. Do it in here, but remember to get this out of here and - * add it to the parse check in the getters. */ + return (p); +} - p->pl = pkg_plist_new(); - if (p == NULL || p->pl == NULL) { - free(p); - free(p->pl); - return (NULL); - } - +void +__pkg_init(struct pkg *p) +{ + p->magic = PKG_MAGIC; p->ident = NULL; p->comment = NULL; - p->contents = NULL; p->description = NULL; p->display = NULL; + p->required_by = NULL; p->mtree_dirs = NULL; - p->required_by = NULL; - p->dirty = 0; - - return (p); + p->pm = NULL; + p->in_db = NULL; } /* Clear and free an allocated pkg. */ @@ -49,11 +61,8 @@ void pkg_delete(struct pkg *p) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - + pkg_check_magic(p, __func__); pkg_reset(p); - free(p->pl); free(p); } @@ -62,28 +71,24 @@ void pkg_reset(struct pkg *p) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - + pkg_check_magic(p, __func__); + if (p->in_db != NULL) { + /* change to error msg. */ + fprintf(stderr, "Package %s is in database %s. Packages in a database \ + cannot be reset.\n", p->ident, pkg_db_db_root(p->in_db)); + exit(1); + } + free(p->ident); free(p->comment); - free(p->contents); free(p->description); free(p->display); free(p->mtree_dirs); free(p->required_by); - p->ident = NULL; - p->comment = NULL; - p->contents = NULL; - p->description = NULL; - p->display = NULL; - p->mtree_dirs = NULL; - p->required_by = NULL; - p->dirty = 0; - /* Until plist allocation is done properly, we can't free this in - * here. */ - pkg_plist_delete(p->pl); - p->pl = NULL; + + if (p->pm != NULL) + pkg_manifest_delete(p->pm); + __pkg_init(p); } /* Retrieve pkg identity. In hierdb, this is the directory containing the @@ -93,10 +98,9 @@ const char * pkg_ident(struct pkg *p) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); + pkg_check_magic(p, __func__); - return (p->ident); + return ((const char *)p->ident); } /* Retrieve pkg name. @name in plist. Conflict and dependency checks @@ -105,13 +109,11 @@ const char * pkg_name(struct pkg *p) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - - if (pkg_parse_plist(p) & NOT_OK) + pkg_check_magic(p, __func__); + if (pkg_parse_manifest(p) != OK) return (NULL); - return (pkg_plist_name(p->pl)); + return (pkg_manifest_name(p->pm)); } /* Retrieve pkg origin. @origin in plist. The directory of the port that @@ -120,13 +122,11 @@ const char * pkg_origin(struct pkg *p) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - - if (pkg_parse_plist(p) & NOT_OK) + pkg_check_magic(p, __func__); + if (p->in_db != NULL && (pkg_parse_manifest(p) & NOT_OK)) return (NULL); - return (pkg_plist_origin(p->pl)); + return (pkg_manifest_origin(p->pm)); } /* Set the identity for this package (does not have to be the same as the @@ -136,18 +136,16 @@ int pkg_set_ident(struct pkg *p, const char *ident) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - if (ident == NULL) - arg_rage_quit(__func__, "Not a valid identifier.", - RAGE_AT_CLIENT); + pkg_check_magic(p, __func__); + if (p->in_db != NULL) { + /* Can't change the ident of a package once it's in a db. */ + pkg_error_msg("package is in db cant ident"); + rage_quit(); + } + + /* TODO: Check ident for validity. Do a string search on the passed ident. */ - free(p->ident); - p->ident = strdup(ident); - if (p->ident == NULL) - return (PKG_MEMORY_ERR | PKG_NOT_OK); - - return (PKG_OK); + return (pkg_util_strdup(ident, &p->ident)); } /* Set the name for this package. @name in plist. */ @@ -155,12 +153,16 @@ int pkg_set_name(struct pkg *p, const char *name) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - if (name == NULL) - arg_rage_quit(__func__, "Not a valid name.", RAGE_AT_CLIENT); + int status; - return (pkg_plist_set_name(p->pl, name)); + pkg_check_magic(p, __func__); + + status = OK; + status |= pkg_manifest_set_name(p->pm, name); + if (status != OK || p->in_db == NULL) + return (status); + /* Update manifest in db. */ + return (status); } /* Set the origin for this package. @origin in plist. */ @@ -168,12 +170,16 @@ int pkg_set_origin(struct pkg *p, const char *origin) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - if (origin == NULL) - arg_rage_quit(__func__, "Not a valid origin.", RAGE_AT_CLIENT); + int status; + + pkg_check_magic(p, __func__); - return (pkg_plist_set_origin(p->pl, origin)); + status = OK; + status |= pkg_manifest_set_origin(p->pm, origin); + if (status != OK || p->in_db == NULL) + return (status); + /* Update manifest in db. */ + return (status); } /* Retreive the short comment for this package. (Maybe consider moving @@ -182,8 +188,13 @@ const char * pkg_comment(struct pkg *p) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); + pkg_check_magic(p, __func__); + + if (p->in_db == NULL) + return (p->comment); + + if (p->comment == NULL) + pkg_read_pkg_element_from_db(p, PKG_ELEM_COMMENT); return (p->comment); } @@ -193,50 +204,23 @@ const char * pkg_description(struct pkg *p) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - + pkg_check_magic(p, __func__); + if (p->in_db == NULL) + return (p->description); + + if (p->description == NULL && + pkg_read_pkg_element_from_db(p, PKG_ELEM_DESCRIPTION) != OK) + return (NULL); return (p->description); } -/* Retrieve the contents text for this package. Dumps in plist in current - * FreeBSD format. */ +/* Set the comment for this package. */ -const char * -pkg_contents(struct pkg *p) -{ - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - - if (pkg_plist_parsed(p->pl) && pkg_plist_dirty(p->pl)) { - free(p->contents); - p->contents = pkg_plist_dump_to_text(p->pl); - } - - return (p->contents); -} - -/* Set the short comment for this package */ - int pkg_set_comment(struct pkg *p, const char *comment) { - char *f; - - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - - free(p->comment); - p->comment = (comment != NULL) ? strdup(comment) : NULL; - if (p->comment == NULL) - return (PKG_MEMORY_ERR | PKG_NOT_OK); - - /* Blot out trailing \n, if it's there. */ - f = strrchr(p->comment, (int)'\n'); - if (f != NULL && *(f + 1) == '\0') - *f = '\0'; - - return (PKG_OK); + pkg_check_magic(p, __func__); + return (pkg_util_strdup(comment, &p->comment)); } /* Set the long description for this package. */ @@ -244,45 +228,19 @@ int pkg_set_description(struct pkg *p, const char *description) { - char *f; + pkg_check_magic(p, __func__); - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - - free(p->description); - p->description = (description != NULL) ? strdup(description) : NULL; - if (p->description == NULL) - return (PKG_MEMORY_ERR | PKG_NOT_OK); - - f = strrchr(p->description, (int)'\n'); - if (f != NULL && *(f + 1) == '\0') - *f = '\0'; - - return (PKG_OK); + return (pkg_util_strdup(description, &p->description)); } -/* Set the contents (plist) for this package. */ - -int -pkg_set_contents(struct pkg *p, const char *contents) -{ - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - - p->contents = contents; - return (PKG_OK); -} - /* Set the display text for this package. */ int pkg_set_display(struct pkg *p, const char *display) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); + pkg_check_magic(p, __func__); - p->display = display; - return (PKG_OK); + return (pkg_util_strdup(display, &p->display)); } /* Set the mtree_dirs text for this package. This is *NOT* the name of @@ -291,11 +249,8 @@ int pkg_set_mtree_dirs(struct pkg *p, const char *mtree_dirs) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - - p->mtree_dirs = mtree_dirs; - return (PKG_OK); + pkg_check_magic(p, __func__); + return (pkg_util_strdup(mtree_dirs, &p->mtree_dirs)); } /* Set the required_by text for this file. */ @@ -303,30 +258,35 @@ int pkg_set_required_by(struct pkg *p, const char *required_by) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - - p->required_by = required_by; - return (PKG_OK); + pkg_check_magic(p, __func__); + return (pkg_util_strdup(required_by, &p->required_by)); } int -pkg_clone(struct pkg *psrc, struct pkg *pdest) +pkg_clone(struct pkg *src, struct pkg *dest) { int status; + struct pkg_manifest *pm; + + pkg_check_magic(src, __func__); + pkg_check_magic(dest, __func__); - if (psrc == NULL) - arg_rage_quit(__func__, "Not a valid package (src).", - RAGE_AT_CLIENT); - if (pdest == NULL) - arg_rage_quit(__func__, "Not a valid package (dest).", - RAGE_AT_CLIENT); - - status = PKG_OK; - status |= pkg_set_ident(pdest, pkg_ident(psrc)); + status = OK; + pkg_reset(dest); + status |= pkg_set_ident(dest, src->ident); + status |= pkg_set_comment(dest, src->comment); + status |= pkg_set_description(dest, src->description); + status |= pkg_set_display(dest, src->display); + if (src->pm == NULL) + return (status); + pm = pkg_manifest_new(); + if (pm == NULL) + status |= MEMORY_ERR; + else { + status |= pkg_manifest_clone(pm, src->pm); + dest->pm = pm; + } - /* Write the rest of this. Need array dup'ing functions. */ - return (status); } @@ -336,10 +296,11 @@ const char *const * pkg_files(struct pkg *p) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - - return (pkg_plist_files(p->pl)); + pkg_check_magic(p, __func__); + if (p->pm == NULL) + pkg_parse_manifest(p); + + return (pkg_manifest_pkg_file_list(p->pm)); } /* Retrieve a list of dependencies for this package (by name). Return a @@ -348,10 +309,11 @@ const char *const * pkg_depends(struct pkg *p) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - - return (pkg_plist_depends(p->pl)); + pkg_check_magic(p, __func__); + if (p->pm == NULL && p->in_db != NULL) + pkg_parse_manifest(p); + + return (pkg_manifest_pkg_depend_list(p->pm)); } /* Retrieve a list of conflicts for this package (by name). Return a list @@ -360,147 +322,207 @@ const char *const * pkg_conflicts(struct pkg *p) { - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); + pkg_check_magic(p, __func__); + if (p->pm == NULL && p->in_db != NULL) + pkg_parse_manifest(p); - return (pkg_plist_conflicts(p->pl)); + return (pkg_manifest_pkg_conflict_list(p->pm)); } /* Add a file to a package. This is fairly useless at this point * because... well, there the hell is the file coming from? */ int -pkg_add_file(struct pkg *p, const char *path, const char *cwd, - const char *group, const char *md5, const char *mode, - const char *owner) +pkg_insert_pkg_file(struct pkg *p, const char *path, const char *cwd, const char *md5, + const char *mode, const char *owner, const char *group) { - struct pkg_file *pf; int status; - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); + pkg_check_magic(p, __func__); - if (path == NULL) - arg_rage_quit(__func__, "Not a valid path.", RAGE_AT_CLIENT); - if (md5 == NULL) - arg_rage_quit(__func__, "Not a valid md5.", RAGE_AT_CLIENT); - if (owner == NULL) - arg_rage_quit(__func__, "Not a valid owner.", RAGE_AT_CLIENT); - if (group == NULL) - arg_rage_quit(__func__, "Not a valid group.", RAGE_AT_CLIENT); - if (mode == NULL) - arg_rage_quit(__func__, "Not a valid mode.", RAGE_AT_CLIENT); - /* TODO: Add some sanity checks in here. */ - - pf = pkg_file_new(); - pkg_file_set_path(pf, path); - pkg_file_set_cwd(pf, cwd); - pkg_file_set_group(pf, group); - pkg_file_set_md5(pf, md5); - pkg_file_set_mode(pf, mode); - pkg_file_set_owner(pf, owner); - - status = pkg_plist_add_pkg_file(p->pl, pf); + + status = OK; + pkg_parse_manifest(p); + status |= pkg_manifest_insert_pkg_file(p->pm, path, md5, cwd, mode, owner, group); return (status); } const char * -pkg_file_get_cwd(struct pkg *p, const char *path) +pkg_pkg_file_cwd(struct pkg *p, const char *path) { struct pkg_file *pf; - - pf = pkg_plist_get_pkg_file(p->pl, path); - if (pf == NULL) + pkg_check_magic(p, __func__); + if ((pf = pkg_manifest_select_pkg_file(p->pm, path)) == NULL) return (NULL); - - return (pkg_file_cwd(pf)); + return ((const char *)pkg_file_cwd(pf)); } const char * -pkg_file_get_group(struct pkg *p, const char *path) +pkg_pkg_file_group(struct pkg *p, const char *path) { struct pkg_file *pf; - - pf = pkg_plist_get_pkg_file(p->pl, path); - if (pf == NULL) + pkg_check_magic(p, __func__); + if ((pf = pkg_manifest_select_pkg_file(p->pm, path)) == NULL) return (NULL); - - return (pkg_file_group(pf)); + return ((const char *)pkg_file_group(pf)); } const char * -pkg_file_get_md5(struct pkg *p, const char *path) +pkg_pkg_file_md5(struct pkg *p, const char *path) { struct pkg_file *pf; - - pf = pkg_plist_get_pkg_file(p->pl, path); - if (pf == NULL) + pkg_check_magic(p, __func__); + if ((pf = pkg_manifest_select_pkg_file(p->pm, path)) == NULL) return (NULL); - - return (pkg_file_md5(pf)); + return ((const char *)pkg_file_md5(pf)); } const char * -pkg_file_get_mode(struct pkg *p, const char *path) +pkg_pkg_file_mode(struct pkg *p, const char *path) { struct pkg_file *pf; - - pf = pkg_plist_get_pkg_file(p->pl, path); - if (pf == NULL) + pkg_check_magic(p, __func__); + if ((pf = pkg_manifest_select_pkg_file(p->pm, path)) == NULL) return (NULL); - - return (pkg_file_mode(pf)); + return ((const char *)pkg_file_mode(pf)); } const char * -pkg_file_get_owner(struct pkg *p, const char *path) +pkg_pkg_file_owner(struct pkg *p, const char *path) { struct pkg_file *pf; - - pf = pkg_plist_get_pkg_file(p->pl, path); - if (pf == NULL) + pkg_check_magic(p, __func__); + if ((pf = pkg_manifest_select_pkg_file(p->pm, path)) == NULL) return (NULL); - - return (pkg_file_owner(pf)); + return ((const char *)pkg_file_owner(pf)); } const char * -pkg_depend_get_origin(struct pkg *p, const char *name) +pkg_pkg_depend_origin(struct pkg *p, const char *name) { struct pkg_depend *pd; + pkg_check_magic(p, __func__); + if ((pd = pkg_manifest_select_pkg_depend(p->pm, name)) == NULL) + return (NULL); + return ((const char *)pkg_depend_origin(pd)); +} + +/* Wrap _write_pkg_element. */ + +static int +pkg_write_pkg_element_to_db(struct pkg *p, int element) +{ + return (pkg_db_write_pkg_element(p->in_db, p, element)); +} - pd = pkg_plist_get_pkg_depend(p->pl, name); - if (pd == NULL) - return (NULL); +/* Wrap _read_pkg_element. */ - return (pkg_depend_origin(pd)); +static int +pkg_read_pkg_element_from_db(struct pkg *p, int element) +{ + return (pkg_db_read_pkg_element(p->in_db, p, element)); } /* Parse the plist (contents) of a package. */ -int -pkg_parse_plist(struct pkg *p) +static int +pkg_parse_manifest(struct pkg *p) { int status; - if (p == NULL) - arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - /* - if (p->pl != NULL) + pkg_check_magic(p, __func__); + + /* Manifest has been parsed already. */ + if (p->pm != NULL) return (OK); - p->pl = pkg_plist_new(); - if (p->pl == NULL) - return (PKG_NOT_OK | PKG_MEMORY_ERR); - */ - if (pkg_plist_parsed(p->pl)) { - return (OK); + + status = OK; + p->pm = pkg_manifest_new(); + if (p->pm == NULL) + return (MEMORY_ERR | NOT_OK); + pkg_manifest_reset(p->pm); + if (p->in_db != NULL) { + status |= pkg_read_pkg_element_from_db(p, PKG_ELEM_MANIFEST); } + + return (status); +} + +int +pkg_force_parse_manifest(struct pkg *p) +{ + pkg_check_magic(p, __func__); + + + return (0); +} + +/* These need to be moved. */ - pkg_plist_reset(p->pl); - status = pkg_plist_parse_contents_from_text(p->pl, p->contents); - return (status); +int +__pkg_set_ident_ptr(struct pkg *p, char *ident_ptr) +{ + pkg_check_magic(p, __func__); + p->ident = ident_ptr; + return (OK); +} + +int +__pkg_set_comment_ptr(struct pkg *p, char *comment_ptr) +{ + pkg_check_magic(p, __func__); + p->comment = comment_ptr; + return (OK); +} + +int +__pkg_set_description_ptr(struct pkg *p, char *description_ptr) +{ + pkg_check_magic(p, __func__); + p->description = description_ptr; + return (OK); +} + +int +__pkg_set_display_ptr(struct pkg *p, char *display_ptr) +{ + pkg_check_magic(p, __func__); + p->display = display_ptr; + return (OK); +} + +int +__pkg_set_required_by_ptr(struct pkg *p, char *required_by_ptr) +{ + pkg_check_magic(p, __func__); + p->required_by = required_by_ptr; + return (OK); +} + +int +__pkg_set_mtree_dirs_ptr(struct pkg *p, char *mtree_dirs_ptr) +{ + pkg_check_magic(p, __func__); + p->mtree_dirs = mtree_dirs_ptr; + return (OK); +} + +int +__pkg_set_pkg_manifest_ptr(struct pkg *p, struct pkg_manifest *pm_ptr) +{ + pkg_check_magic(p, __func__); + p->pm = pm_ptr; + return (OK); +} + +int +__pkg_set_in_db_ptr(struct pkg *p, struct pkg_db *db) +{ + pkg_check_magic(p, __func__); + p->in_db = db; + return (OK); } int ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#34 (text+ko) ==== @@ -1,63 +1,26 @@ #ifndef __PKG_H__ #define __PKG_H__ -#define HIER_DB 0 -#define FLAT_DB 1 /* O_o */ +/* Plist/DB types. Format is 0xXXXXYYYY, where XXXX is manifest type, and YYYY is db type. */ + +/* HIERDB: Assumes information is stored in files with names with a preceding '+'. + * It is the current FreeBSD DB type. */ -/* Here have some error codes. */ +/* PLIST, manifest is in a plist format. */ +#define PLIST_HIER_DB 0x00000000 +/* EXAMPLE: XML, manifest is in xml format. */ +#define XML_HIER_DB 0x00010000 -/* These error codes are no good. Switch to contextual errors/macros. */ /* General Errors. */ #define OK 0x00000000 #define NOT_OK 0x00000001 #define MEMORY_ERR 0x00000002 -#define BAD_IDENT 0x00000004 /* remove db_bad_root? */ -#define RAGE_AT_CLIENT 0x00000008 -#define RAGE_AT_LIBPKG 0x00000010 -/* PKGDB Errors. */ +#define FOREACH_PKG_IN_DB(p, db, list) \ + while (*list != NULL && (p = pkg_db_select_pkg(db, *list++))) -#define DB_OK 0x00000000 -#define DB_NOT_OK 0x10000000 -#define DB_BAD_ROOT 0x20000000 -#define DB_NOT_OPEN 0x40000000 -#define DB_OPEN 0x80000000 -#define DB_NO_PKG 0x01000000 -#define DB_MEMORY_ERR 0x02000000 - -/* These should probably go to _private */ -#define SUB_OK 0x00000000 -#define SUB_NO_COMMENT 0x10000000 -#define SUB_NO_CONTENTS 0x20000000 -#define SUB_NO_DESC 0x40000000 -#define SUB_NO_DISPLAY 0x80000000 -#define SUB_NO_MTREE_DIRS 0x01000000 -#define SUB_NO_REQUIRED_BY 0x02000000 -#define SUB_NO_FILE 0x04000000 -#define SUB_EMPTY_FILE 0x08000000 -#define SUB_MEMORY_ERR 0x00100000 - -/* PKG Errors. */ - -#define PKG_OK 0x00000000 -#define PKG_NOT_OK 0x10000000 -#define PKG_PARSE_NOT_OK 0x20000000 -#define PKG_NO_COMMENT 0x40000000 -#define PKG_NO_DESC 0x80000000 -#define PKG_NO_DISPLAY 0x01000000 -#define PKG_NO_MTREE_DIRS 0x02000000 -#define PKG_NO_REQUIRED_BY 0x04000000 -#define PKG_CORRUPT 0x08000000 -#define PKG_MEMORY_ERR 0x00100000 - -/* Parse errors. */ -#define PARSE_OK 0x00000000 -#define PARSE_FAIL 0x10000000 - -#define BAD_OR_UNKNOWN_VALUE "???" - /* pkg */ struct pkg *pkg_new(void); @@ -74,21 +37,19 @@ int pkg_set_cwd(struct pkg *p, const char *cwd); int pkg_set_origin(struct pkg *p, const char *origin); +int pkg_set_comment(struct pkg *p, const char *comment); +int pkg_set_description(struct pkg *p, const char *description); +int pkg_set_display(struct pkg *p, const char *display); + const char *pkg_comment(struct pkg *p); const char *pkg_description(struct pkg *p); -const char *pkg_contents(struct pkg *p); const char *pkg_display(struct pkg *p); -const char *pkg_mtree_dirs(struct pkg *p); -const char *pkg_required_by(struct pkg *p); -int pkg_set_comment(struct pkg *p, const char *comment); -int pkg_set_description(struct pkg *p, const char *description); -int pkg_set_contents(struct pkg *p, const char *contents); -int pkg_set_display(struct pkg *p, const char *display); +/* tmp */ int pkg_set_mtree_dirs(struct pkg *p, const char *mtree_dirs); int pkg_set_required_by(struct pkg *p, const char *required_by); -int pkg_clone(struct pkg *psrc, struct pkg *pdest); +int pkg_clone(struct pkg *src, struct pkg *dest); /* Add mtree_dirs, display, etc, etc. */ @@ -100,27 +61,21 @@ const char *group, const char *md5, const char *mode, const char *owner); int pkg_remove_file(struct pkg *p, const char *path); -const char *pkg_file_get_cwd(struct pkg *p, const char *path); -const char *pkg_file_get_group(struct pkg *p, const char *path); -const char *pkg_file_get_md5(struct pkg *p, const char *path); -const char *pkg_file_get_mode(struct pkg *p, const char *path); -const char *pkg_file_get_owner(struct pkg *p, const char *path); +const char *pkg_pkg_file_cwd(struct pkg *p, const char *path); +const char *pkg_pkg_file_group(struct pkg *p, const char *path); +const char *pkg_pkg_file_md5(struct pkg *p, const char *path); +const char *pkg_pkg_file_mode(struct pkg *p, const char *path); +const char *pkg_pkg_file_owner(struct pkg *p, const char *path); -int pkg_add_depend(struct pkg *p, const char *name, const char *origin, - int version); +int pkg_add_depend(struct pkg *p, const char *name, const char *origin, int version); int pkg_remove_depend(struct pkg *p, const char *name); -const char *pkg_depend_get_origin(struct pkg *p, const char *name); -int pkg_depend_get_version(struct pkg *p, const char *name); +const char *pkg_pkg_depend_origin(struct pkg *p, const char *name); +int pkg_pkg_depend_version(struct pkg *p, const char *name); int pkg_add_conflict(struct pkg *p, const char *name, int version); int pkg_remove_conflict(struct pkg *p, const char *name); int pkg_conflict_get_version(struct pkg *p, const char *name); -/* TODO: Should I add a function to add names of pkgs that depend on a - * pkg? */ - -/* TODO: Add installation/deinstallation routine modification... routines. */ - /* pkg_db */ struct pkg_db *pkg_db_new(void); @@ -129,8 +84,8 @@ int pkg_db_open(struct pkg_db *db, const char *db_root, int db_type); int pkg_db_close(struct pkg_db *db); -/* Return a list of packages by _ident_. */ -const char *const *pkg_db_all_pkgs(struct pkg_db *db); /* rename. this is lulz. */ +/* Return a list of package keys for this a database. */ +const char *const *pkg_db_all_pkg_keys(struct pkg_db *db); struct pkg *pkg_db_select_pkg(struct pkg_db *db, const char *ident); int pkg_db_pkg_count(struct pkg_db *db); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_command.c#2 (text+ko) ==== @@ -2,10 +2,21 @@ #include #include +#include "pkg_error.h" >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jul 30 06:40:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5DDA710656ED; Thu, 30 Jul 2009 06:40: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 1A0BA10656EB for ; Thu, 30 Jul 2009 06:40:22 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0712E8FC1E for ; Thu, 30 Jul 2009 06:40:22 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6U6eMro004549 for ; Thu, 30 Jul 2009 06:40:22 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6U6eLo5004547 for perforce@freebsd.org; Thu, 30 Jul 2009 06:40:21 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 06:40:21 GMT Message-Id: <200907300640.n6U6eLo5004547@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166774 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 06:40:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=166774 Change 166774 by pgj@beehive on 2009/07/30 06:39:35 MFen (doc): 1.87 -> 1.89 hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml 1.290 -> 1.291 hu_HU.ISO8859-2/books/handbook/disks/chapter.sgml 1.18 -> 1.19 hu_HU.ISO8859-2/books/handbook/virtualization/chapter.sgml 1.45 -> 1.46 hu_HU.ISO8859-2/share/sgml/trademarks.ent Affected files ... .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml#18 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/disks/chapter.sgml#14 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/virtualization/chapter.sgml#8 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/share/sgml/trademarks.ent#11 edit Differences ... ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml#18 (text+ko) ==== @@ -6,7 +6,7 @@ The FreeBSD Hungarian Documentation Project Translated by: PALI, Gabor %SOURCE% en_US.ISO8859-1/books/handbook/desktop/chapter.sgml - %SRCID% 1.87 + %SRCID% 1.89 --> @@ -164,9 +164,9 @@ igénylõ böngészõkre vágyunk, érdemes megnéznünk a Portgyûjteményben található www/dillo, www/links vagy www/w3m portokat. + role="package">www/dillo2, www/links vagy www/w3m portokat. Ez a rész az alábbi alkalmazásokat említi: @@ -329,35 +329,72 @@ &realplayer; pluginjait is használhatóvá teszi. - - A most következõ részben a &flash; - 9.X - telepítését tárgyaljuk a - legfrissebb &os; -STABLE és 7.1-RELEASE - változatok esetén. Ha a &os; valamelyik - korábbi változatát használjuk - és problémákba - ütköznénk, javasolt inkább a www/linux-flashplugin7 port - telepítése és a &man.linprocfs.5; - beállítására vonatkozó - rész kihagyása. - + Attól függõen, hogy a &os; melyik + változatát használjuk, + különbözõ módokon tudjuk + mûködésbe hozni: + + + + &os; 7.<replaceable>X</replaceable> + + Telepítsük a www/nspluginwrapper portot. + Ehhez szükség lesz még a emulators/linux_base-fc4 portra + is, amely viszonylag nagy méretû. + + Következõ lépésként + telepítsük a www/linux-flashplugin9 portot. + Ezáltal megkapjuk a &flash; + 9.X változatát, + amely &os; 7.X alatt + remekül mûködik. + + + A 7.1-RELEASE elõtti &os; verziók + esetén a www/linux-flashplugin7 + portot telepítsük és hagyjuk ki a + &man.linprocfs.5; használatára + vonatkozó részt. + + + + + &os; 8.<replaceable>X</replaceable> + + Telepítsük a www/nspluginwrapper portot. + Ehhez szükségünk lesz majd a valamivel + nagyobb emulators/linux_base-f10 + portra. + + Ezt követõen telepítsük a + www/linux-f10-flashplugin10 + portot. Ekkor a &flash; 10.X + változatát kapjuk, amely + &os; 8.X alatt remekül + használható. + + Ezen változat beüzemeléséhez + még létre kell hoznunk az alábbi + linket: - Telepítsük a www/nspluginwrapper portot. A port - telepítése viszont maga után vonja a - emulators/linux_base-fc4 - telepítését is, amely viszont egy nagyobb - port. + &prompt.root; ln -s /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so \ + /usr/local/lib/browser_plugins/ + + - A következõ lépésben - telepítsük a www/linux-flashplugin9 portot. - Miután felkerült, a hozzátartozó - plugint minden felhasználónak külön - telepítenie kell az nspluginwrapper - parancs kiadásával: + Miután a &os; rendszerünk + változatának megfelelõen elvégeztük + a &flash; port telepítését, a plugint az + egyes felhasználóknak a + nspluginwrapper paranccsal tehetjük + elérhetõvé: &prompt.user; nspluginwrapper -v -a -i ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/disks/chapter.sgml#14 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -1018,7 +1018,7 @@ device da device pass device uhci -device ohci +device ehci device usb device umass @@ -1028,14 +1028,18 @@ eszközeinket a rendszer SCSI eszközként látja. Az alaplapon található USB chipkészlet típusától - függõen vagy csak a device uhci - vagy pedig a device ohci bejegyzésre - lesz szükségünk. De abból sem + függõen vagy csak a device uhci, + vagy USB 1.X esetén pedig a + device ohci bejegyzésre lesz + szükségünk. De abból sem származik kárunk, ha mind a kettõt - meghagyjuk. Ha módosítani kellett a - konfigurációs állományt, akkor ne - felejtsük el újrafordítani és - telepíteni sem a rendszermagot. + meghagyjuk. Az USB 2.0 szabványú + vezérlõket a &man.ehci.4; meghajtó + (device ehci) támogatja. Ha + módosítani kellett a konfigurációs + állományt, akkor ne felejtsük el + újrafordítani és telepíteni sem a + rendszermagot. Ha az USB eszközünk egy CD- vagy @@ -1051,19 +1055,6 @@ szerepelhet a rendszermag beállításai között. - - A &os;-ben a USB 2.0-ás vezérlõk - támogatásához azonban a következõ - sort is fel kell vennünk a konfigurációs - állományba: - - device ehci - - Ha mellette tovább is szükségünk - lenne az USB 1.X támogatásra, akkor hagyjuk meg - a &man.uhci.4; és &man.ohci.4; - eszközmeghajtókat. - @@ -1216,13 +1207,14 @@ A Lemezek hozzáadása és az Állományrendszerek - csatlakoztatása és - leválasztása címû szakaszok + linkend="mount-unmount">Állományrendszerek + csatlakoztatása és + leválasztása címû szakaszok elolvasása mellett a következõ man oldalakat is ajánljuk: &man.umass.4;, &man.camcontrol.8; és - &man.usbdevs.8;. - + &man.usbconfig.8; &os; 8.X + esetében, vagy &man.usbdevs.8; a &os; korábbi + változatainál. ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/virtualization/chapter.sgml#8 (text+ko) ==== @@ -7,7 +7,7 @@ The FreeBSD Hungarian Documentation Project Translated by: PALI, Gabor %SOURCE% en_US.ISO8859-1/books/handbook/virtualization/chapter.sgml - %SRCID% 1.18 + %SRCID% 1.19 --> @@ -1224,12 +1224,12 @@ például emulators/vmware3) használták. Nem sokkal azonban a &os; 7.2 - megjelenése után a &sun; - VirtualBox OSE (Open + megjelenése után a Sun + &virtualbox; OSE (Open Source Edition) natív &os; alkalmazásként bukkant fel a Portgyûjteményben. - A VirtualBox egy folyamatos + A &virtualbox; egy folyamatos fejlesztés alatt álló, komplett virtualizációs csomag, amely immáron elérhetõ a legtöbb népszerû @@ -1244,7 +1244,7 @@ forráskódú változat nem tartalmaz USB támogatást. A különbségek teljes listája megtalálható a - VirtualBox wiki Editions + &virtualbox; wiki Editions oldalán, a címen. &os; alatt jelenleg csak a nyílt @@ -1252,10 +1252,10 @@ el. - A <application>VirtualBox</application> + <title>A <application>&virtualbox;</application> telepítése - A VirtualBox a A &virtualbox; a emulators/virtualbox könyvtárból érhetõ el portként, és onnan a következõ @@ -1283,7 +1283,7 @@ Devices menübõl érhetõek el. - A VirtualBox elsõ + A &virtualbox; elsõ indítása elõtt el kell még végeznünk néhány további beállítást. Fontos tudnunk, hogy a port a @@ -1303,7 +1303,7 @@ vboxdrv_load="YES" - A VirtualBox + A &virtualbox; ezenkívül még igényli a proc állományrendszer csatlakoztatását is: @@ -1322,7 +1322,7 @@ class="directory">proc állományrendszerrel van gondunk, amikor a következõ hibaüzenetet kapjuk a - VirtualBox + &virtualbox; indításakor: VirtualBox: supR3HardenedExecDir: couldn't read "", errno=2 cchLink=-1 @@ -1333,28 +1333,28 @@ csatlakoztatását. - A VirtualBox + A &virtualbox; telepítése során keletkezik még egy vboxusers nevû csoport. Ide azokat a felhasználókat vegyük fel, akik részére szeretnénk engedélyezni a - VirtualBox használatát. + &virtualbox; használatát. A csoportba új tagokat például a pw paranccsal tudunk felvenni: &prompt.root; pw groupmod vboxusers -m felhasználónév - Ezek után a VirtualBox + Ezek után a &virtualbox; indításához válasszuk a grafikus környezetünk menüjében található Sun - VirtualBox menüpontot, vagy egy + VirtualBox menüpontot, vagy egy terminálban gépeljük be ezt a parancsot: &prompt.user; VirtualBox - A VirtualBox + A &virtualbox; beállításának további lehetõségeirõl a címen @@ -1363,7 +1363,7 @@ és folyamatos fejlesztés alatt áll, ehhez még érdemes átolvasnunk a &os; wikiben szereplõ oldalt is, + url="http://wiki.FreeBSD.org/VirtualBox/"> oldalt is, ahol a vele kapcsolatos legfrissebb információkat és egyéb tudnivalókat találhatjuk. ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/share/sgml/trademarks.ent#11 (text+ko) ==== @@ -14,7 +14,7 @@ A 3Com és HomeConnect a 3Com Corporation @@ -348,8 +348,8 @@ A Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer Pages, JDK, JRE, JSP, JVM, Netra, - Solaris, StarOffice, Sun Blade, Sun Enterprise, Sun Fire, SunOS és - Ultra a Sun Microsystems, Inc. védjegyei vagy bejegyzett + Solaris, StarOffice, Sun Blade, Sun Enterprise, Sun Fire, SunOS, Ultra + és VirtualBox a Sun Microsystems, Inc. védjegyei vagy bejegyzett védjegyei az Egyesült Államokban és más országokban."> Java"> @@ -368,6 +368,7 @@ Sun Fire"> Ultra"> SunOS"> +VirtualBox"> A Symantec és Ghost a From owner-p4-projects@FreeBSD.ORG Thu Jul 30 08:08:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E7C9D1065677; Thu, 30 Jul 2009 08:07:59 +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 A46C2106566C for ; Thu, 30 Jul 2009 08:07:59 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 903758FC17 for ; Thu, 30 Jul 2009 08:07:59 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6U87x4I012845 for ; Thu, 30 Jul 2009 08:07:59 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6U87wNj012843 for perforce@freebsd.org; Thu, 30 Jul 2009 08:07:58 GMT (envelope-from syl@FreeBSD.org) Date: Thu, 30 Jul 2009 08:07:58 GMT Message-Id: <200907300807.n6U87wNj012843@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166778 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 08:08:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=166778 Change 166778 by syl@syl_twoflowers on 2009/07/30 08:07:25 MFC Affected files ... .. //depot/projects/soc2009/syl_usb/src/lib/Makefile.inc#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libalias/libalias/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libarchive/Makefile#4 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libarchive/archive_read_support_format_iso9660.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libautofs/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libbegemot/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libbluetooth/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libbsm/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libbsnmp/Makefile.inc#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libbz2/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/Makefile#3 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/gen/Makefile.inc#3 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/gen/dlopen.3#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/gen/ftok.3#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/gen/msgctl.3#3 delete .. //depot/projects/soc2009/syl_usb/src/lib/libc/gen/msgget.3#2 delete .. //depot/projects/soc2009/syl_usb/src/lib/libc/gen/msgrcv.3#2 delete .. //depot/projects/soc2009/syl_usb/src/lib/libc/gen/msgsnd.3#2 delete .. //depot/projects/soc2009/syl_usb/src/lib/libc/gen/pw_scan.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/posix1e/Makefile.inc#4 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/stdio/fread.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/stdio/fwrite.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/sys/Makefile.inc#4 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/sys/Symbol.map#5 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/sys/link.2#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/sys/mmap.2#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/sys/msgctl.2#1 branch .. //depot/projects/soc2009/syl_usb/src/lib/libc/sys/msgget.2#1 branch .. //depot/projects/soc2009/syl_usb/src/lib/libc/sys/msgrcv.2#1 branch .. //depot/projects/soc2009/syl_usb/src/lib/libc/sys/msgsnd.2#1 branch .. //depot/projects/soc2009/syl_usb/src/lib/libc/sys/pathconf.2#3 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libc/sys/stack_protector.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libcam/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libcrypt/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libdevstat/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libdwarf/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libdwarf/dwarf_loc.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libedit/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libexpat/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libfetch/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libftpio/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libgpib/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libipsec/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libjail/jail.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libjail/jail.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libkiconv/Makefile#3 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libkse/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libkvm/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libkvm/kvm.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libkvm/kvm_private.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libkvm/kvm_proc.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libkvm/kvm_vnet.c#1 branch .. //depot/projects/soc2009/syl_usb/src/lib/libmagic/Makefile#3 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libmemstat/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libncp/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libnetgraph/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libngatm/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libopie/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libpam/Makefile.inc#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libpcap/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libproc/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libradius/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libsdp/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libsmb/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libtacplus/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libugidfw/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libusb/Makefile#5 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb.3#8 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb20.3#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb20_compat01.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb20_int.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libusbhid/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libutil/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libvgl/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libwrap/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libypclnt/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/ncurses/ncurses/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/amd64/cpu_switch.S#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/amd64/exception.S#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/amd64/genassym.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/amd64/initcpu.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/amd64/machdep.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/amd64/pmap.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/amd64/sys_machdep.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/amd64/vm_machdep.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/conf/GENERIC#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/ia32/ia32_exception.S#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/ia32/ia32_reg.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/ia32/ia32_signal.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/include/cpufunc.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/include/md_var.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/include/pcb.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/include/pmap.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/include/vm.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/linux32/linux32_sysvec.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/pci/pci_bus.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/arm/arm/busdma_machdep.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/arm/arm/cpufunc.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/arm/arm/pmap.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/arm/arm/vm_machdep.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/arm/conf/AVILA#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/arm/conf/CAMBRIA#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/arm/include/pmap.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/arm/include/vm.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/boot/forth/loader.conf#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/bsm/audit.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/bsm/audit_kevents.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/ata/ata_all.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/cam/ata/ata_all.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/cam/ata/ata_da.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/cam/ata/ata_xpt.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/cam/cam.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/cam.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/cam_ccb.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/cam_periph.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/cam_xpt.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/cam_xpt.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/cam_xpt_internal.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/cam/cam_xpt_periph.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/scsi/scsi_all.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/scsi/scsi_cd.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/scsi/scsi_ch.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/scsi/scsi_da.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/scsi/scsi_pass.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/scsi/scsi_pt.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/scsi/scsi_sa.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/scsi/scsi_ses.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/scsi/scsi_sg.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cam/scsi/scsi_xpt.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/cddl/compat/opensolaris/sys/sig.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cddl/dev/dtrace/amd64/dtrace_subr.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cddl/dev/dtrace/i386/dtrace_subr.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/freebsd32/freebsd32_misc.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/freebsd32/freebsd32_proto.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/freebsd32/freebsd32_syscall.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/freebsd32/freebsd32_syscalls.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/freebsd32/freebsd32_sysent.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/freebsd32/syscalls.master#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/linprocfs/linprocfs.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/linux/linux_ioctl.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/linux/linux_mib.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/linux/linux_socket.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/svr4/svr4_sockio.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/svr4/svr4_stat.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/conf/NOTES#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/conf/files#8 integrate .. //depot/projects/soc2009/syl_usb/src/sys/conf/newvers.sh#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/conf/options#8 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/altq/altq/altq_subr.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslcompile.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslutils.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/pf/net/pf.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/pf/net/pf_if.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/pf/net/pf_ioctl.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/pf/net/pf_subr.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/pf/net/pfvar.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/rdma/rdma_cma.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ddb/db_expr.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ddb/db_sym.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ddb/db_variables.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ddb/db_variables.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ddb/ddb.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/aac/aac_disk.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_pcib_acpi.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/advansys/advansys.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/advansys/advlib.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ahci/ahci.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/dev/ahci/ahci.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/dev/aic7xxx/aic79xx_osm.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/aic7xxx/aic7xxx_osm.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/amd/amd.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ata/ata-all.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ata/atapi-cam.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ata/chipsets/ata-marvell.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ath/if_ath.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ath/if_athvar.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ciss/ciss.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ciss/cissvar.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/cxgb/cxgb_sge.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/drm/drm_pciids.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/drm/r600_cp.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/drm/radeon_drv.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/e1000/e1000_ich8lan.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/e1000/if_em.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/e1000/if_igb.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/hptrr/hptrr_config.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/if_ndis/if_ndis.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ipw/if_ipw.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/isp/isp_freebsd.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/iwi/if_iwi.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/iwn/if_iwn.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ixgbe/ixgbe.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/mfi/mfi.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/mfi/mfivar.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/mlx/mlx.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/mlx/mlxvar.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/mpt/mpt.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/mpt/mpt_pci.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/mwl/if_mwl.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/mxge/if_mxge.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/pci/pci.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ral/rt2560.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ral/rt2661.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/re/if_re.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/siis/siis.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/dev/siis/siis.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/dev/sound/pci/hda/hdac.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/sound/pcm/feeder_rate.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/sound/usb/uaudio.c#8 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/trm/trm.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/uart/uart_cpu_powerpc.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/at91dci.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/atmegadci.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/avr32dci.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/ehci.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/ehci_pci.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/musb_otg.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/ohci.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/ohci_pci.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uhci.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uhci_pci.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/usb_controller.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uss820dci.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/input/ukbd.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/input/ums.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/serial/u3g.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/serial/ulpt.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_busdma.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_compat_linux.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_compat_linux.h#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_controller.h#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_dev.c#8 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_dev.h#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_device.c#8 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_handle_request.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_hid.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_hub.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_parse.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_request.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_transfer.c#8 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usbdevs#8 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usbdi.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/wlan/if_uath.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/wpi/if_wpi.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/xl/if_xl.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/nfs/nfs_commonkrpc.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/nfs/nfs_var.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/nfs/nfsport.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/nfsclient/nfs_clbio.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/nfsclient/nfs_clrpcops.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/nfsclient/nfs_clstate.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/nfsclient/nfs_clvfsops.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/nfsclient/nfs_clvnops.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/nfsserver/nfs_nfsdport.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/procfs/procfs_map.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/geom/vinum/geom_vinum.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/conf/GENERIC#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/i386/initcpu.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/i386/machdep.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/i386/pmap.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/i386/vm_machdep.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/ibcs2/ibcs2_misc.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/include/cpufunc.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/include/md_var.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/include/pmap.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/include/sf_buf.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/include/vm.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/pci/pci_bus.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/xen/pmap.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ia64/ia64/pmap.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ia64/include/pmap.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ia64/include/vm.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/init_main.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/init_sysent.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_exec.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_exit.c#8 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_fork.c#8 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_jail.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_linker.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_mbuf.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_poll.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_proc.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_prot.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_sig.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_synch.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_sysctl.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_thread.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_uuid.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_vimage.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/link_elf.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/link_elf_obj.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/subr_sleepqueue.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/subr_trap.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/syscalls.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/syscalls.master#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/systrace_args.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/uipc_domain.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/uipc_socket.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_bio.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_lookup.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_mount.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_syscalls.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/mips/include/pmap.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/mips/include/vm.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/mips/mips/pmap.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/Makefile#8 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/ahci/Makefile#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/modules/cam/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/if_epair/Makefile#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/modules/siis/Makefile#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/modules/wlan/Makefile#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/bridgestp.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/flowtable.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/flowtable.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if.c#8 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_bridge.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_clone.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_clone.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_ef.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_enc.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_epair.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_ethersubr.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_faith.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_gif.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_gif.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_gre.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_loop.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_media.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_mib.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_spppsubr.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_stf.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_var.h#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_vlan.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/netisr.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/raw_cb.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/raw_cb.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/raw_usrreq.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/route.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/rtsock.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/vnet.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/net/vnet.h#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/_ieee80211.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211.c#8 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211.h#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_action.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_ageq.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_crypto.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_crypto.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_ddb.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_freebsd.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_freebsd.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_hwmp.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_input.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_input.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_ioctl.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_ioctl.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_mesh.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_mesh.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_node.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_node.h#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_output.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_proto.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_proto.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_scan.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_scan.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_scan_sta.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_var.h#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netgraph/atm/ng_atm.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netgraph/bluetooth/socket/ng_btsocket.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netgraph/netgraph.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netgraph/ng_base.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netgraph/ng_eiface.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netgraph/ng_ether.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netgraph/ng_gif.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netgraph/ng_iface.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netgraph/ng_socket.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/icmp6.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/icmp_var.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/if_ether.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/igmp.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/in.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/in_gif.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/in_mcast.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/in_pcb.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/in_pcb.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/in_proto.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/in_rmx.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/in_var.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_carp.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_divert.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_fastfwd.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_fw.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_icmp.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_input.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_ipsec.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_mroute.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_options.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_output.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_var.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ipfw/ip_fw2.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ipfw/ip_fw_nat.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ipfw/ip_fw_pfil.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/raw_ip.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/sctp_auth.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/sctp_indata.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/sctp_os_bsd.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/sctp_sysctl.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/sctp_sysctl.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/sctp_uio.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/sctputil.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/sctputil.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_hostcache.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_input.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_offload.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_offload.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_output.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_reass.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_sack.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_subr.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_syncache.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_syncache.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_timer.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_timewait.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_usrreq.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_var.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/udp_usrreq.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/udp_var.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/vinet.h#5 delete .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/dest6.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/frag6.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/icmp6.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/in6.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/in6_gif.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/in6_ifattach.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/in6_mcast.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/in6_pcb.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/in6_proto.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/in6_rmx.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/in6_src.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/in6_var.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/ip6_forward.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/ip6_input.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/ip6_ipsec.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/ip6_mroute.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/ip6_output.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/ip6_var.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/mld6.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/nd6.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/nd6.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/nd6_nbr.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/nd6_rtr.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/raw_ip6.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/raw_ip6.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/route6.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/scope6.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/tcp6_var.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/udp6_usrreq.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/vinet6.h#5 delete .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/ah_var.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/esp_var.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/ipcomp_var.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/ipip_var.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/ipsec.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/ipsec.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/ipsec6.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/ipsec_input.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/ipsec_mbuf.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/ipsec_output.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/key.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/key_debug.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/key_debug.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/keysock.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/keysock.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/vipsec.h#4 delete .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/xform_ah.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/xform_esp.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/xform_ipcomp.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/xform_ipip.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netipsec/xform_tcp.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/nfs/nfs_common.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/nfsclient/bootp_subr.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/nfsclient/nfs_bio.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/nfsclient/nfs_diskless.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/nfsclient/nfs_vnops.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/nfsclient/nfsmount.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/pc98/conf/GENERIC#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/pci/if_rlreg.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/aim/mmu_oea64.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/booke/pmap.c#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/include/pmap.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/include/vm.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/mpc85xx/lbc.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/rpc/clnt_rc.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/rpc/clnt_vc.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/audit/audit.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/audit/audit.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/audit/audit_arg.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/audit/audit_bsm.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/audit/audit_bsm_errno.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/audit/audit_bsm_klib.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/audit/audit_bsm_token.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/audit/audit_private.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sparc64/conf/GENERIC#7 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sparc64/include/param.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sparc64/include/pmap.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sparc64/include/vm.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sparc64/sparc64/pmap.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sun4v/conf/GENERIC#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sun4v/include/pmap.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sun4v/include/vm.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sun4v/sun4v/pmap.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/domain.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/jail.h#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/kernel.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/namei.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/param.h#9 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/pcpu.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/proc.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/signalvar.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/sleepqueue.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/sockio.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/syscall.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/syscall.mk#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/syscallsubr.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/sysctl.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/sysproto.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/ucred.h#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/user.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/vimage.h#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/device_pager.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/pmap.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/sg_pager.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_contig.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_extern.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_fault.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_map.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_meter.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_mmap.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_object.c#6 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_object.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_page.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_pageout.c#5 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_pager.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_pager.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_phys.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_phys.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/xen/evtchn/evtchn.c#3 integrate Differences ... ==== //depot/projects/soc2009/syl_usb/src/lib/Makefile.inc#2 (text+ko) ==== @@ -1,3 +1,3 @@ -# $FreeBSD: src/lib/Makefile.inc,v 1.4 2007/05/21 02:49:02 deischen Exp $ +# $FreeBSD: src/lib/Makefile.inc,v 1.5 2009/07/19 17:25:24 kensmith Exp $ # Default version for system libs (override in /Makefile if necessary) -SHLIB_MAJOR?= 4 +SHLIB_MAJOR?= 5 ==== //depot/projects/soc2009/syl_usb/src/lib/libalias/libalias/Makefile#2 (text+ko) ==== @@ -1,10 +1,10 @@ -# $FreeBSD: src/lib/libalias/libalias/Makefile,v 1.5 2008/03/12 11:58:28 piso Exp $ +# $FreeBSD: src/lib/libalias/libalias/Makefile,v 1.6 2009/07/19 17:25:24 kensmith Exp $ .PATH: ${.CURDIR}/../../../sys/netinet/libalias LIB= alias SHLIBDIR?= /lib -SHLIB_MAJOR= 6 +SHLIB_MAJOR= 7 MAN= libalias.3 SRCS= alias.c alias_db.c alias_proxy.c alias_util.c alias_mod.c INCS= alias.h ==== //depot/projects/soc2009/syl_usb/src/lib/libarchive/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libarchive/Makefile,v 1.97 2009/05/30 17:26:55 kientzle Exp $ +# $FreeBSD: src/lib/libarchive/Makefile,v 1.98 2009/07/19 17:25:24 kensmith Exp $ .include LIB= archive @@ -7,7 +7,7 @@ # FreeBSD SHLIB_MAJOR value is managed as part of the FreeBSD system. # It has no real relation to the libarchive version number. -SHLIB_MAJOR= 4 +SHLIB_MAJOR= 5 CFLAGS+= -DPLATFORM_CONFIG_H=\"config_freebsd.h\" CFLAGS+= -I${.OBJDIR} ==== //depot/projects/soc2009/syl_usb/src/lib/libarchive/archive_read_support_format_iso9660.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_iso9660.c,v 1.35 2009/04/26 18:43:49 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_iso9660.c,v 1.37 2009/07/26 18:11:44 kientzle Exp $"); #ifdef HAVE_ERRNO_H #include @@ -579,6 +579,7 @@ && file->size > 0) { archive_entry_set_hardlink(entry, iso9660->previous_pathname.s); + archive_entry_unset_size(entry); iso9660->entry_bytes_remaining = 0; iso9660->entry_sparse_offset = 0; release_file(iso9660, file); @@ -1174,12 +1175,12 @@ parse_rockridge_SL1(struct file_info *file, const unsigned char *data, int data_length) { - int component_continues = 1; + const char *separator = ""; - if (!file->symlink_continues) + if (!file->symlink_continues || file->symlink.length < 1) archive_string_empty(&file->symlink); - else - archive_strcat(&file->symlink, "/"); + else if (file->symlink.s[file->symlink.length - 1] != '/') + separator = "/"; file->symlink_continues = 0; /* @@ -1216,9 +1217,8 @@ unsigned char nlen = *data++; data_length -= 2; - if (!component_continues) - archive_strcat(&file->symlink, "/"); - component_continues = 0; + archive_strcat(&file->symlink, separator); + separator = "/"; switch(flag) { case 0: /* Usual case, this is text. */ @@ -1232,7 +1232,7 @@ return; archive_strncat(&file->symlink, (const char *)data, nlen); - component_continues = 1; + separator = ""; break; case 0x02: /* Current dir. */ archive_strcat(&file->symlink, "."); @@ -1243,6 +1243,7 @@ case 0x08: /* Root of filesystem. */ archive_string_empty(&file->symlink); archive_strcat(&file->symlink, "/"); + separator = ""; break; case 0x10: /* Undefined (historically "volume root" */ archive_string_empty(&file->symlink); ==== //depot/projects/soc2009/syl_usb/src/lib/libautofs/Makefile#2 (text+ko) ==== @@ -1,8 +1,8 @@ # $Id: Makefile,v 1.5 2004/09/08 08:12:21 bright Exp $ -# $FreeBSD: src/lib/libautofs/Makefile,v 1.5 2007/05/21 02:49:02 deischen Exp $ +# $FreeBSD: src/lib/libautofs/Makefile,v 1.6 2009/07/19 17:25:24 kensmith Exp $ LIB= autofs -SHLIB_MAJOR= 2 +SHLIB_MAJOR= 3 WARNS?= 4 SRCS= libautofs.c ==== //depot/projects/soc2009/syl_usb/src/lib/libbegemot/Makefile#2 (text+ko) ==== @@ -1,11 +1,11 @@ -# $FreeBSD: src/lib/libbegemot/Makefile,v 1.4 2007/05/21 02:49:02 deischen Exp $ +# $FreeBSD: src/lib/libbegemot/Makefile,v 1.5 2009/07/19 17:25:24 kensmith Exp $ LIBBEGEMOT_DIR=${.CURDIR}/../../contrib/libbegemot .PATH: ${LIBBEGEMOT_DIR} LIB= begemot -SHLIB_MAJOR= 3 +SHLIB_MAJOR= 4 SHLIBDIR?= /lib # WARNS?= 6 ==== //depot/projects/soc2009/syl_usb/src/lib/libbluetooth/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ # $Id: Makefile,v 1.5 2003/07/22 18:38:04 max Exp $ -# $FreeBSD: src/lib/libbluetooth/Makefile,v 1.6 2009/04/22 15:50:03 emax Exp $ +# $FreeBSD: src/lib/libbluetooth/Makefile,v 1.7 2009/07/19 17:25:24 kensmith Exp $ LIB= bluetooth MAN= bluetooth.3 @@ -7,7 +7,7 @@ WARNS?= 2 CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../../sys -SHLIB_MAJOR= 3 +SHLIB_MAJOR= 4 SRCS= bluetooth.c dev.c hci.c INCS= bluetooth.h ==== //depot/projects/soc2009/syl_usb/src/lib/libbsm/Makefile#2 (text+ko) ==== @@ -1,12 +1,12 @@ # -# $FreeBSD: src/lib/libbsm/Makefile,v 1.11 2009/04/19 16:17:13 rwatson Exp $ +# $FreeBSD: src/lib/libbsm/Makefile,v 1.12 2009/07/19 17:25:24 kensmith Exp $ # OPENBSMDIR= ${.CURDIR}/../../contrib/openbsm LIBBSMDIR= ${OPENBSMDIR}/libbsm LIB= bsm -SHLIB_MAJOR= 2 +SHLIB_MAJOR= 3 .PATH: ${LIBBSMDIR} .PATH: ${OPENBSMDIR}/bsm ==== //depot/projects/soc2009/syl_usb/src/lib/libbsnmp/Makefile.inc#2 (text+ko) ==== @@ -1,6 +1,6 @@ -# $FreeBSD: src/lib/libbsnmp/Makefile.inc,v 1.7 2007/06/18 18:47:54 rafan Exp $ +# $FreeBSD: src/lib/libbsnmp/Makefile.inc,v 1.8 2009/07/19 17:25:24 kensmith Exp $ -SHLIB_MAJOR= 4 +SHLIB_MAJOR= 5 WARNS?= 6 NO_WERROR= INCSDIR= ${INCLUDEDIR}/bsnmp ==== //depot/projects/soc2009/syl_usb/src/lib/libbz2/Makefile#2 (text+ko) ==== @@ -1,10 +1,10 @@ -# $FreeBSD: src/lib/libbz2/Makefile,v 1.7 2007/05/21 02:49:03 deischen Exp $ +# $FreeBSD: src/lib/libbz2/Makefile,v 1.8 2009/07/19 17:25:24 kensmith Exp $ BZ2DIR= ${.CURDIR}/../../contrib/bzip2 .PATH: ${BZ2DIR} LIB= bz2 -SHLIB_MAJOR= 3 +SHLIB_MAJOR= 4 SRCS= bzlib.c blocksort.c compress.c crctable.c decompress.c \ huffman.c randtable.c INCS= bzlib.h ==== //depot/projects/soc2009/syl_usb/src/lib/libc/Makefile#3 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 2/3/94 -# $FreeBSD: src/lib/libc/Makefile,v 1.77 2009/06/29 01:33:59 kan Exp $ +# $FreeBSD: src/lib/libc/Makefile,v 1.78 2009/07/14 21:19:13 kan Exp $ SHLIBDIR?= /lib @@ -26,7 +26,7 @@ # DPADD+= ${LIBGCC} LDFLAGS+= -nodefaultlibs -LDADD+= -lgcc +LDADD+= -lgcc -lssp_nonshared # Define (empty) variables so that make doesn't give substitution # errors if the included makefiles don't change these: ==== //depot/projects/soc2009/syl_usb/src/lib/libc/gen/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.6 (Berkeley) 5/4/95 -# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.143 2009/05/07 13:49:48 ed Exp $ +# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.144 2009/07/13 12:53:43 trasz Exp $ # machine-independent gen sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/gen ${.CURDIR}/gen @@ -55,7 +55,7 @@ getpagesize.3 getpass.3 getpeereid.3 getprogname.3 getpwent.3 \ getttyent.3 getusershell.3 getvfsbyname.3 \ glob.3 initgroups.3 isgreater.3 ldexp.3 lockf.3 makecontext.3 \ - modf.3 msgctl.3 msgget.3 msgrcv.3 msgsnd.3 \ + modf.3 \ nice.3 nlist.3 pause.3 popen.3 \ posix_spawn.3 posix_spawn_file_actions_addopen.3 \ posix_spawn_file_actions_init.3 posix_spawnattr_getflags.3 \ ==== //depot/projects/soc2009/syl_usb/src/lib/libc/gen/dlopen.3#2 (text+ko) ==== @@ -30,9 +30,9 @@ .\" Copyright (c) 1991 Sun Microsystems, Inc. .\" .\" @(#) dlopen.3 1.6 90/01/31 SMI -.\" $FreeBSD: src/lib/libc/gen/dlopen.3,v 1.29 2009/04/01 14:38:20 kib Exp $ +.\" $FreeBSD: src/lib/libc/gen/dlopen.3,v 1.30 2009/07/17 19:45:42 kib Exp $ .\" -.Dd April 1, 2009 +.Dd July 7, 2009 .Os .Dt DLOPEN 3 .Sh NAME @@ -148,6 +148,13 @@ .Fl "z nodelete" option of the static linker .Xr ld 1 . +.It Dv RTLD_NOLOAD +Ony return valid handle for the object if it is already loaded in +the process address space, otherwise +.Dv NULL +is returned. +Other mode flags may be specified, which will be applied for promotion +for the found object. .El .Pp If ==== //depot/projects/soc2009/syl_usb/src/lib/libc/gen/ftok.3#2 (text+ko) ==== @@ -23,8 +23,8 @@ .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/gen/ftok.3,v 1.16 2004/07/02 23:52:10 ru Exp $ -.Dd June 24, 1994 +.\" $FreeBSD: src/lib/libc/gen/ftok.3,v 1.17 2009/07/13 12:53:43 trasz Exp $ +.Dd July 9, 2009 .Os .Dt FTOK 3 .Sh NAME @@ -41,7 +41,7 @@ The .Fn ftok function attempts to create a unique key suitable for use with the -.Xr msgget 3 , +.Xr msgget 2 , .Xr semget 2 and .Xr shmget 2 @@ -66,7 +66,7 @@ .Sh SEE ALSO .Xr semget 2 , .Xr shmget 2 , -.Xr msgget 3 +.Xr msgget 2 .Sh HISTORY The .Fn ftok ==== //depot/projects/soc2009/syl_usb/src/lib/libc/gen/pw_scan.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ static char sccsid[] = "@(#)pw_scan.c 8.3 (Berkeley) 4/2/94"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/pw_scan.c,v 1.26 2007/01/09 00:27:55 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/pw_scan.c,v 1.27 2009/07/22 20:46:17 kensmith Exp $"); /* * This module is used to "verify" password entries by chpass(1) and @@ -58,8 +58,14 @@ * * If pw_big_ids_warning is -1 on entry to pw_scan(), it will be set based * on the existence of PW_SCAN_BIG_IDS in the environment. + * + * It is believed all baseline system software that can not handle the + * normal ID sizes is now gone so pw_big_ids_warning is disabled for now. + * But the code has been left in place in case end-users want to re-enable + * it and/or for the next time the ID sizes get bigger but pieces of the + * system lag behind. */ -static int pw_big_ids_warning = -1; +static int pw_big_ids_warning = 0; int __pw_scan(char *bp, struct passwd *pw, int flags) @@ -67,6 +73,7 @@ uid_t id; int root; char *ep, *p, *sh; + unsigned long temp; if (pw_big_ids_warning == -1) pw_big_ids_warning = getenv("PW_SCAN_BIG_IDS") == NULL ? 1 : 0; @@ -94,12 +101,14 @@ return (0); } } - id = strtoul(p, &ep, 10); - if (errno == ERANGE) { + errno = 0; + temp = strtoul(p, &ep, 10); + if ((temp == ULONG_MAX && errno == ERANGE) || temp > UID_MAX) { if (flags & _PWSCAN_WARN) - warnx("%s > max uid value (%lu)", p, ULONG_MAX); + warnx("%s > max uid value (%u)", p, UID_MAX); return (0); } + id = temp; if (*ep != '\0') { if (flags & _PWSCAN_WARN) warnx("%s uid is incorrect", p); @@ -127,12 +136,14 @@ return (0); } } - id = strtoul(p, &ep, 10); - if (errno == ERANGE) { + errno = 0; + temp = strtoul(p, &ep, 10); + if ((temp == ULONG_MAX && errno == ERANGE) || temp > GID_MAX) { if (flags & _PWSCAN_WARN) - warnx("%s > max gid value (%lu)", p, ULONG_MAX); + warnx("%s > max gid value (%u)", p, GID_MAX); return (0); } + id = temp; if (*ep != '\0') { if (flags & _PWSCAN_WARN) warnx("%s gid is incorrect", p); ==== //depot/projects/soc2009/syl_usb/src/lib/libc/posix1e/Makefile.inc#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/posix1e/Makefile.inc,v 1.21 2009/06/25 12:46:59 trasz Exp $ +# $FreeBSD: src/lib/libc/posix1e/Makefile.inc,v 1.22 2009/07/14 19:37:53 trasz Exp $ .PATH: ${.CURDIR}/posix1e @@ -93,9 +93,11 @@ acl_get.3 acl_get_file.3 \ acl_get.3 acl_get_fd.3 \ acl_get.3 acl_get_fd_np.3 \ + acl_get.3 acl_get_link_np.3 \ acl_set.3 acl_set_file.3 \ acl_set.3 acl_set_fd.3 \ acl_set.3 acl_set_fd_np.3 \ + acl_set.3 acl_set_link_np.3 \ acl_to_text.3 acl_to_text_np.3 \ acl_valid.3 acl_valid_file_np.3 \ acl_valid.3 acl_valid_fd_np.3 \ ==== //depot/projects/soc2009/syl_usb/src/lib/libc/stdio/fread.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)fread.c 8.2 (Berkeley) 12/11/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/fread.c,v 1.15 2008/12/01 14:33:34 ru Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/fread.c,v 1.16 2009/07/12 13:09:43 ed Exp $"); #include "namespace.h" #include @@ -67,9 +67,7 @@ size_t total; /* - * The ANSI standard requires a return value of 0 for a count - * or a size of 0. Peculiarily, it imposes no such requirements - * on fwrite; it only requires fread to be broken. + * ANSI and SUSv2 require a return value of 0 if size or count are 0. */ if ((resid = count * size) == 0) return (0); ==== //depot/projects/soc2009/syl_usb/src/lib/libc/stdio/fwrite.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)fwrite.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/fwrite.c,v 1.12 2007/01/09 00:28:06 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/fwrite.c,v 1.13 2009/07/12 13:09:43 ed Exp $"); #include "namespace.h" #include @@ -57,8 +57,15 @@ struct __suio uio; struct __siov iov; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jul 30 08:30:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E24B61065670; Thu, 30 Jul 2009 08:30:24 +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 9EFE8106564A for ; Thu, 30 Jul 2009 08:30:24 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8AD848FC1D for ; Thu, 30 Jul 2009 08:30:24 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6U8UOVR014489 for ; Thu, 30 Jul 2009 08:30:24 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6U8UOxX014487 for perforce@freebsd.org; Thu, 30 Jul 2009 08:30:24 GMT (envelope-from hselasky@FreeBSD.org) Date: Thu, 30 Jul 2009 08:30:24 GMT Message-Id: <200907300830.n6U8UOxX014487@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166779 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 08:30:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=166779 Change 166779 by hselasky@hselasky_laptop001 on 2009/07/30 08:29:36 IFC @ 166777 Affected files ... .. //depot/projects/usb/src/lib/libusb/libusb.3#19 integrate .. //depot/projects/usb/src/lib/libusb/libusb.h#9 integrate .. //depot/projects/usb/src/lib/libusb/libusb10.c#11 integrate .. //depot/projects/usb/src/lib/libusb/libusb10.h#9 integrate .. //depot/projects/usb/src/lib/libusb/libusb10_desc.c#8 integrate .. //depot/projects/usb/src/lib/libusb/libusb10_io.c#8 integrate .. //depot/projects/usb/src/lib/libusb/libusb20.3#4 integrate .. //depot/projects/usb/src/lib/libusb/libusb20_compat01.c#7 integrate .. //depot/projects/usb/src/lib/libusb/libusb20_int.h#8 integrate .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#55 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/at91dci.c#28 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/atmegadci.c#38 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/avr32dci.c#13 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#32 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci_pci.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/musb_otg.c#26 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ohci.c#27 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ohci_pci.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uhci.c#25 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uhci_pci.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#25 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uss820dci.c#28 integrate .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#24 integrate .. //depot/projects/usb/src/sys/dev/usb/input/ums.c#23 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/u3g.c#19 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/ulpt.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#46 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.h#22 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_controller.h#18 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#33 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_dev.h#17 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_device.c#46 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_hid.c#40 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#28 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_parse.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_request.c#25 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#162 integrate .. //depot/projects/usb/src/sys/dev/usb/usbdevs#71 integrate .. //depot/projects/usb/src/sys/dev/usb/usbdi.h#12 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvnops.c#10 integrate .. //depot/projects/usb/src/sys/i386/i386/initcpu.c#8 integrate .. //depot/projects/usb/src/sys/i386/i386/pmap.c#25 integrate .. //depot/projects/usb/src/sys/i386/i386/vm_machdep.c#13 integrate .. //depot/projects/usb/src/sys/i386/include/cpufunc.h#10 integrate .. //depot/projects/usb/src/sys/i386/include/md_var.h#5 integrate .. //depot/projects/usb/src/sys/i386/include/pmap.h#13 integrate .. //depot/projects/usb/src/sys/i386/include/sf_buf.h#2 integrate .. //depot/projects/usb/src/sys/i386/xen/pmap.c#12 integrate .. //depot/projects/usb/src/sys/kern/kern_exec.c#19 integrate .. //depot/projects/usb/src/sys/kern/kern_jail.c#27 integrate .. //depot/projects/usb/src/sys/kern/uipc_socket.c#25 integrate .. //depot/projects/usb/src/sys/kern/vfs_lookup.c#20 integrate .. //depot/projects/usb/src/sys/kern/vfs_mount.c#28 integrate .. //depot/projects/usb/src/sys/kern/vfs_syscalls.c#27 integrate .. //depot/projects/usb/src/sys/net/if_ethersubr.c#22 integrate .. //depot/projects/usb/src/sys/net/vnet.h#16 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw2.c#7 integrate .. //depot/projects/usb/src/sys/netinet/sctp_auth.c#10 integrate .. //depot/projects/usb/src/sys/netinet/sctp_indata.c#20 integrate .. //depot/projects/usb/src/sys/netinet/sctp_sysctl.c#15 integrate .. //depot/projects/usb/src/sys/netinet/sctp_sysctl.h#12 integrate .. //depot/projects/usb/src/sys/netinet/sctputil.c#22 integrate .. //depot/projects/usb/src/sys/netinet/sctputil.h#12 integrate .. //depot/projects/usb/src/sys/netinet/tcp_input.c#27 integrate .. //depot/projects/usb/src/sys/netinet/tcp_syncache.c#25 integrate .. //depot/projects/usb/src/sys/security/audit/audit.c#15 integrate .. //depot/projects/usb/src/sys/security/audit/audit.h#13 integrate .. //depot/projects/usb/src/sys/security/audit/audit_arg.c#13 integrate .. //depot/projects/usb/src/sys/security/audit/audit_bsm.c#16 integrate .. //depot/projects/usb/src/sys/security/audit/audit_bsm_klib.c#13 integrate .. //depot/projects/usb/src/sys/security/audit/audit_private.h#12 integrate Differences ... ==== //depot/projects/usb/src/lib/libusb/libusb.3#19 (text+ko) ==== @@ -24,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libusb/libusb.3,v 1.7 2009/06/23 01:00:26 thompsa Exp $ +.\" $FreeBSD: src/lib/libusb/libusb.3,v 1.8 2009/07/30 00:11:41 alfred Exp $ .\" .Dd June 22, 2009 .Dt LIBUSB 3 ==== //depot/projects/usb/src/lib/libusb/libusb.h#9 (text+ko) ==== @@ -1,3 +1,4 @@ +/* $FreeBSD: src/lib/libusb/libusb.h,v 1.9 2009/07/30 00:11:41 alfred Exp $ */ /*- * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. * ==== //depot/projects/usb/src/lib/libusb/libusb10.c#11 (text+ko) ==== @@ -1,3 +1,4 @@ +/* $FreeBSD: src/lib/libusb/libusb10.c,v 1.3 2009/07/30 00:11:41 alfred Exp $ */ /*- * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. * Copyright (c) 2009 Hans Petter Selasky. All rights reserved. ==== //depot/projects/usb/src/lib/libusb/libusb10.h#9 (text+ko) ==== @@ -1,3 +1,4 @@ +/* $FreeBSD: src/lib/libusb/libusb10.h,v 1.3 2009/07/30 00:11:41 alfred Exp $ */ /*- * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. * ==== //depot/projects/usb/src/lib/libusb/libusb10_desc.c#8 (text+ko) ==== @@ -1,3 +1,4 @@ +/* $FreeBSD: src/lib/libusb/libusb10_desc.c,v 1.3 2009/07/30 00:11:41 alfred Exp $ */ /*- * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. * ==== //depot/projects/usb/src/lib/libusb/libusb10_io.c#8 (text+ko) ==== @@ -1,3 +1,4 @@ +/* $FreeBSD: src/lib/libusb/libusb10_io.c,v 1.3 2009/07/30 00:11:41 alfred Exp $ */ /*- * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. * ==== //depot/projects/usb/src/lib/libusb/libusb20.3#4 (text+ko) ==== @@ -24,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libusb/libusb20.3,v 1.3 2009/06/23 01:00:26 thompsa Exp $ +.\" $FreeBSD: src/lib/libusb/libusb20.3,v 1.4 2009/07/30 00:11:41 alfred Exp $ .\" .Dd June 22, 2009 .Dt LIBUSB20 3 ==== //depot/projects/usb/src/lib/libusb/libusb20_compat01.c#7 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb20_compat01.c,v 1.3 2009/06/12 16:07:06 thompsa Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb20_compat01.c,v 1.4 2009/07/30 00:11:41 alfred Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/lib/libusb/libusb20_int.h#8 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb20_int.h,v 1.3 2009/06/12 16:07:06 thompsa Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb20_int.h,v 1.4 2009/07/30 00:11:41 alfred Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#55 (text+ko) ==== @@ -1,5 +1,5 @@ /* $NetBSD: uaudio.c,v 1.91 2004/11/05 17:46:14 kent Exp $ */ -/* $FreeBSD: src/sys/dev/sound/usb/uaudio.c,v 1.54 2009/07/12 16:50:32 marcel Exp $ */ +/* $FreeBSD: src/sys/dev/sound/usb/uaudio.c,v 1.55 2009/07/30 00:14:56 alfred Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. ==== //depot/projects/usb/src/sys/dev/usb/controller/at91dci.c#28 (text+ko) ==== @@ -1,5 +1,5 @@ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/at91dci.c,v 1.21 2009/06/27 21:23:30 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/at91dci.c,v 1.22 2009/07/30 00:14:34 alfred Exp $"); /*- * Copyright (c) 2007-2008 Hans Petter Selasky. All rights reserved. ==== //depot/projects/usb/src/sys/dev/usb/controller/atmegadci.c#38 (text+ko) ==== @@ -1,5 +1,5 @@ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/atmegadci.c,v 1.27 2009/06/27 21:23:30 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/atmegadci.c,v 1.28 2009/07/30 00:14:34 alfred Exp $"); /*- * Copyright (c) 2009 Hans Petter Selasky. All rights reserved. ==== //depot/projects/usb/src/sys/dev/usb/controller/avr32dci.c#13 (text+ko) ==== @@ -1,5 +1,5 @@ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/avr32dci.c,v 1.7 2009/06/27 21:23:30 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/avr32dci.c,v 1.8 2009/07/30 00:14:34 alfred Exp $"); /*- * Copyright (c) 2009 Hans Petter Selasky. All rights reserved. ==== //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#32 (text+ko) ==== @@ -44,7 +44,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci.c,v 1.25 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci.c,v 1.26 2009/07/30 00:14:34 alfred Exp $"); #include #include ==== //depot/projects/usb/src/sys/dev/usb/controller/ehci_pci.c#10 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci_pci.c,v 1.7 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci_pci.c,v 1.8 2009/07/30 00:12:47 alfred Exp $"); /* * USB Enhanced Host Controller Driver, a.k.a. USB 2.0 controller. ==== //depot/projects/usb/src/sys/dev/usb/controller/musb_otg.c#26 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/controller/musb_otg.c,v 1.21 2009/06/27 21:23:30 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/controller/musb_otg.c,v 1.22 2009/07/30 00:14:34 alfred Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/sys/dev/usb/controller/ohci.c#27 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci.c,v 1.20 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci.c,v 1.21 2009/07/30 00:14:34 alfred Exp $"); /* * USB Open Host Controller driver. ==== //depot/projects/usb/src/sys/dev/usb/controller/ohci_pci.c#10 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci_pci.c,v 1.7 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci_pci.c,v 1.8 2009/07/30 00:12:47 alfred Exp $"); /* * USB Open Host Controller driver. ==== //depot/projects/usb/src/sys/dev/usb/controller/uhci.c#25 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/uhci.c,v 1.20 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/uhci.c,v 1.21 2009/07/30 00:14:34 alfred Exp $"); /* * USB Universal Host Controller driver. ==== //depot/projects/usb/src/sys/dev/usb/controller/uhci_pci.c#10 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/uhci_pci.c,v 1.7 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/uhci_pci.c,v 1.8 2009/07/30 00:12:47 alfred Exp $"); /* Universal Host Controller Interface * ==== //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#25 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/controller/usb_controller.c,v 1.20 2009/06/23 02:19:59 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/controller/usb_controller.c,v 1.21 2009/07/30 00:16:32 alfred Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/sys/dev/usb/controller/uss820dci.c#28 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/controller/uss820dci.c,v 1.24 2009/06/27 21:23:30 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/controller/uss820dci.c,v 1.25 2009/07/30 00:14:34 alfred Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky * All rights reserved. ==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#24 (text+ko) ==== @@ -1,5 +1,5 @@ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/input/ukbd.c,v 1.14 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/input/ukbd.c,v 1.15 2009/07/30 00:14:34 alfred Exp $"); /*- ==== //depot/projects/usb/src/sys/dev/usb/input/ums.c#23 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/input/ums.c,v 1.15 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/input/ums.c,v 1.16 2009/07/30 00:13:09 alfred Exp $"); /* * HID spec: http://www.usb.org/developers/devclass_docs/HID1_11.pdf ==== //depot/projects/usb/src/sys/dev/usb/serial/u3g.c#19 (text+ko) ==== @@ -16,7 +16,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $FreeBSD: src/sys/dev/usb/serial/u3g.c,v 1.18 2009/06/23 02:19:59 thompsa Exp $ + * $FreeBSD: src/sys/dev/usb/serial/u3g.c,v 1.19 2009/07/30 00:15:17 alfred Exp $ */ /* ==== //depot/projects/usb/src/sys/dev/usb/serial/ulpt.c#18 (text+ko) ==== @@ -1,5 +1,5 @@ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/serial/ulpt.c,v 1.12 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/serial/ulpt.c,v 1.13 2009/07/30 00:16:06 alfred Exp $"); /* $NetBSD: ulpt.c,v 1.60 2003/10/04 21:19:50 augustss Exp $ */ ==== //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#46 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/usb_compat_linux.c,v 1.15 2009/06/23 02:19:59 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usb_compat_linux.c,v 1.16 2009/07/30 00:16:50 alfred Exp $ */ /*- * Copyright (c) 2007 Luigi Rizzo - Universita` di Pisa. All rights reserved. * Copyright (c) 2007 Hans Petter Selasky. All rights reserved. ==== //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.h#22 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/usb_compat_linux.h,v 1.10 2009/06/23 02:19:59 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usb_compat_linux.h,v 1.11 2009/07/30 00:16:50 alfred Exp $ */ /*- * Copyright (c) 2007 Luigi Rizzo - Universita` di Pisa. All rights reserved. * Copyright (c) 2007 Hans Petter Selasky. All rights reserved. ==== //depot/projects/usb/src/sys/dev/usb/usb_controller.h#18 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/usb_controller.h,v 1.16 2009/06/27 21:23:30 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usb_controller.h,v 1.17 2009/07/30 00:14:34 alfred Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/sys/dev/usb/usb_dev.c#33 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/usb_dev.c,v 1.29 2009/06/23 02:19:59 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usb_dev.c,v 1.30 2009/07/30 00:15:50 alfred Exp $ */ /*- * Copyright (c) 2006-2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/sys/dev/usb/usb_dev.h#17 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/usb_dev.h,v 1.12 2009/06/23 02:19:59 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usb_dev.h,v 1.13 2009/07/30 00:15:50 alfred Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/sys/dev/usb/usb_device.c#46 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/usb_device.c,v 1.43 2009/06/27 21:23:30 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usb_device.c,v 1.44 2009/07/30 00:15:50 alfred Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#18 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/usb_handle_request.c,v 1.13 2009/06/27 21:23:30 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usb_handle_request.c,v 1.14 2009/07/30 00:15:50 alfred Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/sys/dev/usb/usb_hid.c#40 (text+ko) ==== @@ -2,7 +2,7 @@ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/usb_hid.c,v 1.16 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/usb_hid.c,v 1.17 2009/07/30 00:17:08 alfred Exp $"); /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. * All rights reserved. ==== //depot/projects/usb/src/sys/dev/usb/usb_hub.c#28 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/usb_hub.c,v 1.26 2009/06/23 02:19:59 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usb_hub.c,v 1.27 2009/07/30 00:15:50 alfred Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. All rights reserved. * Copyright (c) 1998 Lennart Augustsson. All rights reserved. ==== //depot/projects/usb/src/sys/dev/usb/usb_parse.c#9 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/usb_parse.c,v 1.5 2009/06/23 02:19:59 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usb_parse.c,v 1.6 2009/07/30 00:15:50 alfred Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/sys/dev/usb/usb_request.c#25 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/usb_request.c,v 1.23 2009/06/23 02:19:59 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usb_request.c,v 1.24 2009/07/30 00:15:50 alfred Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. All rights reserved. * Copyright (c) 1998 Lennart Augustsson. All rights reserved. ==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#162 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/usb_transfer.c,v 1.27 2009/06/27 21:23:30 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usb_transfer.c,v 1.28 2009/07/30 00:14:34 alfred Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/sys/dev/usb/usbdevs#71 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.419 2009/07/27 20:17:20 weongyo Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.420 2009/07/30 00:15:17 alfred Exp $ /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */ /*- ==== //depot/projects/usb/src/sys/dev/usb/usbdi.h#12 (text+ko) ==== @@ -21,7 +21,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/usb/usbdi.h,v 1.70 2009/06/27 21:23:30 thompsa Exp $ + * $FreeBSD: src/sys/dev/usb/usbdi.h,v 1.71 2009/07/30 00:57:54 alfred Exp $ */ #ifndef _USB_USBDI_H_ #define _USB_USBDI_H_ ==== //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvnops.c#10 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/fs/nfsclient/nfs_clvnops.c,v 1.12 2009/07/22 14:37:53 rmacklem Exp $"); +__FBSDID("$FreeBSD: src/sys/fs/nfsclient/nfs_clvnops.c,v 1.13 2009/07/29 14:50:31 rmacklem Exp $"); /* * vnode op calls for Sun NFS version 2, 3 and 4 @@ -687,11 +687,17 @@ int cm = newnfs_commit_on_close ? 1 : 0; error = ncl_flush(vp, MNT_WAIT, cred, ap->a_td, cm); /* np->n_flag &= ~NMODIFIED; */ - } else if (NFS_ISV4(vp) && nfscl_mustflush(vp)) { - int cm = newnfs_commit_on_close ? 1 : 0; - error = ncl_flush(vp, MNT_WAIT, cred, ap->a_td, cm); - /* as above w.r.t. races when clearing NMODIFIED */ - /* np->n_flag &= ~NMODIFIED; */ + } else if (NFS_ISV4(vp)) { + if (nfscl_mustflush(vp)) { + int cm = newnfs_commit_on_close ? 1 : 0; + error = ncl_flush(vp, MNT_WAIT, cred, ap->a_td, + cm); + /* + * as above w.r.t races when clearing + * NMODIFIED. + * np->n_flag &= ~NMODIFIED; + */ + } } else error = ncl_vinvalbuf(vp, V_SAVE, ap->a_td, 1); mtx_lock(&np->n_mtx); ==== //depot/projects/usb/src/sys/i386/i386/initcpu.c#8 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/initcpu.c,v 1.61 2009/01/12 22:01:49 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/initcpu.c,v 1.62 2009/07/29 08:49:58 kib Exp $"); #include "opt_cpu.h" @@ -91,6 +91,7 @@ u_int cpu_procinfo2 = 0; /* Multicore info */ char cpu_vendor[20] = ""; /* CPU Origin code */ u_int cpu_vendor_id = 0; /* CPU vendor ID */ +u_int cpu_clflush_line_size = 32; SYSCTL_UINT(_hw, OID_AUTO, via_feature_rng, CTLFLAG_RD, &via_feature_rng, 0, "VIA C3/C7 RNG feature available in CPU"); @@ -709,6 +710,14 @@ } enable_sse(); + /* + * CPUID with %eax = 1, %ebx returns + * Bits 15-8: CLFLUSH line size + * (Value * 8 = cache line size in bytes) + */ + if ((cpu_feature & CPUID_CLFSH) != 0) + cpu_clflush_line_size = ((cpu_procinfo >> 8) & 0xff) * 8; + #if defined(PC98) && !defined(CPU_UPGRADE_HW_CACHE) /* * OS should flush L1 cache by itself because no PC-98 supports ==== //depot/projects/usb/src/sys/i386/i386/pmap.c#25 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.644 2009/07/24 13:50:29 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.645 2009/07/29 08:49:58 kib Exp $"); /* * Manages physical address maps. @@ -119,6 +119,7 @@ #include #include #include +#include #include #include #include @@ -732,7 +733,7 @@ * Determine the appropriate bits to set in a PTE or PDE for a specified * caching mode. */ -static int +int pmap_cache_bits(int mode, boolean_t is_pde) { int pat_flag, pat_index, cache_bits; @@ -945,6 +946,40 @@ } #endif /* !SMP */ +void +pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva) +{ + + KASSERT((sva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: sva not page-aligned")); + KASSERT((eva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: eva not page-aligned")); + + if (cpu_feature & CPUID_SS) + ; /* If "Self Snoop" is supported, do nothing. */ + else if (cpu_feature & CPUID_CLFSH) { + + /* + * Otherwise, do per-cache line flush. Use the mfence + * instruction to insure that previous stores are + * included in the write-back. The processor + * propagates flush to other processors in the cache + * coherence domain. + */ + mfence(); + for (; eva < sva; eva += cpu_clflush_line_size) + clflush(eva); + mfence(); + } else { + + /* + * No targeted cache flush methods are supported by CPU, + * globally invalidate cache as a last resort. + */ + pmap_invalidate_cache(); + } +} + /* * Are we current address space or kernel? N.B. We return FALSE when * a pmap's page table is in use because a kernel thread is borrowing @@ -4400,7 +4435,8 @@ void * pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) { - vm_offset_t va, tmpva, offset; + vm_offset_t va, offset; + vm_size_t tmpsize; offset = pa & PAGE_MASK; size = roundup(offset + size, PAGE_SIZE); @@ -4413,16 +4449,10 @@ if (!va) panic("pmap_mapdev: Couldn't alloc kernel virtual memory"); - for (tmpva = va; size > 0; ) { - pmap_kenter_attr(tmpva, pa, mode); - size -= PAGE_SIZE; - tmpva += PAGE_SIZE; - pa += PAGE_SIZE; - } - pmap_invalidate_range(kernel_pmap, va, tmpva); - /* If "Self Snoop" is supported, do nothing. */ - if (!(cpu_feature & CPUID_SS)) - pmap_invalidate_cache(); + for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE) + pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode); + pmap_invalidate_range(kernel_pmap, va, va + tmpsize); + pmap_invalidate_cache_range(va, va + size); return ((void *)(va + offset)); } @@ -4462,16 +4492,48 @@ void pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma) { + struct sysmaps *sysmaps; + vm_offset_t sva, eva; m->md.pat_mode = ma; + if ((m->flags & PG_FICTITIOUS) != 0) + return; /* * If "m" is a normal page, flush it from the cache. + * See pmap_invalidate_cache_range(). + * + * First, try to find an existing mapping of the page by sf + * buffer. sf_buf_invalidate_cache() modifies mapping and + * flushes the cache. */ - if ((m->flags & PG_FICTITIOUS) == 0) { - /* If "Self Snoop" is supported, do nothing. */ - if (!(cpu_feature & CPUID_SS)) - pmap_invalidate_cache(); + if (sf_buf_invalidate_cache(m)) + return; + + /* + * If page is not mapped by sf buffer, but CPU does not + * support self snoop, map the page transient and do + * invalidation. In the worst case, whole cache is flushed by + * pmap_invalidate_cache_range(). + */ + if ((cpu_feature & (CPUID_SS|CPUID_CLFSH)) == CPUID_CLFSH) { + sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)]; + mtx_lock(&sysmaps->lock); + if (*sysmaps->CMAP2) + panic("pmap_page_set_memattr: CMAP2 busy"); + sched_pin(); + *sysmaps->CMAP2 = PG_V | PG_RW | VM_PAGE_TO_PHYS(m) | + PG_A | PG_M | pmap_cache_bits(m->md.pat_mode, 0); + invlcaddr(sysmaps->CADDR2); + sva = (vm_offset_t)sysmaps->CADDR2; + eva = sva + PAGE_SIZE; + } else + sva = eva = 0; /* gcc */ + pmap_invalidate_cache_range(sva, eva); + if (sva != 0) { + *sysmaps->CMAP2 = 0; + sched_unpin(); + mtx_unlock(&sysmaps->lock); } } @@ -4537,9 +4599,7 @@ */ if (changed) { pmap_invalidate_range(kernel_pmap, base, tmpva); - /* If "Self Snoop" is supported, do nothing. */ - if (!(cpu_feature & CPUID_SS)) - pmap_invalidate_cache(); + pmap_invalidate_cache_range(base, tmpva); } return (0); } ==== //depot/projects/usb/src/sys/i386/i386/vm_machdep.c#13 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/vm_machdep.c,v 1.296 2009/03/22 02:33:48 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/vm_machdep.c,v 1.297 2009/07/29 08:49:58 kib Exp $"); #include "opt_isa.h" #include "opt_npx.h" @@ -720,6 +720,39 @@ } /* + * Invalidate the cache lines that may belong to the page, if + * (possibly old) mapping of the page by sf buffer exists. Returns + * TRUE when mapping was found and cache invalidated. + */ +boolean_t +sf_buf_invalidate_cache(vm_page_t m) +{ + struct sf_head *hash_list; + struct sf_buf *sf; + boolean_t ret; + + hash_list = &sf_buf_active[SF_BUF_HASH(m)]; + ret = FALSE; + mtx_lock(&sf_buf_lock); + LIST_FOREACH(sf, hash_list, list_entry) { + if (sf->m == m) { + /* + * Use pmap_qenter to update the pte for + * existing mapping, in particular, the PAT + * settings are recalculated. + */ + pmap_qenter(sf->kva, &m, 1); + pmap_invalidate_cache_range(sf->kva, sf->kva + + PAGE_SIZE); + ret = TRUE; + break; + } + } + mtx_unlock(&sf_buf_lock); + return (ret); +} + +/* * Get an sf_buf from the freelist. May block if none are available. */ struct sf_buf * @@ -787,9 +820,10 @@ opte = *ptep; #ifdef XEN PT_SET_MA(sf->kva, xpmap_ptom(VM_PAGE_TO_PHYS(m)) | pgeflag - | PG_RW | PG_V); + | PG_RW | PG_V | pmap_cache_bits(m->md.pat_mode, 0)); #else - *ptep = VM_PAGE_TO_PHYS(m) | pgeflag | PG_RW | PG_V; + *ptep = VM_PAGE_TO_PHYS(m) | pgeflag | PG_RW | PG_V | + pmap_cache_bits(m->md.pat_mode, 0); #endif /* ==== //depot/projects/usb/src/sys/i386/include/cpufunc.h#10 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/i386/include/cpufunc.h,v 1.154 2009/06/16 15:13:18 jhb Exp $ + * $FreeBSD: src/sys/i386/include/cpufunc.h,v 1.155 2009/07/29 08:49:58 kib Exp $ */ /* @@ -90,6 +90,13 @@ } static __inline void +clflush(u_long addr) +{ + + __asm __volatile("clflush %0" : : "m" (*(char *)addr)); +} + +static __inline void disable_intr(void) { #ifdef XEN @@ -138,6 +145,13 @@ __asm __volatile("mwait;" : :"a" (hints), "c" (extensions)); } +static __inline void +mfence(void) +{ + + __asm __volatile("mfence" : : : "memory"); +} + #ifdef _KERNEL #define HAVE_INLINE_FFS ==== //depot/projects/usb/src/sys/i386/include/md_var.h#5 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/i386/include/md_var.h,v 1.78 2008/11/26 19:25:13 jkim Exp $ + * $FreeBSD: src/sys/i386/include/md_var.h,v 1.79 2009/07/29 08:49:58 kib Exp $ */ #ifndef _MACHINE_MD_VAR_H_ @@ -52,6 +52,7 @@ extern u_int amd_pminfo; extern u_int via_feature_rng; extern u_int via_feature_xcrypt; +extern u_int cpu_clflush_line_size; extern u_int cpu_fxsr; extern u_int cpu_high; extern u_int cpu_id; ==== //depot/projects/usb/src/sys/i386/include/pmap.h#13 (text+ko) ==== @@ -38,7 +38,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/i386/include/pmap.h,v 1.139 2009/07/12 23:31:20 alc Exp $ + * $FreeBSD: src/sys/i386/include/pmap.h,v 1.140 2009/07/29 08:49:58 kib Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -463,6 +463,7 @@ #define pmap_unmapbios(va, sz) pmap_unmapdev((va), (sz)) void pmap_bootstrap(vm_paddr_t); +int pmap_cache_bits(int mode, boolean_t is_pde); int pmap_change_attr(vm_offset_t, vm_size_t, int); void pmap_init_pat(void); void pmap_kenter(vm_offset_t va, vm_paddr_t pa); @@ -480,6 +481,7 @@ void pmap_invalidate_range(pmap_t, vm_offset_t, vm_offset_t); void pmap_invalidate_all(pmap_t); void pmap_invalidate_cache(void); +void pmap_invalidate_cache_range(vm_offset_t, vm_offset_t); #endif /* _KERNEL */ ==== //depot/projects/usb/src/sys/i386/include/sf_buf.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/i386/include/sf_buf.h,v 1.4 2005/02/13 06:23:13 alc Exp $ + * $FreeBSD: src/sys/i386/include/sf_buf.h,v 1.5 2009/07/29 08:49:58 kib Exp $ */ #ifndef _MACHINE_SF_BUF_H_ @@ -58,4 +58,6 @@ return (sf->m); } +boolean_t sf_buf_invalidate_cache(vm_page_t m); + #endif /* !_MACHINE_SF_BUF_H_ */ ==== //depot/projects/usb/src/sys/i386/xen/pmap.c#12 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/xen/pmap.c,v 1.16 2009/07/24 13:50:29 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/xen/pmap.c,v 1.17 2009/07/29 19:38:33 kib Exp $"); /* * Manages physical address maps. @@ -121,6 +121,7 @@ #include #include #include +#include #include #include #include @@ -759,7 +760,7 @@ * Determine the appropriate bits to set in a PTE or PDE for a specified * caching mode. */ -static int +int pmap_cache_bits(int mode, boolean_t is_pde) { int pat_flag, pat_index, cache_bits; @@ -988,6 +989,40 @@ } #endif /* !SMP */ +void +pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva) +{ + + KASSERT((sva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: sva not page-aligned")); + KASSERT((eva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: eva not page-aligned")); + + if (cpu_feature & CPUID_SS) + ; /* If "Self Snoop" is supported, do nothing. */ + else if (cpu_feature & CPUID_CLFSH) { + + /* + * Otherwise, do per-cache line flush. Use the mfence + * instruction to insure that previous stores are + * included in the write-back. The processor + * propagates flush to other processors in the cache + * coherence domain. + */ + mfence(); + for (; eva < sva; eva += cpu_clflush_line_size) + clflush(eva); + mfence(); + } else { + + /* + * No targeted cache flush methods are supported by CPU, + * globally invalidate cache as a last resort. + */ + pmap_invalidate_cache(); + } +} + /* * Are we current address space or kernel? N.B. We return FALSE when * a pmap's page table is in use because a kernel thread is borrowing @@ -3865,7 +3900,8 @@ void * pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) { - vm_offset_t va, tmpva, offset; + vm_offset_t va, offset; + vm_size_t tmpsize; offset = pa & PAGE_MASK; size = roundup(offset + size, PAGE_SIZE); @@ -3878,14 +3914,10 @@ if (!va) panic("pmap_mapdev: Couldn't alloc kernel virtual memory"); - for (tmpva = va; size > 0; ) { - pmap_kenter_attr(tmpva, pa, mode); - size -= PAGE_SIZE; - tmpva += PAGE_SIZE; - pa += PAGE_SIZE; - } - pmap_invalidate_range(kernel_pmap, va, tmpva); - pmap_invalidate_cache(); + for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE) + pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode); + pmap_invalidate_range(kernel_pmap, va, va + tmpsize); + pmap_invalidate_cache_range(va, va + size); return ((void *)(va + offset)); } @@ -3927,16 +3959,49 @@ void pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma) { + struct sysmaps *sysmaps; + vm_offset_t sva, eva; m->md.pat_mode = ma; + if ((m->flags & PG_FICTITIOUS) != 0) + return; /* * If "m" is a normal page, flush it from the cache. + * See pmap_invalidate_cache_range(). + * + * First, try to find an existing mapping of the page by sf >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jul 30 09:30:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5C706106568C; Thu, 30 Jul 2009 09:30:30 +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 15BD61065680 for ; Thu, 30 Jul 2009 09:30:30 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 029F08FC13 for ; Thu, 30 Jul 2009 09:30:30 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6U9UTTp029861 for ; Thu, 30 Jul 2009 09:30:29 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6U9UTGj029859 for perforce@freebsd.org; Thu, 30 Jul 2009 09:30:29 GMT (envelope-from syl@FreeBSD.org) Date: Thu, 30 Jul 2009 09:30:29 GMT Message-Id: <200907300930.n6U9UTGj029859@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166781 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 09:30:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=166781 Change 166781 by syl@syl_twoflowers on 2009/07/30 09:30:23 Add more tests. Fix typo and english. Affected files ... .. //depot/projects/soc2009/syl_usb/hps_report/DifferentAPI.tex#3 edit .. //depot/projects/soc2009/syl_usb/hps_report/GenericCode.tex#4 edit .. //depot/projects/soc2009/syl_usb/hps_report/Proposition.tex#3 edit .. //depot/projects/soc2009/syl_usb/hps_report/SomeTests.tex#3 edit .. //depot/projects/soc2009/syl_usb/hps_report/report.tex#3 edit Differences ... ==== //depot/projects/soc2009/syl_usb/hps_report/DifferentAPI.tex#3 (text+ko) ==== @@ -1,11 +1,11 @@ \chapter{Differents APIs} -Only three portable Operating System have a USB Function Stack. +Only three portable Operating Systems have a USB Function Stack. In this chapter we will focus on the different API for Adding a new Device Controler Interface on Linux, Windows CE and FreeBSD. \section{Linux} - A Linux UDC (USB DEVICE CONTROLLER) is compound of 3 main structure. + A Linux UDC (USB DEVICE CONTROLLER) is compounded of 3 main structures. The first one is usb\_gadget : \begin{lstlisting} @@ -69,8 +69,8 @@ \section{Windows CE} - Windows ce driver architecture is a little bit different than Unix one. - Driver are always separate in two layer MDD PDD. The MDD is the microsoft + Windows ce driver architecture is a little bit different than the Unix one. + Drivers are always separated in two layers MDD PDD. The MDD is the microsoft code that you can modify. The pdd is the physical layer that you need to implement to have a working driver. Here is the PDD of USBFN in WinCe : @@ -105,7 +105,7 @@ } UFN_PDD_INTERFACE_INFO, *PUFN_PDD_INTERFACE_INFO; \end{lstlisting} -A paste of the MSDN could explain all this symbols : +A paste of the MSDN could explain all these symbols : - pfnDeinit : This function deinitializes the PDD. @@ -159,10 +159,10 @@ - pfnIOControl : This function executes IOCTLs. \section{FreeBSD} - The code is in dev/usb/usb\_controller.h. FreeBSD use the same - structure for both Host and Device Controllers Interfaces. + The code is in dev/usb/usb\_controller.h. FreeBSD uses the same + structure for both Host and device controller interfaces. An USB DCI must implement an usb\_bus\_methods structure. These - structure are shared between DCI and HCI. + structures are shared between DCI and HCI. \begin{lstlisting} struct usb_bus_methods { @@ -241,8 +241,8 @@ }; \end{lstlisting} - For describing possibilities of the different endpoints contained - by the xCI FreeBSD have the structure usb\_hw\_ep\_profile. + To describe the possibilities of the different endpoints contained + by the xCI FreeBSD has the structure usb\_hw\_ep\_profile. \begin{lstlisting} /* ==== //depot/projects/soc2009/syl_usb/hps_report/GenericCode.tex#4 (text+ko) ==== @@ -11,7 +11,7 @@ \end{lstlisting} We can see that only few functions are different from a driver to another. - The different code is most of the time Hardware specific. Lets us describes + The different code is most of the time Hardware specific. Lets us describe these functions : \section{Hardware Dependant Code} @@ -58,15 +58,15 @@ - xxxdci\_start\_standard\_chain Clock\_on, clock\_off, pull\_up, pull\_down, wakeup\_peer can be - factorised. A big part of this function do not move and we can create + factorised. A big part of this function does not move and we can create a generic function called directly after or before Hardware changes. Perhaps there is also something that could be factorised in xxxdci\_uninit - if there are not other possible access to the Hardware that interrupt disabling + if there is no other possible access to the hardware that interrupts disabling in this function. - There are pehaps something to do with xxxdci\_device\_done and xxxdci\_start\_standard\_chain - beacuse the only hardware code present int this function just enable Endpoint interrupt. + There is perhaps something to do with xxxdci\_device\_done and xxxdci\_start\_standard\_chain + beacuse the only hardware code present int these function just enables endpoint interrupt. \section{Hardware Independant Code} @@ -99,17 +99,17 @@ - xxxdci\_xfer\_do\_fifo xxdci\_ep\_init and xxxdci\_xfer\_setup are more or less generic. The only change we can have - between 2 controller afecting this function is the support or no of asynchronous endpoints. - This problem could be resolved if we parse xxxdci\_ep\_profile to know if the device support + between 2 controllers affecting this function is the support of asynchronous endpoints. + This problem could be solved if we parse xxxdci\_ep\_profile to know if the device supports asynchronous endpoints. All the HUB descriptor code are the same between the controller drivers. We can easily factorise it without performance modification. - There is some big change on the way to handle basic control request like GET\_STATUS etc. Linux and - Wince seems to handle That on a generic file who perform basic request during the configuration process. - In FreeBSD all these functionality are present in the controlleur code in the function roothub\_exec. - This function looks like the same on each controller. + There are some big change on the way to handle basic control request like GET\_STATUS etc. Linux and + Wince seem to handle this on a generic file that perform basic request during the configuration process. + In FreeBSD all these functionalities are present in the controlleur code in the function roothub\_exec. + These functions are similar on each controller. There is something for factorising the code for xxxdci\_device\_XXX\_methods. I have implemented it on s3c24xxxdci driver this way : @@ -162,4 +162,4 @@ }; \end{lstlisting} - All the others functions seems to be generic. + All the other functions seem to be generic. ==== //depot/projects/soc2009/syl_usb/hps_report/Proposition.tex#3 (text+ko) ==== @@ -23,15 +23,15 @@ \end{lstlisting} With this Change we can easily implement the xxxdci\_device\_XXX\_methods - with less code following the mothod used for the s3c2xxdci implementation. + with less code following the method used for the s3c2xxdci implementation. \section{roothub} - We can Create A GenericRootHub function who will takes a + We can Create A GenericRootHub function that will takes a struct with callback as parameters. - It will permit the driver to implement roothub\_exec or call + It will enable the driver to implement roothub\_exec or call GenericRootHub. \section{other generic functions} - I Have no idea now how to factorise them, but any advices are welcome ! + I Have no idea now how to factorise them, but advices are welcome ! ==== //depot/projects/soc2009/syl_usb/hps_report/SomeTests.tex#3 (text+ko) ==== @@ -1,7 +1,7 @@ \chapter{Test} -Here is the result of some test used for finding the best implementation -for the Improvement into USB. +Here is the result of some tests used to find the best implementation +for the improvement into USB. \section{ops structure Versus Simple call} @@ -77,86 +77,266 @@ 84e4: e12fff13 bx r3 \end{lstlisting} + Finally there is no great difference between callbacks and simple call. + \section{Single demultiplex vs multiple demultiplex} - Finally there is no great difference between callbacks and simple call. + I have also made some tests between single demultiplex and multiple demultiplex. + Here is the code I have tested : \begin{lstlisting} -int +static int switcha(int toto) { - switch(toto) { - case 3: - break ; - case 4: - break ; - } + switch(toto) { + case 2: + break ; + case 1: + break ; + } } -int +static int switchb(int toto) { - switch(toto) { - case 5: - break ; - case 6: - break ; - } + switch(toto) { + case 1: + break ; + case 2: + break ; + } } -int +int multipleswitch(int toto) { - __asm("nop"); - __asm("nop"); - switch(toto) { - case 1: - switcha(toto -2 ); - break; - case 2: - switchb(toto - 4); - break; - } - __asm("nop"); - __asm("nop"); + __asm("nop"); + __asm("nop"); + switch(toto) { + case 4: + case 3: + switcha(toto -2 ); + break; + case 5: + case 6: + switchb(toto - 4); + break; + } + __asm("nop"); + __asm("nop"); +} + +int +singleswitch(int toto) +{ + __asm("nop"); + __asm("nop"); + switch (toto) { + case 4: + case 3: + switch (toto - 2) { + case 2: + break ; + case 1: + break ; + } + break ; + case 5: + case 6: + switch(toto -4) { + case 1: + break ; + case 2: + break ; + } + break ; + } + __asm("nop"); + __asm("nop"); } + \end{lstlisting} + I have test with this main : + + \begin{lstlisting} + int -singleswitch(int toto) +main() { - __asm("nop"); - __asm("nop"); - switch (toto) { - case 1: - switch (toto - 2) { - case 3: - break ; - case 4: - break ; - } - break ; - case 2: - switch(toto -4) { - case 5: - break ; - case 6: - break ; - } - break ; - } - __asm("nop"); - __asm("nop"); + multipleswitch(42); + singleswitch(42); } + \end{lstlisting} + + With this code gcc dumps exactly the same switch function wich is not used. + But for the multipleswitch the functionn switcha and switchb are also generated if + we not add the attribute static to the function. + + I have also make test with this main : + + \begin{lstlisting} int main() { - singleswitch(a); - singleswitch(b); + multipleswitch(3); + multipleswitch(4); + multipleswitch(5); + multipleswitch(6); + multipleswitch(42); + singleswitch(3); + singleswitch(4); + singleswitch(5); + singleswitch(6); + singleswitch(42); } \end{lstlisting} - With this code gcc dump exactly the same switch function that do nothing. - But for the multipleswitch the functionn switcha and switchb are also generated. + Here is the assembly done by this code for x86 + + \begin{lstlisting} +08048374 : + 8048374: 55 push %ebp + 8048375: 89 e5 mov %esp,%ebp + 8048377: 83 ec 04 sub $0x4,%esp + 804837a: c9 leave + 804837b: c3 ret + +0804837c : + 804837c: 55 push %ebp + 804837d: 89 e5 mov %esp,%ebp + 804837f: 83 ec 04 sub $0x4,%esp + 8048382: c9 leave + 8048383: c3 ret + +08048384 : + 8048384: 55 push %ebp + 8048385: 89 e5 mov %esp,%ebp + 8048387: 83 ec 0c sub $0xc,%esp + 804838a: 90 nop + 804838b: 90 nop + 804838c: 8b 45 08 mov 0x8(%ebp),%eax + 804838f: 89 45 f8 mov %eax,-0x8(%ebp) + 8048392: 83 7d f8 03 cmpl $0x3,-0x8(%ebp) + 8048396: 7c 2c jl 80483c4 + 8048398: 83 7d f8 04 cmpl $0x4,-0x8(%ebp) + 804839c: 7e 08 jle 80483a6 + 804839e: 83 7d f8 06 cmpl $0x6,-0x8(%ebp) + 80483a2: 7f 20 jg 80483c4 + 80483a4: eb 10 jmp 80483b6 + 80483a6: 8b 45 08 mov 0x8(%ebp),%eax + 80483a9: 83 e8 02 sub $0x2,%eax + 80483ac: 89 04 24 mov %eax,(%esp) + 80483af: e8 c0 ff ff ff call 8048374 + 80483b4: eb 0e jmp 80483c4 + 80483b6: 8b 45 08 mov 0x8(%ebp),%eax + 80483b9: 83 e8 04 sub $0x4,%eax + 80483bc: 89 04 24 mov %eax,(%esp) + 80483bf: e8 b8 ff ff ff call 804837c + 80483c4: 90 nop + 80483c5: 90 nop + 80483c6: c9 leave + 80483c7: c3 ret + +080483c8 : + 80483c8: 55 push %ebp + 80483c9: 89 e5 mov %esp,%ebp + 80483cb: 83 ec 08 sub $0x8,%esp + 80483ce: 90 nop + 80483cf: 90 nop + 80483d0: 8b 45 08 mov 0x8(%ebp),%eax + 80483d3: 89 45 f8 mov %eax,-0x8(%ebp) + 80483d6: 83 7d f8 03 cmpl $0x3,-0x8(%ebp) + 80483da: 7c 0a jl 80483e6 + 80483dc: 83 7d f8 04 cmpl $0x4,-0x8(%ebp) + 80483e0: 7e 04 jle 80483e6 + 80483e2: 83 7d f8 06 cmpl $0x6,-0x8(%ebp) + 80483e6: 90 nop + 80483e7: 90 nop + 80483e8: c9 leave + 80483e9: c3 ret + + \end{lstlisting} + + Here is the assembly done by this code for armv4i + + \begin{lstlisting} +0000842c : + 842c: e1a0c00d mov ip, sp + 8430: e92dd800 push {fp, ip, lr, pc} + 8434: e24cb004 sub fp, ip, #4 ; 0x4 + 8438: e24dd008 sub sp, sp, #8 ; 0x8 + 843c: e50b0010 str r0, [fp, #-16] + 8440: e24bd00c sub sp, fp, #12 ; 0xc + 8444: e89d6800 ldm sp, {fp, sp, lr} + 8448: e12fff1e bx lr + +0000844c : + 844c: e1a0c00d mov ip, sp + 8450: e92dd800 push {fp, ip, lr, pc} + 8454: e24cb004 sub fp, ip, #4 ; 0x4 + 8458: e24dd008 sub sp, sp, #8 ; 0x8 + 845c: e50b0010 str r0, [fp, #-16] + 8460: e24bd00c sub sp, fp, #12 ; 0xc + 8464: e89d6800 ldm sp, {fp, sp, lr} + 8468: e12fff1e bx lr + +0000846c : + 846c: e1a0c00d mov ip, sp + 8470: e92dd800 push {fp, ip, lr, pc} + 8474: e24cb004 sub fp, ip, #4 ; 0x4 + 8478: e24dd008 sub sp, sp, #8 ; 0x8 + 847c: e50b0010 str r0, [fp, #-16] + 8480: e1a00000 nop (mov r0,r0) + 8484: e1a00000 nop (mov r0,r0) + 8488: e51b3010 ldr r3, [fp, #-16] + 848c: e2433003 sub r3, r3, #3 ; 0x3 + 8490: e3530003 cmp r3, #3 ; 0x3 + 8494: 979ff103 ldrls pc, [pc, r3, lsl #2] + 8498: ea00000c b 84d0 + 849c: 000084ac .word 0x000084ac + 84a0: 000084ac .word 0x000084ac + 84a4: 000084c0 .word 0x000084c0 + 84a8: 000084c0 .word 0x000084c0 + 84ac: e51b3010 ldr r3, [fp, #-16] + 84b0: e2433002 sub r3, r3, #2 ; 0x2 + 84b4: e1a00003 mov r0, r3 + 84b8: ebffffdb bl 842c + 84bc: ea000003 b 84d0 + 84c0: e51b3010 ldr r3, [fp, #-16] + 84c4: e2433004 sub r3, r3, #4 ; 0x4 + 84c8: e1a00003 mov r0, r3 + 84cc: ebffffde bl 844c + 84d0: e1a00000 nop (mov r0,r0) + 84d4: e1a00000 nop (mov r0,r0) + 84d8: e24bd00c sub sp, fp, #12 ; 0xc + 84dc: e89d6800 ldm sp, {fp, sp, lr} + 84e0: e12fff1e bx lr + +000084e4 : + 84e4: e1a0c00d mov ip, sp + 84e8: e92dd800 push {fp, ip, lr, pc} + 84ec: e24cb004 sub fp, ip, #4 ; 0x4 + 84f0: e24dd008 sub sp, sp, #8 ; 0x8 + 84f4: e50b0010 str r0, [fp, #-16] + 84f8: e1a00000 nop (mov r0,r0) + 84fc: e1a00000 nop (mov r0,r0) + 8500: e51b3010 ldr r3, [fp, #-16] + 8504: e2433003 sub r3, r3, #3 ; 0x3 + 8508: e3530003 cmp r3, #3 ; 0x3 + 850c: 979ff103 ldrls pc, [pc, r3, lsl #2] + 8510: ea000003 b 8524 + 8514: 00008524 .word 0x00008524 + 8518: 00008524 .word 0x00008524 + 851c: 00008524 .word 0x00008524 + 8520: 00008524 .word 0x00008524 + 8524: e1a00000 nop (mov r0,r0) + 8528: e1a00000 nop (mov r0,r0) + 852c: e24bd00c sub sp, fp, #12 ; 0xc + 8530: e89d6800 ldm sp, {fp, sp, lr} + 8534: e12fff1e bx lr + \end{lstlisting} + We can easily conclude that single demultiplex dump less code + than multiple one. ==== //depot/projects/soc2009/syl_usb/hps_report/report.tex#3 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Thu Jul 30 12:40:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 488551065675; Thu, 30 Jul 2009 12:40:58 +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 077AA1065690 for ; Thu, 30 Jul 2009 12:40:58 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E9A168FC13 for ; Thu, 30 Jul 2009 12:40:57 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UCevsd047272 for ; Thu, 30 Jul 2009 12:40:57 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UCevrr047270 for perforce@freebsd.org; Thu, 30 Jul 2009 12:40:57 GMT (envelope-from jhb@freebsd.org) Date: Thu, 30 Jul 2009 12:40:57 GMT Message-Id: <200907301240.n6UCevrr047270@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166783 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 12:40:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=166783 Change 166783 by jhb@jhb_jhbbsd on 2009/07/30 12:40:45 More vnode -> filedesc LOR fixes. Since we are reading a single mode_t, the locking here doesn't actually close any races (there are user races between threads doing mkdir() concurrent with umask(), but the kernel cannot fix those). So, remove the locking rather than moving it up to the top of the function before grabbing the vnode lock. Submitted by: kib Affected files ... .. //depot/projects/smpng/sys/kern/vfs_syscalls.c#152 edit Differences ... ==== //depot/projects/smpng/sys/kern/vfs_syscalls.c#152 (text+ko) ==== @@ -1307,10 +1307,8 @@ return (EEXIST); } else { VATTR_NULL(&vattr); - FILEDESC_SLOCK(td->td_proc->p_fd); vattr.va_mode = (mode & ALLPERMS) & ~td->td_proc->p_fd->fd_cmask; - FILEDESC_SUNLOCK(td->td_proc->p_fd); vattr.va_rdev = dev; whiteout = 0; @@ -1442,9 +1440,7 @@ } VATTR_NULL(&vattr); vattr.va_type = VFIFO; - FILEDESC_SLOCK(td->td_proc->p_fd); vattr.va_mode = (mode & ALLPERMS) & ~td->td_proc->p_fd->fd_cmask; - FILEDESC_SUNLOCK(td->td_proc->p_fd); #ifdef MAC error = mac_vnode_check_create(td->td_ucred, nd.ni_dvp, &nd.ni_cnd, &vattr); @@ -1705,9 +1701,7 @@ goto restart; } VATTR_NULL(&vattr); - FILEDESC_SLOCK(td->td_proc->p_fd); vattr.va_mode = ACCESSPERMS &~ td->td_proc->p_fd->fd_cmask; - FILEDESC_SUNLOCK(td->td_proc->p_fd); #ifdef MAC vattr.va_type = VLNK; error = mac_vnode_check_create(td->td_ucred, nd.ni_dvp, &nd.ni_cnd, @@ -3773,9 +3767,7 @@ } VATTR_NULL(&vattr); vattr.va_type = VDIR; - FILEDESC_SLOCK(td->td_proc->p_fd); vattr.va_mode = (mode & ACCESSPERMS) &~ td->td_proc->p_fd->fd_cmask; - FILEDESC_SUNLOCK(td->td_proc->p_fd); #ifdef MAC error = mac_vnode_check_create(td->td_ucred, nd.ni_dvp, &nd.ni_cnd, &vattr); From owner-p4-projects@FreeBSD.ORG Thu Jul 30 12:44:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CDAAA1065670; Thu, 30 Jul 2009 12:44:01 +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 8D0B6106566C for ; Thu, 30 Jul 2009 12:44:01 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7B5DE8FC08 for ; Thu, 30 Jul 2009 12:44:01 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UCi1mT047484 for ; Thu, 30 Jul 2009 12:44:01 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UCi1cc047482 for perforce@freebsd.org; Thu, 30 Jul 2009 12:44:01 GMT (envelope-from jhb@freebsd.org) Date: Thu, 30 Jul 2009 12:44:01 GMT Message-Id: <200907301244.n6UCi1cc047482@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166785 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 12:44:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=166785 Change 166785 by jhb@jhb_jhbbsd on 2009/07/30 12:43:09 Remove extraneous locking to read fd_cmask in one other place. The rest of the tree already read fd_cmask w/o locking. Affected files ... .. //depot/projects/smpng/sys/fs/unionfs/union_subr.c#39 edit Differences ... ==== //depot/projects/smpng/sys/fs/unionfs/union_subr.c#39 (text+ko) ==== @@ -486,9 +486,7 @@ } break; default: /* UNIONFS_TRADITIONAL */ - FILEDESC_SLOCK(td->td_proc->p_fd); uva->va_mode = 0777 & ~td->td_proc->p_fd->fd_cmask; - FILEDESC_SUNLOCK(td->td_proc->p_fd); uva->va_uid = ump->um_uid; uva->va_gid = ump->um_gid; break; From owner-p4-projects@FreeBSD.ORG Thu Jul 30 12:53:14 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BFA451065677; Thu, 30 Jul 2009 12:53: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 7E55C1065675 for ; Thu, 30 Jul 2009 12:53:13 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6A9688FC1D for ; Thu, 30 Jul 2009 12:53:13 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UCrDnc058198 for ; Thu, 30 Jul 2009 12:53:13 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UCrCdP058196 for perforce@freebsd.org; Thu, 30 Jul 2009 12:53:12 GMT (envelope-from jhb@freebsd.org) Date: Thu, 30 Jul 2009 12:53:12 GMT Message-Id: <200907301253.n6UCrCdP058196@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166789 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 12:53:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=166789 Change 166789 by jhb@jhb_jhbbsd on 2009/07/30 12:53:00 IFC @166786 Affected files ... .. //depot/projects/multipass/sys/amd64/amd64/initcpu.c#3 integrate .. //depot/projects/multipass/sys/amd64/amd64/machdep.c#7 integrate .. //depot/projects/multipass/sys/amd64/amd64/pmap.c#8 integrate .. //depot/projects/multipass/sys/amd64/include/cpufunc.h#3 integrate .. //depot/projects/multipass/sys/amd64/include/md_var.h#3 integrate .. //depot/projects/multipass/sys/amd64/pci/pci_bus.c#4 integrate .. //depot/projects/multipass/sys/arm/arm/busdma_machdep.c#4 integrate .. //depot/projects/multipass/sys/arm/arm/cpufunc.c#4 integrate .. //depot/projects/multipass/sys/arm/arm/pmap.c#7 integrate .. //depot/projects/multipass/sys/arm/arm/vm_machdep.c#4 integrate .. //depot/projects/multipass/sys/arm/conf/AVILA#5 integrate .. //depot/projects/multipass/sys/arm/conf/CAMBRIA#3 integrate .. //depot/projects/multipass/sys/boot/forth/loader.conf#6 integrate .. //depot/projects/multipass/sys/bsm/audit.h#4 integrate .. //depot/projects/multipass/sys/bsm/audit_kevents.h#5 integrate .. //depot/projects/multipass/sys/cam/ata/ata_da.c#2 integrate .. //depot/projects/multipass/sys/cam/ata/ata_xpt.c#2 integrate .. //depot/projects/multipass/sys/cam/scsi/scsi_xpt.c#2 integrate .. //depot/projects/multipass/sys/cddl/compat/opensolaris/sys/sig.h#2 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#2 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#3 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#3 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#6 integrate .. //depot/projects/multipass/sys/cddl/dev/dtrace/amd64/dtrace_subr.c#3 integrate .. //depot/projects/multipass/sys/cddl/dev/dtrace/i386/dtrace_subr.c#3 integrate .. //depot/projects/multipass/sys/compat/freebsd32/freebsd32_misc.c#6 integrate .. //depot/projects/multipass/sys/compat/linprocfs/linprocfs.c#5 integrate .. //depot/projects/multipass/sys/compat/linux/linux_ioctl.c#7 integrate .. //depot/projects/multipass/sys/compat/linux/linux_mib.c#4 integrate .. //depot/projects/multipass/sys/compat/linux/linux_socket.c#5 integrate .. //depot/projects/multipass/sys/compat/svr4/svr4_sockio.c#5 integrate .. //depot/projects/multipass/sys/conf/NOTES#8 integrate .. //depot/projects/multipass/sys/conf/files#8 integrate .. //depot/projects/multipass/sys/conf/newvers.sh#4 integrate .. //depot/projects/multipass/sys/conf/options#8 integrate .. //depot/projects/multipass/sys/contrib/altq/altq/altq_subr.c#6 integrate .. //depot/projects/multipass/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#5 integrate .. //depot/projects/multipass/sys/contrib/pf/net/pf.c#5 integrate .. //depot/projects/multipass/sys/contrib/pf/net/pf_if.c#5 integrate .. //depot/projects/multipass/sys/contrib/pf/net/pf_ioctl.c#6 integrate .. //depot/projects/multipass/sys/contrib/pf/net/pf_subr.c#3 integrate .. //depot/projects/multipass/sys/contrib/pf/net/pfvar.h#2 integrate .. //depot/projects/multipass/sys/contrib/rdma/rdma_cma.c#4 integrate .. //depot/projects/multipass/sys/ddb/db_expr.c#3 integrate .. //depot/projects/multipass/sys/ddb/db_sym.c#2 integrate .. //depot/projects/multipass/sys/ddb/db_variables.c#2 integrate .. //depot/projects/multipass/sys/ddb/db_variables.h#2 integrate .. //depot/projects/multipass/sys/ddb/ddb.h#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_pcib_acpi.c#6 integrate .. //depot/projects/multipass/sys/dev/ata/ata-all.c#4 integrate .. //depot/projects/multipass/sys/dev/ata/chipsets/ata-marvell.c#4 integrate .. //depot/projects/multipass/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#3 integrate .. //depot/projects/multipass/sys/dev/ath/if_ath.c#7 integrate .. //depot/projects/multipass/sys/dev/ath/if_athvar.h#5 integrate .. //depot/projects/multipass/sys/dev/ciss/ciss.c#6 integrate .. //depot/projects/multipass/sys/dev/ciss/cissvar.h#3 integrate .. //depot/projects/multipass/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#5 integrate .. //depot/projects/multipass/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#6 integrate .. //depot/projects/multipass/sys/dev/e1000/e1000_ich8lan.c#4 integrate .. //depot/projects/multipass/sys/dev/e1000/if_em.c#6 integrate .. //depot/projects/multipass/sys/dev/e1000/if_igb.c#6 integrate .. //depot/projects/multipass/sys/dev/if_ndis/if_ndis.c#7 integrate .. //depot/projects/multipass/sys/dev/ixgbe/ixgbe.c#4 integrate .. //depot/projects/multipass/sys/dev/mxge/if_mxge.c#7 integrate .. //depot/projects/multipass/sys/dev/pci/pci.c#6 integrate .. //depot/projects/multipass/sys/dev/re/if_re.c#6 integrate .. //depot/projects/multipass/sys/dev/siis/siis.c#1 branch .. //depot/projects/multipass/sys/dev/siis/siis.h#1 branch .. //depot/projects/multipass/sys/dev/sound/pci/hda/hdac.c#5 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/feeder_rate.c#5 integrate .. //depot/projects/multipass/sys/dev/sound/usb/uaudio.c#6 integrate .. //depot/projects/multipass/sys/dev/uart/uart_cpu_powerpc.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/at91dci.c#6 integrate .. //depot/projects/multipass/sys/dev/usb/controller/atmegadci.c#6 integrate .. //depot/projects/multipass/sys/dev/usb/controller/avr32dci.c#4 integrate .. //depot/projects/multipass/sys/dev/usb/controller/ehci.c#5 integrate .. //depot/projects/multipass/sys/dev/usb/controller/ehci_pci.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/musb_otg.c#6 integrate .. //depot/projects/multipass/sys/dev/usb/controller/ohci.c#5 integrate .. //depot/projects/multipass/sys/dev/usb/controller/ohci_pci.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/uhci.c#5 integrate .. //depot/projects/multipass/sys/dev/usb/controller/uhci_pci.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/usb_controller.c#5 integrate .. //depot/projects/multipass/sys/dev/usb/controller/uss820dci.c#6 integrate .. //depot/projects/multipass/sys/dev/usb/input/ukbd.c#4 integrate .. //depot/projects/multipass/sys/dev/usb/input/ums.c#4 integrate .. //depot/projects/multipass/sys/dev/usb/serial/u3g.c#5 integrate .. //depot/projects/multipass/sys/dev/usb/serial/ulpt.c#4 integrate .. //depot/projects/multipass/sys/dev/usb/usb_compat_linux.c#5 integrate .. //depot/projects/multipass/sys/dev/usb/usb_compat_linux.h#4 integrate .. //depot/projects/multipass/sys/dev/usb/usb_controller.h#6 integrate .. //depot/projects/multipass/sys/dev/usb/usb_dev.c#5 integrate .. //depot/projects/multipass/sys/dev/usb/usb_dev.h#4 integrate .. //depot/projects/multipass/sys/dev/usb/usb_device.c#6 integrate .. //depot/projects/multipass/sys/dev/usb/usb_handle_request.c#6 integrate .. //depot/projects/multipass/sys/dev/usb/usb_hid.c#5 integrate .. //depot/projects/multipass/sys/dev/usb/usb_hub.c#5 integrate .. //depot/projects/multipass/sys/dev/usb/usb_parse.c#4 integrate .. //depot/projects/multipass/sys/dev/usb/usb_request.c#5 integrate .. //depot/projects/multipass/sys/dev/usb/usb_transfer.c#6 integrate .. //depot/projects/multipass/sys/dev/usb/usbdevs#6 integrate .. //depot/projects/multipass/sys/dev/usb/usbdi.h#5 integrate .. //depot/projects/multipass/sys/dev/usb/wlan/if_uath.c#5 integrate .. //depot/projects/multipass/sys/fs/nfs/nfsport.h#4 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clbio.c#4 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clrpcops.c#3 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clstate.c#6 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clvfsops.c#4 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clvnops.c#6 integrate .. //depot/projects/multipass/sys/fs/nfsserver/nfs_nfsdport.c#4 integrate .. //depot/projects/multipass/sys/fs/procfs/procfs_map.c#4 integrate .. //depot/projects/multipass/sys/geom/vinum/geom_vinum.c#4 integrate .. //depot/projects/multipass/sys/i386/i386/initcpu.c#3 integrate .. //depot/projects/multipass/sys/i386/i386/machdep.c#6 integrate .. //depot/projects/multipass/sys/i386/i386/pmap.c#8 integrate .. //depot/projects/multipass/sys/i386/i386/vm_machdep.c#3 integrate .. //depot/projects/multipass/sys/i386/include/cpufunc.h#4 integrate .. //depot/projects/multipass/sys/i386/include/md_var.h#3 integrate .. //depot/projects/multipass/sys/i386/include/pmap.h#5 integrate .. //depot/projects/multipass/sys/i386/include/sf_buf.h#2 integrate .. //depot/projects/multipass/sys/i386/pci/pci_bus.c#4 integrate .. //depot/projects/multipass/sys/i386/xen/pmap.c#6 integrate .. //depot/projects/multipass/sys/ia64/ia64/pmap.c#5 integrate .. //depot/projects/multipass/sys/kern/init_main.c#5 integrate .. //depot/projects/multipass/sys/kern/kern_exec.c#6 integrate .. //depot/projects/multipass/sys/kern/kern_exit.c#7 integrate .. //depot/projects/multipass/sys/kern/kern_fork.c#7 integrate .. //depot/projects/multipass/sys/kern/kern_jail.c#8 integrate .. //depot/projects/multipass/sys/kern/kern_linker.c#6 integrate .. //depot/projects/multipass/sys/kern/kern_poll.c#6 integrate .. //depot/projects/multipass/sys/kern/kern_proc.c#5 integrate .. //depot/projects/multipass/sys/kern/kern_prot.c#7 integrate .. //depot/projects/multipass/sys/kern/kern_sig.c#5 integrate .. //depot/projects/multipass/sys/kern/kern_synch.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_sysctl.c#6 integrate .. //depot/projects/multipass/sys/kern/kern_thread.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_uuid.c#6 integrate .. //depot/projects/multipass/sys/kern/kern_vimage.c#5 integrate .. //depot/projects/multipass/sys/kern/link_elf.c#5 integrate .. //depot/projects/multipass/sys/kern/link_elf_obj.c#5 integrate .. //depot/projects/multipass/sys/kern/subr_sleepqueue.c#3 integrate .. //depot/projects/multipass/sys/kern/subr_trap.c#4 integrate .. //depot/projects/multipass/sys/kern/uipc_domain.c#4 integrate .. //depot/projects/multipass/sys/kern/uipc_socket.c#7 integrate .. //depot/projects/multipass/sys/kern/vfs_bio.c#5 integrate .. //depot/projects/multipass/sys/kern/vfs_lookup.c#6 integrate .. //depot/projects/multipass/sys/kern/vfs_mount.c#6 integrate .. //depot/projects/multipass/sys/kern/vfs_syscalls.c#8 integrate .. //depot/projects/multipass/sys/mips/mips/pmap.c#6 integrate .. //depot/projects/multipass/sys/modules/Makefile#8 integrate .. //depot/projects/multipass/sys/modules/if_epair/Makefile#1 branch .. //depot/projects/multipass/sys/modules/siis/Makefile#1 branch .. //depot/projects/multipass/sys/modules/wlan/Makefile#7 integrate .. //depot/projects/multipass/sys/net/bridgestp.c#6 integrate .. //depot/projects/multipass/sys/net/flowtable.c#4 integrate .. //depot/projects/multipass/sys/net/flowtable.h#4 integrate .. //depot/projects/multipass/sys/net/if.c#8 integrate .. //depot/projects/multipass/sys/net/if_bridge.c#7 integrate .. //depot/projects/multipass/sys/net/if_clone.c#4 integrate .. //depot/projects/multipass/sys/net/if_clone.h#2 integrate .. //depot/projects/multipass/sys/net/if_ef.c#6 integrate .. //depot/projects/multipass/sys/net/if_enc.c#4 integrate .. //depot/projects/multipass/sys/net/if_epair.c#2 integrate .. //depot/projects/multipass/sys/net/if_ethersubr.c#7 integrate .. //depot/projects/multipass/sys/net/if_faith.c#4 integrate .. //depot/projects/multipass/sys/net/if_gif.c#6 integrate .. //depot/projects/multipass/sys/net/if_gif.h#6 integrate .. //depot/projects/multipass/sys/net/if_gre.c#5 integrate .. //depot/projects/multipass/sys/net/if_loop.c#6 integrate .. //depot/projects/multipass/sys/net/if_mib.c#6 integrate .. //depot/projects/multipass/sys/net/if_spppsubr.c#6 integrate .. //depot/projects/multipass/sys/net/if_stf.c#7 integrate .. //depot/projects/multipass/sys/net/if_var.h#8 integrate .. //depot/projects/multipass/sys/net/if_vlan.c#6 integrate .. //depot/projects/multipass/sys/net/netisr.h#6 integrate .. //depot/projects/multipass/sys/net/raw_cb.c#5 integrate .. //depot/projects/multipass/sys/net/raw_cb.h#3 integrate .. //depot/projects/multipass/sys/net/raw_usrreq.c#5 integrate .. //depot/projects/multipass/sys/net/route.c#7 integrate .. //depot/projects/multipass/sys/net/rtsock.c#7 integrate .. //depot/projects/multipass/sys/net/vnet.c#1 branch .. //depot/projects/multipass/sys/net/vnet.h#7 integrate .. //depot/projects/multipass/sys/net80211/ieee80211.c#8 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_crypto.c#3 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_crypto.h#4 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_ddb.c#8 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_freebsd.c#5 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_hwmp.c#2 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_input.c#5 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_input.h#3 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_ioctl.h#6 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_mesh.c#2 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_mesh.h#2 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_output.c#6 integrate .. //depot/projects/multipass/sys/netgraph/atm/ng_atm.c#5 integrate .. //depot/projects/multipass/sys/netgraph/bluetooth/socket/ng_btsocket.c#2 integrate .. //depot/projects/multipass/sys/netgraph/netgraph.h#5 integrate .. //depot/projects/multipass/sys/netgraph/ng_base.c#6 integrate .. //depot/projects/multipass/sys/netgraph/ng_eiface.c#6 integrate .. //depot/projects/multipass/sys/netgraph/ng_ether.c#7 integrate .. //depot/projects/multipass/sys/netgraph/ng_gif.c#4 integrate .. //depot/projects/multipass/sys/netgraph/ng_iface.c#6 integrate .. //depot/projects/multipass/sys/netgraph/ng_socket.c#3 integrate .. //depot/projects/multipass/sys/netinet/icmp6.h#4 integrate .. //depot/projects/multipass/sys/netinet/icmp_var.h#3 integrate .. //depot/projects/multipass/sys/netinet/if_ether.c#8 integrate .. //depot/projects/multipass/sys/netinet/igmp.c#7 integrate .. //depot/projects/multipass/sys/netinet/in.c#8 integrate .. //depot/projects/multipass/sys/netinet/in_gif.c#5 integrate .. //depot/projects/multipass/sys/netinet/in_mcast.c#7 integrate .. //depot/projects/multipass/sys/netinet/in_pcb.c#7 integrate .. //depot/projects/multipass/sys/netinet/in_pcb.h#6 integrate .. //depot/projects/multipass/sys/netinet/in_proto.c#6 integrate .. //depot/projects/multipass/sys/netinet/in_rmx.c#7 integrate .. //depot/projects/multipass/sys/netinet/in_var.h#6 integrate .. //depot/projects/multipass/sys/netinet/ip_carp.c#6 integrate .. //depot/projects/multipass/sys/netinet/ip_divert.c#7 integrate .. //depot/projects/multipass/sys/netinet/ip_fastfwd.c#4 integrate .. //depot/projects/multipass/sys/netinet/ip_fw.h#6 integrate .. //depot/projects/multipass/sys/netinet/ip_icmp.c#7 integrate .. //depot/projects/multipass/sys/netinet/ip_input.c#7 integrate .. //depot/projects/multipass/sys/netinet/ip_ipsec.c#5 integrate .. //depot/projects/multipass/sys/netinet/ip_mroute.c#6 integrate .. //depot/projects/multipass/sys/netinet/ip_options.c#5 integrate .. //depot/projects/multipass/sys/netinet/ip_output.c#6 integrate .. //depot/projects/multipass/sys/netinet/ip_var.h#5 integrate .. //depot/projects/multipass/sys/netinet/ipfw/ip_fw2.c#5 integrate .. //depot/projects/multipass/sys/netinet/ipfw/ip_fw_nat.c#3 integrate .. //depot/projects/multipass/sys/netinet/ipfw/ip_fw_pfil.c#3 integrate .. //depot/projects/multipass/sys/netinet/raw_ip.c#8 integrate .. //depot/projects/multipass/sys/netinet/sctp_auth.c#3 integrate .. //depot/projects/multipass/sys/netinet/sctp_indata.c#4 integrate .. //depot/projects/multipass/sys/netinet/sctp_os_bsd.h#5 integrate .. //depot/projects/multipass/sys/netinet/sctp_sysctl.c#4 integrate .. //depot/projects/multipass/sys/netinet/sctp_sysctl.h#4 integrate .. //depot/projects/multipass/sys/netinet/sctp_uio.h#5 integrate .. //depot/projects/multipass/sys/netinet/sctputil.c#4 integrate .. //depot/projects/multipass/sys/netinet/sctputil.h#3 integrate .. //depot/projects/multipass/sys/netinet/tcp_hostcache.c#6 integrate .. //depot/projects/multipass/sys/netinet/tcp_input.c#5 integrate .. //depot/projects/multipass/sys/netinet/tcp_offload.c#4 integrate .. //depot/projects/multipass/sys/netinet/tcp_output.c#5 integrate .. //depot/projects/multipass/sys/netinet/tcp_reass.c#4 integrate .. //depot/projects/multipass/sys/netinet/tcp_sack.c#4 integrate .. //depot/projects/multipass/sys/netinet/tcp_subr.c#6 integrate .. //depot/projects/multipass/sys/netinet/tcp_syncache.c#6 integrate .. //depot/projects/multipass/sys/netinet/tcp_timer.c#4 integrate .. //depot/projects/multipass/sys/netinet/tcp_timewait.c#5 integrate .. //depot/projects/multipass/sys/netinet/tcp_usrreq.c#4 integrate .. //depot/projects/multipass/sys/netinet/tcp_var.h#7 integrate .. //depot/projects/multipass/sys/netinet/udp_usrreq.c#6 integrate .. //depot/projects/multipass/sys/netinet/udp_var.h#5 integrate .. //depot/projects/multipass/sys/netinet/vinet.h#6 delete .. //depot/projects/multipass/sys/netinet6/dest6.c#3 integrate .. //depot/projects/multipass/sys/netinet6/frag6.c#5 integrate .. //depot/projects/multipass/sys/netinet6/icmp6.c#7 integrate .. //depot/projects/multipass/sys/netinet6/in6.c#8 integrate .. //depot/projects/multipass/sys/netinet6/in6_gif.c#4 integrate .. //depot/projects/multipass/sys/netinet6/in6_ifattach.c#8 integrate .. //depot/projects/multipass/sys/netinet6/in6_mcast.c#4 integrate .. //depot/projects/multipass/sys/netinet6/in6_pcb.c#7 integrate .. //depot/projects/multipass/sys/netinet6/in6_proto.c#7 integrate .. //depot/projects/multipass/sys/netinet6/in6_rmx.c#7 integrate .. //depot/projects/multipass/sys/netinet6/in6_src.c#5 integrate .. //depot/projects/multipass/sys/netinet6/in6_var.h#6 integrate .. //depot/projects/multipass/sys/netinet6/ip6_forward.c#3 integrate .. //depot/projects/multipass/sys/netinet6/ip6_input.c#8 integrate .. //depot/projects/multipass/sys/netinet6/ip6_ipsec.c#4 integrate .. //depot/projects/multipass/sys/netinet6/ip6_mroute.c#6 integrate .. //depot/projects/multipass/sys/netinet6/ip6_output.c#7 integrate .. //depot/projects/multipass/sys/netinet6/ip6_var.h#6 integrate .. //depot/projects/multipass/sys/netinet6/mld6.c#6 integrate .. //depot/projects/multipass/sys/netinet6/nd6.c#8 integrate .. //depot/projects/multipass/sys/netinet6/nd6.h#5 integrate .. //depot/projects/multipass/sys/netinet6/nd6_nbr.c#5 integrate .. //depot/projects/multipass/sys/netinet6/nd6_rtr.c#8 integrate .. //depot/projects/multipass/sys/netinet6/raw_ip6.c#6 integrate .. //depot/projects/multipass/sys/netinet6/raw_ip6.h#3 integrate .. //depot/projects/multipass/sys/netinet6/route6.c#4 integrate .. //depot/projects/multipass/sys/netinet6/scope6.c#5 integrate .. //depot/projects/multipass/sys/netinet6/tcp6_var.h#3 integrate .. //depot/projects/multipass/sys/netinet6/udp6_usrreq.c#6 integrate .. //depot/projects/multipass/sys/netinet6/vinet6.h#6 delete .. //depot/projects/multipass/sys/netipsec/ah_var.h#2 integrate .. //depot/projects/multipass/sys/netipsec/esp_var.h#2 integrate .. //depot/projects/multipass/sys/netipsec/ipcomp_var.h#2 integrate .. //depot/projects/multipass/sys/netipsec/ipip_var.h#3 integrate .. //depot/projects/multipass/sys/netipsec/ipsec.c#6 integrate .. //depot/projects/multipass/sys/netipsec/ipsec.h#4 integrate .. //depot/projects/multipass/sys/netipsec/ipsec6.h#4 integrate .. //depot/projects/multipass/sys/netipsec/ipsec_input.c#5 integrate .. //depot/projects/multipass/sys/netipsec/ipsec_mbuf.c#3 integrate .. //depot/projects/multipass/sys/netipsec/ipsec_output.c#4 integrate .. //depot/projects/multipass/sys/netipsec/key.c#7 integrate .. //depot/projects/multipass/sys/netipsec/key_debug.c#3 integrate .. //depot/projects/multipass/sys/netipsec/key_debug.h#2 integrate .. //depot/projects/multipass/sys/netipsec/keysock.c#5 integrate .. //depot/projects/multipass/sys/netipsec/keysock.h#3 integrate .. //depot/projects/multipass/sys/netipsec/vipsec.h#5 delete .. //depot/projects/multipass/sys/netipsec/xform_ah.c#3 integrate .. //depot/projects/multipass/sys/netipsec/xform_esp.c#3 integrate .. //depot/projects/multipass/sys/netipsec/xform_ipcomp.c#3 integrate .. //depot/projects/multipass/sys/netipsec/xform_ipip.c#5 integrate .. //depot/projects/multipass/sys/netipsec/xform_tcp.c#4 integrate .. //depot/projects/multipass/sys/nfsclient/bootp_subr.c#7 integrate .. //depot/projects/multipass/sys/nfsclient/nfs_bio.c#7 integrate .. //depot/projects/multipass/sys/nfsclient/nfs_diskless.c#7 integrate .. //depot/projects/multipass/sys/nfsclient/nfs_vnops.c#7 integrate .. //depot/projects/multipass/sys/nfsclient/nfsmount.h#4 integrate .. //depot/projects/multipass/sys/pci/if_rlreg.h#4 integrate .. //depot/projects/multipass/sys/powerpc/booke/pmap.c#6 integrate .. //depot/projects/multipass/sys/powerpc/mpc85xx/lbc.h#3 integrate .. //depot/projects/multipass/sys/rpc/clnt_rc.c#5 integrate .. //depot/projects/multipass/sys/rpc/clnt_vc.c#3 integrate .. //depot/projects/multipass/sys/security/audit/audit.c#5 integrate .. //depot/projects/multipass/sys/security/audit/audit.h#4 integrate .. //depot/projects/multipass/sys/security/audit/audit_arg.c#3 integrate .. //depot/projects/multipass/sys/security/audit/audit_bsm.c#5 integrate .. //depot/projects/multipass/sys/security/audit/audit_bsm_errno.c#2 integrate .. //depot/projects/multipass/sys/security/audit/audit_bsm_klib.c#3 integrate .. //depot/projects/multipass/sys/security/audit/audit_bsm_token.c#4 integrate .. //depot/projects/multipass/sys/security/audit/audit_private.h#5 integrate .. //depot/projects/multipass/sys/sparc64/include/param.h#4 integrate .. //depot/projects/multipass/sys/sparc64/sparc64/pmap.c#5 integrate .. //depot/projects/multipass/sys/sun4v/sun4v/pmap.c#4 integrate .. //depot/projects/multipass/sys/sys/domain.h#3 integrate .. //depot/projects/multipass/sys/sys/jail.h#6 integrate .. //depot/projects/multipass/sys/sys/kernel.h#5 integrate .. //depot/projects/multipass/sys/sys/param.h#7 integrate .. //depot/projects/multipass/sys/sys/pcpu.h#5 integrate .. //depot/projects/multipass/sys/sys/priv.h#7 integrate .. //depot/projects/multipass/sys/sys/proc.h#6 integrate .. //depot/projects/multipass/sys/sys/signalvar.h#2 integrate .. //depot/projects/multipass/sys/sys/sleepqueue.h#2 integrate .. //depot/projects/multipass/sys/sys/sockio.h#4 integrate .. //depot/projects/multipass/sys/sys/sysctl.h#6 integrate .. //depot/projects/multipass/sys/sys/ucred.h#5 integrate .. //depot/projects/multipass/sys/sys/user.h#5 integrate .. //depot/projects/multipass/sys/sys/vimage.h#7 integrate .. //depot/projects/multipass/sys/vm/device_pager.c#4 integrate .. //depot/projects/multipass/sys/vm/sg_pager.c#1 branch .. //depot/projects/multipass/sys/vm/vm.h#4 integrate .. //depot/projects/multipass/sys/vm/vm_fault.c#6 integrate .. //depot/projects/multipass/sys/vm/vm_map.c#7 integrate .. //depot/projects/multipass/sys/vm/vm_meter.c#3 integrate .. //depot/projects/multipass/sys/vm/vm_mmap.c#5 integrate .. //depot/projects/multipass/sys/vm/vm_object.c#7 integrate .. //depot/projects/multipass/sys/vm/vm_object.h#5 integrate .. //depot/projects/multipass/sys/vm/vm_page.c#7 integrate .. //depot/projects/multipass/sys/vm/vm_pageout.c#5 integrate .. //depot/projects/multipass/sys/vm/vm_pager.c#4 integrate .. //depot/projects/multipass/sys/vm/vm_pager.h#4 integrate .. //depot/projects/multipass/sys/xen/evtchn/evtchn.c#4 integrate Differences ... ==== //depot/projects/multipass/sys/amd64/amd64/initcpu.c#3 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.53 2009/01/12 19:17:35 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.54 2009/07/22 14:32:38 kib Exp $"); #include "opt_cpu.h" @@ -65,6 +65,7 @@ u_int cpu_vendor_id; /* CPU vendor ID */ u_int cpu_fxsr; /* SSE enabled */ u_int cpu_mxcsr_mask; /* Valid bits in mxcsr */ +u_int cpu_clflush_line_size = 32; SYSCTL_UINT(_hw, OID_AUTO, via_feature_rng, CTLFLAG_RD, &via_feature_rng, 0, "VIA C3/C7 RNG feature available in CPU"); @@ -156,4 +157,12 @@ AMD64_CPU_FAMILY(cpu_id) == 0x6 && AMD64_CPU_MODEL(cpu_id) >= 0xf) init_via(); + + /* + * CPUID with %eax = 1, %ebx returns + * Bits 15-8: CLFLUSH line size + * (Value * 8 = cache line size in bytes) + */ + if ((cpu_feature & CPUID_CLFSH) != 0) + cpu_clflush_line_size = ((cpu_procinfo >> 8) & 0xff) * 8; } ==== //depot/projects/multipass/sys/amd64/amd64/machdep.c#7 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.705 2009/07/09 09:34:11 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.706 2009/07/27 13:51:55 rpaulo Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -213,7 +213,10 @@ */ sysenv = getenv("smbios.system.product"); if (sysenv != NULL) { - if (strncmp(sysenv, "MacBook", 7) == 0) { + if (strncmp(sysenv, "MacBook1,1", 10) == 0 || + strncmp(sysenv, "MacBookPro1,1", 13) == 0 || + strncmp(sysenv, "MacBookPro1,2", 13) == 0 || + strncmp(sysenv, "Macmini1,1", 10) == 0) { if (bootverbose) printf("Disabling LEGACY_USB_EN bit on " "Intel ICH.\n"); ==== //depot/projects/multipass/sys/amd64/amd64/pmap.c#8 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.663 2009/07/12 23:31:20 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.667 2009/07/24 13:50:29 jhb Exp $"); /* * Manages physical address maps. @@ -231,6 +231,7 @@ vm_page_t m, vm_prot_t prot, vm_page_t mpte); static void pmap_fill_ptp(pt_entry_t *firstpte, pt_entry_t newpte); static void pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte); +static void pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva); static boolean_t pmap_is_modified_pvh(struct md_page *pvh); static void pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int mode); static vm_page_t pmap_lookup_pt_page(pmap_t pmap, vm_offset_t va); @@ -752,21 +753,6 @@ /* The PAT bit is different for PTE's and PDE's. */ pat_flag = is_pde ? PG_PDE_PAT : PG_PTE_PAT; - /* If we don't support PAT, map extended modes to older ones. */ - if (!(cpu_feature & CPUID_PAT)) { - switch (mode) { - case PAT_UNCACHEABLE: - case PAT_WRITE_THROUGH: - case PAT_WRITE_BACK: - break; - case PAT_UNCACHED: - case PAT_WRITE_COMBINING: - case PAT_WRITE_PROTECTED: - mode = PAT_UNCACHEABLE; - break; - } - } - /* Map the caching mode to a PAT index. */ switch (mode) { case PAT_UNCACHEABLE: @@ -936,6 +922,40 @@ } #endif /* !SMP */ +static void +pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva) +{ + + KASSERT((sva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: sva not page-aligned")); + KASSERT((eva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: eva not page-aligned")); + + if (cpu_feature & CPUID_SS) + ; /* If "Self Snoop" is supported, do nothing. */ + else if (cpu_feature & CPUID_CLFSH) { + + /* + * Otherwise, do per-cache line flush. Use the mfence + * instruction to insure that previous stores are + * included in the write-back. The processor + * propagates flush to other processors in the cache + * coherence domain. + */ + mfence(); + for (; eva < sva; eva += cpu_clflush_line_size) + clflush(eva); + mfence(); + } else { + + /* + * No targeted cache flush methods are supported by CPU, + * globally invalidate cache as a last resort. + */ + pmap_invalidate_cache(); + } +} + /* * Are we current address space or kernel? */ @@ -3339,7 +3359,7 @@ int pat_mode; VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); - KASSERT(object->type == OBJT_DEVICE, + KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, ("pmap_object_init_pt: non-device object")); if ((addr & (NBPDR - 1)) == 0 && (size & (NBPDR - 1)) == 0) { if (!vm_object_populate(object, pindex, pindex + atop(size))) @@ -4271,7 +4291,8 @@ void * pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) { - vm_offset_t va, tmpva, offset; + vm_offset_t va, offset; + vm_size_t tmpsize; /* * If the specified range of physical addresses fits within the direct @@ -4288,14 +4309,10 @@ if (!va) panic("pmap_mapdev: Couldn't alloc kernel virtual memory"); pa = trunc_page(pa); - for (tmpva = va; size > 0; ) { - pmap_kenter_attr(tmpva, pa, mode); - size -= PAGE_SIZE; - tmpva += PAGE_SIZE; - pa += PAGE_SIZE; - } - pmap_invalidate_range(kernel_pmap, va, tmpva); - pmap_invalidate_cache(); + for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE) + pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode); + pmap_invalidate_range(kernel_pmap, va, va + tmpsize); + pmap_invalidate_cache_range(va, va + tmpsize); return ((void *)(va + offset)); } @@ -4394,9 +4411,12 @@ m->md.pat_mode = ma; /* - * Update the direct mapping and flush the cache. + * If "m" is a normal page, update its direct mapping. This update + * can be relied upon to perform any cache operations that are + * required for data coherence. */ - if (pmap_change_attr(PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), PAGE_SIZE, + if ((m->flags & PG_FICTITIOUS) == 0 && + pmap_change_attr(PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), PAGE_SIZE, m->md.pat_mode)) panic("memory attribute change on the direct map failed"); } @@ -4634,7 +4654,7 @@ */ if (changed) { pmap_invalidate_range(kernel_pmap, base, tmpva); - pmap_invalidate_cache(); + pmap_invalidate_cache_range(base, tmpva); } return (error); } ==== //depot/projects/multipass/sys/amd64/include/cpufunc.h#3 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.153 2009/04/11 14:01:01 ed Exp $ + * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.154 2009/07/22 14:32:38 kib Exp $ */ /* @@ -100,6 +100,13 @@ } static __inline void +clflush(u_long addr) +{ + + __asm __volatile("clflush %0" : : "m" (*(char *)addr)); +} + +static __inline void disable_intr(void) { __asm __volatile("cli" : : : "memory"); @@ -267,6 +274,13 @@ } static __inline void +mfence(void) +{ + + __asm__ __volatile("mfence" : : : "memory"); +} + +static __inline void ia32_pause(void) { __asm __volatile("pause"); ==== //depot/projects/multipass/sys/amd64/include/md_var.h#3 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.85 2009/04/01 13:09:26 kib Exp $ + * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.86 2009/07/22 14:32:38 kib Exp $ */ #ifndef _MACHINE_MD_VAR_H_ @@ -47,6 +47,7 @@ extern u_int amd_pminfo; extern u_int via_feature_rng; extern u_int via_feature_xcrypt; +extern u_int cpu_clflush_line_size; extern u_int cpu_fxsr; extern u_int cpu_high; extern u_int cpu_id; ==== //depot/projects/multipass/sys/amd64/pci/pci_bus.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_bus.c,v 1.123 2009/02/08 07:02:42 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_bus.c,v 1.124 2009/07/13 21:36:31 jkim Exp $"); #include "opt_cpu.h" @@ -382,6 +382,7 @@ */ static struct isa_pnp_id pcibus_pnp_ids[] = { { 0x030ad041 /* PNP0A03 */, "PCI Bus" }, + { 0x080ad041 /* PNP0A08 */, "PCIe Bus" }, { 0 } }; ==== //depot/projects/multipass/sys/arm/arm/busdma_machdep.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.47 2009/04/23 20:24:19 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.48 2009/07/20 07:53:07 raj Exp $"); /* * ARM bus dma support routines @@ -630,10 +630,6 @@ ((vm_offset_t)*vaddr & PAGE_MASK)); newmap->origbuffer = *vaddr; newmap->allocbuffer = tmpaddr; - cpu_idcache_wbinv_range((vm_offset_t)*vaddr, - dmat->maxsize); - cpu_l2cache_wbinv_range((vm_offset_t)*vaddr, - dmat->maxsize); *vaddr = tmpaddr; } else newmap->origbuffer = newmap->allocbuffer = NULL; ==== //depot/projects/multipass/sys/arm/arm/cpufunc.c#4 (text+ko) ==== @@ -45,7 +45,7 @@ * Created : 30/01/97 */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.26 2009/05/05 12:57:16 stas Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.27 2009/07/21 08:29:19 raj Exp $"); #include #include @@ -265,7 +265,7 @@ arm9_dcache_wbinv_all, /* dcache_wbinv_all */ arm9_dcache_wbinv_range, /* dcache_wbinv_range */ -/*XXX*/ arm9_dcache_wbinv_range, /* dcache_inv_range */ + arm9_dcache_inv_range, /* dcache_inv_range */ arm9_dcache_wb_range, /* dcache_wb_range */ arm9_idcache_wbinv_all, /* idcache_wbinv_all */ @@ -327,7 +327,7 @@ armv5_ec_dcache_wbinv_all, /* dcache_wbinv_all */ armv5_ec_dcache_wbinv_range, /* dcache_wbinv_range */ -/*XXX*/ armv5_ec_dcache_wbinv_range, /* dcache_inv_range */ + armv5_ec_dcache_inv_range, /* dcache_inv_range */ armv5_ec_dcache_wb_range, /* dcache_wb_range */ armv5_ec_idcache_wbinv_all, /* idcache_wbinv_all */ ==== //depot/projects/multipass/sys/arm/arm/pmap.c#7 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.111 2009/06/24 21:03:59 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.113 2009/07/24 13:50:29 jhb Exp $"); #include #include #include @@ -2984,6 +2984,7 @@ pmap_free_pv_entry(pve); PMAP_UNLOCK(pmap_kernel()); vm_page_unlock_queues(); + va = va & ~PAGE_MASK; cpu_dcache_wbinv_range(va, PAGE_SIZE); cpu_l2cache_wbinv_range(va, PAGE_SIZE); cpu_tlb_flushD_SE(va); @@ -3100,7 +3101,7 @@ { VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); - KASSERT(object->type == OBJT_DEVICE, + KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, ("pmap_object_init_pt: non-device object")); } ==== //depot/projects/multipass/sys/arm/arm/vm_machdep.c#4 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.39 2009/06/24 21:00:13 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.40 2009/07/20 07:53:07 raj Exp $"); #include #include @@ -426,10 +426,15 @@ vm_offset_t tomap = arm_nocache_startaddr + i * PAGE_SIZE; void *ret = (void *)tomap; vm_paddr_t physaddr = vtophys((vm_offset_t)addr); + vm_offset_t vaddr = (vm_offset_t) addr; + vaddr = vaddr & ~PAGE_MASK; for (; tomap < (vm_offset_t)ret + size; tomap += PAGE_SIZE, - physaddr += PAGE_SIZE, i++) { + vaddr += PAGE_SIZE, physaddr += PAGE_SIZE, i++) { + cpu_idcache_wbinv_range(vaddr, PAGE_SIZE); + cpu_l2cache_wbinv_range(vaddr, PAGE_SIZE); pmap_kenter_nocache(tomap, physaddr); + cpu_tlb_flushID_SE(vaddr); arm_nocache_allocated[i / BITS_PER_INT] |= 1 << (i % BITS_PER_INT); } ==== //depot/projects/multipass/sys/arm/conf/AVILA#5 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/arm/conf/AVILA,v 1.32 2009/05/27 16:16:56 thompsa Exp $ +# $FreeBSD: src/sys/arm/conf/AVILA,v 1.33 2009/07/17 18:35:45 rpaulo Exp $ ident AVILA @@ -105,6 +105,7 @@ device wlan # 802.11 support options IEEE80211_DEBUG options IEEE80211_SUPPORT_TDMA +options IEEE80211_SUPPORT_MESH device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support ==== //depot/projects/multipass/sys/arm/conf/CAMBRIA#3 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/arm/conf/CAMBRIA,v 1.11 2009/05/10 00:00:25 kuriyama Exp $ +# $FreeBSD: src/sys/arm/conf/CAMBRIA,v 1.12 2009/07/17 18:35:45 rpaulo Exp $ ident CAMBRIA @@ -108,6 +108,7 @@ device wlan # 802.11 support options IEEE80211_DEBUG options IEEE80211_SUPPORT_TDMA +options IEEE80211_SUPPORT_MESH device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support ==== //depot/projects/multipass/sys/boot/forth/loader.conf#6 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.142 2009/06/15 18:22:41 marius Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.143 2009/07/26 12:20:07 bz Exp $ ############################################################## ### Basic configuration options ############################ @@ -190,6 +190,7 @@ if_disc_load="NO" # Discard device if_ef_load="NO" # pseudo-device providing support for multiple # ethernet frame types +if_epair_load="NO" # Virtual b-t-b Ethernet-like interface pair if_faith_load="NO" # IPv6-to-IPv4 TCP relay capturing interface if_gif_load="NO" # generic tunnel interface if_gre_load="NO" # encapsulating network device ==== //depot/projects/multipass/sys/bsm/audit.h#4 (text) ==== @@ -26,8 +26,8 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit.h#9 - * $FreeBSD: src/sys/bsm/audit.h,v 1.16 2009/04/19 14:53:17 rwatson Exp $ + * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit.h#10 + * $FreeBSD: src/sys/bsm/audit.h,v 1.17 2009/07/17 14:02:20 rwatson Exp $ */ #ifndef _BSM_AUDIT_H @@ -173,6 +173,7 @@ typedef u_int16_t au_event_t; typedef u_int16_t au_emod_t; typedef u_int32_t au_class_t; +typedef u_int64_t au_asflgs_t __attribute__ ((aligned (8))); struct au_tid { dev_t port; @@ -206,7 +207,7 @@ au_mask_t ai_mask; /* Audit masks. */ au_tid_addr_t ai_termid; /* Terminal ID. */ au_asid_t ai_asid; /* Audit session ID. */ - u_int64_t ai_flags; /* Audit session flags. */ + au_asflgs_t ai_flags; /* Audit session flags. */ }; typedef struct auditinfo_addr auditinfo_addr_t; @@ -225,7 +226,7 @@ au_mask_t ap_mask; /* Audit masks. */ au_tid_addr_t ap_termid; /* Terminal ID. */ au_asid_t ap_asid; /* Audit session ID. */ - u_int64_t ap_flags; /* Audit session flags. */ + au_asflgs_t ap_flags; /* Audit session flags. */ }; typedef struct auditpinfo_addr auditpinfo_addr_t; ==== //depot/projects/multipass/sys/bsm/audit_kevents.h#5 (text) ==== @@ -26,8 +26,8 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_kevents.h#6 - * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.21 2009/07/08 15:23:18 trasz Exp $ + * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_kevents.h#7 + * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.22 2009/07/17 14:02:20 rwatson Exp $ */ #ifndef _BSM_AUDIT_KEVENTS_H_ ==== //depot/projects/multipass/sys/cam/ata/ata_da.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.1 2009/07/10 08:18:08 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.2 2009/07/17 21:48:08 mav Exp $"); #include @@ -275,7 +275,6 @@ if (softc->flags & ADA_FLAG_CAN_FLUSHCACHE) { ccb = cam_periph_getccb(periph, /*priority*/1); - ccb->ccb_h.ccb_state = ADA_CCB_DUMP; cam_fill_ataio(&ccb->ataio, 1, adadone, @@ -289,7 +288,9 @@ ata_48bit_cmd(&ccb->ataio, ATA_FLUSHCACHE48, 0, 0, 0); else ata_48bit_cmd(&ccb->ataio, ATA_FLUSHCACHE, 0, 0, 0); - xpt_polled_action(ccb); + cam_periph_runccb(ccb, /*error_routine*/NULL, /*cam_flags*/0, + /*sense_flags*/SF_RETRY_UA, + softc->disk->d_devstat); if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) xpt_print(periph->path, "Synchronize cache failed\n"); ==== //depot/projects/multipass/sys/cam/ata/ata_xpt.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.2 2009/07/13 06:12:21 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.3 2009/07/13 21:21:30 mav Exp $"); #include #include @@ -1204,7 +1204,7 @@ scan_info->request_ccb->ccb_h.path, 1); cts.ccb_h.func_code = XPT_SET_TRAN_SETTINGS; cts.type = CTS_TYPE_CURRENT_SETTINGS; - cts.xport_specific.sata.pm_present = 1; + cts.xport_specific.sata.pm_present = 0; cts.xport_specific.sata.valid = CTS_SATA_VALID_PM; xpt_action((union ccb *)&cts); } ==== //depot/projects/multipass/sys/cam/scsi/scsi_xpt.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_xpt.c,v 1.1 2009/07/10 08:18:08 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_xpt.c,v 1.3 2009/07/14 18:44:17 emaste Exp $"); #include #include @@ -836,8 +836,11 @@ serial_buf = NULL; device = periph->path->device; - device->serial_num = NULL; - device->serial_num_len = 0; + if (device->serial_num != NULL) { + free(device->serial_num, M_CAMXPT); + device->serial_num = NULL; + device->serial_num_len = 0; + } serial_buf = (struct scsi_vpd_unit_serial_number *) malloc(sizeof(*serial_buf), M_CAMXPT, M_NOWAIT|M_ZERO); @@ -1176,7 +1179,7 @@ } if (page_list != NULL) - free(page_list, M_DEVBUF); + free(page_list, M_CAMXPT); if (serialnum_supported) { xpt_release_ccb(done_ccb); @@ -1465,14 +1468,14 @@ /* * To start a scan, request_ccb is an XPT_SCAN_BUS ccb. - * As the scan progresses, xpt_scan_bus is used as the + * As the scan progresses, scsi_scan_bus is used as the * callback on completion function. */ static void scsi_scan_bus(struct cam_periph *periph, union ccb *request_ccb) { CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE, - ("xpt_scan_bus\n")); + ("scsi_scan_bus\n")); switch (request_ccb->ccb_h.func_code) { case XPT_SCAN_BUS: { @@ -1550,7 +1553,7 @@ request_ccb->ccb_h.path_id, i, 0); if (status != CAM_REQ_CMP) { - printf("xpt_scan_bus: xpt_create_path failed" + printf("scsi_scan_bus: xpt_create_path failed" " with status %#x, bus scan halted\n", status); free(scan_info, M_CAMXPT); @@ -1561,6 +1564,7 @@ } work_ccb = xpt_alloc_ccb_nowait(); if (work_ccb == NULL) { + xpt_free_ccb((union ccb *)scan_info->cpi); free(scan_info, M_CAMXPT); xpt_free_path(path); request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL; @@ -1682,13 +1686,14 @@ } if ((scan_info->cpi->hba_misc & PIM_SEQSCAN) == 0) { + xpt_free_ccb(request_ccb); break; } status = xpt_create_path(&path, xpt_periph, scan_info->request_ccb->ccb_h.path_id, scan_info->counter, 0); if (status != CAM_REQ_CMP) { >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jul 30 13:44:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B84A11065674; Thu, 30 Jul 2009 13:44:10 +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 77598106566C for ; Thu, 30 Jul 2009 13:44:10 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 638728FC1E for ; Thu, 30 Jul 2009 13:44:10 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UDiAxS062827 for ; Thu, 30 Jul 2009 13:44:10 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UDi9qk062821 for perforce@freebsd.org; Thu, 30 Jul 2009 13:44:09 GMT (envelope-from jhb@freebsd.org) Date: Thu, 30 Jul 2009 13:44:09 GMT Message-Id: <200907301344.n6UDi9qk062821@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166791 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 13:44:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=166791 Change 166791 by jhb@jhb_jhbbsd on 2009/07/30 13:43:20 IFC @166786 Affected files ... .. //depot/projects/smpng/share/man/man9/netisr.9#3 integrate .. //depot/projects/smpng/sys/amd64/amd64/initcpu.c#10 integrate .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#83 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#97 integrate .. //depot/projects/smpng/sys/amd64/include/cpufunc.h#17 integrate .. //depot/projects/smpng/sys/amd64/include/md_var.h#20 integrate .. //depot/projects/smpng/sys/amd64/pci/pci_bus.c#23 integrate .. //depot/projects/smpng/sys/arm/arm/busdma_machdep.c#31 integrate .. //depot/projects/smpng/sys/arm/arm/cpufunc.c#19 integrate .. //depot/projects/smpng/sys/arm/arm/pmap.c#52 integrate .. //depot/projects/smpng/sys/arm/arm/vm_machdep.c#31 integrate .. //depot/projects/smpng/sys/arm/conf/AVILA#19 integrate .. //depot/projects/smpng/sys/arm/conf/CAMBRIA#9 integrate .. //depot/projects/smpng/sys/boot/forth/loader.conf#64 integrate .. //depot/projects/smpng/sys/bsm/audit.h#15 integrate .. //depot/projects/smpng/sys/bsm/audit_kevents.h#17 integrate .. //depot/projects/smpng/sys/cam/ata/ata_da.c#2 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_xpt.c#2 integrate .. //depot/projects/smpng/sys/cddl/compat/opensolaris/sys/sig.h#2 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#4 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#4 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#4 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#13 integrate .. //depot/projects/smpng/sys/cddl/dev/dtrace/amd64/dtrace_subr.c#3 integrate .. //depot/projects/smpng/sys/cddl/dev/dtrace/i386/dtrace_subr.c#3 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#62 integrate .. //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#79 integrate .. //depot/projects/smpng/sys/compat/linux/linux_ioctl.c#62 integrate .. //depot/projects/smpng/sys/compat/linux/linux_mib.c#21 integrate .. //depot/projects/smpng/sys/compat/linux/linux_socket.c#49 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_sockio.c#17 integrate .. //depot/projects/smpng/sys/conf/NOTES#176 integrate .. //depot/projects/smpng/sys/conf/files#249 integrate .. //depot/projects/smpng/sys/conf/newvers.sh#26 integrate .. //depot/projects/smpng/sys/conf/options#175 integrate .. //depot/projects/smpng/sys/contrib/altq/altq/altq_subr.c#15 integrate .. //depot/projects/smpng/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#13 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf.c#36 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf_if.c#17 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf_ioctl.c#34 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf_subr.c#9 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pfvar.h#14 integrate .. //depot/projects/smpng/sys/contrib/rdma/rdma_cma.c#6 integrate .. //depot/projects/smpng/sys/ddb/db_expr.c#7 integrate .. //depot/projects/smpng/sys/ddb/db_sym.c#7 integrate .. //depot/projects/smpng/sys/ddb/db_variables.c#8 integrate .. //depot/projects/smpng/sys/ddb/db_variables.h#5 integrate .. //depot/projects/smpng/sys/ddb/ddb.h#27 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pcib_acpi.c#29 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.c#98 integrate .. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#3 integrate .. //depot/projects/smpng/sys/dev/ath/if_ath.c#81 integrate .. //depot/projects/smpng/sys/dev/ath/if_athvar.h#50 integrate .. //depot/projects/smpng/sys/dev/ciss/ciss.c#63 integrate .. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#9 integrate .. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#19 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_ich8lan.c#5 integrate .. //depot/projects/smpng/sys/dev/e1000/if_em.c#11 integrate .. //depot/projects/smpng/sys/dev/e1000/if_igb.c#12 integrate .. //depot/projects/smpng/sys/dev/if_ndis/if_ndis.c#63 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe.c#9 integrate .. //depot/projects/smpng/sys/dev/mxge/if_mxge.c#33 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#112 integrate .. //depot/projects/smpng/sys/dev/re/if_re.c#77 integrate .. //depot/projects/smpng/sys/dev/siis/siis.c#1 branch .. //depot/projects/smpng/sys/dev/siis/siis.h#1 branch .. //depot/projects/smpng/sys/dev/sound/pci/hda/hdac.c#36 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/feeder_rate.c#20 integrate .. //depot/projects/smpng/sys/dev/sound/usb/uaudio.c#32 integrate .. //depot/projects/smpng/sys/dev/uart/uart_cpu_powerpc.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/controller/at91dci.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/controller/atmegadci.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/controller/avr32dci.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci.c#13 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci_pci.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/controller/musb_otg.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ohci.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ohci_pci.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uhci.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uhci_pci.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/controller/usb_controller.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uss820dci.c#13 integrate .. //depot/projects/smpng/sys/dev/usb/input/ukbd.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/input/ums.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/serial/u3g.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/serial/ulpt.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/usb_compat_linux.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/usb_compat_linux.h#8 integrate .. //depot/projects/smpng/sys/dev/usb/usb_controller.h#12 integrate .. //depot/projects/smpng/sys/dev/usb/usb_dev.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/usb_dev.h#11 integrate .. //depot/projects/smpng/sys/dev/usb/usb_device.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/usb_handle_request.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/usb_hid.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/usb_hub.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/usb_parse.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/usb_request.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/usb_transfer.c#13 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#142 integrate .. //depot/projects/smpng/sys/dev/usb/usbdi.h#27 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_uath.c#9 integrate .. //depot/projects/smpng/sys/fs/nfs/nfsport.h#7 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clbio.c#7 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clrpcops.c#4 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clstate.c#7 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clvfsops.c#7 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clvnops.c#9 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdport.c#7 integrate .. //depot/projects/smpng/sys/fs/procfs/procfs_map.c#17 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum.c#21 integrate .. //depot/projects/smpng/sys/i386/i386/initcpu.c#34 integrate .. //depot/projects/smpng/sys/i386/i386/machdep.c#143 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#137 integrate .. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#92 integrate .. //depot/projects/smpng/sys/i386/include/cpufunc.h#41 integrate .. //depot/projects/smpng/sys/i386/include/md_var.h#36 integrate .. //depot/projects/smpng/sys/i386/include/pmap.h#46 integrate .. //depot/projects/smpng/sys/i386/include/sf_buf.h#4 integrate .. //depot/projects/smpng/sys/i386/pci/pci_bus.c#36 integrate .. //depot/projects/smpng/sys/i386/xen/pmap.c#10 integrate .. //depot/projects/smpng/sys/ia64/ia64/pmap.c#94 integrate .. //depot/projects/smpng/sys/kern/init_main.c#81 integrate .. //depot/projects/smpng/sys/kern/kern_exec.c#121 integrate .. //depot/projects/smpng/sys/kern/kern_exit.c#144 integrate .. //depot/projects/smpng/sys/kern/kern_fork.c#124 integrate .. //depot/projects/smpng/sys/kern/kern_jail.c#75 integrate .. //depot/projects/smpng/sys/kern/kern_linker.c#104 integrate .. //depot/projects/smpng/sys/kern/kern_poll.c#36 integrate .. //depot/projects/smpng/sys/kern/kern_proc.c#107 integrate .. //depot/projects/smpng/sys/kern/kern_prot.c#115 integrate .. //depot/projects/smpng/sys/kern/kern_sig.c#150 integrate .. //depot/projects/smpng/sys/kern/kern_synch.c#129 integrate .. //depot/projects/smpng/sys/kern/kern_sysctl.c#67 integrate .. //depot/projects/smpng/sys/kern/kern_thread.c#114 integrate .. //depot/projects/smpng/sys/kern/kern_uuid.c#21 integrate .. //depot/projects/smpng/sys/kern/kern_vimage.c#10 integrate .. //depot/projects/smpng/sys/kern/link_elf.c#52 integrate .. //depot/projects/smpng/sys/kern/link_elf_obj.c#27 integrate .. //depot/projects/smpng/sys/kern/subr_sleepqueue.c#47 integrate .. //depot/projects/smpng/sys/kern/subr_trap.c#92 integrate .. //depot/projects/smpng/sys/kern/uipc_domain.c#25 integrate .. //depot/projects/smpng/sys/kern/uipc_socket.c#129 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#125 integrate .. //depot/projects/smpng/sys/kern/vfs_lookup.c#62 integrate .. //depot/projects/smpng/sys/kern/vfs_mount.c#99 edit .. //depot/projects/smpng/sys/kern/vfs_syscalls.c#153 integrate .. //depot/projects/smpng/sys/mips/mips/pmap.c#12 integrate .. //depot/projects/smpng/sys/modules/Makefile#166 integrate .. //depot/projects/smpng/sys/modules/if_epair/Makefile#1 branch .. //depot/projects/smpng/sys/modules/siis/Makefile#1 branch .. //depot/projects/smpng/sys/modules/wlan/Makefile#15 integrate .. //depot/projects/smpng/sys/net/bridgestp.c#29 integrate .. //depot/projects/smpng/sys/net/flowtable.c#5 integrate .. //depot/projects/smpng/sys/net/flowtable.h#6 integrate .. //depot/projects/smpng/sys/net/if.c#125 integrate .. //depot/projects/smpng/sys/net/if_bridge.c#60 integrate .. //depot/projects/smpng/sys/net/if_clone.c#14 integrate .. //depot/projects/smpng/sys/net/if_clone.h#6 integrate .. //depot/projects/smpng/sys/net/if_ef.c#32 integrate .. //depot/projects/smpng/sys/net/if_enc.c#13 integrate .. //depot/projects/smpng/sys/net/if_epair.c#2 integrate .. //depot/projects/smpng/sys/net/if_ethersubr.c#101 integrate .. //depot/projects/smpng/sys/net/if_faith.c#38 integrate .. //depot/projects/smpng/sys/net/if_gif.c#53 integrate .. //depot/projects/smpng/sys/net/if_gif.h#20 integrate .. //depot/projects/smpng/sys/net/if_gre.c#41 integrate .. //depot/projects/smpng/sys/net/if_loop.c#58 integrate .. //depot/projects/smpng/sys/net/if_mib.c#18 integrate .. //depot/projects/smpng/sys/net/if_spppsubr.c#44 integrate .. //depot/projects/smpng/sys/net/if_stf.c#51 integrate .. //depot/projects/smpng/sys/net/if_var.h#69 integrate .. //depot/projects/smpng/sys/net/if_vlan.c#68 integrate .. //depot/projects/smpng/sys/net/netisr.h#16 integrate .. //depot/projects/smpng/sys/net/raw_cb.c#23 integrate .. //depot/projects/smpng/sys/net/raw_cb.h#9 integrate .. //depot/projects/smpng/sys/net/raw_usrreq.c#31 integrate .. //depot/projects/smpng/sys/net/route.c#51 integrate .. //depot/projects/smpng/sys/net/rtsock.c#76 integrate .. //depot/projects/smpng/sys/net/vnet.c#1 branch .. //depot/projects/smpng/sys/net/vnet.h#14 integrate .. //depot/projects/smpng/sys/net80211/ieee80211.c#45 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_crypto.c#16 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_crypto.h#16 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ddb.c#19 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_freebsd.c#24 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_hwmp.c#2 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_input.c#49 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_input.h#4 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.h#25 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_mesh.c#2 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_mesh.h#2 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_output.c#46 integrate .. //depot/projects/smpng/sys/netgraph/atm/ng_atm.c#20 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket.c#15 integrate .. //depot/projects/smpng/sys/netgraph/netgraph.h#39 integrate .. //depot/projects/smpng/sys/netgraph/ng_base.c#67 integrate .. //depot/projects/smpng/sys/netgraph/ng_eiface.c#36 integrate .. //depot/projects/smpng/sys/netgraph/ng_ether.c#45 integrate .. //depot/projects/smpng/sys/netgraph/ng_gif.c#21 integrate .. //depot/projects/smpng/sys/netgraph/ng_iface.c#38 integrate .. //depot/projects/smpng/sys/netgraph/ng_socket.c#48 integrate .. //depot/projects/smpng/sys/netinet/icmp6.h#16 integrate .. //depot/projects/smpng/sys/netinet/icmp_var.h#12 integrate .. //depot/projects/smpng/sys/netinet/if_ether.c#74 integrate .. //depot/projects/smpng/sys/netinet/igmp.c#36 integrate .. //depot/projects/smpng/sys/netinet/in.c#58 integrate .. //depot/projects/smpng/sys/netinet/in_gif.c#30 integrate .. //depot/projects/smpng/sys/netinet/in_mcast.c#16 integrate .. //depot/projects/smpng/sys/netinet/in_pcb.c#100 integrate .. //depot/projects/smpng/sys/netinet/in_pcb.h#66 integrate .. //depot/projects/smpng/sys/netinet/in_proto.c#35 integrate .. //depot/projects/smpng/sys/netinet/in_rmx.c#28 integrate .. //depot/projects/smpng/sys/netinet/in_var.h#29 integrate .. //depot/projects/smpng/sys/netinet/ip_carp.c#37 integrate .. //depot/projects/smpng/sys/netinet/ip_divert.c#69 integrate .. //depot/projects/smpng/sys/netinet/ip_fastfwd.c#37 integrate .. //depot/projects/smpng/sys/netinet/ip_fw.h#51 integrate .. //depot/projects/smpng/sys/netinet/ip_icmp.c#53 integrate .. //depot/projects/smpng/sys/netinet/ip_input.c#105 integrate .. //depot/projects/smpng/sys/netinet/ip_ipsec.c#17 integrate .. //depot/projects/smpng/sys/netinet/ip_mroute.c#69 integrate .. //depot/projects/smpng/sys/netinet/ip_options.c#16 integrate .. //depot/projects/smpng/sys/netinet/ip_output.c#112 integrate .. //depot/projects/smpng/sys/netinet/ip_var.h#43 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw2.c#5 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw_nat.c#3 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw_pfil.c#3 integrate .. //depot/projects/smpng/sys/netinet/raw_ip.c#85 integrate .. //depot/projects/smpng/sys/netinet/sctp_auth.c#16 integrate .. //depot/projects/smpng/sys/netinet/sctp_indata.c#26 integrate .. //depot/projects/smpng/sys/netinet/sctp_os_bsd.h#24 integrate .. //depot/projects/smpng/sys/netinet/sctp_sysctl.c#15 integrate .. //depot/projects/smpng/sys/netinet/sctp_sysctl.h#11 integrate .. //depot/projects/smpng/sys/netinet/sctp_uio.h#24 integrate .. //depot/projects/smpng/sys/netinet/sctputil.c#31 integrate .. //depot/projects/smpng/sys/netinet/sctputil.h#16 integrate .. //depot/projects/smpng/sys/netinet/tcp_hostcache.c#22 integrate .. //depot/projects/smpng/sys/netinet/tcp_input.c#130 integrate .. //depot/projects/smpng/sys/netinet/tcp_offload.c#8 integrate .. //depot/projects/smpng/sys/netinet/tcp_output.c#63 integrate .. //depot/projects/smpng/sys/netinet/tcp_reass.c#10 integrate .. //depot/projects/smpng/sys/netinet/tcp_sack.c#32 integrate .. //depot/projects/smpng/sys/netinet/tcp_subr.c#117 integrate .. //depot/projects/smpng/sys/netinet/tcp_syncache.c#74 integrate .. //depot/projects/smpng/sys/netinet/tcp_timer.c#48 integrate .. //depot/projects/smpng/sys/netinet/tcp_timewait.c#15 integrate .. //depot/projects/smpng/sys/netinet/tcp_usrreq.c#81 integrate .. //depot/projects/smpng/sys/netinet/tcp_var.h#72 integrate .. //depot/projects/smpng/sys/netinet/udp_usrreq.c#95 integrate .. //depot/projects/smpng/sys/netinet/udp_var.h#16 integrate .. //depot/projects/smpng/sys/netinet/vinet.h#11 delete .. //depot/projects/smpng/sys/netinet6/dest6.c#9 integrate .. //depot/projects/smpng/sys/netinet6/frag6.c#25 integrate .. //depot/projects/smpng/sys/netinet6/icmp6.c#58 integrate .. //depot/projects/smpng/sys/netinet6/in6.c#63 integrate .. //depot/projects/smpng/sys/netinet6/in6_gif.c#24 integrate .. //depot/projects/smpng/sys/netinet6/in6_ifattach.c#40 integrate .. //depot/projects/smpng/sys/netinet6/in6_mcast.c#4 integrate .. //depot/projects/smpng/sys/netinet6/in6_pcb.c#66 integrate .. //depot/projects/smpng/sys/netinet6/in6_proto.c#32 integrate .. //depot/projects/smpng/sys/netinet6/in6_rmx.c#24 integrate .. //depot/projects/smpng/sys/netinet6/in6_src.c#44 integrate .. //depot/projects/smpng/sys/netinet6/in6_var.h#26 integrate .. //depot/projects/smpng/sys/netinet6/ip6_forward.c#28 integrate .. //depot/projects/smpng/sys/netinet6/ip6_input.c#68 integrate .. //depot/projects/smpng/sys/netinet6/ip6_ipsec.c#9 integrate .. //depot/projects/smpng/sys/netinet6/ip6_mroute.c#42 integrate .. //depot/projects/smpng/sys/netinet6/ip6_output.c#67 integrate .. //depot/projects/smpng/sys/netinet6/ip6_var.h#31 integrate .. //depot/projects/smpng/sys/netinet6/mld6.c#33 integrate .. //depot/projects/smpng/sys/netinet6/nd6.c#58 integrate .. //depot/projects/smpng/sys/netinet6/nd6.h#18 integrate .. //depot/projects/smpng/sys/netinet6/nd6_nbr.c#37 integrate .. //depot/projects/smpng/sys/netinet6/nd6_rtr.c#36 integrate .. //depot/projects/smpng/sys/netinet6/raw_ip6.c#63 integrate .. //depot/projects/smpng/sys/netinet6/raw_ip6.h#5 integrate .. //depot/projects/smpng/sys/netinet6/route6.c#16 integrate .. //depot/projects/smpng/sys/netinet6/scope6.c#17 integrate .. //depot/projects/smpng/sys/netinet6/tcp6_var.h#7 integrate .. //depot/projects/smpng/sys/netinet6/udp6_usrreq.c#60 integrate .. //depot/projects/smpng/sys/netinet6/vinet6.h#10 delete .. //depot/projects/smpng/sys/netipsec/ah_var.h#3 integrate .. //depot/projects/smpng/sys/netipsec/esp_var.h#3 integrate .. //depot/projects/smpng/sys/netipsec/ipcomp_var.h#3 integrate .. //depot/projects/smpng/sys/netipsec/ipip_var.h#4 integrate .. //depot/projects/smpng/sys/netipsec/ipsec.c#38 integrate .. //depot/projects/smpng/sys/netipsec/ipsec.h#20 integrate .. //depot/projects/smpng/sys/netipsec/ipsec6.h#9 integrate .. //depot/projects/smpng/sys/netipsec/ipsec_input.c#22 integrate .. //depot/projects/smpng/sys/netipsec/ipsec_mbuf.c#15 integrate .. //depot/projects/smpng/sys/netipsec/ipsec_output.c#20 integrate .. //depot/projects/smpng/sys/netipsec/key.c#41 integrate .. //depot/projects/smpng/sys/netipsec/key_debug.c#8 integrate .. //depot/projects/smpng/sys/netipsec/key_debug.h#4 integrate .. //depot/projects/smpng/sys/netipsec/keysock.c#23 integrate .. //depot/projects/smpng/sys/netipsec/keysock.h#5 integrate .. //depot/projects/smpng/sys/netipsec/vipsec.h#8 delete .. //depot/projects/smpng/sys/netipsec/xform_ah.c#18 integrate .. //depot/projects/smpng/sys/netipsec/xform_esp.c#19 integrate .. //depot/projects/smpng/sys/netipsec/xform_ipcomp.c#16 integrate .. //depot/projects/smpng/sys/netipsec/xform_ipip.c#24 integrate .. //depot/projects/smpng/sys/netipsec/xform_tcp.c#8 integrate .. //depot/projects/smpng/sys/nfsclient/bootp_subr.c#45 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_bio.c#62 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_diskless.c#26 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#92 integrate .. //depot/projects/smpng/sys/nfsclient/nfsmount.h#18 integrate .. //depot/projects/smpng/sys/pci/if_rlreg.h#52 integrate .. //depot/projects/smpng/sys/powerpc/booke/pmap.c#14 integrate .. //depot/projects/smpng/sys/powerpc/mpc85xx/lbc.h#3 integrate .. //depot/projects/smpng/sys/rpc/clnt_rc.c#8 integrate .. //depot/projects/smpng/sys/rpc/clnt_vc.c#7 integrate .. //depot/projects/smpng/sys/security/audit/audit.c#20 integrate .. //depot/projects/smpng/sys/security/audit/audit.h#13 integrate .. //depot/projects/smpng/sys/security/audit/audit_arg.c#18 integrate .. //depot/projects/smpng/sys/security/audit/audit_bsm.c#18 integrate .. //depot/projects/smpng/sys/security/audit/audit_bsm_errno.c#3 integrate .. //depot/projects/smpng/sys/security/audit/audit_bsm_klib.c#15 integrate .. //depot/projects/smpng/sys/security/audit/audit_bsm_token.c#16 integrate .. //depot/projects/smpng/sys/security/audit/audit_private.h#16 integrate .. //depot/projects/smpng/sys/sparc64/include/param.h#22 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#81 integrate .. //depot/projects/smpng/sys/sys/domain.h#12 integrate .. //depot/projects/smpng/sys/sys/jail.h#30 integrate .. //depot/projects/smpng/sys/sys/kernel.h#46 integrate .. //depot/projects/smpng/sys/sys/param.h#153 integrate .. //depot/projects/smpng/sys/sys/pcpu.h#28 integrate .. //depot/projects/smpng/sys/sys/priv.h#24 integrate .. //depot/projects/smpng/sys/sys/proc.h#200 integrate .. //depot/projects/smpng/sys/sys/signalvar.h#32 integrate .. //depot/projects/smpng/sys/sys/sleepqueue.h#17 integrate .. //depot/projects/smpng/sys/sys/sockio.h#16 integrate .. //depot/projects/smpng/sys/sys/sysctl.h#62 integrate .. //depot/projects/smpng/sys/sys/ucred.h#34 integrate .. //depot/projects/smpng/sys/sys/user.h#37 integrate .. //depot/projects/smpng/sys/sys/vimage.h#18 integrate .. //depot/projects/smpng/sys/vm/device_pager.c#28 integrate .. //depot/projects/smpng/sys/vm/sg_pager.c#1 branch .. //depot/projects/smpng/sys/vm/vm.h#15 integrate .. //depot/projects/smpng/sys/vm/vm_fault.c#79 integrate .. //depot/projects/smpng/sys/vm/vm_map.c#102 integrate .. //depot/projects/smpng/sys/vm/vm_meter.c#38 integrate .. //depot/projects/smpng/sys/vm/vm_mmap.c#80 integrate .. //depot/projects/smpng/sys/vm/vm_object.c#113 integrate .. //depot/projects/smpng/sys/vm/vm_object.h#41 integrate .. //depot/projects/smpng/sys/vm/vm_page.c#107 integrate .. //depot/projects/smpng/sys/vm/vm_pageout.c#74 integrate .. //depot/projects/smpng/sys/vm/vm_pager.c#29 integrate .. //depot/projects/smpng/sys/vm/vm_pager.h#17 integrate .. //depot/projects/smpng/sys/xen/evtchn/evtchn.c#8 integrate Differences ... ==== //depot/projects/smpng/share/man/man9/netisr.9#3 (text+ko) ==== @@ -25,9 +25,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH .\" DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/netisr.9,v 1.3 2009/06/14 17:15:18 bz Exp $ +.\" $FreeBSD: src/share/man/man9/netisr.9,v 1.4 2009/07/26 12:20:07 bz Exp $ .\" -.Dd June 14, 2009 +.Dd July 26, 2009 .Dt NETISR 9 .Os .Sh NAME @@ -208,6 +208,8 @@ IPv6 .It Dv NETISR_NATM ATM +.It Dv NETISR_EPAIR +.Xr epair 4 .El .Sh AUTHORS This manual page and the ==== //depot/projects/smpng/sys/amd64/amd64/initcpu.c#10 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.53 2009/01/12 19:17:35 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.54 2009/07/22 14:32:38 kib Exp $"); #include "opt_cpu.h" @@ -65,6 +65,7 @@ u_int cpu_vendor_id; /* CPU vendor ID */ u_int cpu_fxsr; /* SSE enabled */ u_int cpu_mxcsr_mask; /* Valid bits in mxcsr */ +u_int cpu_clflush_line_size = 32; SYSCTL_UINT(_hw, OID_AUTO, via_feature_rng, CTLFLAG_RD, &via_feature_rng, 0, "VIA C3/C7 RNG feature available in CPU"); @@ -156,4 +157,12 @@ AMD64_CPU_FAMILY(cpu_id) == 0x6 && AMD64_CPU_MODEL(cpu_id) >= 0xf) init_via(); + + /* + * CPUID with %eax = 1, %ebx returns + * Bits 15-8: CLFLUSH line size + * (Value * 8 = cache line size in bytes) + */ + if ((cpu_feature & CPUID_CLFSH) != 0) + cpu_clflush_line_size = ((cpu_procinfo >> 8) & 0xff) * 8; } ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#83 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.705 2009/07/09 09:34:11 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.706 2009/07/27 13:51:55 rpaulo Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -213,7 +213,10 @@ */ sysenv = getenv("smbios.system.product"); if (sysenv != NULL) { - if (strncmp(sysenv, "MacBook", 7) == 0) { + if (strncmp(sysenv, "MacBook1,1", 10) == 0 || + strncmp(sysenv, "MacBookPro1,1", 13) == 0 || + strncmp(sysenv, "MacBookPro1,2", 13) == 0 || + strncmp(sysenv, "Macmini1,1", 10) == 0) { if (bootverbose) printf("Disabling LEGACY_USB_EN bit on " "Intel ICH.\n"); ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#97 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.663 2009/07/12 23:31:20 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.667 2009/07/24 13:50:29 jhb Exp $"); /* * Manages physical address maps. @@ -231,6 +231,7 @@ vm_page_t m, vm_prot_t prot, vm_page_t mpte); static void pmap_fill_ptp(pt_entry_t *firstpte, pt_entry_t newpte); static void pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte); +static void pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva); static boolean_t pmap_is_modified_pvh(struct md_page *pvh); static void pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int mode); static vm_page_t pmap_lookup_pt_page(pmap_t pmap, vm_offset_t va); @@ -752,21 +753,6 @@ /* The PAT bit is different for PTE's and PDE's. */ pat_flag = is_pde ? PG_PDE_PAT : PG_PTE_PAT; - /* If we don't support PAT, map extended modes to older ones. */ - if (!(cpu_feature & CPUID_PAT)) { - switch (mode) { - case PAT_UNCACHEABLE: - case PAT_WRITE_THROUGH: - case PAT_WRITE_BACK: - break; - case PAT_UNCACHED: - case PAT_WRITE_COMBINING: - case PAT_WRITE_PROTECTED: - mode = PAT_UNCACHEABLE; - break; - } - } - /* Map the caching mode to a PAT index. */ switch (mode) { case PAT_UNCACHEABLE: @@ -936,6 +922,40 @@ } #endif /* !SMP */ +static void +pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva) +{ + + KASSERT((sva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: sva not page-aligned")); + KASSERT((eva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: eva not page-aligned")); + + if (cpu_feature & CPUID_SS) + ; /* If "Self Snoop" is supported, do nothing. */ + else if (cpu_feature & CPUID_CLFSH) { + + /* + * Otherwise, do per-cache line flush. Use the mfence + * instruction to insure that previous stores are + * included in the write-back. The processor + * propagates flush to other processors in the cache + * coherence domain. + */ + mfence(); + for (; eva < sva; eva += cpu_clflush_line_size) + clflush(eva); + mfence(); + } else { + + /* + * No targeted cache flush methods are supported by CPU, + * globally invalidate cache as a last resort. + */ + pmap_invalidate_cache(); + } +} + /* * Are we current address space or kernel? */ @@ -3339,7 +3359,7 @@ int pat_mode; VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); - KASSERT(object->type == OBJT_DEVICE, + KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, ("pmap_object_init_pt: non-device object")); if ((addr & (NBPDR - 1)) == 0 && (size & (NBPDR - 1)) == 0) { if (!vm_object_populate(object, pindex, pindex + atop(size))) @@ -4271,7 +4291,8 @@ void * pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) { - vm_offset_t va, tmpva, offset; + vm_offset_t va, offset; + vm_size_t tmpsize; /* * If the specified range of physical addresses fits within the direct @@ -4288,14 +4309,10 @@ if (!va) panic("pmap_mapdev: Couldn't alloc kernel virtual memory"); pa = trunc_page(pa); - for (tmpva = va; size > 0; ) { - pmap_kenter_attr(tmpva, pa, mode); - size -= PAGE_SIZE; - tmpva += PAGE_SIZE; - pa += PAGE_SIZE; - } - pmap_invalidate_range(kernel_pmap, va, tmpva); - pmap_invalidate_cache(); + for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE) + pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode); + pmap_invalidate_range(kernel_pmap, va, va + tmpsize); + pmap_invalidate_cache_range(va, va + tmpsize); return ((void *)(va + offset)); } @@ -4394,9 +4411,12 @@ m->md.pat_mode = ma; /* - * Update the direct mapping and flush the cache. + * If "m" is a normal page, update its direct mapping. This update + * can be relied upon to perform any cache operations that are + * required for data coherence. */ - if (pmap_change_attr(PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), PAGE_SIZE, + if ((m->flags & PG_FICTITIOUS) == 0 && + pmap_change_attr(PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), PAGE_SIZE, m->md.pat_mode)) panic("memory attribute change on the direct map failed"); } @@ -4634,7 +4654,7 @@ */ if (changed) { pmap_invalidate_range(kernel_pmap, base, tmpva); - pmap_invalidate_cache(); + pmap_invalidate_cache_range(base, tmpva); } return (error); } ==== //depot/projects/smpng/sys/amd64/include/cpufunc.h#17 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.153 2009/04/11 14:01:01 ed Exp $ + * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.154 2009/07/22 14:32:38 kib Exp $ */ /* @@ -100,6 +100,13 @@ } static __inline void +clflush(u_long addr) +{ + + __asm __volatile("clflush %0" : : "m" (*(char *)addr)); +} + +static __inline void disable_intr(void) { __asm __volatile("cli" : : : "memory"); @@ -267,6 +274,13 @@ } static __inline void +mfence(void) +{ + + __asm__ __volatile("mfence" : : : "memory"); +} + +static __inline void ia32_pause(void) { __asm __volatile("pause"); ==== //depot/projects/smpng/sys/amd64/include/md_var.h#20 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.85 2009/04/01 13:09:26 kib Exp $ + * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.86 2009/07/22 14:32:38 kib Exp $ */ #ifndef _MACHINE_MD_VAR_H_ @@ -47,6 +47,7 @@ extern u_int amd_pminfo; extern u_int via_feature_rng; extern u_int via_feature_xcrypt; +extern u_int cpu_clflush_line_size; extern u_int cpu_fxsr; extern u_int cpu_high; extern u_int cpu_id; ==== //depot/projects/smpng/sys/amd64/pci/pci_bus.c#23 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_bus.c,v 1.123 2009/02/08 07:02:42 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_bus.c,v 1.124 2009/07/13 21:36:31 jkim Exp $"); #include "opt_cpu.h" @@ -386,6 +386,7 @@ */ static struct isa_pnp_id pcibus_pnp_ids[] = { { 0x030ad041 /* PNP0A03 */, "PCI Bus" }, + { 0x080ad041 /* PNP0A08 */, "PCIe Bus" }, { 0 } }; ==== //depot/projects/smpng/sys/arm/arm/busdma_machdep.c#31 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.47 2009/04/23 20:24:19 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.48 2009/07/20 07:53:07 raj Exp $"); /* * ARM bus dma support routines @@ -630,10 +630,6 @@ ((vm_offset_t)*vaddr & PAGE_MASK)); newmap->origbuffer = *vaddr; newmap->allocbuffer = tmpaddr; - cpu_idcache_wbinv_range((vm_offset_t)*vaddr, - dmat->maxsize); - cpu_l2cache_wbinv_range((vm_offset_t)*vaddr, - dmat->maxsize); *vaddr = tmpaddr; } else newmap->origbuffer = newmap->allocbuffer = NULL; ==== //depot/projects/smpng/sys/arm/arm/cpufunc.c#19 (text+ko) ==== @@ -45,7 +45,7 @@ * Created : 30/01/97 */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.26 2009/05/05 12:57:16 stas Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.27 2009/07/21 08:29:19 raj Exp $"); #include #include @@ -265,7 +265,7 @@ arm9_dcache_wbinv_all, /* dcache_wbinv_all */ arm9_dcache_wbinv_range, /* dcache_wbinv_range */ -/*XXX*/ arm9_dcache_wbinv_range, /* dcache_inv_range */ + arm9_dcache_inv_range, /* dcache_inv_range */ arm9_dcache_wb_range, /* dcache_wb_range */ arm9_idcache_wbinv_all, /* idcache_wbinv_all */ @@ -327,7 +327,7 @@ armv5_ec_dcache_wbinv_all, /* dcache_wbinv_all */ armv5_ec_dcache_wbinv_range, /* dcache_wbinv_range */ -/*XXX*/ armv5_ec_dcache_wbinv_range, /* dcache_inv_range */ + armv5_ec_dcache_inv_range, /* dcache_inv_range */ armv5_ec_dcache_wb_range, /* dcache_wb_range */ armv5_ec_idcache_wbinv_all, /* idcache_wbinv_all */ ==== //depot/projects/smpng/sys/arm/arm/pmap.c#52 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.111 2009/06/24 21:03:59 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.113 2009/07/24 13:50:29 jhb Exp $"); #include #include #include @@ -2984,6 +2984,7 @@ pmap_free_pv_entry(pve); PMAP_UNLOCK(pmap_kernel()); vm_page_unlock_queues(); + va = va & ~PAGE_MASK; cpu_dcache_wbinv_range(va, PAGE_SIZE); cpu_l2cache_wbinv_range(va, PAGE_SIZE); cpu_tlb_flushD_SE(va); @@ -3100,7 +3101,7 @@ { VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); - KASSERT(object->type == OBJT_DEVICE, + KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, ("pmap_object_init_pt: non-device object")); } ==== //depot/projects/smpng/sys/arm/arm/vm_machdep.c#31 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.39 2009/06/24 21:00:13 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.40 2009/07/20 07:53:07 raj Exp $"); #include #include @@ -426,10 +426,15 @@ vm_offset_t tomap = arm_nocache_startaddr + i * PAGE_SIZE; void *ret = (void *)tomap; vm_paddr_t physaddr = vtophys((vm_offset_t)addr); + vm_offset_t vaddr = (vm_offset_t) addr; + vaddr = vaddr & ~PAGE_MASK; for (; tomap < (vm_offset_t)ret + size; tomap += PAGE_SIZE, - physaddr += PAGE_SIZE, i++) { + vaddr += PAGE_SIZE, physaddr += PAGE_SIZE, i++) { + cpu_idcache_wbinv_range(vaddr, PAGE_SIZE); + cpu_l2cache_wbinv_range(vaddr, PAGE_SIZE); pmap_kenter_nocache(tomap, physaddr); + cpu_tlb_flushID_SE(vaddr); arm_nocache_allocated[i / BITS_PER_INT] |= 1 << (i % BITS_PER_INT); } ==== //depot/projects/smpng/sys/arm/conf/AVILA#19 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/arm/conf/AVILA,v 1.32 2009/05/27 16:16:56 thompsa Exp $ +# $FreeBSD: src/sys/arm/conf/AVILA,v 1.33 2009/07/17 18:35:45 rpaulo Exp $ ident AVILA @@ -105,6 +105,7 @@ device wlan # 802.11 support options IEEE80211_DEBUG options IEEE80211_SUPPORT_TDMA +options IEEE80211_SUPPORT_MESH device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support ==== //depot/projects/smpng/sys/arm/conf/CAMBRIA#9 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/arm/conf/CAMBRIA,v 1.11 2009/05/10 00:00:25 kuriyama Exp $ +# $FreeBSD: src/sys/arm/conf/CAMBRIA,v 1.12 2009/07/17 18:35:45 rpaulo Exp $ ident CAMBRIA @@ -108,6 +108,7 @@ device wlan # 802.11 support options IEEE80211_DEBUG options IEEE80211_SUPPORT_TDMA +options IEEE80211_SUPPORT_MESH device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support ==== //depot/projects/smpng/sys/boot/forth/loader.conf#64 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.142 2009/06/15 18:22:41 marius Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.143 2009/07/26 12:20:07 bz Exp $ ############################################################## ### Basic configuration options ############################ @@ -190,6 +190,7 @@ if_disc_load="NO" # Discard device if_ef_load="NO" # pseudo-device providing support for multiple # ethernet frame types +if_epair_load="NO" # Virtual b-t-b Ethernet-like interface pair if_faith_load="NO" # IPv6-to-IPv4 TCP relay capturing interface if_gif_load="NO" # generic tunnel interface if_gre_load="NO" # encapsulating network device ==== //depot/projects/smpng/sys/bsm/audit.h#15 (text+ko) ==== @@ -26,8 +26,8 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit.h#9 - * $FreeBSD: src/sys/bsm/audit.h,v 1.16 2009/04/19 14:53:17 rwatson Exp $ + * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit.h#10 + * $FreeBSD: src/sys/bsm/audit.h,v 1.17 2009/07/17 14:02:20 rwatson Exp $ */ #ifndef _BSM_AUDIT_H @@ -173,6 +173,7 @@ typedef u_int16_t au_event_t; typedef u_int16_t au_emod_t; typedef u_int32_t au_class_t; +typedef u_int64_t au_asflgs_t __attribute__ ((aligned (8))); struct au_tid { dev_t port; @@ -206,7 +207,7 @@ au_mask_t ai_mask; /* Audit masks. */ au_tid_addr_t ai_termid; /* Terminal ID. */ au_asid_t ai_asid; /* Audit session ID. */ - u_int64_t ai_flags; /* Audit session flags. */ + au_asflgs_t ai_flags; /* Audit session flags. */ }; typedef struct auditinfo_addr auditinfo_addr_t; @@ -225,7 +226,7 @@ au_mask_t ap_mask; /* Audit masks. */ au_tid_addr_t ap_termid; /* Terminal ID. */ au_asid_t ap_asid; /* Audit session ID. */ - u_int64_t ap_flags; /* Audit session flags. */ + au_asflgs_t ap_flags; /* Audit session flags. */ }; typedef struct auditpinfo_addr auditpinfo_addr_t; ==== //depot/projects/smpng/sys/bsm/audit_kevents.h#17 (text+ko) ==== @@ -26,8 +26,8 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_kevents.h#6 - * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.21 2009/07/08 15:23:18 trasz Exp $ + * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_kevents.h#7 + * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.22 2009/07/17 14:02:20 rwatson Exp $ */ #ifndef _BSM_AUDIT_KEVENTS_H_ ==== //depot/projects/smpng/sys/cam/ata/ata_da.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.1 2009/07/10 08:18:08 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.2 2009/07/17 21:48:08 mav Exp $"); #include @@ -275,7 +275,6 @@ if (softc->flags & ADA_FLAG_CAN_FLUSHCACHE) { ccb = cam_periph_getccb(periph, /*priority*/1); - ccb->ccb_h.ccb_state = ADA_CCB_DUMP; cam_fill_ataio(&ccb->ataio, 1, adadone, @@ -289,7 +288,9 @@ ata_48bit_cmd(&ccb->ataio, ATA_FLUSHCACHE48, 0, 0, 0); else ata_48bit_cmd(&ccb->ataio, ATA_FLUSHCACHE, 0, 0, 0); - xpt_polled_action(ccb); + cam_periph_runccb(ccb, /*error_routine*/NULL, /*cam_flags*/0, + /*sense_flags*/SF_RETRY_UA, + softc->disk->d_devstat); if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) xpt_print(periph->path, "Synchronize cache failed\n"); ==== //depot/projects/smpng/sys/cam/scsi/scsi_xpt.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_xpt.c,v 1.1 2009/07/10 08:18:08 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_xpt.c,v 1.3 2009/07/14 18:44:17 emaste Exp $"); #include #include @@ -836,8 +836,11 @@ serial_buf = NULL; device = periph->path->device; - device->serial_num = NULL; - device->serial_num_len = 0; + if (device->serial_num != NULL) { + free(device->serial_num, M_CAMXPT); + device->serial_num = NULL; + device->serial_num_len = 0; + } serial_buf = (struct scsi_vpd_unit_serial_number *) malloc(sizeof(*serial_buf), M_CAMXPT, M_NOWAIT|M_ZERO); @@ -1176,7 +1179,7 @@ } if (page_list != NULL) - free(page_list, M_DEVBUF); + free(page_list, M_CAMXPT); if (serialnum_supported) { xpt_release_ccb(done_ccb); @@ -1465,14 +1468,14 @@ /* * To start a scan, request_ccb is an XPT_SCAN_BUS ccb. - * As the scan progresses, xpt_scan_bus is used as the + * As the scan progresses, scsi_scan_bus is used as the * callback on completion function. */ static void scsi_scan_bus(struct cam_periph *periph, union ccb *request_ccb) { CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE, - ("xpt_scan_bus\n")); + ("scsi_scan_bus\n")); switch (request_ccb->ccb_h.func_code) { case XPT_SCAN_BUS: { @@ -1550,7 +1553,7 @@ request_ccb->ccb_h.path_id, i, 0); if (status != CAM_REQ_CMP) { - printf("xpt_scan_bus: xpt_create_path failed" + printf("scsi_scan_bus: xpt_create_path failed" " with status %#x, bus scan halted\n", status); free(scan_info, M_CAMXPT); @@ -1561,6 +1564,7 @@ } work_ccb = xpt_alloc_ccb_nowait(); if (work_ccb == NULL) { + xpt_free_ccb((union ccb *)scan_info->cpi); free(scan_info, M_CAMXPT); xpt_free_path(path); request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL; @@ -1682,13 +1686,14 @@ } if ((scan_info->cpi->hba_misc & PIM_SEQSCAN) == 0) { + xpt_free_ccb(request_ccb); break; } status = xpt_create_path(&path, xpt_periph, scan_info->request_ccb->ccb_h.path_id, scan_info->counter, 0); if (status != CAM_REQ_CMP) { >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jul 30 13:49:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 56E641065673; Thu, 30 Jul 2009 13:49:16 +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 0A71B106566C for ; Thu, 30 Jul 2009 13:49:16 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D2B888FC16 for ; Thu, 30 Jul 2009 13:49:15 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UDnFEk063163 for ; Thu, 30 Jul 2009 13:49:15 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UDnFVL063161 for perforce@freebsd.org; Thu, 30 Jul 2009 13:49:15 GMT (envelope-from jhb@freebsd.org) Date: Thu, 30 Jul 2009 13:49:15 GMT Message-Id: <200907301349.n6UDnFVL063161@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 166792 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 13:49:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=166792 Change 166792 by jhb@jhb_jhbbsd on 2009/07/30 13:49:02 Another vnode -> filedesc LOR. Affected files ... .. //depot/projects/smpng/sys/kern/kern_exec.c#122 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_exec.c#122 (text+ko) ==== @@ -683,8 +683,8 @@ * allocate memory, so temporarily drop the process lock. */ PROC_UNLOCK(p); + VOP_UNLOCK(imgp->vp, 0); setugidsafety(td); - VOP_UNLOCK(imgp->vp, 0); error = fdcheckstd(td); vn_lock(imgp->vp, LK_EXCLUSIVE | LK_RETRY); if (error != 0) From owner-p4-projects@FreeBSD.ORG Thu Jul 30 15:28:14 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1C0021065691; Thu, 30 Jul 2009 15:28:14 +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 CA3A4106567F for ; Thu, 30 Jul 2009 15:28:13 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B8BC38FC1A for ; Thu, 30 Jul 2009 15:28:13 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UFSD8a072489 for ; Thu, 30 Jul 2009 15:28:13 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UFSD8m072487 for perforce@freebsd.org; Thu, 30 Jul 2009 15:28:13 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 15:28:13 GMT Message-Id: <200907301528.n6UFSD8m072487@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166796 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 15:28:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=166796 Change 166796 by pgj@petymeg-current on 2009/07/30 15:27:25 Add a helper function for ICMP6 type name resolution. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#42 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#47 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#42 (text+ko) ==== @@ -537,6 +537,7 @@ u_int64_t netstat_icmps_get_badaddr(const struct icmp_stat *); u_int64_t netstat_icmps_get_noroute(const struct icmp_stat *); const char *netstat_icmpname(int); +const char *netstat_icmp6name(int); int netstat_icmp_get_maskrepl(void *kvm_handle); const struct pim_stat *netstat_get_pimstats(const struct stat_type *); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#47 (text+ko) ==== @@ -1729,6 +1729,265 @@ "icmp photuris", /* RFC 2521 */ }; +static const char *icmp6names[] = { + "#0", + "unreach", + "packet too big", + "time exceed", + "parameter problem", + "#5", + "#6", + "#7", + "#8", + "#9", + "#10", + "#11", + "#12", + "#13", + "#14", + "#15", + "#16", + "#17", + "#18", + "#19", + "#20", + "#21", + "#22", + "#23", + "#24", + "#25", + "#26", + "#27", + "#28", + "#29", + "#30", + "#31", + "#32", + "#33", + "#34", + "#35", + "#36", + "#37", + "#38", + "#39", + "#40", + "#41", + "#42", + "#43", + "#44", + "#45", + "#46", + "#47", + "#48", + "#49", + "#50", + "#51", + "#52", + "#53", + "#54", + "#55", + "#56", + "#57", + "#58", + "#59", + "#60", + "#61", + "#62", + "#63", + "#64", + "#65", + "#66", + "#67", + "#68", + "#69", + "#70", + "#71", + "#72", + "#73", + "#74", + "#75", + "#76", + "#77", + "#78", + "#79", + "#80", + "#81", + "#82", + "#83", + "#84", + "#85", + "#86", + "#87", + "#88", + "#89", + "#80", + "#91", + "#92", + "#93", + "#94", + "#95", + "#96", + "#97", + "#98", + "#99", + "#100", + "#101", + "#102", + "#103", + "#104", + "#105", + "#106", + "#107", + "#108", + "#109", + "#110", + "#111", + "#112", + "#113", + "#114", + "#115", + "#116", + "#117", + "#118", + "#119", + "#120", + "#121", + "#122", + "#123", + "#124", + "#125", + "#126", + "#127", + "echo", + "echo reply", + "multicast listener query", + "MLDv1 listener report", + "MLDv1 listener done", + "router solicitation", + "router advertisement", + "neighbor solicitation", + "neighbor advertisement", + "redirect", + "router renumbering", + "node information request", + "node information reply", + "inverse neighbor solicitation", + "inverse neighbor advertisement", + "MLDv2 listener report", + "#144", + "#145", + "#146", + "#147", + "#148", + "#149", + "#150", + "#151", + "#152", + "#153", + "#154", + "#155", + "#156", + "#157", + "#158", + "#159", + "#160", + "#161", + "#162", + "#163", + "#164", + "#165", + "#166", + "#167", + "#168", + "#169", + "#170", + "#171", + "#172", + "#173", + "#174", + "#175", + "#176", + "#177", + "#178", + "#179", + "#180", + "#181", + "#182", + "#183", + "#184", + "#185", + "#186", + "#187", + "#188", + "#189", + "#180", + "#191", + "#192", + "#193", + "#194", + "#195", + "#196", + "#197", + "#198", + "#199", + "#200", + "#201", + "#202", + "#203", + "#204", + "#205", + "#206", + "#207", + "#208", + "#209", + "#210", + "#211", + "#212", + "#213", + "#214", + "#215", + "#216", + "#217", + "#218", + "#219", + "#220", + "#221", + "#222", + "#223", + "#224", + "#225", + "#226", + "#227", + "#228", + "#229", + "#230", + "#231", + "#232", + "#233", + "#234", + "#235", + "#236", + "#237", + "#238", + "#239", + "#240", + "#241", + "#242", + "#243", + "#244", + "#245", + "#246", + "#247", + "#248", + "#249", + "#250", + "#251", + "#252", + "#253", + "#254", + "#255", +}; + const char * netstat_icmpname(int type) { @@ -1738,6 +1997,18 @@ return (NULL); } +#define SizeOf(X) \ + ((int)(sizeof(X) / sizeof(X[0]))) + +const char * +netstat_icmp6name(int type) +{ + if (0 <= type && type < SizeOf(icmp6names)) { + return (icmp6names[type]); + } + return (NULL); +} + const char * routename(in_addr_t in, int numeric) { From owner-p4-projects@FreeBSD.ORG Thu Jul 30 16:14:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DE1AD1065672; Thu, 30 Jul 2009 16:14:03 +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 9E31A106566B for ; Thu, 30 Jul 2009 16:14:03 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8CC418FC14 for ; Thu, 30 Jul 2009 16:14:03 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UGE3P9078336 for ; Thu, 30 Jul 2009 16:14:03 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UGE3nN078334 for perforce@freebsd.org; Thu, 30 Jul 2009 16:14:03 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 30 Jul 2009 16:14:03 GMT Message-Id: <200907301614.n6UGE3nN078334@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 166798 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 16:14:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=166798 Change 166798 by truncs@aditya on 2009/07/30 16:13:34 More cleanup - remove unused macros. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#28 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#28 (text+ko) ==== @@ -39,22 +39,8 @@ #define _LINUX_EXT2_FS_H #include - -#define __u32 u_int32_t -#define u32 u_int32_t -#define __u16 u_int16_t -#define __u8 u_int8_t - -#define __s32 int32_t -#define __s16 int16_t -#define __s8 int8_t - -#define umode_t mode_t -#define loff_t off_t - #define cpu_to_le32(x) htole32(x) - #define MAXMNTLEN 512 #define EXT2_MAX_GROUP_LOADED 8 #define e2fs_cgload(old, new, size) memcpy((new), (old), (size)); @@ -138,7 +124,7 @@ #else # define EXT2_BLOCK_SIZE(s) (EXT2_MIN_BLOCK_SIZE << (s)->e2fs_log_bsize) #endif -#define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32)) +#define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (uint32_t)) #if defined(_KERNEL) # define EXT2_BLOCK_SIZE_BITS(s) ((s)->e2fs_blocksize_bits) #else @@ -204,7 +190,7 @@ #define EXT2_DIND_BLOCK (EXT2_IND_BLOCK + 1) #define EXT2_TIND_BLOCK (EXT2_DIND_BLOCK + 1) #define EXT2_N_BLOCKS (EXT2_TIND_BLOCK + 1) -#define EXT2_MAXSYMLINKLEN (EXT2_N_BLOCKS * sizeof (__u32)) +#define EXT2_MAXSYMLINKLEN (EXT2_N_BLOCKS * sizeof (uint32_t)) /* * Inode flags From owner-p4-projects@FreeBSD.ORG Thu Jul 30 16:28:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8570C1065673; Thu, 30 Jul 2009 16:28:19 +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 455651065670 for ; Thu, 30 Jul 2009 16:28:19 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 33E4E8FC16 for ; Thu, 30 Jul 2009 16:28:19 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UGSJSS079824 for ; Thu, 30 Jul 2009 16:28:19 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UGSJ6b079821 for perforce@freebsd.org; Thu, 30 Jul 2009 16:28:19 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 16:28:19 GMT Message-Id: <200907301628.n6UGSJ6b079821@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166799 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 16:28:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=166799 Change 166799 by pgj@petymeg-current on 2009/07/30 16:28:08 Add header for ICMP6 statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/icmp6.h#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/icmp6.c#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/icmp6.h#2 (text+ko) ==== @@ -537,40 +537,43 @@ * Variables related to this implementation * of the internet control message protocol version 6. */ + +#define ICMP6STAT_VERSION 0x00000001 + struct icmp6errstat { - u_quad_t icp6errs_dst_unreach_noroute; - u_quad_t icp6errs_dst_unreach_admin; - u_quad_t icp6errs_dst_unreach_beyondscope; - u_quad_t icp6errs_dst_unreach_addr; - u_quad_t icp6errs_dst_unreach_noport; - u_quad_t icp6errs_packet_too_big; - u_quad_t icp6errs_time_exceed_transit; - u_quad_t icp6errs_time_exceed_reassembly; - u_quad_t icp6errs_paramprob_header; - u_quad_t icp6errs_paramprob_nextheader; - u_quad_t icp6errs_paramprob_option; - u_quad_t icp6errs_redirect; /* we regard redirect as an error here */ - u_quad_t icp6errs_unknown; + u_int64_t icp6errs_dst_unreach_noroute; + u_int64_t icp6errs_dst_unreach_admin; + u_int64_t icp6errs_dst_unreach_beyondscope; + u_int64_t icp6errs_dst_unreach_addr; + u_int64_t icp6errs_dst_unreach_noport; + u_int64_t icp6errs_packet_too_big; + u_int64_t icp6errs_time_exceed_transit; + u_int64_t icp6errs_time_exceed_reassembly; + u_int64_t icp6errs_paramprob_header; + u_int64_t icp6errs_paramprob_nextheader; + u_int64_t icp6errs_paramprob_option; + u_int64_t icp6errs_redirect; /* we regard redirect as an error here */ + u_int64_t icp6errs_unknown; }; struct icmp6stat { /* statistics related to icmp6 packets generated */ - u_quad_t icp6s_error; /* # of calls to icmp6_error */ - u_quad_t icp6s_canterror; /* no error 'cuz old was icmp */ - u_quad_t icp6s_toofreq; /* no error 'cuz rate limitation */ - u_quad_t icp6s_outhist[256]; + u_int64_t icp6s_error; /* # of calls to icmp6_error */ + u_int64_t icp6s_canterror; /* no error 'cuz old was icmp */ + u_int64_t icp6s_toofreq; /* no error 'cuz rate limitation */ + u_int64_t icp6s_outhist[256]; /* statistics related to input message processed */ - u_quad_t icp6s_badcode; /* icmp6_code out of range */ - u_quad_t icp6s_tooshort; /* packet < sizeof(struct icmp6_hdr) */ - u_quad_t icp6s_checksum; /* bad checksum */ - u_quad_t icp6s_badlen; /* calculated bound mismatch */ + u_int64_t icp6s_badcode; /* icmp6_code out of range */ + u_int64_t icp6s_tooshort; /* packet < sizeof(struct icmp6_hdr) */ + u_int64_t icp6s_checksum; /* bad checksum */ + u_int64_t icp6s_badlen; /* calculated bound mismatch */ /* * number of responses: this member is inherited from netinet code, but * for netinet6 code, it is already available in icp6s_outhist[]. */ - u_quad_t icp6s_reflect; - u_quad_t icp6s_inhist[256]; - u_quad_t icp6s_nd_toomanyopt; /* too many ND options */ + u_int64_t icp6s_reflect; + u_int64_t icp6s_inhist[256]; + u_int64_t icp6s_nd_toomanyopt; /* too many ND options */ struct icmp6errstat icp6s_outerrhist; #define icp6s_odst_unreach_noroute \ icp6s_outerrhist.icp6errs_dst_unreach_noroute @@ -590,13 +593,13 @@ #define icp6s_oparamprob_option icp6s_outerrhist.icp6errs_paramprob_option #define icp6s_oredirect icp6s_outerrhist.icp6errs_redirect #define icp6s_ounknown icp6s_outerrhist.icp6errs_unknown - u_quad_t icp6s_pmtuchg; /* path MTU changes */ - u_quad_t icp6s_nd_badopt; /* bad ND options */ - u_quad_t icp6s_badns; /* bad neighbor solicitation */ - u_quad_t icp6s_badna; /* bad neighbor advertisement */ - u_quad_t icp6s_badrs; /* bad router advertisement */ - u_quad_t icp6s_badra; /* bad router advertisement */ - u_quad_t icp6s_badredirect; /* bad redirect message */ + u_int64_t icp6s_pmtuchg; /* path MTU changes */ + u_int64_t icp6s_nd_badopt; /* bad ND options */ + u_int64_t icp6s_badns; /* bad neighbor solicitation */ + u_int64_t icp6s_badna; /* bad neighbor advertisement */ + u_int64_t icp6s_badrs; /* bad router advertisement */ + u_int64_t icp6s_badra; /* bad router advertisement */ + u_int64_t icp6s_badredirect; /* bad redirect message */ }; #ifdef _KERNEL ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/icmp6.c#2 (text+ko) ==== @@ -121,6 +121,10 @@ extern int icmp6errppslim; extern int icmp6_nodeinfo; +struct stat_header icmp6stat_header = { + .sth_version = ICMP6STAT_VERSION, + .sth_len = sizeof(struct icmp6stat) +}; struct icmp6stat icmp6stat; static int icmp6errpps_count; static struct timeval icmp6errppslim_last; From owner-p4-projects@FreeBSD.ORG Thu Jul 30 16:30:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 22D251065675; Thu, 30 Jul 2009 16:30: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 D67FC1065674 for ; Thu, 30 Jul 2009 16:30:21 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 858958FC1B for ; Thu, 30 Jul 2009 16:30:21 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UGULM0080118 for ; Thu, 30 Jul 2009 16:30:21 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UGULUu080115 for perforce@freebsd.org; Thu, 30 Jul 2009 16:30:21 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 16:30:21 GMT Message-Id: <200907301630.n6UGULUu080115@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166800 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 16:30:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=166800 Change 166800 by pgj@petymeg-current on 2009/07/30 16:29:32 - Add support for ICMP6 statistics. - Fix buffering technique in netstat_stat(). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#43 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#40 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#10 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#48 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#43 (text+ko) ==== @@ -126,6 +126,9 @@ #ifdef SCTP stat_SCTP, #endif +#ifdef INET6 + stat_ICMP6, +#endif stat_MAX, stat_Invalid, }; @@ -164,6 +167,9 @@ #ifdef SCTP struct sctp_stat; #endif +#ifdef INET6 +struct icmp6_stat; +#endif __BEGIN_DECLS const char *netstat_strerror(int); @@ -537,7 +543,9 @@ u_int64_t netstat_icmps_get_badaddr(const struct icmp_stat *); u_int64_t netstat_icmps_get_noroute(const struct icmp_stat *); const char *netstat_icmpname(int); +#ifdef INET6 const char *netstat_icmp6name(int); +#endif int netstat_icmp_get_maskrepl(void *kvm_handle); const struct pim_stat *netstat_get_pimstats(const struct stat_type *); @@ -723,4 +731,40 @@ u_int32_t netstat_sctps_get_send_cwnd_avoid(const struct sctp_stat *); u_int32_t netstat_sctps_get_fwdtsn_map_over(const struct sctp_stat *); #endif /* !SCTP */ + +#ifdef INET6 +const struct icmp6_stat *netstat_get_icmp6stats(const struct stat_type *); + +u_int64_t netstat_icmp6s_get_error(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_canterror(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_toofreq(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_outhist(const struct icmp6_stat *, int); +u_int64_t netstat_icmp6s_get_badcode(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_tooshort(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_checksum(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_badlen(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_reflect(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_inhist(const struct icmp6_stat *, int); +u_int64_t netstat_icmp6s_get_nd_toomanyopt(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_odst_unreach_noroute(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_odst_unreach_admin(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_odst_unreach_beyondscope(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_odst_unreach_addr(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_odst_unreach_noport(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_opacket_too_big(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_otime_exceed_transit(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_otime_exceed_reassembly(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_oparamprob_header(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_oparamprob_nextheader(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_oparamprob_option(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_oredirect(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_ounknown(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_pmtuchg(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_nd_badopt(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_badns(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_badna(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_badrs(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_badra(const struct icmp6_stat *); +u_int64_t netstat_icmp6s_get_badredirect(const struct icmp6_stat *); +#endif /* !INET6 */ #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#40 (text+ko) ==== @@ -54,6 +54,9 @@ #ifdef SCTP #include #endif +#ifdef INET6 +#include +#endif #include "netstat.h" @@ -329,6 +332,12 @@ }; #endif +#ifdef INET6 +struct icmp6_stat { + struct icmp6stat s; +}; +#endif + /* Timestamp type. */ struct timestamp_type { u_int32_t ts_sec; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#10 (text+ko) ==== @@ -68,13 +68,16 @@ #ifdef SCTP { SCTPSTAT_VERSION, "net.inet.sctp.stats", "_sctpstat" }, #endif +#ifdef INET6 + { ICMP6STAT_VERSION, "net.inet6.icmp6.stats", "_icmp6stat" }, +#endif }; int netstat_stat(enum stat type, struct stat_type *sttp, int flags, void *kvm_handle) { - char buffer[1024]; + char *buffer; char symbuf[64]; struct stat_header head; @@ -100,6 +103,11 @@ sttp->stt_error = NETSTAT_ERROR_VERSION; return (-1); } + buffer = malloc(head.sth_len); + if (buffer == NULL) { + sttp->stt_error = NETSTAT_ERROR_NOMEMORY; + return (-1); + } res = read_kvm(kvm_handle, stat_info[sttp->stt_type].kvm, buffer, head.sth_len); if (res != 0) { @@ -115,19 +123,18 @@ sttp->stt_error = NETSTAT_ERROR_VERSION; return (-1); } + buffer = malloc(head.sth_len); + if (buffer == NULL) { + sttp->stt_error = NETSTAT_ERROR_NOMEMORY; + return (-1); + } res = read_sysctl(stat_info[sttp->stt_type].mib, buffer, head.sth_len); if (res != 0) return (res); } - sttp->stt_data = malloc(head.sth_len); - if (sttp->stt_data == NULL) { - sttp->stt_error = NETSTAT_ERROR_NOMEMORY; - return (-1); - } - - memcpy(sttp->stt_data, buffer, head.sth_len); + sttp->stt_data = buffer; if (sttp->stt_type == stat_UDP) { u = (struct udpstat *)sttp->stt_data; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#48 (text+ko) ==== @@ -1684,6 +1684,49 @@ #undef SCTP_ACC #endif /* !SCTP */ +#ifdef INET6 +#define ICMP6_ACC(field) \ + STATS_ACCX(u_int64_t,icmp6,field,icp6s_##field) + +#define ICMP6_ACCA(field) \ + STATS_ACCXA(u_int64_t,icmp6,field,icp6s_##field,256) + +STATS_GET(icmp6,ICMP6); +ICMP6_ACC(error); +ICMP6_ACC(canterror); +ICMP6_ACC(toofreq); +ICMP6_ACCA(outhist); +ICMP6_ACC(badcode); +ICMP6_ACC(tooshort); +ICMP6_ACC(checksum); +ICMP6_ACC(badlen); +ICMP6_ACC(reflect); +ICMP6_ACCA(inhist); +ICMP6_ACC(nd_toomanyopt); +ICMP6_ACC(odst_unreach_noroute); +ICMP6_ACC(odst_unreach_admin); +ICMP6_ACC(odst_unreach_beyondscope); +ICMP6_ACC(odst_unreach_addr); +ICMP6_ACC(odst_unreach_noport); +ICMP6_ACC(opacket_too_big); +ICMP6_ACC(otime_exceed_transit); +ICMP6_ACC(otime_exceed_reassembly); +ICMP6_ACC(oparamprob_header); +ICMP6_ACC(oparamprob_nextheader); +ICMP6_ACC(oparamprob_option); +ICMP6_ACC(oredirect); +ICMP6_ACC(ounknown); +ICMP6_ACC(pmtuchg); +ICMP6_ACC(nd_badopt); +ICMP6_ACC(badns); +ICMP6_ACC(badna); +ICMP6_ACC(badrs); +ICMP6_ACC(badra); +ICMP6_ACC(badredirect); +#undef ICMP_ACC +#undef ICMP_ACCA + +#endif /* !INET6 */ static const char *icmpnames[ICMP_MAXTYPE + 1] = { "echo reply", /* RFC 792 */ From owner-p4-projects@FreeBSD.ORG Thu Jul 30 16:31:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1EAC31065676; Thu, 30 Jul 2009 16:31: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 CFE461065674 for ; Thu, 30 Jul 2009 16:31:22 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BCF9F8FC0A for ; Thu, 30 Jul 2009 16:31:22 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UGVM16080247 for ; Thu, 30 Jul 2009 16:31:22 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UGVMVp080245 for perforce@freebsd.org; Thu, 30 Jul 2009 16:31:22 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 16:31:22 GMT Message-Id: <200907301631.n6UGVMVp080245@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166801 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 16:31:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=166801 Change 166801 by pgj@petymeg-current on 2009/07/30 16:31:15 Make netstat(1) to use libnetstat(3) for displaying statistics on ICMP6. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#20 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet6.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#28 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#20 (text+ko) ==== @@ -96,7 +96,7 @@ #ifdef INET6 void ip6_stats(u_long, const char *, int, int); void ip6_ifstats(char *); -void icmp6_stats(u_long, const char *, int, int); +void icmp6_stats(const struct stat_type *); void icmp6_ifstats(char *); void pim6_stats(u_long, const char *, int, int); void rip6_stats(u_long, const char *, int, int); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet6.c#3 (text+ko) ==== @@ -72,6 +72,7 @@ #include #include #include +#include #include "extern.h" struct socket sockb; @@ -579,349 +580,72 @@ #undef p_5 } -static const char *icmp6names[] = { - "#0", - "unreach", - "packet too big", - "time exceed", - "parameter problem", - "#5", - "#6", - "#7", - "#8", - "#9", - "#10", - "#11", - "#12", - "#13", - "#14", - "#15", - "#16", - "#17", - "#18", - "#19", - "#20", - "#21", - "#22", - "#23", - "#24", - "#25", - "#26", - "#27", - "#28", - "#29", - "#30", - "#31", - "#32", - "#33", - "#34", - "#35", - "#36", - "#37", - "#38", - "#39", - "#40", - "#41", - "#42", - "#43", - "#44", - "#45", - "#46", - "#47", - "#48", - "#49", - "#50", - "#51", - "#52", - "#53", - "#54", - "#55", - "#56", - "#57", - "#58", - "#59", - "#60", - "#61", - "#62", - "#63", - "#64", - "#65", - "#66", - "#67", - "#68", - "#69", - "#70", - "#71", - "#72", - "#73", - "#74", - "#75", - "#76", - "#77", - "#78", - "#79", - "#80", - "#81", - "#82", - "#83", - "#84", - "#85", - "#86", - "#87", - "#88", - "#89", - "#80", - "#91", - "#92", - "#93", - "#94", - "#95", - "#96", - "#97", - "#98", - "#99", - "#100", - "#101", - "#102", - "#103", - "#104", - "#105", - "#106", - "#107", - "#108", - "#109", - "#110", - "#111", - "#112", - "#113", - "#114", - "#115", - "#116", - "#117", - "#118", - "#119", - "#120", - "#121", - "#122", - "#123", - "#124", - "#125", - "#126", - "#127", - "echo", - "echo reply", - "multicast listener query", - "MLDv1 listener report", - "MLDv1 listener done", - "router solicitation", - "router advertisement", - "neighbor solicitation", - "neighbor advertisement", - "redirect", - "router renumbering", - "node information request", - "node information reply", - "inverse neighbor solicitation", - "inverse neighbor advertisement", - "MLDv2 listener report", - "#144", - "#145", - "#146", - "#147", - "#148", - "#149", - "#150", - "#151", - "#152", - "#153", - "#154", - "#155", - "#156", - "#157", - "#158", - "#159", - "#160", - "#161", - "#162", - "#163", - "#164", - "#165", - "#166", - "#167", - "#168", - "#169", - "#170", - "#171", - "#172", - "#173", - "#174", - "#175", - "#176", - "#177", - "#178", - "#179", - "#180", - "#181", - "#182", - "#183", - "#184", - "#185", - "#186", - "#187", - "#188", - "#189", - "#180", - "#191", - "#192", - "#193", - "#194", - "#195", - "#196", - "#197", - "#198", - "#199", - "#200", - "#201", - "#202", - "#203", - "#204", - "#205", - "#206", - "#207", - "#208", - "#209", - "#210", - "#211", - "#212", - "#213", - "#214", - "#215", - "#216", - "#217", - "#218", - "#219", - "#220", - "#221", - "#222", - "#223", - "#224", - "#225", - "#226", - "#227", - "#228", - "#229", - "#230", - "#231", - "#232", - "#233", - "#234", - "#235", - "#236", - "#237", - "#238", - "#239", - "#240", - "#241", - "#242", - "#243", - "#244", - "#245", - "#246", - "#247", - "#248", - "#249", - "#250", - "#251", - "#252", - "#253", - "#254", - "#255", -}; /* * Dump ICMP6 statistics. */ void -icmp6_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +icmp6_stats(const struct stat_type *sttp) { - struct icmp6stat icmp6stat; + const struct icmp6_stat *s; int i, first; - size_t len; - len = sizeof icmp6stat; - if (live) { - memset(&icmp6stat, 0, len); - if (sysctlbyname("net.inet6.icmp6.stats", &icmp6stat, &len, - NULL, 0) < 0) { - if (errno != ENOENT) - warn("sysctl: net.inet6.icmp6.stats"); - return; - } - } else - kread(off, &icmp6stat, len); - - printf("%s:\n", name); - -#define p(f, m) if (icmp6stat.f || sflag <= 1) \ - printf(m, (uintmax_t)icmp6stat.f, plural(icmp6stat.f)) -#define p_5(f, m) if (icmp6stat.f || sflag <= 1) \ - printf(m, (uintmax_t)icmp6stat.f) - - p(icp6s_error, "\t%ju call%s to icmp6_error\n"); - p(icp6s_canterror, + s = netstat_get_icmp6stats(sttp); +#define p(f, m) if (netstat_icmp6s_get_##f(s) || sflag <= 1) \ + printf(m, netstat_icmp6s_get_##f(s), plural(netstat_icmp6s_get_##f(s))) +#define p_5(f, m) if (netstat_icmp6s_get_##f(s) || sflag <= 1) \ + printf(m, netstat_icmp6s_get_##f(s)) + p(error, "\t%ju call%s to icmp6_error\n"); + p(canterror, "\t%ju error%s not generated in response to an icmp6 message\n"); - p(icp6s_toofreq, + p(toofreq, "\t%ju error%s not generated because of rate limitation\n"); -#define NELEM (int)(sizeof(icmp6stat.icp6s_outhist)/sizeof(icmp6stat.icp6s_outhist[0])) - for (first = 1, i = 0; i < NELEM; i++) - if (icmp6stat.icp6s_outhist[i] != 0) { + for (first = 1, i = 0; i < 256; i++) + if (netstat_icmp6s_get_outhist(s, i) != 0) { if (first) { printf("\tOutput histogram:\n"); first = 0; } - printf("\t\t%s: %ju\n", icmp6names[i], - (uintmax_t)icmp6stat.icp6s_outhist[i]); + printf("\t\t%s: %ju\n", netstat_icmp6name(i), + netstat_icmp6s_get_outhist(s, i)); } -#undef NELEM - p(icp6s_badcode, "\t%ju message%s with bad code fields\n"); - p(icp6s_tooshort, "\t%ju message%s < minimum length\n"); - p(icp6s_checksum, "\t%ju bad checksum%s\n"); - p(icp6s_badlen, "\t%ju message%s with bad length\n"); -#define NELEM (int)(sizeof(icmp6stat.icp6s_inhist)/sizeof(icmp6stat.icp6s_inhist[0])) - for (first = 1, i = 0; i < NELEM; i++) - if (icmp6stat.icp6s_inhist[i] != 0) { + p(badcode, "\t%ju message%s with bad code fields\n"); + p(tooshort, "\t%ju message%s < minimum length\n"); + p(checksum, "\t%ju bad checksum%s\n"); + p(badlen, "\t%ju message%s with bad length\n"); + for (first = 1, i = 0; i < 256; i++) + if (netstat_icmp6s_get_inhist(s, i) != 0) { if (first) { printf("\tInput histogram:\n"); first = 0; } - printf("\t\t%s: %ju\n", icmp6names[i], - (uintmax_t)icmp6stat.icp6s_inhist[i]); + printf("\t\t%s: %ju\n", netstat_icmp6name(i), + netstat_icmp6s_get_inhist(s, i)); } -#undef NELEM printf("\tHistogram of error messages to be generated:\n"); - p_5(icp6s_odst_unreach_noroute, "\t\t%ju no route\n"); - p_5(icp6s_odst_unreach_admin, "\t\t%ju administratively prohibited\n"); - p_5(icp6s_odst_unreach_beyondscope, "\t\t%ju beyond scope\n"); - p_5(icp6s_odst_unreach_addr, "\t\t%ju address unreachable\n"); - p_5(icp6s_odst_unreach_noport, "\t\t%ju port unreachable\n"); - p_5(icp6s_opacket_too_big, "\t\t%ju packet too big\n"); - p_5(icp6s_otime_exceed_transit, "\t\t%ju time exceed transit\n"); - p_5(icp6s_otime_exceed_reassembly, "\t\t%ju time exceed reassembly\n"); - p_5(icp6s_oparamprob_header, "\t\t%ju erroneous header field\n"); - p_5(icp6s_oparamprob_nextheader, "\t\t%ju unrecognized next header\n"); - p_5(icp6s_oparamprob_option, "\t\t%ju unrecognized option\n"); - p_5(icp6s_oredirect, "\t\t%ju redirect\n"); - p_5(icp6s_ounknown, "\t\t%ju unknown\n"); + p_5(odst_unreach_noroute, "\t\t%ju no route\n"); + p_5(odst_unreach_admin, "\t\t%ju administratively prohibited\n"); + p_5(odst_unreach_beyondscope, "\t\t%ju beyond scope\n"); + p_5(odst_unreach_addr, "\t\t%ju address unreachable\n"); + p_5(odst_unreach_noport, "\t\t%ju port unreachable\n"); + p_5(opacket_too_big, "\t\t%ju packet too big\n"); + p_5(otime_exceed_transit, "\t\t%ju time exceed transit\n"); + p_5(otime_exceed_reassembly, "\t\t%ju time exceed reassembly\n"); + p_5(oparamprob_header, "\t\t%ju erroneous header field\n"); + p_5(oparamprob_nextheader, "\t\t%ju unrecognized next header\n"); + p_5(oparamprob_option, "\t\t%ju unrecognized option\n"); + p_5(oredirect, "\t\t%ju redirect\n"); + p_5(ounknown, "\t\t%ju unknown\n"); - p(icp6s_reflect, "\t%ju message response%s generated\n"); - p(icp6s_nd_toomanyopt, "\t%ju message%s with too many ND options\n"); - p(icp6s_nd_badopt, "\t%ju message%s with bad ND options\n"); - p(icp6s_badns, "\t%ju bad neighbor solicitation message%s\n"); - p(icp6s_badna, "\t%ju bad neighbor advertisement message%s\n"); - p(icp6s_badrs, "\t%ju bad router solicitation message%s\n"); - p(icp6s_badra, "\t%ju bad router advertisement message%s\n"); - p(icp6s_badredirect, "\t%ju bad redirect message%s\n"); - p(icp6s_pmtuchg, "\t%ju path MTU change%s\n"); + p(reflect, "\t%ju message response%s generated\n"); + p(nd_toomanyopt, "\t%ju message%s with too many ND options\n"); + p(nd_badopt, "\t%ju message%s with bad ND options\n"); + p(badns, "\t%ju bad neighbor solicitation message%s\n"); + p(badna, "\t%ju bad neighbor advertisement message%s\n"); + p(badrs, "\t%ju bad router solicitation message%s\n"); + p(badra, "\t%ju bad router advertisement message%s\n"); + p(badredirect, "\t%ju bad redirect message%s\n"); + p(pmtuchg, "\t%ju path MTU change%s\n"); #undef p #undef p_5 } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#28 (text+ko) ==== @@ -99,35 +99,33 @@ { .n_name = "_ngsocklist"}, #define N_IP6STAT 10 { .n_name = "_ip6stat" }, -#define N_ICMP6STAT 11 - { .n_name = "_icmp6stat" }, -#define N_IPSECSTAT 12 +#define N_IPSECSTAT 11 { .n_name = "_ipsec4stat" }, -#define N_IPSEC6STAT 13 +#define N_IPSEC6STAT 12 { .n_name = "_ipsec6stat" }, -#define N_PIM6STAT 14 +#define N_PIM6STAT 13 { .n_name = "_pim6stat" }, -#define N_MRT6STAT 15 +#define N_MRT6STAT 14 { .n_name = "_mrt6stat" }, -#define N_MF6CTABLE 16 +#define N_MF6CTABLE 15 { .n_name = "_mf6ctable" }, -#define N_MIF6TABLE 17 +#define N_MIF6TABLE 16 { .n_name = "_mif6table" }, -#define N_PFKEYSTAT 18 +#define N_PFKEYSTAT 17 { .n_name = "_pfkeystat" }, -#define N_RTTRASH 19 +#define N_RTTRASH 18 { .n_name = "_rttrash" }, -#define N_PFSYNCSTAT 20 +#define N_PFSYNCSTAT 19 { .n_name = "_pfsyncstats" }, -#define N_AHSTAT 21 +#define N_AHSTAT 20 { .n_name = "_ahstat" }, -#define N_ESPSTAT 22 +#define N_ESPSTAT 21 { .n_name = "_espstat" }, -#define N_IPCOMPSTAT 23 +#define N_IPCOMPSTAT 22 { .n_name = "_ipcompstat" }, -#define N_RIP6STAT 24 +#define N_RIP6STAT 23 { .n_name = "_rip6stat" }, -#define N_MFCTABLESIZE 25 +#define N_MFCTABLESIZE 24 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -191,8 +189,8 @@ NULL, NULL, "udp", 1, IPPROTO_UDP }, { 0, N_IP6STAT, 1, NULL, NULL, stat_MAX, ip6_stats, ip6_ifstats, "ip6", 1, IPPROTO_RAW }, - { 0, N_ICMP6STAT, 1, NULL, NULL, stat_MAX, - icmp6_stats, icmp6_ifstats, "icmp6", 1, IPPROTO_ICMPV6 }, + { 0, 0, 1, NULL, icmp6_stats, stat_ICMP6, + NULL, icmp6_ifstats, "icmp6", 1, IPPROTO_ICMPV6 }, #ifdef IPSEC { -1, N_IPSEC6STAT, 1, NULL, NULL, stat_MAX, ipsec_stats, NULL, "ipsec6", 0, 0 }, From owner-p4-projects@FreeBSD.ORG Thu Jul 30 16:57:52 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 46D541065677; Thu, 30 Jul 2009 16:57: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 B5AF51065674 for ; Thu, 30 Jul 2009 16:57:51 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A42898FC1D for ; Thu, 30 Jul 2009 16:57:51 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UGvpPC093101 for ; Thu, 30 Jul 2009 16:57:51 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UGvpb4093099 for perforce@freebsd.org; Thu, 30 Jul 2009 16:57:51 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 16:57:51 GMT Message-Id: <200907301657.n6UGvpb4093099@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166802 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 16:57:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=166802 Change 166802 by pgj@petymeg-current on 2009/07/30 16:57:10 Standardize and add header for PIM6 and IPv6 Multicast Routing statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_mroute.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_mroute.h#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/pim6_var.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_mroute.c#3 (text+ko) ==== @@ -166,10 +166,17 @@ SYSCTL_DECL(_net_inet6_ip6); SYSCTL_NODE(_net_inet6, IPPROTO_PIM, pim, CTLFLAG_RW, 0, "PIM"); +static struct stat_header mrt6stat_header = { + .sth_version = MRT6STAT_VERSION, + .sth_len = sizeof(struct mrt6stat) +}; static struct mrt6stat mrt6stat; SYSCTL_STRUCT(_net_inet6_ip6, OID_AUTO, mrt6stat, CTLFLAG_RW, &mrt6stat, mrt6stat, "Multicast Routing Statistics (struct mrt6stat, netinet6/ip6_mroute.h)"); +SYSCTL_STRUCT(_net_inet6_ip6, OID_AUTO, mrt6stat_header, CTLFLAG_RD, + &mrt6stat_header, stat_header, + "Multicast Routing Statistics header"); #define NO_RTE_FOUND 0x1 #define RTE_FOUND 0x2 @@ -258,10 +265,16 @@ static mifi_t nummifs = 0; static mifi_t reg_mif_num = (mifi_t)-1; +static struct stat_header pim6stat_header = { + .sth_version = PIM6STAT_VERSION, + .sth_len = sizeof(struct pim6stat) +}; static struct pim6stat pim6stat; -SYSCTL_STRUCT(_net_inet6_pim, PIM6CTL_STATS, stats, CTLFLAG_RD, +SYSCTL_STRUCT(_net_inet6_pim, PIM6CTL_STATS, stats, CTLFLAG_RW, &pim6stat, pim6stat, "PIM Statistics (struct pim6stat, netinet6/pim_var.h)"); +SYSCTL_STRUCT(_net_inet6_pim, OID_AUTO, stats_header, CTLFLAG_RD, + &pim6stat_header, stat_header, "PIM Statistics header"); #ifdef VIMAGE_GLOBALS static int pim6; ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_mroute.h#2 (text+ko) ==== @@ -120,20 +120,22 @@ /* * The kernel's multicast routing statistics. */ +#define MRT6STAT_VERSION 0x00000001 + struct mrt6stat { - u_quad_t mrt6s_mfc_lookups; /* # forw. cache hash table hits */ - u_quad_t mrt6s_mfc_misses; /* # forw. cache hash table misses */ - u_quad_t mrt6s_upcalls; /* # calls to multicast routing daemon */ - u_quad_t mrt6s_no_route; /* no route for packet's origin */ - u_quad_t mrt6s_bad_tunnel; /* malformed tunnel options */ - u_quad_t mrt6s_cant_tunnel; /* no room for tunnel options */ - u_quad_t mrt6s_wrong_if; /* arrived on wrong interface */ - u_quad_t mrt6s_upq_ovflw; /* upcall Q overflow */ - u_quad_t mrt6s_cache_cleanups; /* # entries with no upcalls */ - u_quad_t mrt6s_drop_sel; /* pkts dropped selectively */ - u_quad_t mrt6s_q_overflow; /* pkts dropped - Q overflow */ - u_quad_t mrt6s_pkt2large; /* pkts dropped - size > BKT SIZE */ - u_quad_t mrt6s_upq_sockfull; /* upcalls dropped - socket full */ + u_int64_t mrt6s_mfc_lookups; /* # forw. cache hash table hits */ + u_int64_t mrt6s_mfc_misses; /* # forw. cache hash table misses */ + u_int64_t mrt6s_upcalls; /* # calls to multicast routing daemon */ + u_int64_t mrt6s_no_route; /* no route for packet's origin */ + u_int64_t mrt6s_bad_tunnel; /* malformed tunnel options */ + u_int64_t mrt6s_cant_tunnel; /* no room for tunnel options */ + u_int64_t mrt6s_wrong_if; /* arrived on wrong interface */ + u_int64_t mrt6s_upq_ovflw; /* upcall Q overflow */ + u_int64_t mrt6s_cache_cleanups; /* # entries with no upcalls */ + u_int64_t mrt6s_drop_sel; /* pkts dropped selectively */ + u_int64_t mrt6s_q_overflow; /* pkts dropped - Q overflow */ + u_int64_t mrt6s_pkt2large; /* pkts dropped - size > BKT SIZE */ + u_int64_t mrt6s_upq_sockfull; /* upcalls dropped - socket full */ }; #ifdef MRT6_OINIT ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/pim6_var.h#2 (text+ko) ==== @@ -41,14 +41,16 @@ #ifndef _NETINET6_PIM6_VAR_H_ #define _NETINET6_PIM6_VAR_H_ +#define PIM6STAT_VERSION 0x00000001 + struct pim6stat { - u_quad_t pim6s_rcv_total; /* total PIM messages received */ - u_quad_t pim6s_rcv_tooshort; /* received with too few bytes */ - u_quad_t pim6s_rcv_badsum; /* received with bad checksum */ - u_quad_t pim6s_rcv_badversion; /* received bad PIM version */ - u_quad_t pim6s_rcv_registers; /* received registers */ - u_quad_t pim6s_rcv_badregisters; /* received invalid registers */ - u_quad_t pim6s_snd_registers; /* sent registers */ + u_int64_t pim6s_rcv_total; /* total PIM messages received */ + u_int64_t pim6s_rcv_tooshort; /* received with too few bytes */ + u_int64_t pim6s_rcv_badsum; /* received with bad checksum */ + u_int64_t pim6s_rcv_badversion; /* received bad PIM version */ + u_int64_t pim6s_rcv_registers; /* received registers */ + u_int64_t pim6s_rcv_badregisters; /* received invalid registers */ + u_int64_t pim6s_snd_registers; /* sent registers */ }; #if (defined(KERNEL)) || (defined(_KERNEL)) From owner-p4-projects@FreeBSD.ORG Thu Jul 30 16:58:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 474091065677; Thu, 30 Jul 2009 16:58: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 032661065674 for ; Thu, 30 Jul 2009 16:58:53 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DB1CB8FC1D for ; Thu, 30 Jul 2009 16:58:52 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UGwqaa093197 for ; Thu, 30 Jul 2009 16:58:52 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UGwqQT093195 for perforce@freebsd.org; Thu, 30 Jul 2009 16:58:52 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 16:58:52 GMT Message-Id: <200907301658.n6UGwqQT093195@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166803 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 16:58:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=166803 Change 166803 by pgj@petymeg-current on 2009/07/30 16:58:45 Add support for PIM6 stats. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#44 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#41 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#11 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#49 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#44 (text+ko) ==== @@ -128,6 +128,7 @@ #endif #ifdef INET6 stat_ICMP6, + stat_PIM6, #endif stat_MAX, stat_Invalid, @@ -169,6 +170,7 @@ #endif #ifdef INET6 struct icmp6_stat; +struct pim6_stat; #endif __BEGIN_DECLS @@ -766,5 +768,15 @@ u_int64_t netstat_icmp6s_get_badrs(const struct icmp6_stat *); u_int64_t netstat_icmp6s_get_badra(const struct icmp6_stat *); u_int64_t netstat_icmp6s_get_badredirect(const struct icmp6_stat *); + +const struct pim6_stat *netstat_get_pim6stats(const struct stat_type *); + +u_int64_t netstat_pim6s_get_rcv_total(const struct pim6_stat *); +u_int64_t netstat_pim6s_get_rcv_tooshort(const struct pim6_stat *); +u_int64_t netstat_pim6s_get_rcv_badsum(const struct pim6_stat *); +u_int64_t netstat_pim6s_get_rcv_badversion(const struct pim6_stat *); +u_int64_t netstat_pim6s_get_rcv_registers(const struct pim6_stat *); +u_int64_t netstat_pim6s_get_rcv_badregisters(const struct pim6_stat *); +u_int64_t netstat_pim6s_get_snd_registers(const struct pim6_stat *); #endif /* !INET6 */ #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#41 (text+ko) ==== @@ -56,6 +56,7 @@ #endif #ifdef INET6 #include +#include #endif #include "netstat.h" @@ -336,6 +337,10 @@ struct icmp6_stat { struct icmp6stat s; }; + +struct pim6_stat { + struct pim6stat s; +}; #endif /* Timestamp type. */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#11 (text+ko) ==== @@ -38,6 +38,9 @@ #include #include #include +#ifdef INET6 +#include +#endif #include #include @@ -70,6 +73,7 @@ #endif #ifdef INET6 { ICMP6STAT_VERSION, "net.inet6.icmp6.stats", "_icmp6stat" }, + { PIM6STAT_VERSION, "net.inet6.pim.stats", "_pim6stat" }, #endif }; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#49 (text+ko) ==== @@ -1726,6 +1726,18 @@ #undef ICMP_ACC #undef ICMP_ACCA +#define PIM6_ACC(field) \ + STATS_ACCX(u_int64_t,pim6,field,pim6s_##field) + +STATS_GET(pim6,PIM6); +PIM6_ACC(rcv_total); +PIM6_ACC(rcv_tooshort); +PIM6_ACC(rcv_badsum); +PIM6_ACC(rcv_badversion); +PIM6_ACC(rcv_registers); +PIM6_ACC(rcv_badregisters); +PIM6_ACC(snd_registers); +#undef PIM6_ACC #endif /* !INET6 */ static const char *icmpnames[ICMP_MAXTYPE + 1] = { From owner-p4-projects@FreeBSD.ORG Thu Jul 30 16:59:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6EF71106566B; Thu, 30 Jul 2009 16:59: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 2EC911065670 for ; Thu, 30 Jul 2009 16:59:54 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1CC038FC23 for ; Thu, 30 Jul 2009 16:59:54 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UGxs0X093294 for ; Thu, 30 Jul 2009 16:59:54 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UGxr5Z093292 for perforce@freebsd.org; Thu, 30 Jul 2009 16:59:53 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 16:59:53 GMT Message-Id: <200907301659.n6UGxr5Z093292@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166804 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 16:59:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=166804 Change 166804 by pgj@petymeg-current on 2009/07/30 16:59:27 Integrate libnetstatified support for PIM6 stats into netstat(1). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#21 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet6.c#4 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#29 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#21 (text+ko) ==== @@ -98,7 +98,7 @@ void ip6_ifstats(char *); void icmp6_stats(const struct stat_type *); void icmp6_ifstats(char *); -void pim6_stats(u_long, const char *, int, int); +void pim6_stats(const struct stat_type *); void rip6_stats(u_long, const char *, int, int); void mroute6pr(u_long, u_long); void mrt6_stats(u_long); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet6.c#4 (text+ko) ==== @@ -721,37 +721,20 @@ * Dump PIM statistics structure. */ void -pim6_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +pim6_stats(const struct stat_type *sttp) { - struct pim6stat pim6stat, zerostat; - size_t len = sizeof pim6stat; + const struct pim6_stat *s; - if (live) { - if (zflag) - memset(&zerostat, 0, len); - if (sysctlbyname("net.inet6.pim.stats", &pim6stat, &len, - zflag ? &zerostat : NULL, zflag ? len : 0) < 0) { - if (errno != ENOENT) - warn("sysctl: net.inet6.pim.stats"); - return; - } - } else { - if (off == 0) - return; - kread(off, &pim6stat, len); - } - - printf("%s:\n", name); - -#define p(f, m) if (pim6stat.f || sflag <= 1) \ - printf(m, (uintmax_t)pim6stat.f, plural(pim6stat.f)) - p(pim6s_rcv_total, "\t%ju message%s received\n"); - p(pim6s_rcv_tooshort, "\t%ju message%s received with too few bytes\n"); - p(pim6s_rcv_badsum, "\t%ju message%s received with bad checksum\n"); - p(pim6s_rcv_badversion, "\t%ju message%s received with bad version\n"); - p(pim6s_rcv_registers, "\t%ju register%s received\n"); - p(pim6s_rcv_badregisters, "\t%ju bad register%s received\n"); - p(pim6s_snd_registers, "\t%ju register%s sent\n"); + s = netstat_get_pim6stats(sttp); +#define p(f, m) if (netstat_pim6s_get_##f(s) || sflag <= 1) \ + printf(m, netstat_pim6s_get_##f(s), plural(netstat_pim6s_get_##f(s))) + p(rcv_total, "\t%ju message%s received\n"); + p(rcv_tooshort, "\t%ju message%s received with too few bytes\n"); + p(rcv_badsum, "\t%ju message%s received with bad checksum\n"); + p(rcv_badversion, "\t%ju message%s received with bad version\n"); + p(rcv_registers, "\t%ju register%s received\n"); + p(rcv_badregisters, "\t%ju bad register%s received\n"); + p(snd_registers, "\t%ju register%s sent\n"); #undef p } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#29 (text+ko) ==== @@ -103,29 +103,27 @@ { .n_name = "_ipsec4stat" }, #define N_IPSEC6STAT 12 { .n_name = "_ipsec6stat" }, -#define N_PIM6STAT 13 - { .n_name = "_pim6stat" }, -#define N_MRT6STAT 14 +#define N_MRT6STAT 13 { .n_name = "_mrt6stat" }, -#define N_MF6CTABLE 15 +#define N_MF6CTABLE 14 { .n_name = "_mf6ctable" }, -#define N_MIF6TABLE 16 +#define N_MIF6TABLE 15 { .n_name = "_mif6table" }, -#define N_PFKEYSTAT 17 +#define N_PFKEYSTAT 16 { .n_name = "_pfkeystat" }, -#define N_RTTRASH 18 +#define N_RTTRASH 17 { .n_name = "_rttrash" }, -#define N_PFSYNCSTAT 19 +#define N_PFSYNCSTAT 18 { .n_name = "_pfsyncstats" }, -#define N_AHSTAT 20 +#define N_AHSTAT 19 { .n_name = "_ahstat" }, -#define N_ESPSTAT 21 +#define N_ESPSTAT 20 { .n_name = "_espstat" }, -#define N_IPCOMPSTAT 22 +#define N_IPCOMPSTAT 21 { .n_name = "_ipcompstat" }, -#define N_RIP6STAT 23 +#define N_RIP6STAT 22 { .n_name = "_rip6stat" }, -#define N_MFCTABLESIZE 24 +#define N_MFCTABLESIZE 23 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -196,8 +194,8 @@ ipsec_stats, NULL, "ipsec6", 0, 0 }, #endif #ifdef notyet - { -1, N_PIM6STAT, 1, NULL, NULL, stat_MAX, - pim6_stats, NULL, "pim6", 1, 0 }, + { -1, 0, 1, NULL, pim6_stats, stat_PIM6, + NULL, NULL, "pim6", 1, 0 }, #endif { -1, N_RIP6STAT, 1, NULL, NULL, stat_MAX, rip6_stats, NULL, "rip6", 1, 0 }, From owner-p4-projects@FreeBSD.ORG Thu Jul 30 17:26:24 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AD3121065676; Thu, 30 Jul 2009 17:26: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 673AC106564A for ; Thu, 30 Jul 2009 17:26:23 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3BB028FC21 for ; Thu, 30 Jul 2009 17:26:23 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UHQNFJ097152 for ; Thu, 30 Jul 2009 17:26:23 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UHQNAF097149 for perforce@freebsd.org; Thu, 30 Jul 2009 17:26:23 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 17:26:23 GMT Message-Id: <200907301726.n6UHQNAF097149@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166806 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 17:26:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=166806 Change 166806 by pgj@petymeg-current on 2009/07/30 17:25:27 - Standardize and add a header for RIP6 statistics. - Add a field for calculating delivered packets (it will be filled in by libnetstat(3)). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/raw_ip6.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/raw_ip6.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/raw_ip6.c#2 (text+ko) ==== @@ -121,6 +121,10 @@ #ifdef VIMAGE_GLOBALS extern struct inpcbhead ripcb; extern struct inpcbinfo ripcbinfo; +struct stat_header rip6stat_header = { + .sth_version = RIP6STAT_VERSION, + .sth_len = sizeof(struct rip6stat) +}; struct rip6stat rip6stat; #endif ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/raw_ip6.h#2 (text+ko) ==== @@ -36,19 +36,24 @@ /* * ICMPv6 stat is counted separately. see netinet/icmp6.h */ + +#define RIP6STAT_VERSION 0x00000001 + struct rip6stat { - u_quad_t rip6s_ipackets; /* total input packets */ - u_quad_t rip6s_isum; /* input checksum computations */ - u_quad_t rip6s_badsum; /* of above, checksum error */ - u_quad_t rip6s_nosock; /* no matching socket */ - u_quad_t rip6s_nosockmcast; /* of above, arrived as multicast */ - u_quad_t rip6s_fullsock; /* not delivered, input socket full */ + u_int64_t rip6s_ipackets; /* total input packets */ + u_int64_t rip6s_isum; /* input checksum computations */ + u_int64_t rip6s_badsum; /* of above, checksum error */ + u_int64_t rip6s_nosock; /* no matching socket */ + u_int64_t rip6s_nosockmcast; /* of above, arrived as multicast */ + u_int64_t rip6s_fullsock; /* not delivered, input socket full */ - u_quad_t rip6s_opackets; /* total output packets */ + u_int64_t rip6s_opackets; /* total output packets */ + u_int64_t rip6s_delivered; /* derived field */ }; #ifdef _KERNEL #ifdef VIMAGE_GLOBALS +extern struct stat_header rip6stat_header; extern struct rip6stat rip6stat; #endif #endif From owner-p4-projects@FreeBSD.ORG Thu Jul 30 17:27:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E54A210656BC; Thu, 30 Jul 2009 17:27:24 +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 A5F811065688 for ; Thu, 30 Jul 2009 17:27:24 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 89F1F8FC1F for ; Thu, 30 Jul 2009 17:27:24 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UHROQ2097250 for ; Thu, 30 Jul 2009 17:27:24 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UHROIk097248 for perforce@freebsd.org; Thu, 30 Jul 2009 17:27:24 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 17:27:24 GMT Message-Id: <200907301727.n6UHROIk097248@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166807 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 17:27:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=166807 Change 166807 by pgj@petymeg-current on 2009/07/30 17:27:03 Add support for RIP6 statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#45 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#42 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#12 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#50 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#45 (text+ko) ==== @@ -129,6 +129,7 @@ #ifdef INET6 stat_ICMP6, stat_PIM6, + stat_RIP6, #endif stat_MAX, stat_Invalid, @@ -171,6 +172,7 @@ #ifdef INET6 struct icmp6_stat; struct pim6_stat; +struct rip6_stat; #endif __BEGIN_DECLS @@ -778,5 +780,16 @@ u_int64_t netstat_pim6s_get_rcv_registers(const struct pim6_stat *); u_int64_t netstat_pim6s_get_rcv_badregisters(const struct pim6_stat *); u_int64_t netstat_pim6s_get_snd_registers(const struct pim6_stat *); + +const struct rip6_stat *netstat_get_rip6stats(const struct stat_type *); + +u_int64_t netstat_rip6s_get_ipackets(const struct rip6_stat *); +u_int64_t netstat_rip6s_get_isum(const struct rip6_stat *); +u_int64_t netstat_rip6s_get_badsum(const struct rip6_stat *); +u_int64_t netstat_rip6s_get_nosock(const struct rip6_stat *); +u_int64_t netstat_rip6s_get_nosockmcast(const struct rip6_stat *); +u_int64_t netstat_rip6s_get_fullsock(const struct rip6_stat *); +u_int64_t netstat_rip6s_get_opackets(const struct rip6_stat *); +u_int64_t netstat_rip6s_get_delivered(const struct rip6_stat *); #endif /* !INET6 */ #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#42 (text+ko) ==== @@ -57,6 +57,7 @@ #ifdef INET6 #include #include +#include #endif #include "netstat.h" @@ -341,6 +342,10 @@ struct pim6_stat { struct pim6stat s; }; + +struct rip6_stat { + struct rip6stat s; +}; #endif /* Timestamp type. */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#12 (text+ko) ==== @@ -40,6 +40,7 @@ #include #ifdef INET6 #include +#include #endif #include @@ -74,6 +75,7 @@ #ifdef INET6 { ICMP6STAT_VERSION, "net.inet6.icmp6.stats", "_icmp6stat" }, { PIM6STAT_VERSION, "net.inet6.pim.stats", "_pim6stat" }, + { RIP6STAT_VERSION, "net.inet6.ip6.rip6stats", "_rip6stat" }, #endif }; @@ -86,6 +88,9 @@ struct stat_header head; struct udpstat *u; +#ifdef INET6 + struct rip6stat *r; +#endif int res; if (type >= stat_MAX) { @@ -148,6 +153,15 @@ u->udps_fullsock; } +#ifdef INET6 + if (sttp->stt_type == stat_RIP6) { + r = (struct rip6stat *)sttp->stt_data; + r->rip6s_delivered = + r->rip6s_ipackets - r->rip6s_badsum - r->rip6s_nosock - + r->rip6s_nosockmcast - r->rip6s_fullsock; + } +#endif + return (0); } ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#50 (text+ko) ==== @@ -1738,6 +1738,20 @@ PIM6_ACC(rcv_badregisters); PIM6_ACC(snd_registers); #undef PIM6_ACC + +#define RIP6_ACC(field) \ + STATS_ACCX(u_int64_t,rip6,field,rip6s_##field) + +STATS_GET(rip6,RIP6); +RIP6_ACC(ipackets); +RIP6_ACC(isum); +RIP6_ACC(badsum); +RIP6_ACC(nosock); +RIP6_ACC(nosockmcast); +RIP6_ACC(fullsock); +RIP6_ACC(opackets); +RIP6_ACC(delivered); +#undef RIP6_ACC #endif /* !INET6 */ static const char *icmpnames[ICMP_MAXTYPE + 1] = { From owner-p4-projects@FreeBSD.ORG Thu Jul 30 17:28:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 56E5310656B2; Thu, 30 Jul 2009 17:28: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 EBB0C10656B0 for ; Thu, 30 Jul 2009 17:28:25 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D93D38FC1C for ; Thu, 30 Jul 2009 17:28:25 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UHSPB1097349 for ; Thu, 30 Jul 2009 17:28:25 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UHSPxS097345 for perforce@freebsd.org; Thu, 30 Jul 2009 17:28:25 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 17:28:25 GMT Message-Id: <200907301728.n6UHSPxS097345@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166808 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 17:28:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=166808 Change 166808 by pgj@petymeg-current on 2009/07/30 17:27:57 Modify netstat(1) to use libnetstat(3) for retrieving statistics on RIP6. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#22 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet6.c#5 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#30 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#22 (text+ko) ==== @@ -99,7 +99,7 @@ void icmp6_stats(const struct stat_type *); void icmp6_ifstats(char *); void pim6_stats(const struct stat_type *); -void rip6_stats(u_long, const char *, int, int); +void rip6_stats(const struct stat_type *); void mroute6pr(u_long, u_long); void mrt6_stats(u_long); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet6.c#5 (text+ko) ==== @@ -742,44 +742,25 @@ * Dump raw ip6 statistics structure. */ void -rip6_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +rip6_stats(const struct stat_type *sttp) { - struct rip6stat rip6stat; - u_quad_t delivered; - size_t len; + const struct rip6_stat *s; - len = sizeof(rip6stat); - if (live) { - if (sysctlbyname("net.inet6.ip6.rip6stats", &rip6stat, &len, - NULL, 0) < 0) { - if (errno != ENOENT) - warn("sysctl: net.inet6.ip6.rip6stats"); - return; - } - } else - kread(off, &rip6stat, len); - - printf("%s:\n", name); - -#define p(f, m) if (rip6stat.f || sflag <= 1) \ - printf(m, (uintmax_t)rip6stat.f, plural(rip6stat.f)) - p(rip6s_ipackets, "\t%ju message%s received\n"); - p(rip6s_isum, "\t%ju checksum calculation%s on inbound\n"); - p(rip6s_badsum, "\t%ju message%s with bad checksum\n"); - p(rip6s_nosock, "\t%ju message%s dropped due to no socket\n"); - p(rip6s_nosockmcast, - "\t%ju multicast message%s dropped due to no socket\n"); - p(rip6s_fullsock, - "\t%ju message%s dropped due to full socket buffers\n"); - delivered = rip6stat.rip6s_ipackets - - rip6stat.rip6s_badsum - - rip6stat.rip6s_nosock - - rip6stat.rip6s_nosockmcast - - rip6stat.rip6s_fullsock; - if (delivered || sflag <= 1) - printf("\t%ju delivered\n", (uintmax_t)delivered); - p(rip6s_opackets, "\t%ju datagram%s output\n"); + s = netstat_get_rip6stats(sttp); +#define p(f, m) if (netstat_rip6s_get_##f(s) || sflag <= 1) \ + printf(m, netstat_rip6s_get_##f(s), plural(netstat_rip6s_get_##f(s))) +#define p_5(f, m) if (netstat_rip6s_get_##f(s) || sflag <= 1) \ + printf(m, netstat_rip6s_get_##f(s)) + p(ipackets, "\t%ju message%s received\n"); + p(isum, "\t%ju checksum calculation%s on inbound\n"); + p(badsum, "\t%ju message%s with bad checksum\n"); + p(nosock, "\t%ju message%s dropped due to no socket\n"); + p(nosockmcast, "\t%ju multicast message%s dropped due to no socket\n"); + p(fullsock, "\t%ju message%s dropped due to full socket buffers\n"); + p_5(delivered,"\t%ju delivered\n"); + p(opackets, "\t%ju datagram%s output\n"); #undef p +#undef p_5 } /* ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#30 (text+ko) ==== @@ -121,9 +121,7 @@ { .n_name = "_espstat" }, #define N_IPCOMPSTAT 21 { .n_name = "_ipcompstat" }, -#define N_RIP6STAT 22 - { .n_name = "_rip6stat" }, -#define N_MFCTABLESIZE 23 +#define N_MFCTABLESIZE 22 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -197,8 +195,8 @@ { -1, 0, 1, NULL, pim6_stats, stat_PIM6, NULL, NULL, "pim6", 1, 0 }, #endif - { -1, N_RIP6STAT, 1, NULL, NULL, stat_MAX, - rip6_stats, NULL, "rip6", 1, 0 }, + { -1, 0, 1, NULL, rip6_stats, stat_RIP6, + NULL, NULL, "rip6", 1, 0 }, { -1, -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; From owner-p4-projects@FreeBSD.ORG Thu Jul 30 17:35:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 56A791065675; Thu, 30 Jul 2009 17:35: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 14D9E1065672 for ; Thu, 30 Jul 2009 17:35:34 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 02F958FC16 for ; Thu, 30 Jul 2009 17:35:34 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UHZXlP098160 for ; Thu, 30 Jul 2009 17:35:33 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UHZXi2098158 for perforce@freebsd.org; Thu, 30 Jul 2009 17:35:33 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 30 Jul 2009 17:35:33 GMT Message-Id: <200907301735.n6UHZXi2098158@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 166809 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 17:35:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=166809 Change 166809 by truncs@aditya on 2009/07/30 17:34:37 Rearranging to make it more consistent with NetBSD's code. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#29 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#29 (text+ko) ==== @@ -240,19 +240,6 @@ #define e2di_size_high e2di_dacl -/* - * File clean flags - */ -#define E2FS_ISCLEAN 0x0001 /* Unmounted cleanly */ -#define E2FS_ERRORS 0x0002 /* Errors detected */ - -/* - * Definitions of behavior on errors - */ -#define E2FS_BEH_CONTINUE 1 /* continue operation */ -#define E2FS_BEH_READONLY 2 /* remount fs read only */ -#define E2FS_BEH_PANIC 3 /* cause panic */ -#define E2FS_BEH_DEFAULT E2FS_BEH_CONTINUE /* @@ -342,19 +329,7 @@ struct ext2_gd *e2fs_gd; /* Group Descriptors */ }; - - - /* - * OS identification - */ -#define E2FS_OS_LINUX 0 -#define E2FS_OS_HURD 1 -#define E2FS_OS_MASIX 2 -#define E2FS_OS_FREEBSD 3 -#define E2FS_OS_LITES 4 - -/* * Revision levels */ #define E2FS_REV0 0 /* The good old (original) format */ @@ -403,6 +378,28 @@ | EXT2F_ROCOMPAT_LARGEFILE) #define EXT2F_INCOMPAT_SUPP EXT2F_INCOMPAT_FTYPE +/* + * Definitions of behavior on errors + */ +#define E2FS_BEH_CONTINUE 1 /* continue operation */ +#define E2FS_BEH_READONLY 2 /* remount fs read only */ +#define E2FS_BEH_PANIC 3 /* cause panic */ +#define E2FS_BEH_DEFAULT E2FS_BEH_CONTINUE + +/* + * OS identification + */ +#define E2FS_OS_LINUX 0 +#define E2FS_OS_HURD 1 +#define E2FS_OS_MASIX 2 +#define E2FS_OS_FREEBSD 3 +#define E2FS_OS_LITES 4 + +/* + * File clean flags + */ +#define E2FS_ISCLEAN 0x0001 /* Unmounted cleanly */ +#define E2FS_ERRORS 0x0002 /* Errors detected */ /* * Structure of a directory entry From owner-p4-projects@FreeBSD.ORG Thu Jul 30 17:42:42 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 219E01065694; Thu, 30 Jul 2009 17:42:42 +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 CFAED106568B for ; Thu, 30 Jul 2009 17:42:41 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A1D608FC1B for ; Thu, 30 Jul 2009 17:42:41 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UHgfkw098921 for ; Thu, 30 Jul 2009 17:42:41 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UHgfrc098919 for perforce@freebsd.org; Thu, 30 Jul 2009 17:42:41 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 30 Jul 2009 17:42:41 GMT Message-Id: <200907301742.n6UHgfrc098919@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166810 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 17:42:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=166810 Change 166810 by rwatson@rwatson_freebsd_capabilities on 2009/07/30 17:42:09 Improve commenting. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/fdrpc/fdrpc.c#5 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/fdrpc/fdrpc.c#5 (text+ko) ==== @@ -52,6 +52,9 @@ #define FDRPC_SANDBOX "./fdrpc" +/* + * Unsandboxed host process with full user rights. + */ int main(int argc, char *argv[]) { @@ -65,10 +68,16 @@ if (argc != 1) errx(-1, "usage: fdrpc_host"); - if (lch_start(FDRPC_SANDBOX, fdrpc_argv, LCH_PERMIT_STDERR, &lcsp) - < 0) + /* + * Create a sandbox, do permit access to stderr. + */ + if (lch_start(FDRPC_SANDBOX, fdrpc_argv, LCH_PERMIT_STDERR, &lcsp) < 0) err(-1, "lch_start %s", FDRPC_SANDBOX); + /* + * Send a one-byte message to the sandbox and attach stdin as a + * right. + */ ch = 'X'; /* RPC data. */ fdcount = 1; fd_send = STDIN_FILENO; @@ -85,9 +94,17 @@ printf("lch_rpc_rights: OK\n"); else printf("lch_rpc_rights: fdcount %d\n", fdcount); + + /* + * Terminate the sandbox when done. + */ lch_stop(lcsp); } +/* + * Sandboxed process implementing an 'echo' RPC that accepts and returns file + * descriptors to the host. + */ int cap_main(int argc, char *argv[]) { @@ -101,7 +118,14 @@ if (lcs_get(&lchp) < 0) err(-1, "lcs_get"); + /* + * Serve RPCs from the host until the sandbox is killed. + */ while (1) { + /* + * Receive an RPC from the host, along with up to one file + * descriptor. + */ fdcount = 1; if (lcs_recvrpc_rights(lchp, &opno, &seqno, &buffer, &len, &fd, &fdcount) < 0) { @@ -114,6 +138,12 @@ errx(-1, "lcs_recvrpc_rights: opno %d", opno); if (fdcount != 1) errx(-1, "lcs_recvrpc_rights: fdcount %d", fdcount); + + /* + * Reply with the same message and same file descriptor. + * Remember to free the message and received descriptor when + * done. + */ iov.iov_len = len; iov.iov_base = buffer; if (lcs_sendrpc_rights(lchp, opno, seqno, &iov, 1, &fd, From owner-p4-projects@FreeBSD.ORG Thu Jul 30 17:45:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AE97D1065678; Thu, 30 Jul 2009 17:45:45 +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 66E7A1065670 for ; Thu, 30 Jul 2009 17:45:45 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 393DA8FC16 for ; Thu, 30 Jul 2009 17:45:45 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UHjjRj099280 for ; Thu, 30 Jul 2009 17:45:45 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UHjjxR099278 for perforce@freebsd.org; Thu, 30 Jul 2009 17:45:45 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 30 Jul 2009 17:45:45 GMT Message-Id: <200907301745.n6UHjjxR099278@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166812 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 17:45:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=166812 Change 166812 by rwatson@rwatson_freebsd_capabilities on 2009/07/30 17:45:41 Recomment. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_world/sandbox_world.c#4 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_world/sandbox_world.c#4 (text+ko) ==== @@ -53,6 +53,9 @@ #define MYNAME "sandbox_world" /* Binary to run in sandbox. */ +/* + * Unsandboxed host process with full user rights. + */ int main(int argc, char *argv[]) { @@ -65,6 +68,9 @@ if (argc != 1) errx(-1, "usage: sandbox_world"); + /* + * Create a sandbox, do permit access to stdout and stderr. + */ if (lch_start(MYNAME, sandbox_argv, LCH_PERMIT_STDERR | LCH_PERMIT_STDOUT, &lcsp) < 0) err(-1, "lch_start %s", argv[1]); @@ -79,14 +85,19 @@ if (lch_rpc(lcsp, 0, &iov, 1, &iov, 1, &len) < 0) err(-1, "lch_rpc"); if (len != sizeof(ch)) - errx(-1, "lch_rpc returned size %d not %d", len, - sizeof(ch)); + errx(-1, "lch_rpc returned size %d not %d", len, sizeof(ch)); if (ch != 'X') errx(-1, "lch_recv: expected %d and got %d", 'X', ch); + /* + * Terminate the sandbox when done. + */ lch_stop(lcsp); } +/* + * Sandboxed process implementing a 'printf hello world' RPC. + */ int cap_main(int argc, char *argv[]) { @@ -99,7 +110,13 @@ if (lcs_get(&lchp) < 0) err(-1, "lcs_get"); + /* + * Serve RPCs from the host until the sandbox is killed. + */ while (1) { + /* + * Receive a one-byte RPC from the host. + */ if (lcs_recvrpc(lchp, &opno, &seqno, &buffer, &len) < 0) { if (errno != EPIPE) err(-6, "lcs_recvrpc"); @@ -110,6 +127,11 @@ errx(-7, "lcs_recvrpc len"); printf("Hello world!\n"); fflush(stdout); + + /* + * Reply with the same message. Remember to free the message + * when done. + */ iov.iov_base = buffer; iov.iov_len = 1; if (lcs_sendrpc(lchp, opno, seqno, &iov, 1) < 0) { From owner-p4-projects@FreeBSD.ORG Thu Jul 30 17:55:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 30F001065673; Thu, 30 Jul 2009 17:55:57 +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 E3D3D106564A for ; Thu, 30 Jul 2009 17:55:56 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B79478FC0A for ; Thu, 30 Jul 2009 17:55:56 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UHtuDw000440 for ; Thu, 30 Jul 2009 17:55:56 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UHtuBN000438 for perforce@freebsd.org; Thu, 30 Jul 2009 17:55:56 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 30 Jul 2009 17:55:56 GMT Message-Id: <200907301755.n6UHtuBN000438@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 166813 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 17:55:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=166813 Change 166813 by truncs@aditya on 2009/07/30 17:55:04 Moving dir structures of ext2fs to new header to make the code more organized. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_dir.h#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#30 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_lookup.c#8 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vnops.c#12 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#30 (text+ko) ==== @@ -401,53 +401,4 @@ #define E2FS_ISCLEAN 0x0001 /* Unmounted cleanly */ #define E2FS_ERRORS 0x0002 /* Errors detected */ -/* - * Structure of a directory entry - */ -#define EXT2FS_MAXNAMLEN 255 - -struct ext2fs_direct { - u_int32_t e2d_ino; /* inode number of entry */ - u_int16_t e2d_reclen; /* length of this record */ - u_int16_t e2d_namlen; /* length of string in d_name */ - char e2d_name[EXT2FS_MAXNAMLEN];/* name with length<=EXT2FS_MAXNAMLEN */ -}; -/* - * The new version of the directory entry. Since EXT2 structures are - * stored in intel byte order, and the name_len field could never be - * bigger than 255 chars, it's safe to reclaim the extra byte for the - * file_type field. - */ -struct ext2fs_direct_2 { - u_int32_t e2d_ino; /* inode number of entry */ - u_int16_t e2d_reclen; /* length of this record */ - u_int8_t e2d_namlen; /* length of string in d_name */ - u_int8_t e2d_type; /* file type */ - char e2d_name[EXT2FS_MAXNAMLEN];/* name with length<=EXT2FS_MAXNAMLEN */ -}; -/* - * Ext2 directory file types. Only the low 3 bits are used. The - * other bits are reserved for now. - */ -#define EXT2_FT_UNKNOWN 0 -#define EXT2_FT_REG_FILE 1 -#define EXT2_FT_DIR 2 -#define EXT2_FT_CHRDEV 3 -#define EXT2_FT_BLKDEV 4 -#define EXT2_FT_FIFO 5 -#define EXT2_FT_SOCK 6 -#define EXT2_FT_SYMLINK 7 - -#define EXT2_FT_MAX 8 - -/* - * EXT2_DIR_PAD defines the directory entries boundaries - * - * NOTE: It must be a multiple of 4 - */ -#define EXT2_DIR_PAD 4 -#define EXT2_DIR_ROUND (EXT2_DIR_PAD - 1) -#define EXT2_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT2_DIR_ROUND) & \ - ~EXT2_DIR_ROUND) - #endif /* _LINUX_EXT2_FS_H */ ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_lookup.c#8 (text+ko) ==== @@ -59,6 +59,7 @@ #include #include #include +#include #ifdef DIAGNOSTIC static int dirchk = 1; ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vnops.c#12 (text+ko) ==== @@ -79,6 +79,7 @@ #include #include #include +#include static int ext2_makeinode(int mode, struct vnode *, struct vnode **, struct componentname *); From owner-p4-projects@FreeBSD.ORG Thu Jul 30 17:56:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2F68D1065674; Thu, 30 Jul 2009 17:56:58 +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 E36FC106566B for ; Thu, 30 Jul 2009 17:56:57 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B74D28FC18 for ; Thu, 30 Jul 2009 17:56:57 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UHuvBL000543 for ; Thu, 30 Jul 2009 17:56:57 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UHuvwf000541 for perforce@freebsd.org; Thu, 30 Jul 2009 17:56:57 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 17:56:57 GMT Message-Id: <200907301756.n6UHuvwf000541@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166814 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 17:56:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=166814 Change 166814 by pgj@petymeg-current on 2009/07/30 17:56:29 - Standardize and add header for IPX statistics. - Expose data via sysctl(3) [net.ipx.ipx.stats]. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netipx/ipx_input.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netipx/ipx_var.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipx/ipx_input.c#2 (text+ko) ==== @@ -73,11 +73,14 @@ #include #include #include +#include #include #include #include +#include + #include #include #include @@ -109,7 +112,17 @@ .s_host[1] = 0xffff, .s_host[2] = 0xffff }; +struct stat_header ipxstat_header = { + .sth_version = IPXSTAT_VERSION, + .sth_len = sizeof(struct ipxstat) +}; struct ipxstat ipxstat; + +SYSCTL_STRUCT(_net_ipx_ipx, OID_AUTO, stats, CTLFLAG_RW, &ipxstat, ipxstat, + "IPX Statistics (struct ipxstat, netipx/ipx_var.h)"); +SYSCTL_STRUCT(_net_ipx_ipx, OID_AUTO, stats_header, CTLFLAG_RD, + &ipxstat_header, stat_header, "IPX Statistics header"); + struct sockaddr_ipx ipx_netmask, ipx_hostmask; /* ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipx/ipx_var.h#2 (text+ko) ==== @@ -67,18 +67,20 @@ /* * IPX Kernel Structures and Variables */ +#define IPXSTAT_VERSION 0x00000001 + struct ipxstat { - u_long ipxs_total; /* total packets received */ - u_long ipxs_badsum; /* checksum bad */ - u_long ipxs_tooshort; /* packet too short */ - u_long ipxs_toosmall; /* not enough data */ - u_long ipxs_forward; /* packets forwarded */ - u_long ipxs_cantforward; /* packets rcvd for unreachable dest */ - u_long ipxs_delivered; /* datagrams delivered to upper level*/ - u_long ipxs_localout; /* total ipx packets generated here */ - u_long ipxs_odropped; /* lost packets due to nobufs, etc. */ - u_long ipxs_noroute; /* packets discarded due to no route */ - u_long ipxs_mtutoosmall; /* the interface mtu is too small */ + u_int64_t ipxs_total; /* total packets received */ + u_int64_t ipxs_badsum; /* checksum bad */ + u_int64_t ipxs_tooshort; /* packet too short */ + u_int64_t ipxs_toosmall; /* not enough data */ + u_int64_t ipxs_forward; /* packets forwarded */ + u_int64_t ipxs_cantforward; /* packets rcvd for unreachable dest */ + u_int64_t ipxs_delivered; /* datagrams delivered to upper level*/ + u_int64_t ipxs_localout; /* total ipx packets generated here */ + u_int64_t ipxs_odropped; /* lost packets due to nobufs, etc. */ + u_int64_t ipxs_noroute; /* packets discarded due to no route */ + u_int64_t ipxs_mtutoosmall; /* the interface mtu is too small */ }; #ifdef _KERNEL From owner-p4-projects@FreeBSD.ORG Thu Jul 30 17:57:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 650681065672; Thu, 30 Jul 2009 17:57:59 +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 22978106567C for ; Thu, 30 Jul 2009 17:57:59 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 109668FC18 for ; Thu, 30 Jul 2009 17:57:59 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UHvw5t000639 for ; Thu, 30 Jul 2009 17:57:58 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UHvwNn000637 for perforce@freebsd.org; Thu, 30 Jul 2009 17:57:58 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 17:57:58 GMT Message-Id: <200907301757.n6UHvwNn000637@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166815 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 17:58:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=166815 Change 166815 by pgj@petymeg-current on 2009/07/30 17:57:22 Add (optional) support for IPX statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#15 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#46 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#43 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#13 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#51 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#15 (text+ko) ==== @@ -26,4 +26,8 @@ CFLAGS+= -DINET6 .endif +.if ${MK_IPX_SUPPORT} != "no" +CFLAGS+= -DIPX +.endif + .include ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#46 (text+ko) ==== @@ -131,6 +131,9 @@ stat_PIM6, stat_RIP6, #endif +#ifdef IPX + stat_IPX, +#endif stat_MAX, stat_Invalid, }; @@ -174,6 +177,9 @@ struct pim6_stat; struct rip6_stat; #endif +#ifdef IPX +struct ipx_stat; +#endif __BEGIN_DECLS const char *netstat_strerror(int); @@ -792,4 +798,20 @@ u_int64_t netstat_rip6s_get_opackets(const struct rip6_stat *); u_int64_t netstat_rip6s_get_delivered(const struct rip6_stat *); #endif /* !INET6 */ + +#ifdef IPX +const struct ipx_stat *netstat_get_ipxstats(const struct stat_type *); + +u_int64_t netstat_ipxs_get_total(const struct ipx_stat *); +u_int64_t netstat_ipxs_get_badsum(const struct ipx_stat *); +u_int64_t netstat_ipxs_get_tooshort(const struct ipx_stat *); +u_int64_t netstat_ipxs_get_toosmall(const struct ipx_stat *); +u_int64_t netstat_ipxs_get_forward(const struct ipx_stat *); +u_int64_t netstat_ipxs_get_cantforward(const struct ipx_stat *); +u_int64_t netstat_ipxs_get_delivered(const struct ipx_stat *); +u_int64_t netstat_ipxs_get_localout(const struct ipx_stat *); +u_int64_t netstat_ipxs_get_odropped(const struct ipx_stat *); +u_int64_t netstat_ipxs_get_noroute(const struct ipx_stat *); +u_int64_t netstat_ipxs_get_mtutoosmall(const struct ipx_stat *); +#endif /* !IPX */ #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#43 (text+ko) ==== @@ -59,6 +59,9 @@ #include #include #endif +#ifdef IPX +#include +#endif #include "netstat.h" @@ -348,6 +351,12 @@ }; #endif +#ifdef IPX +struct ipx_stat { + struct ipxstat s; +}; +#endif + /* Timestamp type. */ struct timestamp_type { u_int32_t ts_sec; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#13 (text+ko) ==== @@ -42,6 +42,9 @@ #include #include #endif +#ifdef IPX +#include +#endif #include #include @@ -77,6 +80,9 @@ { PIM6STAT_VERSION, "net.inet6.pim.stats", "_pim6stat" }, { RIP6STAT_VERSION, "net.inet6.ip6.rip6stats", "_rip6stat" }, #endif +#ifdef IPX + { IPXSTAT_VERSION, "net.ipx.ipx.stats", "_ipxstat" }, +#endif }; int ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#51 (text+ko) ==== @@ -1754,6 +1754,25 @@ #undef RIP6_ACC #endif /* !INET6 */ +#ifdef IPX +#define IPX_ACC(field) \ + STATS_ACCX(u_int64_t,ipx,field,ipxs_##field) + +STATS_GET(ipx,IPX); +IPX_ACC(total); +IPX_ACC(badsum); +IPX_ACC(tooshort); +IPX_ACC(toosmall); +IPX_ACC(forward); +IPX_ACC(cantforward); +IPX_ACC(delivered); +IPX_ACC(localout); +IPX_ACC(odropped); +IPX_ACC(noroute); +IPX_ACC(mtutoosmall); +#undef IPX_ACC +#endif /* !IPX */ + static const char *icmpnames[ICMP_MAXTYPE + 1] = { "echo reply", /* RFC 792 */ "#1", From owner-p4-projects@FreeBSD.ORG Thu Jul 30 17:59:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B02421065677; Thu, 30 Jul 2009 17:59: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 70DFF1065673 for ; Thu, 30 Jul 2009 17:59:00 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5F05A8FC17 for ; Thu, 30 Jul 2009 17:59:00 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UHx0UQ000746 for ; Thu, 30 Jul 2009 17:59:00 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UHx0NG000744 for perforce@freebsd.org; Thu, 30 Jul 2009 17:59:00 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 17:59:00 GMT Message-Id: <200907301759.n6UHx0NG000744@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166816 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 17:59:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=166816 Change 166816 by pgj@petymeg-current on 2009/07/30 17:58:16 Now netstat(1) uses libnetstat(3) for working with IPX statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#23 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipx.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#31 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#23 (text+ko) ==== @@ -139,7 +139,7 @@ void ipxprotopr(u_long, const char *, int, int); void spx_stats(u_long, const char *, int, int); -void ipx_stats(u_long, const char *, int, int); +void ipx_stats(const struct stat_type *); void ipxerr_stats(u_long, const char *, int, int); void nsprotopr(u_long, const char *, int, int); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipx.c#3 (text+ko) ==== @@ -230,25 +230,26 @@ * Dump IPX statistics structure. */ void -ipx_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +ipx_stats(const struct stat_type *sttp) { - struct ipxstat ipxstat; - - if (off == 0) - return; - kread(off, (char *)&ipxstat, sizeof (ipxstat)); - printf("%s:\n", name); - ANYl(ipxstat.ipxs_total, "total packet", " received"); - ANYl(ipxstat.ipxs_badsum, "packet", " with bad checksums"); - ANYl(ipxstat.ipxs_tooshort, "packet", " smaller than advertised"); - ANYl(ipxstat.ipxs_toosmall, "packet", " smaller than a header"); - ANYl(ipxstat.ipxs_forward, "packet", " forwarded"); - ANYl(ipxstat.ipxs_cantforward, "packet", " not forwardable"); - ANYl(ipxstat.ipxs_delivered, "packet", " for this host"); - ANYl(ipxstat.ipxs_localout, "packet", " sent from this host"); - ANYl(ipxstat.ipxs_odropped, "packet", " dropped due to no bufs, etc."); - ANYl(ipxstat.ipxs_noroute, "packet", " discarded due to no route"); - ANYl(ipxstat.ipxs_mtutoosmall, "packet", " too big"); + const struct ipx_stat *s; +#define p(x,y,z) \ + if (netstat_ipxs_get_##x(s) || sflag <= 1) \ + printf("\t%ju %s%s%s\n", netstat_ipxs_get_##x(s), y, \ + plural(netstat_ipxs_get_##x(s)), z) + s = netstat_get_ipxstats(sttp); + p(total, "total packet", " received"); + p(badsum, "packet", " with bad checksums"); + p(tooshort, "packet", " smaller than advertised"); + p(toosmall, "packet", " smaller than a header"); + p(forward, "packet", " forwarded"); + p(cantforward, "packet", " not forwardable"); + p(delivered, "packet", " for this host"); + p(localout, "packet", " sent from this host"); + p(odropped, "packet", " dropped due to no bufs, etc."); + p(noroute, "packet", " discarded due to no route"); + p(mtutoosmall, "packet", " too big"); +#undef p } #ifdef IPXERRORMSGS ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#31 (text+ko) ==== @@ -89,39 +89,37 @@ { .n_name = "_viftable" }, #define N_IPX 5 { .n_name = "_ipxpcb_list"}, -#define N_IPXSTAT 6 - { .n_name = "_ipxstat"}, -#define N_SPXSTAT 7 +#define N_SPXSTAT 6 { .n_name = "_spx_istat"}, -#define N_DDPCB 8 +#define N_DDPCB 7 { .n_name = "_ddpcb"}, -#define N_NGSOCKS 9 +#define N_NGSOCKS 8 { .n_name = "_ngsocklist"}, -#define N_IP6STAT 10 +#define N_IP6STAT 9 { .n_name = "_ip6stat" }, -#define N_IPSECSTAT 11 +#define N_IPSECSTAT 10 { .n_name = "_ipsec4stat" }, -#define N_IPSEC6STAT 12 +#define N_IPSEC6STAT 11 { .n_name = "_ipsec6stat" }, -#define N_MRT6STAT 13 +#define N_MRT6STAT 12 { .n_name = "_mrt6stat" }, -#define N_MF6CTABLE 14 +#define N_MF6CTABLE 13 { .n_name = "_mf6ctable" }, -#define N_MIF6TABLE 15 +#define N_MIF6TABLE 14 { .n_name = "_mif6table" }, -#define N_PFKEYSTAT 16 +#define N_PFKEYSTAT 15 { .n_name = "_pfkeystat" }, -#define N_RTTRASH 17 +#define N_RTTRASH 16 { .n_name = "_rttrash" }, -#define N_PFSYNCSTAT 18 +#define N_PFSYNCSTAT 17 { .n_name = "_pfsyncstats" }, -#define N_AHSTAT 19 +#define N_AHSTAT 18 { .n_name = "_ahstat" }, -#define N_ESPSTAT 20 +#define N_ESPSTAT 19 { .n_name = "_espstat" }, -#define N_IPCOMPSTAT 21 +#define N_IPCOMPSTAT 20 { .n_name = "_ipcompstat" }, -#define N_MFCTABLESIZE 22 +#define N_MFCTABLESIZE 21 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -229,8 +227,8 @@ #endif #ifdef IPX struct protox ipxprotox[] = { - { N_IPX, N_IPXSTAT, 1, ipxprotopr, NULL, stat_MAX, - ipx_stats, NULL, "ipx", 0, 0 }, + { N_IPX, 0, 1, ipxprotopr, ipx_stats, stat_IPX, + NULL, NULL, "ipx", 0, 0 }, { N_IPX, N_SPXSTAT, 1, ipxprotopr, NULL, stat_MAX, spx_stats, NULL, "spx", 0, 0 }, { -1, -1, 0, NULL, NULL, stat_MAX, From owner-p4-projects@FreeBSD.ORG Thu Jul 30 18:01:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 69F701065673; Thu, 30 Jul 2009 18:01:03 +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 281131065672 for ; Thu, 30 Jul 2009 18:01:03 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EFE288FC0C for ; Thu, 30 Jul 2009 18:01:02 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UI12vU001039 for ; Thu, 30 Jul 2009 18:01:02 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UI12dv001037 for perforce@freebsd.org; Thu, 30 Jul 2009 18:01:02 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 30 Jul 2009 18:01:02 GMT Message-Id: <200907301801.n6UI12dv001037@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 166819 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 18:01:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=166819 Change 166819 by truncs@aditya on 2009/07/30 18:00:45 New header for dir structures. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_dir.h#2 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_dir.h#2 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Thu Jul 30 18:19:24 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E3C951065673; Thu, 30 Jul 2009 18:19: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 86C6B106566B for ; Thu, 30 Jul 2009 18:19:23 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6A2328FC12 for ; Thu, 30 Jul 2009 18:19:23 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UIJNxm004054 for ; Thu, 30 Jul 2009 18:19:23 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UIJMvH004052 for perforce@freebsd.org; Thu, 30 Jul 2009 18:19:22 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 30 Jul 2009 18:19:22 GMT Message-Id: <200907301819.n6UIJMvH004052@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 166820 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 18:19:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=166820 Change 166820 by truncs@aditya on 2009/07/30 18:18:27 Move the on disk inode to new header to make it look cleaner. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_dinode.h#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_dir.h#3 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#31 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode_cnv.c#7 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_dir.h#3 (text+ko) ==== @@ -77,4 +77,5 @@ #define EXT2_DIR_ROUND (EXT2_DIR_PAD - 1) #define EXT2_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT2_DIR_ROUND) & \ ~EXT2_DIR_ROUND) -#endif +#endif /* !_SYS_GNU_EXT2FS_EXT2_DIR_H_ */ + ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#31 (text+ko) ==== @@ -193,56 +193,6 @@ #define EXT2_MAXSYMLINKLEN (EXT2_N_BLOCKS * sizeof (uint32_t)) /* - * Inode flags - * The current implementation uses only EXT2_IMMUTABLE and EXT2_APPEND flags - */ -#define EXT2_SECRM 0x00000001 /* Secure deletion */ -#define EXT2_UNRM 0x00000002 /* Undelete */ -#define EXT2_COMPR 0x00000004 /* Compress file */ -#define EXT2_SYNC 0x00000008 /* Synchronous updates */ -#define EXT2_IMMUTABLE 0x00000010 /* Immutable file */ -#define EXT2_APPEND 0x00000020 /* writes to file may only append */ -#define EXT2_NODUMP 0x00000040 /* do not dump file */ -#define EXT2_NOATIME 0x00000080 /* do not update atime */ - - -/* - * Structure of an inode on the disk - */ -struct ext2fs_dinode { - u_int16_t e2di_mode; /* 0: IFMT, permissions; see below. */ - u_int16_t e2di_uid; /* 2: Owner UID */ - u_int32_t e2di_size; /* 4: Size (in bytes) */ - u_int32_t e2di_atime; /* 8: Acces time */ - u_int32_t e2di_ctime; /* 12: Create time */ - u_int32_t e2di_mtime; /* 16: Modification time */ - u_int32_t e2di_dtime; /* 20: Deletion time */ - u_int16_t e2di_gid; /* 24: Owner GID */ - u_int16_t e2di_nlink; /* 26: File link count */ - u_int32_t e2di_nblock; /* 28: Blocks count */ - u_int32_t e2di_flags; /* 32: Status flags (chflags) */ - u_int32_t e2di_linux_reserved1; /* 36 */ - u_int32_t e2di_blocks[EXT2_N_BLOCKS]; /* 40: disk blocks */ - u_int32_t e2di_gen; /* 100: generation number */ - u_int32_t e2di_facl; /* 104: file ACL (not implemented) */ - u_int32_t e2di_dacl; /* 108: dir ACL (not implemented) */ - u_int32_t e2di_faddr; /* 112: fragment address */ - u_int8_t e2di_nfrag; /* 116: fragment number */ - u_int8_t e2di_fsize; /* 117: fragment size */ - u_int16_t e2di_linux_reserved2; /* 118 */ - u_int16_t e2di_uid_high; /* 120: Owner UID top 16 bits */ - u_int16_t e2di_gid_high; /* 122: Owner GID top 16 bits */ - u_int32_t e2di_linux_reserved3; /* 124 */ -}; - - - -#define e2di_size_high e2di_dacl - - - - -/* * Super block for an ext2fs file system. */ struct ext2fs { ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode_cnv.c#7 (text+ko) ==== @@ -34,6 +34,7 @@ #include #include #include +#include void ext2_print_inode( in ) From owner-p4-projects@FreeBSD.ORG Thu Jul 30 18:31:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2F7531065672; Thu, 30 Jul 2009 18:31:37 +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 E3986106566C for ; Thu, 30 Jul 2009 18:31:36 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D1C728FC0C for ; Thu, 30 Jul 2009 18:31:36 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UIVaWk005373 for ; Thu, 30 Jul 2009 18:31:36 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UIVaRB005371 for perforce@freebsd.org; Thu, 30 Jul 2009 18:31:36 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 18:31:36 GMT Message-Id: <200907301831.n6UIVaRB005371@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166822 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 18:31:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=166822 Change 166822 by pgj@petymeg-current on 2009/07/30 18:31:35 - Standardize and add header for SPX statistics. - Expose SPX statistics via sysctl(3) [net.ipx.spx.stats]. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netipx/spx_usrreq.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netipx/spx_var.h#3 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipx/spx_usrreq.c#3 (text+ko) ==== @@ -65,6 +65,7 @@ #include __FBSDID("$FreeBSD: src/sys/netipx/spx_usrreq.c,v 1.96 2009/05/25 11:52:33 rwatson Exp $"); +#include #include #include #include @@ -77,9 +78,13 @@ #include #include #include +#include +#include +#include #include #include +#include #include #include @@ -97,8 +102,17 @@ u_short spx_newchecks[50]; static int spx_hardnosed; static int traceallspxs = 0; +struct stat_header spx_istat_header = { + .sth_version = SPXSTAT_VERSION, + .sth_len = sizeof(struct spx_istat) +}; struct spx_istat spx_istat; +SYSCTL_STRUCT(_net_ipx_spx, OID_AUTO, stats, CTLFLAG_RW, &spx_istat, + spx_istat, "SPX Statistics (struct spx_istat, netipx/spx_var.h)"); +SYSCTL_STRUCT(_net_ipx_spx, OID_AUTO, stats_header, CTLFLAG_RD, + &spx_istat_header, stat_header, "SPX Statistics header"); + #define SPX_LOCK_INIT() mtx_init(&spx_mtx, "spx_mtx", NULL, MTX_DEF) #define SPX_LOCK() mtx_lock(&spx_mtx) #define SPX_UNLOCK() mtx_unlock(&spx_mtx) ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipx/spx_var.h#3 (text+ko) ==== @@ -64,71 +64,73 @@ #ifndef _NETIPX_SPX_VAR_H_ #define _NETIPX_SPX_VAR_H_ +#define SPXSTAT_VERSION 0x00000001 + struct spxstat { - long spxs_connattempt; /* connections initiated */ - long spxs_accepts; /* connections accepted */ - long spxs_connects; /* connections established */ - long spxs_drops; /* connections dropped */ - long spxs_conndrops; /* embryonic connections dropped */ - long spxs_closed; /* conn. closed (includes drops) */ - long spxs_segstimed; /* segs where we tried to get rtt */ - long spxs_rttupdated; /* times we succeeded */ - long spxs_delack; /* delayed acks sent */ - long spxs_timeoutdrop; /* conn. dropped in rxmt timeout */ - long spxs_rexmttimeo; /* retransmit timeouts */ - long spxs_persisttimeo; /* persist timeouts */ - long spxs_keeptimeo; /* keepalive timeouts */ - long spxs_keepprobe; /* keepalive probes sent */ - long spxs_keepdrops; /* connections dropped in keepalive */ + u_int64_t spxs_connattempt; /* connections initiated */ + u_int64_t spxs_accepts; /* connections accepted */ + u_int64_t spxs_connects; /* connections established */ + u_int64_t spxs_drops; /* connections dropped */ + u_int64_t spxs_conndrops; /* embryonic connections dropped */ + u_int64_t spxs_closed; /* conn. closed (includes drops) */ + u_int64_t spxs_segstimed; /* segs where we tried to get rtt */ + u_int64_t spxs_rttupdated; /* times we succeeded */ + u_int64_t spxs_delack; /* delayed acks sent */ + u_int64_t spxs_timeoutdrop; /* conn. dropped in rxmt timeout */ + u_int64_t spxs_rexmttimeo; /* retransmit timeouts */ + u_int64_t spxs_persisttimeo; /* persist timeouts */ + u_int64_t spxs_keeptimeo; /* keepalive timeouts */ + u_int64_t spxs_keepprobe; /* keepalive probes sent */ + u_int64_t spxs_keepdrops; /* connections dropped in keepalive */ - long spxs_sndtotal; /* total packets sent */ - long spxs_sndpack; /* data packets sent */ - long spxs_sndbyte; /* data bytes sent */ - long spxs_sndrexmitpack; /* data packets retransmitted */ - long spxs_sndrexmitbyte; /* data bytes retransmitted */ - long spxs_sndacks; /* ack-only packets sent */ - long spxs_sndprobe; /* window probes sent */ - long spxs_sndurg; /* packets sent with URG only */ - long spxs_sndwinup; /* window update-only packets sent */ - long spxs_sndctrl; /* control (SYN|FIN|RST) packets sent */ - long spxs_sndvoid; /* couldn't find requested packet*/ + u_int64_t spxs_sndtotal; /* total packets sent */ + u_int64_t spxs_sndpack; /* data packets sent */ + u_int64_t spxs_sndbyte; /* data bytes sent */ + u_int64_t spxs_sndrexmitpack; /* data packets retransmitted */ + u_int64_t spxs_sndrexmitbyte; /* data bytes retransmitted */ + u_int64_t spxs_sndacks; /* ack-only packets sent */ + u_int64_t spxs_sndprobe; /* window probes sent */ + u_int64_t spxs_sndurg; /* packets sent with URG only */ + u_int64_t spxs_sndwinup; /* window update-only packets sent */ + u_int64_t spxs_sndctrl; /* control (SYN|FIN|RST) packets sent */ + u_int64_t spxs_sndvoid; /* couldn't find requested packet*/ - long spxs_rcvtotal; /* total packets received */ - long spxs_rcvpack; /* packets received in sequence */ - long spxs_rcvbyte; /* bytes received in sequence */ - long spxs_rcvbadsum; /* packets received with ccksum errs */ - long spxs_rcvbadoff; /* packets received with bad offset */ - long spxs_rcvshort; /* packets received too short */ - long spxs_rcvduppack; /* duplicate-only packets received */ - long spxs_rcvdupbyte; /* duplicate-only bytes received */ - long spxs_rcvpartduppack; /* packets with some duplicate data */ - long spxs_rcvpartdupbyte; /* dup. bytes in part-dup. packets */ - long spxs_rcvoopack; /* out-of-order packets received */ - long spxs_rcvoobyte; /* out-of-order bytes received */ - long spxs_rcvpackafterwin; /* packets with data after window */ - long spxs_rcvbyteafterwin; /* bytes rcvd after window */ - long spxs_rcvafterclose; /* packets rcvd after "close" */ - long spxs_rcvwinprobe; /* rcvd window probe packets */ - long spxs_rcvdupack; /* rcvd duplicate acks */ - long spxs_rcvacktoomuch; /* rcvd acks for unsent data */ - long spxs_rcvackpack; /* rcvd ack packets */ - long spxs_rcvackbyte; /* bytes acked by rcvd acks */ - long spxs_rcvwinupd; /* rcvd window update packets */ + u_int64_t spxs_rcvtotal; /* total packets received */ + u_int64_t spxs_rcvpack; /* packets received in sequence */ + u_int64_t spxs_rcvbyte; /* bytes received in sequence */ + u_int64_t spxs_rcvbadsum; /* packets received with ccksum errs */ + u_int64_t spxs_rcvbadoff; /* packets received with bad offset */ + u_int64_t spxs_rcvshort; /* packets received too short */ + u_int64_t spxs_rcvduppack; /* duplicate-only packets received */ + u_int64_t spxs_rcvdupbyte; /* duplicate-only bytes received */ + u_int64_t spxs_rcvpartduppack; /* packets with some duplicate data */ + u_int64_t spxs_rcvpartdupbyte; /* dup. bytes in part-dup. packets */ + u_int64_t spxs_rcvoopack; /* out-of-order packets received */ + u_int64_t spxs_rcvoobyte; /* out-of-order bytes received */ + u_int64_t spxs_rcvpackafterwin; /* packets with data after window */ + u_int64_t spxs_rcvbyteafterwin; /* bytes rcvd after window */ + u_int64_t spxs_rcvafterclose; /* packets rcvd after "close" */ + u_int64_t spxs_rcvwinprobe; /* rcvd window probe packets */ + u_int64_t spxs_rcvdupack; /* rcvd duplicate acks */ + u_int64_t spxs_rcvacktoomuch; /* rcvd acks for unsent data */ + u_int64_t spxs_rcvackpack; /* rcvd ack packets */ + u_int64_t spxs_rcvackbyte; /* bytes acked by rcvd acks */ + u_int64_t spxs_rcvwinupd; /* rcvd window update packets */ }; struct spx_istat { - short hdrops; - short badsum; - short badlen; - short slotim; - short fastim; - short nonucn; - short noconn; - short notme; - short wrncon; - short bdreas; - short gonawy; - short notyet; - short lstdup; + u_int64_t hdrops; + u_int64_t badsum; + u_int64_t badlen; + u_int64_t slotim; + u_int64_t fastim; + u_int64_t nonucn; + u_int64_t noconn; + u_int64_t notme; + u_int64_t wrncon; + u_int64_t bdreas; + u_int64_t gonawy; + u_int64_t notyet; + u_int64_t lstdup; struct spxstat newstats; }; @@ -144,6 +146,11 @@ #define SSEQ_GEQ(a,b) (((short)((a)-(b))) >= 0) #ifdef _KERNEL + +#ifdef SYSCTL_DECL +SYSCTL_DECL(_net_ipx_spx); +#endif + /* Following was struct spxstat spxstat; */ #ifndef spxstat #define spxstat spx_istat.newstats From owner-p4-projects@FreeBSD.ORG Thu Jul 30 18:32:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CF328106564A; Thu, 30 Jul 2009 18:32:39 +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 86996106566B for ; Thu, 30 Jul 2009 18:32:38 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 74A408FC19 for ; Thu, 30 Jul 2009 18:32:38 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UIWb2c005472 for ; Thu, 30 Jul 2009 18:32:37 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UIWbac005470 for perforce@freebsd.org; Thu, 30 Jul 2009 18:32:37 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 18:32:37 GMT Message-Id: <200907301832.n6UIWbac005470@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166823 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 18:32:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=166823 Change 166823 by pgj@petymeg-current on 2009/07/30 18:32:13 Add (optional) support for SPX statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#47 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#44 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#14 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#52 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#47 (text+ko) ==== @@ -133,6 +133,7 @@ #endif #ifdef IPX stat_IPX, + stat_SPX, #endif stat_MAX, stat_Invalid, @@ -179,6 +180,7 @@ #endif #ifdef IPX struct ipx_stat; +struct spx_stat; #endif __BEGIN_DECLS @@ -813,5 +815,68 @@ u_int64_t netstat_ipxs_get_odropped(const struct ipx_stat *); u_int64_t netstat_ipxs_get_noroute(const struct ipx_stat *); u_int64_t netstat_ipxs_get_mtutoosmall(const struct ipx_stat *); + +const struct spx_stat *netstat_get_spxstats(const struct stat_type *); + +u_int64_t netstat_spxs_get_connattempt(const struct spx_stat *); +u_int64_t netstat_spxs_get_accepts(const struct spx_stat *); +u_int64_t netstat_spxs_get_connects(const struct spx_stat *); +u_int64_t netstat_spxs_get_drops(const struct spx_stat *); +u_int64_t netstat_spxs_get_conndrops(const struct spx_stat *); +u_int64_t netstat_spxs_get_closed(const struct spx_stat *); +u_int64_t netstat_spxs_get_segstimed(const struct spx_stat *); +u_int64_t netstat_spxs_get_rttupdated(const struct spx_stat *); +u_int64_t netstat_spxs_get_delack(const struct spx_stat *); +u_int64_t netstat_spxs_get_timeoutdrop(const struct spx_stat *); +u_int64_t netstat_spxs_get_rexmttimeo(const struct spx_stat *); +u_int64_t netstat_spxs_get_persisttimeo(const struct spx_stat *); +u_int64_t netstat_spxs_get_keeptimeo(const struct spx_stat *); +u_int64_t netstat_spxs_get_keepprobe(const struct spx_stat *); +u_int64_t netstat_spxs_get_keepdrops(const struct spx_stat *); +u_int64_t netstat_spxs_get_sndtotal(const struct spx_stat *); +u_int64_t netstat_spxs_get_sndpack(const struct spx_stat *); +u_int64_t netstat_spxs_get_sndbyte(const struct spx_stat *); +u_int64_t netstat_spxs_get_sndrexmitpack(const struct spx_stat *); +u_int64_t netstat_spxs_get_sndrexmitbyte(const struct spx_stat *); +u_int64_t netstat_spxs_get_sndacks(const struct spx_stat *); +u_int64_t netstat_spxs_get_sndprobe(const struct spx_stat *); +u_int64_t netstat_spxs_get_sndurg(const struct spx_stat *); +u_int64_t netstat_spxs_get_sndwinup(const struct spx_stat *); +u_int64_t netstat_spxs_get_sndctrl(const struct spx_stat *); +u_int64_t netstat_spxs_get_sndvoid(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvtotal(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvpack(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvbyte(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvbadsum(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvbadoff(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvshort(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvduppack(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvdupbyte(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvpartduppack(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvpartdupbyte(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvoopack(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvoobyte(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvpackafterwin(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvbyteafterwin(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvafterclose(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvwinprobe(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvdupack(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvacktoomuch(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvackpack(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvackbyte(const struct spx_stat *); +u_int64_t netstat_spxs_get_rcvwinupd(const struct spx_stat *); +u_int64_t netstat_spxs_get_hdrops(const struct spx_stat *); +u_int64_t netstat_spxs_get_badsum(const struct spx_stat *); +u_int64_t netstat_spxs_get_badlen(const struct spx_stat *); +u_int64_t netstat_spxs_get_slotim(const struct spx_stat *); +u_int64_t netstat_spxs_get_fastim(const struct spx_stat *); +u_int64_t netstat_spxs_get_nonucn(const struct spx_stat *); +u_int64_t netstat_spxs_get_noconn(const struct spx_stat *); +u_int64_t netstat_spxs_get_notme(const struct spx_stat *); +u_int64_t netstat_spxs_get_wrncon(const struct spx_stat *); +u_int64_t netstat_spxs_get_bdreas(const struct spx_stat *); +u_int64_t netstat_spxs_get_gonawy(const struct spx_stat *); +u_int64_t netstat_spxs_get_notyet(const struct spx_stat *); +u_int64_t netstat_spxs_get_lstdup(const struct spx_stat *); #endif /* !IPX */ #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#44 (text+ko) ==== @@ -61,6 +61,7 @@ #endif #ifdef IPX #include +#include #endif #include "netstat.h" @@ -355,6 +356,10 @@ struct ipx_stat { struct ipxstat s; }; + +struct spx_stat { + struct spx_istat s; +}; #endif /* Timestamp type. */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#14 (text+ko) ==== @@ -44,6 +44,7 @@ #endif #ifdef IPX #include +#include #endif #include @@ -82,6 +83,7 @@ #endif #ifdef IPX { IPXSTAT_VERSION, "net.ipx.ipx.stats", "_ipxstat" }, + { SPXSTAT_VERSION, "net.ipx.spx.stats", "_spx_istat" }, #endif }; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#52 (text+ko) ==== @@ -1771,6 +1771,76 @@ IPX_ACC(noroute); IPX_ACC(mtutoosmall); #undef IPX_ACC + +#define SPX_ACC(field) \ + STATS_ACCX(u_int64_t,spx,field,newstats.spxs_##field) + +#define SPX_ACC1(field) \ + STATS_ACCX(u_int64_t,spx,field,field) + +STATS_GET(spx,SPX); +SPX_ACC(connattempt); +SPX_ACC(accepts); +SPX_ACC(connects); +SPX_ACC(drops); +SPX_ACC(conndrops); +SPX_ACC(closed); +SPX_ACC(segstimed); +SPX_ACC(rttupdated); +SPX_ACC(delack); +SPX_ACC(timeoutdrop); +SPX_ACC(rexmttimeo); +SPX_ACC(persisttimeo); +SPX_ACC(keeptimeo); +SPX_ACC(keepprobe); +SPX_ACC(keepdrops); +SPX_ACC(sndtotal); +SPX_ACC(sndpack); +SPX_ACC(sndbyte); +SPX_ACC(sndrexmitpack); +SPX_ACC(sndrexmitbyte); +SPX_ACC(sndacks); +SPX_ACC(sndprobe); +SPX_ACC(sndurg); +SPX_ACC(sndwinup); +SPX_ACC(sndctrl); +SPX_ACC(sndvoid); +SPX_ACC(rcvtotal); +SPX_ACC(rcvpack); +SPX_ACC(rcvbyte); +SPX_ACC(rcvbadsum); +SPX_ACC(rcvbadoff); +SPX_ACC(rcvshort); +SPX_ACC(rcvduppack); +SPX_ACC(rcvdupbyte); +SPX_ACC(rcvpartduppack); +SPX_ACC(rcvpartdupbyte); +SPX_ACC(rcvoopack); +SPX_ACC(rcvoobyte); +SPX_ACC(rcvpackafterwin); +SPX_ACC(rcvbyteafterwin); +SPX_ACC(rcvafterclose); +SPX_ACC(rcvwinprobe); +SPX_ACC(rcvdupack); +SPX_ACC(rcvacktoomuch); +SPX_ACC(rcvackpack); +SPX_ACC(rcvackbyte); +SPX_ACC(rcvwinupd); +SPX_ACC1(hdrops); +SPX_ACC1(badsum); +SPX_ACC1(badlen); +SPX_ACC1(slotim); +SPX_ACC1(fastim); +SPX_ACC1(nonucn); +SPX_ACC1(noconn); +SPX_ACC1(notme); +SPX_ACC1(wrncon); +SPX_ACC1(bdreas); +SPX_ACC1(gonawy); +SPX_ACC1(notyet); +SPX_ACC1(lstdup); +#undef SPX_ACC +#undef SPX_ACC1 #endif /* !IPX */ static const char *icmpnames[ICMP_MAXTYPE + 1] = { From owner-p4-projects@FreeBSD.ORG Thu Jul 30 18:33:39 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A72EF10656F4; Thu, 30 Jul 2009 18:33:39 +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 6273210656FF for ; Thu, 30 Jul 2009 18:33:39 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4E6138FC26 for ; Thu, 30 Jul 2009 18:33:39 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UIXdX2005610 for ; Thu, 30 Jul 2009 18:33:39 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UIXdKG005608 for perforce@freebsd.org; Thu, 30 Jul 2009 18:33:39 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 18:33:39 GMT Message-Id: <200907301833.n6UIXdKG005608@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166824 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 18:33:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=166824 Change 166824 by pgj@petymeg-current on 2009/07/30 18:33:01 Libnetstatify SPX statistics in netstat(1). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#24 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipx.c#4 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#32 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#24 (text+ko) ==== @@ -138,7 +138,7 @@ void routepr(u_long); void ipxprotopr(u_long, const char *, int, int); -void spx_stats(u_long, const char *, int, int); +void spx_stats(const struct stat_type *); void ipx_stats(const struct stat_type *); void ipxerr_stats(u_long, const char *, int, int); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipx.c#4 (text+ko) ==== @@ -154,76 +154,72 @@ * Dump SPX statistics structure. */ void -spx_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +spx_stats(const struct stat_type *sttp) { - struct spx_istat spx_istat; -#define spxstat spx_istat.newstats + const struct spx_stat *s; - if (off == 0) - return; - kread(off, (char *)&spx_istat, sizeof (spx_istat)); - printf("%s:\n", name); - ANY(spx_istat.nonucn, "connection", " dropped due to no new sockets "); - ANY(spx_istat.gonawy, "connection", " terminated due to our end dying"); - ANY(spx_istat.nonucn, "connection", - " dropped due to inability to connect"); - ANY(spx_istat.noconn, "connection", - " dropped due to inability to connect"); - ANY(spx_istat.notme, "connection", - " incompleted due to mismatched id's"); - ANY(spx_istat.wrncon, "connection", " dropped due to mismatched id's"); - ANY(spx_istat.bdreas, "packet", " dropped out of sequence"); - ANY(spx_istat.lstdup, "packet", " duplicating the highest packet"); - ANY(spx_istat.notyet, "packet", " refused as exceeding allocation"); - ANYl(spxstat.spxs_connattempt, "connection", " initiated"); - ANYl(spxstat.spxs_accepts, "connection", " accepted"); - ANYl(spxstat.spxs_connects, "connection", " established"); - ANYl(spxstat.spxs_drops, "connection", " dropped"); - ANYl(spxstat.spxs_conndrops, "embryonic connection", " dropped"); - ANYl(spxstat.spxs_closed, "connection", " closed (includes drops)"); - ANYl(spxstat.spxs_segstimed, "packet", " where we tried to get rtt"); - ANYl(spxstat.spxs_rttupdated, "time", " we got rtt"); - ANYl(spxstat.spxs_delack, "delayed ack", " sent"); - ANYl(spxstat.spxs_timeoutdrop, "connection", - " dropped in rxmt timeout"); - ANYl(spxstat.spxs_rexmttimeo, "retransmit timeout", ""); - ANYl(spxstat.spxs_persisttimeo, "persist timeout", ""); - ANYl(spxstat.spxs_keeptimeo, "keepalive timeout", ""); - ANYl(spxstat.spxs_keepprobe, "keepalive probe", " sent"); - ANYl(spxstat.spxs_keepdrops, "connection", " dropped in keepalive"); - ANYl(spxstat.spxs_sndtotal, "total packet", " sent"); - ANYl(spxstat.spxs_sndpack, "data packet", " sent"); - ANYl(spxstat.spxs_sndbyte, "data byte", " sent"); - ANYl(spxstat.spxs_sndrexmitpack, "data packet", " retransmitted"); - ANYl(spxstat.spxs_sndrexmitbyte, "data byte", " retransmitted"); - ANYl(spxstat.spxs_sndacks, "ack-only packet", " sent"); - ANYl(spxstat.spxs_sndprobe, "window probe", " sent"); - ANYl(spxstat.spxs_sndurg, "packet", " sent with URG only"); - ANYl(spxstat.spxs_sndwinup, "window update-only packet", " sent"); - ANYl(spxstat.spxs_sndctrl, "control (SYN|FIN|RST) packet", " sent"); - ANYl(spxstat.spxs_sndvoid, "request", " to send a non-existant packet"); - ANYl(spxstat.spxs_rcvtotal, "total packet", " received"); - ANYl(spxstat.spxs_rcvpack, "packet", " received in sequence"); - ANYl(spxstat.spxs_rcvbyte, "byte", " received in sequence"); - ANYl(spxstat.spxs_rcvbadsum, "packet", " received with ccksum errs"); - ANYl(spxstat.spxs_rcvbadoff, "packet", " received with bad offset"); - ANYl(spxstat.spxs_rcvshort, "packet", " received too short"); - ANYl(spxstat.spxs_rcvduppack, "duplicate-only packet", " received"); - ANYl(spxstat.spxs_rcvdupbyte, "duplicate-only byte", " received"); - ANYl(spxstat.spxs_rcvpartduppack, "packet", - " with some duplicate data"); - ANYl(spxstat.spxs_rcvpartdupbyte, "dup. byte", " in part-dup. packet"); - ANYl(spxstat.spxs_rcvoopack, "out-of-order packet", " received"); - ANYl(spxstat.spxs_rcvoobyte, "out-of-order byte", " received"); - ANYl(spxstat.spxs_rcvpackafterwin, "packet", " with data after window"); - ANYl(spxstat.spxs_rcvbyteafterwin, "byte", " rcvd after window"); - ANYl(spxstat.spxs_rcvafterclose, "packet", " rcvd after 'close'"); - ANYl(spxstat.spxs_rcvwinprobe, "rcvd window probe packet", ""); - ANYl(spxstat.spxs_rcvdupack, "rcvd duplicate ack", ""); - ANYl(spxstat.spxs_rcvacktoomuch, "rcvd ack", " for unsent data"); - ANYl(spxstat.spxs_rcvackpack, "rcvd ack packet", ""); - ANYl(spxstat.spxs_rcvackbyte, "byte", " acked by rcvd acks"); - ANYl(spxstat.spxs_rcvwinupd, "rcvd window update packet", ""); + s = netstat_get_spxstats(sttp); +#define p(x,y,z) \ + if (netstat_spxs_get_##x(s) || sflag <= 1) \ + printf("\t%ju %s%s%s\n", netstat_spxs_get_##x(s), y, \ + plural(netstat_spxs_get_##x(s)), z) + p(nonucn, "connection", " dropped due to no new sockets "); + p(gonawy, "connection", " terminated due to our end dying"); + p(nonucn, "connection", " dropped due to inability to connect"); + p(noconn, "connection", " dropped due to inability to connect"); + p(notme, "connection", " incompleted due to mismatched id's"); + p(wrncon, "connection", " dropped due to mismatched id's"); + p(bdreas, "packet", " dropped out of sequence"); + p(lstdup, "packet", " duplicating the highest packet"); + p(notyet, "packet", " refused as exceeding allocation"); + p(connattempt, "connection", " initiated"); + p(accepts, "connection", " accepted"); + p(connects, "connection", " established"); + p(drops, "connection", " dropped"); + p(conndrops, "embryonic connection", " dropped"); + p(closed, "connection", " closed (includes drops)"); + p(segstimed, "packet", " where we tried to get rtt"); + p(rttupdated, "time", " we got rtt"); + p(delack, "delayed ack", " sent"); + p(timeoutdrop, "connection", " dropped in rxmt timeout"); + p(rexmttimeo, "retransmit timeout", ""); + p(persisttimeo, "persist timeout", ""); + p(keeptimeo, "keepalive timeout", ""); + p(keepprobe, "keepalive probe", " sent"); + p(keepdrops, "connection", " dropped in keepalive"); + p(sndtotal, "total packet", " sent"); + p(sndpack, "data packet", " sent"); + p(sndbyte, "data byte", " sent"); + p(sndrexmitpack, "data packet", " retransmitted"); + p(sndrexmitbyte, "data byte", " retransmitted"); + p(sndacks, "ack-only packet", " sent"); + p(sndprobe, "window probe", " sent"); + p(sndurg, "packet", " sent with URG only"); + p(sndwinup, "window update-only packet", " sent"); + p(sndctrl, "control (SYN|FIN|RST) packet", " sent"); + p(sndvoid, "request", " to send a non-existant packet"); + p(rcvtotal, "total packet", " received"); + p(rcvpack, "packet", " received in sequence"); + p(rcvbyte, "byte", " received in sequence"); + p(rcvbadsum, "packet", " received with ccksum errs"); + p(rcvbadoff, "packet", " received with bad offset"); + p(rcvshort, "packet", " received too short"); + p(rcvduppack, "duplicate-only packet", " received"); + p(rcvdupbyte, "duplicate-only byte", " received"); + p(rcvpartduppack, "packet", " with some duplicate data"); + p(rcvpartdupbyte, "dup. byte", " in part-dup. packet"); + p(rcvoopack, "out-of-order packet", " received"); + p(rcvoobyte, "out-of-order byte", " received"); + p(rcvpackafterwin, "packet", " with data after window"); + p(rcvbyteafterwin, "byte", " rcvd after window"); + p(rcvafterclose, "packet", " rcvd after 'close'"); + p(rcvwinprobe, "rcvd window probe packet", ""); + p(rcvdupack, "rcvd duplicate ack", ""); + p(rcvacktoomuch, "rcvd ack", " for unsent data"); + p(rcvackpack, "rcvd ack packet", ""); + p(rcvackbyte, "byte", " acked by rcvd acks"); + p(rcvwinupd, "rcvd window update packet", ""); +#undef p } /* ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#32 (text+ko) ==== @@ -89,37 +89,35 @@ { .n_name = "_viftable" }, #define N_IPX 5 { .n_name = "_ipxpcb_list"}, -#define N_SPXSTAT 6 - { .n_name = "_spx_istat"}, -#define N_DDPCB 7 +#define N_DDPCB 6 { .n_name = "_ddpcb"}, -#define N_NGSOCKS 8 +#define N_NGSOCKS 7 { .n_name = "_ngsocklist"}, -#define N_IP6STAT 9 +#define N_IP6STAT 8 { .n_name = "_ip6stat" }, -#define N_IPSECSTAT 10 +#define N_IPSECSTAT 9 { .n_name = "_ipsec4stat" }, -#define N_IPSEC6STAT 11 +#define N_IPSEC6STAT 10 { .n_name = "_ipsec6stat" }, -#define N_MRT6STAT 12 +#define N_MRT6STAT 11 { .n_name = "_mrt6stat" }, -#define N_MF6CTABLE 13 +#define N_MF6CTABLE 12 { .n_name = "_mf6ctable" }, -#define N_MIF6TABLE 14 +#define N_MIF6TABLE 13 { .n_name = "_mif6table" }, -#define N_PFKEYSTAT 15 +#define N_PFKEYSTAT 14 { .n_name = "_pfkeystat" }, -#define N_RTTRASH 16 +#define N_RTTRASH 15 { .n_name = "_rttrash" }, -#define N_PFSYNCSTAT 17 +#define N_PFSYNCSTAT 16 { .n_name = "_pfsyncstats" }, -#define N_AHSTAT 18 +#define N_AHSTAT 17 { .n_name = "_ahstat" }, -#define N_ESPSTAT 19 +#define N_ESPSTAT 18 { .n_name = "_espstat" }, -#define N_IPCOMPSTAT 20 +#define N_IPCOMPSTAT 19 { .n_name = "_ipcompstat" }, -#define N_MFCTABLESIZE 21 +#define N_MFCTABLESIZE 20 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -229,8 +227,8 @@ struct protox ipxprotox[] = { { N_IPX, 0, 1, ipxprotopr, ipx_stats, stat_IPX, NULL, NULL, "ipx", 0, 0 }, - { N_IPX, N_SPXSTAT, 1, ipxprotopr, NULL, stat_MAX, - spx_stats, NULL, "spx", 0, 0 }, + { N_IPX, 0, 1, ipxprotopr, spx_stats, stat_SPX, + NULL, NULL, "spx", 0, 0 }, { -1, -1, 0, NULL, NULL, stat_MAX, NULL, NULL, 0, 0, 0 } }; From owner-p4-projects@FreeBSD.ORG Thu Jul 30 18:43:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EF9021065675; Thu, 30 Jul 2009 18:43:50 +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 9C5921065673 for ; Thu, 30 Jul 2009 18:43:50 +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 892B98FC08 for ; Thu, 30 Jul 2009 18:43:50 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UIhoEE006714 for ; Thu, 30 Jul 2009 18:43:50 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UIholF006712 for perforce@freebsd.org; Thu, 30 Jul 2009 18:43:50 GMT (envelope-from trasz@freebsd.org) Date: Thu, 30 Jul 2009 18:43:50 GMT Message-Id: <200907301843.n6UIholF006712@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 Cc: Subject: PERFORCE change 166825 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 18:43:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=166825 Change 166825 by trasz@trasz_anger on 2009/07/30 18:43:44 Remove a change completely unrelated to project that has somehow snuck in. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/netipsec/key.c#7 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/netipsec/key.c#7 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/netipsec/key.c,v 1.61 2009/07/19 14:20:53 rwatson Exp $ */ +/* $FreeBSD: head/sys/netipsec/key.c 195760 2009-07-19 14:20:53Z rwatson $ */ /* $KAME: key.c,v 1.191 2001/06/27 10:46:49 sakane Exp $ */ /*- @@ -720,40 +720,6 @@ return sp; } -in_addr_t -key_find_src(const in_addr_t *dst) -{ - INIT_VNET_IPSEC(curvnet); - struct secpolicy *sp; - in_addr_t src = INADDR_ANY; - - SPTREE_LOCK(); - LIST_FOREACH(sp, &V_sptree[IPSEC_DIR_OUTBOUND], chain) { - - if (sp->state == IPSEC_SPSTATE_DEAD) - continue; - - if (sp->spidx.dir != IPSEC_DIR_OUTBOUND) - continue; - - if (sp->spidx.dst.sa.sa_family != AF_INET) - continue; - - if (key_bbcmp(&sp->spidx.dst.sin.sin_addr.s_addr, dst, sp->spidx.prefd)) - break; - } - - if (sp) { - /* sanity check */ - KEY_CHKSPDIR(sp->spidx.dir, IPSEC_DIR_OUTBOUND, __func__); - - src = sp->spidx.src.sin.sin_addr.s_addr; - } - SPTREE_UNLOCK(); - - return (src); -} - #if 0 /* * return a policy that matches this particular inbound packet. From owner-p4-projects@FreeBSD.ORG Thu Jul 30 19:26:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F1BBE1065675; Thu, 30 Jul 2009 19:26:37 +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 AF91B1065672 for ; Thu, 30 Jul 2009 19:26:37 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9DF3D8FC14 for ; Thu, 30 Jul 2009 19:26:37 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UJQbHR012283 for ; Thu, 30 Jul 2009 19:26:37 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UJQbnr012281 for perforce@freebsd.org; Thu, 30 Jul 2009 19:26:37 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 19:26:37 GMT Message-Id: <200907301926.n6UJQbnr012281@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166828 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 19:26:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=166828 Change 166828 by pgj@petymeg-current on 2009/07/30 19:25:47 Add header for pfsync statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/contrib/pf/net/if_pfsync.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/contrib/pf/net/if_pfsync.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/contrib/pf/net/if_pfsync.c#2 (text+ko) ==== @@ -91,6 +91,11 @@ #include #include +#ifdef __FreeBSD__ +#include +#include +#endif + #ifdef INET #include #include @@ -128,12 +133,21 @@ #endif struct pfsync_softc *pfsyncif = NULL; +#ifdef __FreeBSD__ +struct stat_header pfsyncstats_header = { + .sth_version = PFSYNCSTAT_VERSION, + .sth_len = sizeof(struct pfsyncstats) +}; +#endif struct pfsyncstats pfsyncstats; #ifdef __FreeBSD__ SYSCTL_DECL(_net_inet_pfsync); SYSCTL_STRUCT(_net_inet_pfsync, 0, stats, CTLFLAG_RW, &pfsyncstats, pfsyncstats, "PFSYNC statistics (struct pfsyncstats, net/if_pfsync.h)"); + +SYSCTL_STRUCT(_net_inet_pfsync, OID_AUTO, stats_header, CTLFLAG_RD, + &pfsyncstats_header, stat_header, "PFSYNC statistics header"); #endif void pfsyncattach(int); ==== //depot/projects/soc2009/pgj_libstat/src/sys/contrib/pf/net/if_pfsync.h#2 (text+ko) ==== @@ -249,6 +249,10 @@ #define PFSYNC_DFLTTL 255 +#ifdef __FreeBSD__ +#define PFSYNCSTAT_VERSION 0x00000001 +#endif + struct pfsyncstats { u_int64_t pfsyncs_ipackets; /* total input packets, IPv4 */ u_int64_t pfsyncs_ipackets6; /* total input packets, IPv6 */ From owner-p4-projects@FreeBSD.ORG Thu Jul 30 19:26:39 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BABC910656BC; Thu, 30 Jul 2009 19:26:38 +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 E90C21065673 for ; Thu, 30 Jul 2009 19:26:37 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D71D18FC15 for ; Thu, 30 Jul 2009 19:26:37 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UJQbFw012288 for ; Thu, 30 Jul 2009 19:26:37 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UJQb5r012286 for perforce@freebsd.org; Thu, 30 Jul 2009 19:26:37 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 19:26:37 GMT Message-Id: <200907301926.n6UJQb5r012286@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166829 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 19:26:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=166829 Change 166829 by pgj@petymeg-current on 2009/07/30 19:26:29 Add support for pfsync statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#48 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#45 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#15 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#53 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#48 (text+ko) ==== @@ -135,6 +135,7 @@ stat_IPX, stat_SPX, #endif + stat_pfsync, stat_MAX, stat_Invalid, }; @@ -182,6 +183,7 @@ struct ipx_stat; struct spx_stat; #endif +struct pfsync_stat; __BEGIN_DECLS const char *netstat_strerror(int); @@ -879,4 +881,23 @@ u_int64_t netstat_spxs_get_notyet(const struct spx_stat *); u_int64_t netstat_spxs_get_lstdup(const struct spx_stat *); #endif /* !IPX */ + +const struct pfsync_stat *netstat_get_pfsyncstats(const struct stat_type *); + +u_int64_t netstat_pfsyncs_get_ipackets(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_ipackets6(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_badif(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_badttl(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_hdrops(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_badver(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_badact(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_badlen(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_badauth(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_stale(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_badval(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_badstate(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_opackets(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_opackets6(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_onomem(const struct pfsync_stat *); +u_int64_t netstat_pfsyncs_get_oerrors(const struct pfsync_stat *); #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#45 (text+ko) ==== @@ -63,6 +63,8 @@ #include #include #endif +#include +#include #include "netstat.h" @@ -362,6 +364,10 @@ }; #endif +struct pfsync_stat { + struct pfsyncstats s; +}; + /* Timestamp type. */ struct timestamp_type { u_int32_t ts_sec; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#15 (text+ko) ==== @@ -85,6 +85,7 @@ { IPXSTAT_VERSION, "net.ipx.ipx.stats", "_ipxstat" }, { SPXSTAT_VERSION, "net.ipx.spx.stats", "_spx_istat" }, #endif + { PFSYNCSTAT_VERSION, "net.inet.pfsync.stats", "_pfsyncstats" }, }; int ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#53 (text+ko) ==== @@ -1843,6 +1843,28 @@ #undef SPX_ACC1 #endif /* !IPX */ +#define PFSYNC_ACC(field) \ + STATS_ACCX(u_int64_t,pfsync,field,pfsyncs_##field) + +STATS_GET(pfsync,pfsync); +PFSYNC_ACC(ipackets); +PFSYNC_ACC(ipackets6); +PFSYNC_ACC(badif); +PFSYNC_ACC(badttl); +PFSYNC_ACC(hdrops); +PFSYNC_ACC(badver); +PFSYNC_ACC(badact); +PFSYNC_ACC(badlen); +PFSYNC_ACC(badauth); +PFSYNC_ACC(stale); +PFSYNC_ACC(badval); +PFSYNC_ACC(badstate); +PFSYNC_ACC(opackets); +PFSYNC_ACC(opackets6); +PFSYNC_ACC(onomem); +PFSYNC_ACC(oerrors); +#undef PFSYNC_ACC + static const char *icmpnames[ICMP_MAXTYPE + 1] = { "echo reply", /* RFC 792 */ "#1", From owner-p4-projects@FreeBSD.ORG Thu Jul 30 19:28:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D67311065673; Thu, 30 Jul 2009 19:28:40 +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 7D7DD1065670 for ; Thu, 30 Jul 2009 19:28:40 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6ADC48FC13 for ; Thu, 30 Jul 2009 19:28:40 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UJSeXC012476 for ; Thu, 30 Jul 2009 19:28:40 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UJSeuN012474 for perforce@freebsd.org; Thu, 30 Jul 2009 19:28:40 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 19:28:40 GMT Message-Id: <200907301928.n6UJSeuN012474@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166830 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 19:28:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=166830 Change 166830 by pgj@petymeg-current on 2009/07/30 19:27:55 Use libnetstat(3) in netstat(1) for pfsync statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#25 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/if.c#4 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#33 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#25 (text+ko) ==== @@ -85,7 +85,7 @@ void igmp_stats(const struct stat_type *); void pim_stats(const struct stat_type *); void carp_stats(const struct stat_type *); -void pfsync_stats(u_long, const char *, int, int); +void pfsync_stats(const struct stat_type *); #ifdef IPSEC void ipsec_stats(u_long, const char *, int, int); void esp_stats(u_long, const char *, int, int); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/if.c#4 (text+ko) ==== @@ -86,46 +86,31 @@ * Dump pfsync statistics structure. */ void -pfsync_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +pfsync_stats(const struct stat_type *sttp) { - struct pfsyncstats pfsyncstat, zerostat; - size_t len = sizeof(struct pfsyncstats); + const struct pfsync_stat *s; - if (live) { - if (zflag) - memset(&zerostat, 0, len); - if (sysctlbyname("net.inet.pfsync.stats", &pfsyncstat, &len, - zflag ? &zerostat : NULL, zflag ? len : 0) < 0) { - if (errno != ENOENT) - warn("sysctl: net.inet.pfsync.stats"); - return; - } - } else - kread(off, &pfsyncstat, len); - - printf("%s:\n", name); - -#define p(f, m) if (pfsyncstat.f || sflag <= 1) \ - printf(m, (uintmax_t)pfsyncstat.f, plural(pfsyncstat.f)) -#define p2(f, m) if (pfsyncstat.f || sflag <= 1) \ - printf(m, (uintmax_t)pfsyncstat.f) - - p(pfsyncs_ipackets, "\t%ju packet%s received (IPv4)\n"); - p(pfsyncs_ipackets6, "\t%ju packet%s received (IPv6)\n"); - p(pfsyncs_badif, "\t\t%ju packet%s discarded for bad interface\n"); - p(pfsyncs_badttl, "\t\t%ju packet%s discarded for bad ttl\n"); - p(pfsyncs_hdrops, "\t\t%ju packet%s shorter than header\n"); - p(pfsyncs_badver, "\t\t%ju packet%s discarded for bad version\n"); - p(pfsyncs_badauth, "\t\t%ju packet%s discarded for bad HMAC\n"); - p(pfsyncs_badact,"\t\t%ju packet%s discarded for bad action\n"); - p(pfsyncs_badlen, "\t\t%ju packet%s discarded for short packet\n"); - p(pfsyncs_badval, "\t\t%ju state%s discarded for bad values\n"); - p(pfsyncs_stale, "\t\t%ju stale state%s\n"); - p(pfsyncs_badstate, "\t\t%ju failed state lookup/insert%s\n"); - p(pfsyncs_opackets, "\t%ju packet%s sent (IPv4)\n"); - p(pfsyncs_opackets6, "\t%ju packet%s sent (IPv6)\n"); - p2(pfsyncs_onomem, "\t\t%ju send failed due to mbuf memory error\n"); - p2(pfsyncs_oerrors, "\t\t%ju send error\n"); + s = netstat_get_pfsyncstats(sttp); +#define p(f, m) if (netstat_pfsyncs_get_##f(s) || sflag <= 1) \ + printf(m, netstat_pfsyncs_get_##f(s), plural(netstat_pfsyncs_get_##f(s))) +#define p2(f, m) if (netstat_pfsyncs_get_##f(s) || sflag <= 1) \ + printf(m, netstat_pfsyncs_get_##f(s)) + p(ipackets, "\t%ju packet%s received (IPv4)\n"); + p(ipackets6, "\t%ju packet%s received (IPv6)\n"); + p(badif, "\t\t%ju packet%s discarded for bad interface\n"); + p(badttl, "\t\t%ju packet%s discarded for bad ttl\n"); + p(hdrops, "\t\t%ju packet%s shorter than header\n"); + p(badver, "\t\t%ju packet%s discarded for bad version\n"); + p(badauth, "\t\t%ju packet%s discarded for bad HMAC\n"); + p(badact,"\t\t%ju packet%s discarded for bad action\n"); + p(badlen, "\t\t%ju packet%s discarded for short packet\n"); + p(badval, "\t\t%ju state%s discarded for bad values\n"); + p(stale, "\t\t%ju stale state%s\n"); + p(badstate, "\t\t%ju failed state lookup/insert%s\n"); + p(opackets, "\t%ju packet%s sent (IPv4)\n"); + p(opackets6, "\t%ju packet%s sent (IPv6)\n"); + p2(onomem, "\t\t%ju send failed due to mbuf memory error\n"); + p2(oerrors, "\t\t%ju send error\n"); #undef p #undef p2 } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#33 (text+ko) ==== @@ -109,15 +109,13 @@ { .n_name = "_pfkeystat" }, #define N_RTTRASH 15 { .n_name = "_rttrash" }, -#define N_PFSYNCSTAT 16 - { .n_name = "_pfsyncstats" }, -#define N_AHSTAT 17 +#define N_AHSTAT 16 { .n_name = "_ahstat" }, -#define N_ESPSTAT 18 +#define N_ESPSTAT 17 { .n_name = "_espstat" }, -#define N_IPCOMPSTAT 19 +#define N_IPCOMPSTAT 18 { .n_name = "_ipcompstat" }, -#define N_MFCTABLESIZE 20 +#define N_MFCTABLESIZE 19 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -167,8 +165,8 @@ NULL, NULL, "pim", 1, IPPROTO_PIM }, { -1, 0, 1, NULL, carp_stats, stat_CARP, NULL, NULL, "carp", 1, 0 }, - { -1, N_PFSYNCSTAT, 1, NULL, NULL, stat_MAX, - pfsync_stats, NULL, "pfsync", 1, 0 }, + { -1, 0, 1, NULL, pfsync_stats, stat_pfsync, + NULL, NULL, "pfsync", 1, 0 }, { -1, -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; From owner-p4-projects@FreeBSD.ORG Thu Jul 30 20:39:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 93DE81065673; Thu, 30 Jul 2009 20:39:59 +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 53C19106566B for ; Thu, 30 Jul 2009 20:39:59 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 41A298FC0C for ; Thu, 30 Jul 2009 20:39:59 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UKdwFR020998 for ; Thu, 30 Jul 2009 20:39:58 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UKdwEp020996 for perforce@freebsd.org; Thu, 30 Jul 2009 20:39:58 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 20:39:58 GMT Message-Id: <200907302039.n6UKdwEp020996@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166834 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 20:40:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=166834 Change 166834 by pgj@petymeg-current on 2009/07/30 20:39:19 - Standardize and add header for pfkey statistics. - Expose data via sysctl(3) [net.key.stats]. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/keysock.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/keysock.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/keysock.c#2 (text+ko) ==== @@ -59,6 +59,7 @@ #include #include +#include #include #include @@ -70,6 +71,10 @@ #ifdef VIMAGE_GLOBALS static struct key_cb key_cb; +struct stat_header pfkeystat_header = { + .sth_version = PFKEYSTAT_VERSION, + .sth_len = sizeof(struct pfkeystat) +}; struct pfkeystat pfkeystat; #endif @@ -546,6 +551,11 @@ /* sysctl */ SYSCTL_NODE(_net, PF_KEY, key, CTLFLAG_RW, 0, "Key Family"); +SYSCTL_STRUCT(_net_key, OID_AUTO, stats, CTLFLAG_RW, &pfkeystat, pfkeystat, + "Key Statistics (struct pfkeystat, (netipsec/keysock.h)"); +SYSCTL_STRUCT(_net_key, OID_AUTO, stats_header, CTLFLAG_RD, &pfkeystat_header, + stat_header, "Key Statistics header"); + /* * Definitions of protocols supported in the KEY domain. */ ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/keysock.h#2 (text+ko) ==== @@ -34,28 +34,30 @@ #define _NETIPSEC_KEYSOCK_H_ /* statistics for pfkey socket */ +#define PFKEYSTAT_VERSION 0x00000001 + struct pfkeystat { /* kernel -> userland */ - u_quad_t out_total; /* # of total calls */ - u_quad_t out_bytes; /* total bytecount */ - u_quad_t out_msgtype[256]; /* message type histogram */ - u_quad_t out_invlen; /* invalid length field */ - u_quad_t out_invver; /* invalid version field */ - u_quad_t out_invmsgtype; /* invalid message type field */ - u_quad_t out_tooshort; /* msg too short */ - u_quad_t out_nomem; /* memory allocation failure */ - u_quad_t out_dupext; /* duplicate extension */ - u_quad_t out_invexttype; /* invalid extension type */ - u_quad_t out_invsatype; /* invalid sa type */ - u_quad_t out_invaddr; /* invalid address extension */ + u_int64_t out_total; /* # of total calls */ + u_int64_t out_bytes; /* total bytecount */ + u_int64_t out_msgtype[256]; /* message type histogram */ + u_int64_t out_invlen; /* invalid length field */ + u_int64_t out_invver; /* invalid version field */ + u_int64_t out_invmsgtype; /* invalid message type field */ + u_int64_t out_tooshort; /* msg too short */ + u_int64_t out_nomem; /* memory allocation failure */ + u_int64_t out_dupext; /* duplicate extension */ + u_int64_t out_invexttype; /* invalid extension type */ + u_int64_t out_invsatype; /* invalid sa type */ + u_int64_t out_invaddr; /* invalid address extension */ /* userland -> kernel */ - u_quad_t in_total; /* # of total calls */ - u_quad_t in_bytes; /* total bytecount */ - u_quad_t in_msgtype[256]; /* message type histogram */ - u_quad_t in_msgtarget[3]; /* one/all/registered */ - u_quad_t in_nomem; /* memory allocation failure */ + u_int64_t in_total; /* # of total calls */ + u_int64_t in_bytes; /* total bytecount */ + u_int64_t in_msgtype[256]; /* message type histogram */ + u_int64_t in_msgtarget[3]; /* one/all/registered */ + u_int64_t in_nomem; /* memory allocation failure */ /* others */ - u_quad_t sockerr; /* # of socket related errors */ + u_int64_t sockerr; /* # of socket related errors */ }; struct key_cb { From owner-p4-projects@FreeBSD.ORG Thu Jul 30 20:40:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3009110656C8; Thu, 30 Jul 2009 20:39:59 +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 656D3106566C for ; Thu, 30 Jul 2009 20:39:59 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 530BB8FC12 for ; Thu, 30 Jul 2009 20:39:59 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UKdxXh021004 for ; Thu, 30 Jul 2009 20:39:59 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UKdxM9021002 for perforce@freebsd.org; Thu, 30 Jul 2009 20:39:59 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 20:39:59 GMT Message-Id: <200907302039.n6UKdxM9021002@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166835 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 20:40:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=166835 Change 166835 by pgj@petymeg-current on 2009/07/30 20:39:52 Add support for pfkey statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#16 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#49 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#46 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#16 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#54 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#16 (text+ko) ==== @@ -21,6 +21,7 @@ WITHOUT_MAN= yes CFLAGS+=-DSCTP +CFLAGS+=-DIPSEC .if ${MK_INET6_SUPPORT} != "no" CFLAGS+= -DINET6 ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#49 (text+ko) ==== @@ -32,6 +32,10 @@ #include #include +#ifdef IPSEC +#include +#endif + #define NETSTAT_MAXCALLER 16 #define SOCKTYPE_MAXNAME 32 @@ -80,6 +84,10 @@ #define NETSTAT_BPF_ASYNC 0x10 /* packet reception should generate signal */ #define NETSTAT_BPF_LOCKED 0x20 /* descriptor is locked */ +/* pfkey: */ +#define NETSTAT_PFKEY_IN_MSGTYPE_MAX 256 +#define NETSTAT_PFKEY_OUT_MSGTYPE_MAX 256 + /* Enum for TCP states: */ enum tcp_state { @@ -114,6 +122,12 @@ bpfdir_MAX, }; +enum pfkey_msgtarget { + pfkey_Sendup_One = KEY_SENDUP_ONE, + pfkey_Sendup_All = KEY_SENDUP_ALL, + pfkey_Sendup_Registered = KEY_SENDUP_REGISTERED, +}; + enum stat { stat_TCP = 0, stat_UDP, @@ -136,6 +150,9 @@ stat_SPX, #endif stat_pfsync, +#ifdef IPSEC + stat_pfkey, +#endif stat_MAX, stat_Invalid, }; @@ -184,6 +201,9 @@ struct spx_stat; #endif struct pfsync_stat; +#ifdef IPSEC +struct pfkey_stat; +#endif __BEGIN_DECLS const char *netstat_strerror(int); @@ -900,4 +920,29 @@ u_int64_t netstat_pfsyncs_get_opackets6(const struct pfsync_stat *); u_int64_t netstat_pfsyncs_get_onomem(const struct pfsync_stat *); u_int64_t netstat_pfsyncs_get_oerrors(const struct pfsync_stat *); + +#ifdef IPSEC +const struct pfkey_stat *netstat_get_pfkeystats(const struct stat_type *); +const char *netstat_pfkey_msgtype_name(int); + +u_int64_t netstat_pfkeys_get_out_total(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_out_bytes(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_out_msgtype(const struct pfkey_stat *, int); +u_int64_t netstat_pfkeys_get_out_invlen(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_out_invver(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_out_invmsgtype(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_out_tooshort(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_out_nomem(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_out_dupext(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_out_invexttype(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_out_invsatype(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_out_invaddr(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_in_total(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_in_bytes(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_in_msgtype(const struct pfkey_stat *, int); +u_int64_t netstat_pfkeys_get_in_msgtarget(const struct pfkey_stat *, + enum pfkey_msgtarget); +u_int64_t netstat_pfkeys_get_in_nomem(const struct pfkey_stat *); +u_int64_t netstat_pfkeys_get_sockerr(const struct pfkey_stat *); +#endif /* !IPSEC */ #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#46 (text+ko) ==== @@ -65,6 +65,9 @@ #endif #include #include +#ifdef IPSEC +#include +#endif #include "netstat.h" @@ -368,6 +371,12 @@ struct pfsyncstats s; }; +#ifdef IPSEC +struct pfkey_stat { + struct pfkeystat s; +}; +#endif + /* Timestamp type. */ struct timestamp_type { u_int32_t ts_sec; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#16 (text+ko) ==== @@ -86,6 +86,9 @@ { SPXSTAT_VERSION, "net.ipx.spx.stats", "_spx_istat" }, #endif { PFSYNCSTAT_VERSION, "net.inet.pfsync.stats", "_pfsyncstats" }, +#ifdef IPSEC + { PFKEYSTAT_VERSION, "net.key.stats", "_pfkeystat" }, +#endif }; int ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#54 (text+ko) ==== @@ -1256,6 +1256,12 @@ return (0); \ } +#define STATS_ACCXE(returns, stats, f1, f2, enty) \ +returns \ +netstat_##stats##s_get_##f1(const struct stats##_stat *a, enum enty i) \ +{ \ + return (a->s.f2[i]); \ +} #define TCP_ACC(field) \ @@ -1865,6 +1871,39 @@ PFSYNC_ACC(oerrors); #undef PFSYNC_ACC +#ifdef IPSEC +#define PFKEY_ACC(field) \ + STATS_ACCX(u_int64_t,pfkey,field,field) + +#define PFKEY_ACCA(field,size) \ + STATS_ACCXA(u_int64_t,pfkey,field,field,size) + +#define PFKEY_ACCE(field,size) \ + STATS_ACCXE(u_int64_t,pfkey,field,field,pfkey_msgtarget) + +STATS_GET(pfkey,pfkey); +PFKEY_ACC(out_total); +PFKEY_ACC(out_bytes); +PFKEY_ACCA(out_msgtype,256); +PFKEY_ACC(out_invlen); +PFKEY_ACC(out_invver); +PFKEY_ACC(out_invmsgtype); +PFKEY_ACC(out_tooshort); +PFKEY_ACC(out_nomem); +PFKEY_ACC(out_dupext); +PFKEY_ACC(out_invexttype); +PFKEY_ACC(out_invsatype); +PFKEY_ACC(out_invaddr); +PFKEY_ACC(in_total); +PFKEY_ACC(in_bytes); +PFKEY_ACCA(in_msgtype,256); +PFKEY_ACCE(in_msgtarget,pfkey_msgtarget); +PFKEY_ACC(in_nomem); +PFKEY_ACC(sockerr); +#undef PFKEY_ACC +#undef PFKEY_ACCA +#endif /* !IPSEC */ + static const char *icmpnames[ICMP_MAXTYPE + 1] = { "echo reply", /* RFC 792 */ "#1", @@ -2189,6 +2228,25 @@ return (NULL); } +static const char *pfkey_msgtypenames[] = { + "reserved", "getspi", "update", "add", "delete", + "get", "acquire", "register", "expire", "flush", + "dump", "x_promisc", "x_pchange", "x_spdupdate", "x_spdadd", + "x_spddelete", "x_spdget", "x_spdacquire", "x_spddump", "x_spdflush", + "x_spdsetidx", "x_spdexpire", "x_spddelete2" +}; + +const char * +netstat_pfkey_msgtype_name(int x) +{ + static char buf[20]; + + if (x < SizeOf(pfkey_msgtypenames) && pfkey_msgtypenames[x]) + return pfkey_msgtypenames[x]; + snprintf(buf, sizeof(buf), "#%d", x); + return buf; +} + const char * routename(in_addr_t in, int numeric) { From owner-p4-projects@FreeBSD.ORG Thu Jul 30 20:43:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EF7F21065672; Thu, 30 Jul 2009 20:43: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 AF53A106566C for ; Thu, 30 Jul 2009 20:43:02 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9C7238FC08 for ; Thu, 30 Jul 2009 20:43:02 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UKh2oY021350 for ; Thu, 30 Jul 2009 20:43:02 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UKh2Wc021348 for perforce@freebsd.org; Thu, 30 Jul 2009 20:43:02 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 20:43:02 GMT Message-Id: <200907302043.n6UKh2Wc021348@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166836 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 20:43:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=166836 Change 166836 by pgj@petymeg-current on 2009/07/30 20:42:55 Rewrite pfkey_stats() of netstat(1) to call libnetstat(3). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/Makefile#4 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#26 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#34 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/pfkey.c#3 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/Makefile#4 (text+ko) ==== @@ -5,12 +5,14 @@ PROG= netstat SRCS= if.c inet.c main.c mbuf.c mroute.c route.c \ - unix.c atalk.c mroute6.c ipsec.c bpf.c pfkey.c sctp.c + unix.c atalk.c mroute6.c ipsec.c bpf.c sctp.c WARNS?= 3 CFLAGS+=-fno-strict-aliasing CFLAGS+=-DIPSEC +SRCS+= pfkey.c + CFLAGS+=-DSCTP .if ${MK_INET6_SUPPORT} != "no" ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#26 (text+ko) ==== @@ -91,6 +91,7 @@ void esp_stats(u_long, const char *, int, int); void ah_stats(u_long, const char *, int, int); void ipcomp_stats(u_long, const char *, int, int); +void pfkey_stats(const struct stat_type *); #endif #ifdef INET6 @@ -110,10 +111,6 @@ void inet6print(struct in6_addr *, int, const char *, int); #endif /*INET6*/ -#ifdef IPSEC -void pfkey_stats(u_long, const char *, int, int); -#endif - void mbpr(void *); void hostpr(u_long, u_long); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#34 (text+ko) ==== @@ -105,17 +105,15 @@ { .n_name = "_mf6ctable" }, #define N_MIF6TABLE 13 { .n_name = "_mif6table" }, -#define N_PFKEYSTAT 14 - { .n_name = "_pfkeystat" }, -#define N_RTTRASH 15 +#define N_RTTRASH 14 { .n_name = "_rttrash" }, -#define N_AHSTAT 16 +#define N_AHSTAT 15 { .n_name = "_ahstat" }, -#define N_ESPSTAT 17 +#define N_ESPSTAT 16 { .n_name = "_espstat" }, -#define N_IPCOMPSTAT 18 +#define N_IPCOMPSTAT 17 { .n_name = "_ipcompstat" }, -#define N_MFCTABLESIZE 19 +#define N_MFCTABLESIZE 18 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -198,8 +196,8 @@ #ifdef IPSEC struct protox pfkeyprotox[] = { - { -1, N_PFKEYSTAT, 1, NULL, NULL, stat_MAX, - pfkey_stats, NULL, "pfkey", 0, 0 }, + { -1, 0, 1, NULL, pfkey_stats, stat_pfkey, + NULL, NULL, "pfkey", 0, 0 }, { -1, -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/pfkey.c#3 (text+ko) ==== @@ -2,6 +2,7 @@ /* $KAME: ipsec.c,v 1.25 2001/03/12 09:04:39 itojun Exp $ */ /*- * Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project. + * Copyright (c) 2009 Gabor Pali * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -70,78 +71,35 @@ #include __FBSDID("$FreeBSD: src/usr.bin/netstat/pfkey.c,v 1.6 2008/01/02 23:26:11 obrien Exp $"); -#include -#include -#include -#include - -#include - -#ifdef IPSEC -#include -#endif +#include -#include #include -#include -#include +#include #include "extern.h" -#ifdef IPSEC - -static const char *pfkey_msgtypenames[] = { - "reserved", "getspi", "update", "add", "delete", - "get", "acquire", "register", "expire", "flush", - "dump", "x_promisc", "x_pchange", "x_spdupdate", "x_spdadd", - "x_spddelete", "x_spdget", "x_spdacquire", "x_spddump", "x_spdflush", - "x_spdsetidx", "x_spdexpire", "x_spddelete2" -}; - -static const char *pfkey_msgtype_names (int); - - -static const char * -pfkey_msgtype_names(int x) -{ - const int max = - sizeof(pfkey_msgtypenames)/sizeof(pfkey_msgtypenames[0]); - static char buf[20]; - - if (x < max && pfkey_msgtypenames[x]) - return pfkey_msgtypenames[x]; - snprintf(buf, sizeof(buf), "#%d", x); - return buf; -} - void -pfkey_stats(u_long off, const char *name, int family __unused, - int proto __unused) +pfkey_stats(const struct stat_type *sttp) { - struct pfkeystat pfkeystat; + const struct pfkey_stat *s; unsigned first, type; - if (off == 0) - return; - printf ("%s:\n", name); - kread(off, (char *)&pfkeystat, sizeof(pfkeystat)); - -#define p(f, m) if (pfkeystat.f || sflag <= 1) \ - printf(m, (uintmax_t)pfkeystat.f, plural(pfkeystat.f)) - - /* userland -> kernel */ + s = netstat_get_pfkeystats(sttp); +#define p(f, m) if (netstat_pfkeys_get_##f(s) || sflag <= 1) \ + printf(m, netstat_pfkeys_get_##f(s), plural(netstat_pfkeys_get_##f(s))) +#define pa(f,i,m) if (netstat_pfkeys_get_##f(s,i) || sflag <= 1) \ + printf(m, netstat_pfkeys_get_##f(s,i), plural(netstat_pfkeys_get_##f(s,i))) p(out_total, "\t%ju request%s sent from userland\n"); p(out_bytes, "\t%ju byte%s sent from userland\n"); - for (first = 1, type = 0; - type < sizeof(pfkeystat.out_msgtype)/sizeof(pfkeystat.out_msgtype[0]); - type++) { - if (pfkeystat.out_msgtype[type] <= 0) + for (first = 1, type = 0; type < NETSTAT_PFKEY_OUT_MSGTYPE_MAX; + type++) { + if (netstat_pfkeys_get_out_msgtype(s, type) <= 0) continue; if (first) { printf("\thistogram by message type:\n"); first = 0; } - printf("\t\t%s: %ju\n", pfkey_msgtype_names(type), - (uintmax_t)pfkeystat.out_msgtype[type]); + printf("\t\t%s: %ju\n", netstat_pfkey_msgtype_name(type), + netstat_pfkeys_get_out_msgtype(s, type)); } p(out_invlen, "\t%ju message%s with invalid length field\n"); p(out_invver, "\t%ju message%s with invalid version field\n"); @@ -152,29 +110,26 @@ p(out_invexttype, "\t%ju message%s with invalid extension type\n"); p(out_invsatype, "\t%ju message%s with invalid sa type\n"); p(out_invaddr, "\t%ju message%s with invalid address extension\n"); - - /* kernel -> userland */ p(in_total, "\t%ju request%s sent to userland\n"); p(in_bytes, "\t%ju byte%s sent to userland\n"); - for (first = 1, type = 0; - type < sizeof(pfkeystat.in_msgtype)/sizeof(pfkeystat.in_msgtype[0]); - type++) { - if (pfkeystat.in_msgtype[type] <= 0) + for (first = 1, type = 0; type < NETSTAT_PFKEY_IN_MSGTYPE_MAX; + type++) { + if (netstat_pfkeys_get_in_msgtype(s, type) <= 0) continue; if (first) { printf("\thistogram by message type:\n"); first = 0; } - printf("\t\t%s: %ju\n", pfkey_msgtype_names(type), - (uintmax_t)pfkeystat.in_msgtype[type]); + printf("\t\t%s: %ju\n", netstat_pfkey_msgtype_name(type), + netstat_pfkeys_get_in_msgtype(s, type)); } - p(in_msgtarget[KEY_SENDUP_ONE], + pa(in_msgtarget,pfkey_Sendup_One, "\t%ju message%s toward single socket\n"); - p(in_msgtarget[KEY_SENDUP_ALL], + pa(in_msgtarget,pfkey_Sendup_All, "\t%ju message%s toward all sockets\n"); - p(in_msgtarget[KEY_SENDUP_REGISTERED], + pa(in_msgtarget,pfkey_Sendup_Registered, "\t%ju message%s toward registered sockets\n"); p(in_nomem, "\t%ju message%s with memory allocation failure\n"); #undef p +#undef pa } -#endif /* IPSEC */ From owner-p4-projects@FreeBSD.ORG Thu Jul 30 22:04:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0B2B81065689; Thu, 30 Jul 2009 22:04:32 +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 BF3371065680 for ; Thu, 30 Jul 2009 22:04:31 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AD4E18FC12 for ; Thu, 30 Jul 2009 22:04:31 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UM4VFH039082 for ; Thu, 30 Jul 2009 22:04:31 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UM4Vjg039080 for perforce@freebsd.org; Thu, 30 Jul 2009 22:04:31 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 22:04:31 GMT Message-Id: <200907302204.n6UM4Vjg039080@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166837 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 22:04:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=166837 Change 166837 by pgj@petymeg-current on 2009/07/30 22:03:50 Add header for ESP statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/esp_var.h#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/xform_esp.c#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/esp_var.h#2 (text+ko) ==== @@ -47,6 +47,8 @@ */ #define ESP_ALG_MAX 256 /* NB: could be < but skipjack is 249 */ +#define ESPSTAT_VERSION 0x00000001 + struct espstat { u_int32_t esps_hdrops; /* Packet shorter than header shows */ u_int32_t esps_nopf; /* Protocol family not supported */ ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/xform_esp.c#2 (text+ko) ==== @@ -47,6 +47,7 @@ #include #include #include +#include #include @@ -55,6 +56,7 @@ #include #include #include +#include #include #include @@ -77,6 +79,10 @@ #include #ifdef VIMAGE_GLOBALS +struct stat_header espstat_header = { + .sth_version = ESPSTAT_VERSION, + .sth_len = sizeof(struct espstat) +}; struct espstat espstat; static int esp_max_ivlen; /* max iv length over all algorithms */ int esp_enable; @@ -85,8 +91,12 @@ SYSCTL_DECL(_net_inet_esp); SYSCTL_V_INT(V_NET, vnet_ipsec,_net_inet_esp, OID_AUTO, esp_enable, CTLFLAG_RW, esp_enable, 0, ""); + SYSCTL_V_STRUCT(V_NET, vnet_ipsec, _net_inet_esp, IPSECCTL_STATS, - stats, CTLFLAG_RD, espstat, espstat, ""); + stats, CTLFLAG_RW, espstat, espstat, ""); + +SYSCTL_V_STRUCT(V_NET, vnet_ipsec, _net_inet_esp, OID_AUTO, + stats_header, CTLFLAG_RD, espstat_header, stat_header, ""); static int esp_input_cb(struct cryptop *op); static int esp_output_cb(struct cryptop *crp); From owner-p4-projects@FreeBSD.ORG Thu Jul 30 22:04:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 612C31065717; Thu, 30 Jul 2009 22:04:32 +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 E1CD81065686 for ; Thu, 30 Jul 2009 22:04:31 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CF77B8FC16 for ; Thu, 30 Jul 2009 22:04:31 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UM4VUu039087 for ; Thu, 30 Jul 2009 22:04:31 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UM4V0u039085 for perforce@freebsd.org; Thu, 30 Jul 2009 22:04:31 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 22:04:31 GMT Message-Id: <200907302204.n6UM4V0u039085@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166838 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 22:04:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=166838 Change 166838 by pgj@petymeg-current on 2009/07/30 22:04:21 Add support for ESP. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#50 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#47 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#17 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#55 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#50 (text+ko) ==== @@ -34,6 +34,7 @@ #ifdef IPSEC #include +#include #endif #define NETSTAT_MAXCALLER 16 @@ -88,6 +89,8 @@ #define NETSTAT_PFKEY_IN_MSGTYPE_MAX 256 #define NETSTAT_PFKEY_OUT_MSGTYPE_MAX 256 +/* ESP: */ +#define NETSTAT_ESP_HIST_MAX ESP_ALG_MAX /* Enum for TCP states: */ enum tcp_state { @@ -152,6 +155,7 @@ stat_pfsync, #ifdef IPSEC stat_pfkey, + stat_ESP, #endif stat_MAX, stat_Invalid, @@ -203,6 +207,7 @@ struct pfsync_stat; #ifdef IPSEC struct pfkey_stat; +struct esp_stat; #endif __BEGIN_DECLS @@ -944,5 +949,30 @@ enum pfkey_msgtarget); u_int64_t netstat_pfkeys_get_in_nomem(const struct pfkey_stat *); u_int64_t netstat_pfkeys_get_sockerr(const struct pfkey_stat *); + +const struct esp_stat *netstat_get_espstats(const struct stat_type *); +const char *netstat_ipsec_espname(int); + +u_int32_t netstat_esps_get_hdrops(const struct esp_stat *); +u_int32_t netstat_esps_get_nopf(const struct esp_stat *); +u_int32_t netstat_esps_get_notdb(const struct esp_stat *); +u_int32_t netstat_esps_get_badkcr(const struct esp_stat *); +u_int32_t netstat_esps_get_qfull(const struct esp_stat *); +u_int32_t netstat_esps_get_noxform(const struct esp_stat *); +u_int32_t netstat_esps_get_badilen(const struct esp_stat *); +u_int32_t netstat_esps_get_wrap(const struct esp_stat *); +u_int32_t netstat_esps_get_badenc(const struct esp_stat *); +u_int32_t netstat_esps_get_badauth(const struct esp_stat *); +u_int32_t netstat_esps_get_replay(const struct esp_stat *); +u_int32_t netstat_esps_get_input(const struct esp_stat *); +u_int32_t netstat_esps_get_output(const struct esp_stat *); +u_int32_t netstat_esps_get_invalid(const struct esp_stat *); +u_int64_t netstat_esps_get_ibytes(const struct esp_stat *); +u_int64_t netstat_esps_get_obytes(const struct esp_stat *); +u_int32_t netstat_esps_get_toobig(const struct esp_stat *); +u_int32_t netstat_esps_get_pdrops(const struct esp_stat *); +u_int32_t netstat_esps_get_crypto(const struct esp_stat *); +u_int32_t netstat_esps_get_tunnel(const struct esp_stat *); +u_int32_t netstat_esps_get_hist(const struct esp_stat *, int); #endif /* !IPSEC */ #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#47 (text+ko) ==== @@ -67,6 +67,7 @@ #include #ifdef IPSEC #include +#include #endif #include "netstat.h" @@ -375,6 +376,10 @@ struct pfkey_stat { struct pfkeystat s; }; + +struct esp_stat { + struct espstat s; +}; #endif /* Timestamp type. */ @@ -383,6 +388,11 @@ u_int32_t ts_usec; }; +struct val2str { + int val; + const char *str; +}; + int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); @@ -408,6 +418,7 @@ struct bpf_type *_netstat_bpt_allocate(struct bpf_type_list *list, const char *ifname); +const char *resolve_val2str_name(int, const struct val2str *); /* XXX: merge these into a common address resolution routine. */ const char *routename(in_addr_t in, int numeric); const char *netname(in_addr_t in, u_long mask, int numeric); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#17 (text+ko) ==== @@ -88,6 +88,7 @@ { PFSYNCSTAT_VERSION, "net.inet.pfsync.stats", "_pfsyncstats" }, #ifdef IPSEC { PFKEYSTAT_VERSION, "net.key.stats", "_pfkeystat" }, + { ESPSTAT_VERSION, "net.inet.esp.stats", "_espstat" }, #endif }; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#55 (text+ko) ==== @@ -32,6 +32,7 @@ #include #include +#include #include #include @@ -1902,6 +1903,41 @@ PFKEY_ACC(sockerr); #undef PFKEY_ACC #undef PFKEY_ACCA + +#define ESP_ACC(field) \ + STATS_ACCX(u_int32_t,esp,field,esps_##field) + +#define ESP_ACC64(field) \ + STATS_ACCX(u_int64_t,esp,field,esps_##field) + +#define ESP_ACCA(field,size) \ + STATS_ACCXA(u_int32_t,esp,field,esps_##field,size) + +STATS_GET(esp,ESP); +ESP_ACC(hdrops); +ESP_ACC(nopf); +ESP_ACC(notdb); +ESP_ACC(badkcr); +ESP_ACC(qfull); +ESP_ACC(noxform); +ESP_ACC(badilen); +ESP_ACC(wrap); +ESP_ACC(badenc); +ESP_ACC(badauth); +ESP_ACC(replay); +ESP_ACC(input); +ESP_ACC(output); +ESP_ACC(invalid); +ESP_ACC64(ibytes); +ESP_ACC64(obytes); +ESP_ACC(toobig); +ESP_ACC(pdrops); +ESP_ACC(crypto); +ESP_ACC(tunnel); +ESP_ACCA(hist,ESP_ALG_MAX); +#undef ESP_ACC +#undef ESP_ACC64 +#undef ESP_ACCA #endif /* !IPSEC */ static const char *icmpnames[ICMP_MAXTYPE + 1] = { @@ -2247,6 +2283,46 @@ return buf; } +static struct val2str ipsec_espnames[] = { + { SADB_EALG_NONE, "none" }, + { SADB_EALG_DESCBC, "des-cbc" }, + { SADB_EALG_3DESCBC, "3des-cbc" }, + { SADB_EALG_NULL, "null" }, + { SADB_X_EALG_CAST128CBC, "cast128-cbc" }, + { SADB_X_EALG_BLOWFISHCBC, "blowfish-cbc" }, +#ifdef SADB_X_EALG_RIJNDAELCBC + { SADB_X_EALG_RIJNDAELCBC, "rijndael-cbc" }, +#endif +#ifdef SADB_X_EALG_AESCTR + { SADB_X_EALG_AESCTR, "aes-ctr" }, +#endif + { -1, NULL }, +}; + +const char * +resolve_val2str_name(int proto, const struct val2str *name) +{ + static char buf[20]; + const struct val2str *p; + + for (p = name; p && p->str; p++) { + if (p->val == proto) + break; + } + + if (p != NULL && p->str != NULL) + return (p->str); + + snprintf(buf, sizeof(buf), "#%lu", (unsigned long)proto); + return buf; +} + +const char * +netstat_ipsec_espname(int proto) +{ + return (resolve_val2str_name(proto, ipsec_espnames)); +} + const char * routename(in_addr_t in, int numeric) { From owner-p4-projects@FreeBSD.ORG Thu Jul 30 22:05:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 72A09106566C; Thu, 30 Jul 2009 22:05:33 +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 30784106564A for ; Thu, 30 Jul 2009 22:05:33 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 131638FC08 for ; Thu, 30 Jul 2009 22:05:33 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UM5WgM039233 for ; Thu, 30 Jul 2009 22:05:32 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UM5WrM039231 for perforce@freebsd.org; Thu, 30 Jul 2009 22:05:32 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 22:05:32 GMT Message-Id: <200907302205.n6UM5WrM039231@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166839 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 22:05:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=166839 Change 166839 by pgj@petymeg-current on 2009/07/30 22:05:28 Modify netstat(1) to call libnetstat(3) functions for displaying ESP statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/Makefile#5 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#27 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipsec.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#35 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/Makefile#5 (text+ko) ==== @@ -5,13 +5,13 @@ PROG= netstat SRCS= if.c inet.c main.c mbuf.c mroute.c route.c \ - unix.c atalk.c mroute6.c ipsec.c bpf.c sctp.c + unix.c atalk.c mroute6.c bpf.c sctp.c WARNS?= 3 CFLAGS+=-fno-strict-aliasing CFLAGS+=-DIPSEC -SRCS+= pfkey.c +SRCS+= pfkey.c ipsec.c CFLAGS+=-DSCTP ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#27 (text+ko) ==== @@ -88,7 +88,7 @@ void pfsync_stats(const struct stat_type *); #ifdef IPSEC void ipsec_stats(u_long, const char *, int, int); -void esp_stats(u_long, const char *, int, int); +void esp_stats(const struct stat_type *); void ah_stats(u_long, const char *, int, int); void ipcomp_stats(u_long, const char *, int, int); void pfkey_stats(const struct stat_type *); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipsec.c#3 (text+ko) ==== @@ -101,21 +101,18 @@ #include #include - -#ifdef IPSEC #include #include #include #include -#endif #include #include #include #include +#include #include "extern.h" -#ifdef IPSEC struct val2str { int val; const char *str; @@ -281,7 +278,6 @@ static void ipsec_hist_new(const u_int32_t *hist, size_t histmax, const struct val2str *name, const char *title); static void print_ahstats(const struct ahstat *ahstat); -static void print_espstats(const struct espstat *espstat); static void print_ipcompstats(const struct ipcompstat *ipcompstat); /* @@ -365,56 +361,55 @@ print_ahstats(&ahstat); } -static void -print_espstats(const struct espstat *espstat) +void +esp_stats(const struct stat_type *sttp) { -#define p32(f, m) if (espstat->f || sflag <= 1) \ - printf("\t%u" m, (unsigned int)espstat->f, plural(espstat->f)) -#define p64(f, m) if (espstat->f || sflag <= 1) \ - printf("\t%ju" m, (uintmax_t)espstat->f, plural(espstat->f)) + const struct esp_stat *s; + int first, proto; + + s = netstat_get_espstats(sttp); +#define p32(f, m) if (netstat_esps_get_##f(s) || sflag <= 1) \ + printf("\t%u" m, netstat_esps_get_##f(s), plural(netstat_esps_get_##f(s))) +#define p64(f, m) if (netstat_esps_get_##f(s) || sflag <= 1) \ + printf("\t%ju" m, netstat_esps_get_##f(s), plural(netstat_esps_get_##f(s))) #define hist(f, n, t) \ ipsec_hist_new((f), sizeof(f)/sizeof(f[0]), (n), (t)); - - p32(esps_hdrops, " packet%s shorter than header shows\n"); - p32(esps_nopf, " packet%s dropped; protocol family not supported\n"); - p32(esps_notdb, " packet%s dropped; no TDB\n"); - p32(esps_badkcr, " packet%s dropped; bad KCR\n"); - p32(esps_qfull, " packet%s dropped; queue full\n"); - p32(esps_noxform, " packet%s dropped; no transform\n"); - p32(esps_badilen, " packet%s dropped; bad ilen\n"); - p32(esps_wrap, " replay counter wrap%s\n"); - p32(esps_badenc, " packet%s dropped; bad encryption detected\n"); - p32(esps_badauth, " packet%s dropped; bad authentication detected\n"); - p32(esps_replay, " possible replay packet%s detected\n"); - p32(esps_input, " packet%s in\n"); - p32(esps_output, " packet%s out\n"); - p32(esps_invalid, " packet%s dropped; invalid TDB\n"); - p64(esps_ibytes, " byte%s in\n"); - p64(esps_obytes, " byte%s out\n"); - p32(esps_toobig, " packet%s dropped; larger than IP_MAXPACKET\n"); - p32(esps_pdrops, " packet%s blocked due to policy\n"); - p32(esps_crypto, " crypto processing failure%s\n"); - p32(esps_tunnel, " tunnel sanity check failure%s\n"); - hist(espstat->esps_hist, ipsec_espnames, "ESP output"); - + p32(hdrops, " packet%s shorter than header shows\n"); + p32(nopf, " packet%s dropped; protocol family not supported\n"); + p32(notdb, " packet%s dropped; no TDB\n"); + p32(badkcr, " packet%s dropped; bad KCR\n"); + p32(qfull, " packet%s dropped; queue full\n"); + p32(noxform, " packet%s dropped; no transform\n"); + p32(badilen, " packet%s dropped; bad ilen\n"); + p32(wrap, " replay counter wrap%s\n"); + p32(badenc, " packet%s dropped; bad encryption detected\n"); + p32(badauth, " packet%s dropped; bad authentication detected\n"); + p32(replay, " possible replay packet%s detected\n"); + p32(input, " packet%s in\n"); + p32(output, " packet%s out\n"); + p32(invalid, " packet%s dropped; invalid TDB\n"); + p64(ibytes, " byte%s in\n"); + p64(obytes, " byte%s out\n"); + p32(toobig, " packet%s dropped; larger than IP_MAXPACKET\n"); + p32(pdrops, " packet%s blocked due to policy\n"); + p32(crypto, " crypto processing failure%s\n"); + p32(tunnel, " tunnel sanity check failure%s\n"); + first = 1; + for (proto = 0; proto < NETSTAT_ESP_HIST_MAX; proto++) { + if (netstat_esps_get_hist(s, proto) == 0) + continue; + if (first != 0) { + printf("\tESP output histogram:\n"); + first = 0; + } + printf("\t\t%s: %u\n", netstat_ipsec_espname(proto), + netstat_esps_get_hist(s, proto)); + } #undef p32 #undef p64 #undef hist } -void -esp_stats(u_long off, const char *name, int family __unused, int proto __unused) -{ - struct espstat espstat; - - if (off == 0) - return; - printf ("%s:\n", name); - kread(off, (char *)&espstat, sizeof(espstat)); - - print_espstats(&espstat); -} - static void print_ipcompstats(const struct ipcompstat *ipcompstat) { @@ -460,5 +455,3 @@ print_ipcompstats(&ipcompstat); } - -#endif /*IPSEC*/ ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#35 (text+ko) ==== @@ -109,11 +109,9 @@ { .n_name = "_rttrash" }, #define N_AHSTAT 15 { .n_name = "_ahstat" }, -#define N_ESPSTAT 16 - { .n_name = "_espstat" }, -#define N_IPCOMPSTAT 17 +#define N_IPCOMPSTAT 16 { .n_name = "_ipcompstat" }, -#define N_MFCTABLESIZE 18 +#define N_MFCTABLESIZE 17 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -154,8 +152,8 @@ ipsec_stats, NULL, "ipsec", 0, 0}, { -1, N_AHSTAT, 1, NULL, NULL, stat_MAX, ah_stats, NULL, "ah", 0, 0}, - { -1, N_ESPSTAT, 1, NULL, NULL, stat_MAX, - esp_stats, NULL, "esp", 0, 0}, + { -1, 0, 1, NULL, esp_stats, stat_ESP, + NULL, NULL, "esp", 0, 0}, { -1, N_IPCOMPSTAT, 1, NULL, NULL, stat_MAX, ipcomp_stats, NULL, "ipcomp", 0, 0}, #endif From owner-p4-projects@FreeBSD.ORG Thu Jul 30 22:32:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A204A106566C; Thu, 30 Jul 2009 22:32:03 +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 4398E106564A for ; Thu, 30 Jul 2009 22:32:02 +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 173BB8FC21 for ; Thu, 30 Jul 2009 22:32:02 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UMW1VZ041059 for ; Thu, 30 Jul 2009 22:32:01 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UMW1gm041057 for perforce@freebsd.org; Thu, 30 Jul 2009 22:32:01 GMT (envelope-from trasz@freebsd.org) Date: Thu, 30 Jul 2009 22:32:01 GMT Message-Id: <200907302232.n6UMW1gm041057@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 Cc: Subject: PERFORCE change 166840 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 22:32:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=166840 Change 166840 by trasz@trasz_anger on 2009/07/30 22:31:18 Discard more unrelated changes. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/netinet/in_pcb.c#10 edit .. //depot/projects/soc2009/trasz_limits/sys/netinet/ip_output.c#7 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/netinet/in_pcb.c#10 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/in_pcb.c,v 1.259 2009/07/19 14:20:53 rwatson Exp $"); +__FBSDID("$FreeBSD: head/sys/netinet/in_pcb.c 195760 2009-07-19 14:20:53Z rwatson $"); #include "opt_ddb.h" #include "opt_ipsec.h" @@ -558,23 +558,6 @@ sin = (struct sockaddr_in *)&sro.ro_dst; sin->sin_family = AF_INET; sin->sin_len = sizeof(struct sockaddr_in); - -#ifdef IPSEC - /* - * If there is an IPsec tunnel with a destination matching faddr, - * try to use source address for the tunnel. - */ - sin->sin_addr.s_addr = key_find_src(&faddr->s_addr); - ifa = ifa_ifwithnet(sintosa(sin)); - if (ifa != NULL) { - sin = IA_SIN(ifatoia(ifa)); - if (prison_check_ip4(cred, &sin->sin_addr) == 0) { - laddr->s_addr = sin->sin_addr.s_addr; - goto done; - } - } -#endif - sin->sin_addr.s_addr = faddr->s_addr; /* ==== //depot/projects/soc2009/trasz_limits/sys/netinet/ip_output.c#7 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/ip_output.c,v 1.313 2009/07/14 22:48:30 rwatson Exp $"); +__FBSDID("$FreeBSD: head/sys/netinet/ip_output.c 195699 2009-07-14 22:48:30Z rwatson $"); #include "opt_ipfw.h" #include "opt_ipsec.h" @@ -78,7 +78,6 @@ #ifdef IPSEC #include #include -#include #endif /* IPSEC*/ #include @@ -134,8 +133,6 @@ struct m_tag *fwd_tag = NULL; #endif #ifdef IPSEC - struct sockaddr_in sin; - struct ifaddr *ifa; int no_route_but_check_spd = 0; #endif M_ASSERTPKTHDR(m); @@ -193,17 +190,6 @@ hlen = ip->ip_hl << 2; } -#ifdef IPSEC - if (ip->ip_src.s_addr == INADDR_ANY) { - sin.sin_len = sizeof(struct sockaddr_in); - sin.sin_family = AF_INET; - sin.sin_addr.s_addr = key_find_src(&ip->ip_dst.s_addr); - ifa = ifa_ifwithnet(sintosa(&sin)); - if (ifa != NULL) - ip->ip_src = IA_SIN(ifatoia(ifa))->sin_addr; - } -#endif - dst = (struct sockaddr_in *)&ro->ro_dst; again: /* From owner-p4-projects@FreeBSD.ORG Thu Jul 30 22:34:05 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BE0271065696; Thu, 30 Jul 2009 22:34:04 +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 79FC7106568A for ; Thu, 30 Jul 2009 22:34:04 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 67F3E8FC23 for ; Thu, 30 Jul 2009 22:34:04 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UMY4SD041226 for ; Thu, 30 Jul 2009 22:34:04 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UMY4v7041224 for perforce@freebsd.org; Thu, 30 Jul 2009 22:34:04 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 22:34:04 GMT Message-Id: <200907302234.n6UMY4v7041224@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166841 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 22:34:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=166841 Change 166841 by pgj@petymeg-current on 2009/07/30 22:33:27 Add header for AH statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/ah_var.h#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/xform_ah.c#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/ah_var.h#2 (text+ko) ==== @@ -47,6 +47,8 @@ */ #define AH_ALG_MAX 16 +#define AHSTAT_VERSION 0x00000001 + struct ahstat { u_int32_t ahs_hdrops; /* Packet shorter than header shows */ u_int32_t ahs_nopf; /* Protocol family not supported */ ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/xform_ah.c#2 (text+ko) ==== @@ -47,6 +47,7 @@ #include #include #include +#include #include @@ -55,6 +56,7 @@ #include #include #include +#include #include #include @@ -102,6 +104,10 @@ #ifdef VIMAGE_GLOBALS int ah_enable; int ah_cleartos; +struct stat_header ahstat_header = { + .sth_version = AHSTAT_VERSION, + .sth_len = sizeof(struct ahstat) +}; struct ahstat ahstat; #endif @@ -110,8 +116,12 @@ ah_enable, CTLFLAG_RW, ah_enable, 0, ""); SYSCTL_V_INT(V_NET, vnet_ipsec, _net_inet_ah, OID_AUTO, ah_cleartos, CTLFLAG_RW, ah_cleartos, 0, ""); + SYSCTL_V_STRUCT(V_NET, vnet_ipsec, _net_inet_ah, IPSECCTL_STATS, - stats, CTLFLAG_RD, ahstat, ahstat, ""); + stats, CTLFLAG_RW, ahstat, ahstat, ""); + +SYSCTL_V_STRUCT(V_NET, vnet_ipsec, _net_inet_ah, OID_AUTO, + stats_header, CTLFLAG_RD, ahstat_header, stat_header, ""); static unsigned char ipseczeroes[256]; /* larger than an ip6 extension hdr */ From owner-p4-projects@FreeBSD.ORG Thu Jul 30 22:34:06 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3AC891065743; Thu, 30 Jul 2009 22:34:05 +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 9CBF4106568C for ; Thu, 30 Jul 2009 22:34:04 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8A6598FC26 for ; Thu, 30 Jul 2009 22:34:04 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UMY4us041231 for ; Thu, 30 Jul 2009 22:34:04 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UMY47h041229 for perforce@freebsd.org; Thu, 30 Jul 2009 22:34:04 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 22:34:04 GMT Message-Id: <200907302234.n6UMY47h041229@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166842 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 22:34:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=166842 Change 166842 by pgj@petymeg-current on 2009/07/30 22:34:04 Add support for AH statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#51 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#48 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#18 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#56 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#51 (text+ko) ==== @@ -89,8 +89,10 @@ #define NETSTAT_PFKEY_IN_MSGTYPE_MAX 256 #define NETSTAT_PFKEY_OUT_MSGTYPE_MAX 256 -/* ESP: */ +/* IPsec: */ #define NETSTAT_ESP_HIST_MAX ESP_ALG_MAX +#define NETSTAT_AH_HIST_MAX AH_ALG_MAX + /* Enum for TCP states: */ enum tcp_state { @@ -156,6 +158,7 @@ #ifdef IPSEC stat_pfkey, stat_ESP, + stat_AH, #endif stat_MAX, stat_Invalid, @@ -208,6 +211,7 @@ #ifdef IPSEC struct pfkey_stat; struct esp_stat; +struct ah_stat; #endif __BEGIN_DECLS @@ -974,5 +978,29 @@ u_int32_t netstat_esps_get_crypto(const struct esp_stat *); u_int32_t netstat_esps_get_tunnel(const struct esp_stat *); u_int32_t netstat_esps_get_hist(const struct esp_stat *, int); + +const struct ah_stat *netstat_get_ahstats(const struct stat_type *); +const char *netstat_ipsec_ahname(int); + +u_int32_t netstat_ahs_get_hdrops(const struct ah_stat *); +u_int32_t netstat_ahs_get_nopf(const struct ah_stat *); +u_int32_t netstat_ahs_get_notdb(const struct ah_stat *); +u_int32_t netstat_ahs_get_badkcr(const struct ah_stat *); +u_int32_t netstat_ahs_get_badauth(const struct ah_stat *); +u_int32_t netstat_ahs_get_noxform(const struct ah_stat *); +u_int32_t netstat_ahs_get_qfull(const struct ah_stat *); +u_int32_t netstat_ahs_get_wrap(const struct ah_stat *); +u_int32_t netstat_ahs_get_replay(const struct ah_stat *); +u_int32_t netstat_ahs_get_badauthl(const struct ah_stat *); +u_int32_t netstat_ahs_get_input(const struct ah_stat *); +u_int32_t netstat_ahs_get_output(const struct ah_stat *); +u_int32_t netstat_ahs_get_invalid(const struct ah_stat *); +u_int64_t netstat_ahs_get_ibytes(const struct ah_stat *); +u_int64_t netstat_ahs_get_obytes(const struct ah_stat *); +u_int32_t netstat_ahs_get_toobig(const struct ah_stat *); +u_int32_t netstat_ahs_get_pdrops(const struct ah_stat *); +u_int32_t netstat_ahs_get_crypto(const struct ah_stat *); +u_int32_t netstat_ahs_get_tunnel(const struct ah_stat *); +u_int32_t netstat_ahs_get_hist(const struct ah_stat *, int); #endif /* !IPSEC */ #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#48 (text+ko) ==== @@ -68,6 +68,7 @@ #ifdef IPSEC #include #include +#include #endif #include "netstat.h" @@ -380,6 +381,10 @@ struct esp_stat { struct espstat s; }; + +struct ah_stat { + struct ahstat s; +}; #endif /* Timestamp type. */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#18 (text+ko) ==== @@ -89,6 +89,7 @@ #ifdef IPSEC { PFKEYSTAT_VERSION, "net.key.stats", "_pfkeystat" }, { ESPSTAT_VERSION, "net.inet.esp.stats", "_espstat" }, + { AHSTAT_VERSION, "net.inet.ah.stats", "_ahstat" }, #endif }; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#56 (text+ko) ==== @@ -1938,6 +1938,40 @@ #undef ESP_ACC #undef ESP_ACC64 #undef ESP_ACCA + +#define AH_ACC(field) \ + STATS_ACCX(u_int32_t,ah,field,ahs_##field) + +#define AH_ACC64(field) \ + STATS_ACCX(u_int64_t,ah,field,ahs_##field) + +#define AH_ACCA(field,size) \ + STATS_ACCXA(u_int32_t,ah,field,ahs_##field,size) + +STATS_GET(ah,AH); +AH_ACC(hdrops); +AH_ACC(nopf); +AH_ACC(notdb); +AH_ACC(badkcr); +AH_ACC(badauth); +AH_ACC(noxform); +AH_ACC(qfull); +AH_ACC(wrap); +AH_ACC(replay); +AH_ACC(badauthl); +AH_ACC(input); +AH_ACC(output); +AH_ACC(invalid); +AH_ACC64(ibytes); +AH_ACC64(obytes); +AH_ACC(toobig); +AH_ACC(pdrops); +AH_ACC(crypto); +AH_ACC(tunnel); +AH_ACCA(hist,AH_ALG_MAX); +#undef AH_ACC +#undef AH_ACC64 +#undef AH_ACCA #endif /* !IPSEC */ static const char *icmpnames[ICMP_MAXTYPE + 1] = { @@ -2299,6 +2333,31 @@ { -1, NULL }, }; +static struct val2str ipsec_ahnames[] = { + { SADB_AALG_NONE, "none" }, + { SADB_AALG_MD5HMAC, "hmac-md5" }, + { SADB_AALG_SHA1HMAC, "hmac-sha1" }, + { SADB_X_AALG_MD5, "md5" }, + { SADB_X_AALG_SHA, "sha" }, + { SADB_X_AALG_NULL, "null" }, +#ifdef SADB_X_AALG_SHA2_256 + { SADB_X_AALG_SHA2_256, "hmac-sha2-256" }, +#endif +#ifdef SADB_X_AALG_SHA2_384 + { SADB_X_AALG_SHA2_512, "hmac-sha2-384" }, +#endif +#ifdef SADB_X_AALG_SHA2_512 + { SADB_X_AALG_SHA2_512, "hmac-sha2-512" }, +#endif +#ifdef SADB_X_AALG_RIPEMD160HMAC + { SADB_X_AALG_RIPEMD160HMAC, "hmac-ripemd160" }, +#endif +#ifdef SADB_X_AALG_AES_XCBC_MAC + { SADB_X_AALG_AES_XCBC_MAC, "aes-xcbc-mac" }, +#endif + { -1, NULL }, +}; + const char * resolve_val2str_name(int proto, const struct val2str *name) { @@ -2324,6 +2383,12 @@ } const char * +netstat_ipsec_ahname(int proto) +{ + return (resolve_val2str_name(proto, ipsec_ahnames)); +} + +const char * routename(in_addr_t in, int numeric) { char *cp; From owner-p4-projects@FreeBSD.ORG Thu Jul 30 22:36:07 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7B5EE1065674; Thu, 30 Jul 2009 22:36:07 +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 39E1D1065670 for ; Thu, 30 Jul 2009 22:36:07 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1DDFF8FC08 for ; Thu, 30 Jul 2009 22:36:07 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UMa6T6041436 for ; Thu, 30 Jul 2009 22:36:06 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UMa6C5041434 for perforce@freebsd.org; Thu, 30 Jul 2009 22:36:06 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 22:36:06 GMT Message-Id: <200907302236.n6UMa6C5041434@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166843 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 22:36:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=166843 Change 166843 by pgj@petymeg-current on 2009/07/30 22:35:19 - Libnetstatify ah_stats(). - Some minor nits for esp_stats() as well. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#28 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipsec.c#4 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#36 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#28 (text+ko) ==== @@ -89,7 +89,7 @@ #ifdef IPSEC void ipsec_stats(u_long, const char *, int, int); void esp_stats(const struct stat_type *); -void ah_stats(u_long, const char *, int, int); +void ah_stats(const struct stat_type *); void ipcomp_stats(u_long, const char *, int, int); void pfkey_stats(const struct stat_type *); #endif ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipsec.c#4 (text+ko) ==== @@ -277,7 +277,6 @@ static void ipsec_hist_new(const u_int32_t *hist, size_t histmax, const struct val2str *name, const char *title); -static void print_ahstats(const struct ahstat *ahstat); static void print_ipcompstats(const struct ipcompstat *ipcompstat); /* @@ -312,56 +311,52 @@ } } -static void -print_ahstats(const struct ahstat *ahstat) +void +ah_stats(const struct stat_type *sttp) { -#define p32(f, m) if (ahstat->f || sflag <= 1) \ - printf("\t%u" m, (unsigned int)ahstat->f, plural(ahstat->f)) -#define p64(f, m) if (ahstat->f || sflag <= 1) \ - printf("\t%ju" m, (uintmax_t)ahstat->f, plural(ahstat->f)) -#define hist(f, n, t) \ - ipsec_hist_new((f), sizeof(f)/sizeof(f[0]), (n), (t)); + const struct ah_stat *s; + int first, proto; - p32(ahs_hdrops, " packet%s shorter than header shows\n"); - p32(ahs_nopf, " packet%s dropped; protocol family not supported\n"); - p32(ahs_notdb, " packet%s dropped; no TDB\n"); - p32(ahs_badkcr, " packet%s dropped; bad KCR\n"); - p32(ahs_qfull, " packet%s dropped; queue full\n"); - p32(ahs_noxform, " packet%s dropped; no transform\n"); - p32(ahs_wrap, " replay counter wrap%s\n"); - p32(ahs_badauth, " packet%s dropped; bad authentication detected\n"); - p32(ahs_badauthl, " packet%s dropped; bad authentication length\n"); - p32(ahs_replay, " possible replay packet%s detected\n"); - p32(ahs_input, " packet%s in\n"); - p32(ahs_output, " packet%s out\n"); - p32(ahs_invalid, " packet%s dropped; invalid TDB\n"); - p64(ahs_ibytes, " byte%s in\n"); - p64(ahs_obytes, " byte%s out\n"); - p32(ahs_toobig, " packet%s dropped; larger than IP_MAXPACKET\n"); - p32(ahs_pdrops, " packet%s blocked due to policy\n"); - p32(ahs_crypto, " crypto processing failure%s\n"); - p32(ahs_tunnel, " tunnel sanity check failure%s\n"); - hist(ahstat->ahs_hist, ipsec_ahnames, "AH output"); - + s = netstat_get_ahstats(sttp); +#define p32(f, m) if (netstat_ahs_get_##f(s) || sflag <= 1) \ + printf("\t%u" m, netstat_ahs_get_##f(s), plural(netstat_ahs_get_##f(s))) +#define p64(f, m) if (netstat_ahs_get_##f(s) || sflag <= 1) \ + printf("\t%ju" m, netstat_ahs_get_##f(s), plural(netstat_ahs_get_##f(s))) + p32(hdrops, " packet%s shorter than header shows\n"); + p32(nopf, " packet%s dropped; protocol family not supported\n"); + p32(notdb, " packet%s dropped; no TDB\n"); + p32(badkcr, " packet%s dropped; bad KCR\n"); + p32(qfull, " packet%s dropped; queue full\n"); + p32(noxform, " packet%s dropped; no transform\n"); + p32(wrap, " replay counter wrap%s\n"); + p32(badauth, " packet%s dropped; bad authentication detected\n"); + p32(badauthl, " packet%s dropped; bad authentication length\n"); + p32(replay, " possible replay packet%s detected\n"); + p32(input, " packet%s in\n"); + p32(output, " packet%s out\n"); + p32(invalid, " packet%s dropped; invalid TDB\n"); + p64(ibytes, " byte%s in\n"); + p64(obytes, " byte%s out\n"); + p32(toobig, " packet%s dropped; larger than IP_MAXPACKET\n"); + p32(pdrops, " packet%s blocked due to policy\n"); + p32(crypto, " crypto processing failure%s\n"); + p32(tunnel, " tunnel sanity check failure%s\n"); + first = 1; + for (proto = 0; proto < NETSTAT_AH_HIST_MAX; proto++) { + if (netstat_ahs_get_hist(s, proto) == 0) + continue; + if (first != 0) { + printf("\tAH output histogram:\n"); + first = 0; + } + printf("\t\t%s: %u\n", netstat_ipsec_ahname(proto), + netstat_ahs_get_hist(s, proto)); + } #undef p32 #undef p64 -#undef hist } void -ah_stats(u_long off, const char *name, int family __unused, int proto __unused) -{ - struct ahstat ahstat; - - if (off == 0) - return; - printf ("%s:\n", name); - kread(off, (char *)&ahstat, sizeof(ahstat)); - - print_ahstats(&ahstat); -} - -void esp_stats(const struct stat_type *sttp) { const struct esp_stat *s; @@ -372,8 +367,6 @@ printf("\t%u" m, netstat_esps_get_##f(s), plural(netstat_esps_get_##f(s))) #define p64(f, m) if (netstat_esps_get_##f(s) || sflag <= 1) \ printf("\t%ju" m, netstat_esps_get_##f(s), plural(netstat_esps_get_##f(s))) -#define hist(f, n, t) \ - ipsec_hist_new((f), sizeof(f)/sizeof(f[0]), (n), (t)); p32(hdrops, " packet%s shorter than header shows\n"); p32(nopf, " packet%s dropped; protocol family not supported\n"); p32(notdb, " packet%s dropped; no TDB\n"); @@ -407,7 +400,6 @@ } #undef p32 #undef p64 -#undef hist } static void ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#36 (text+ko) ==== @@ -107,11 +107,9 @@ { .n_name = "_mif6table" }, #define N_RTTRASH 14 { .n_name = "_rttrash" }, -#define N_AHSTAT 15 - { .n_name = "_ahstat" }, -#define N_IPCOMPSTAT 16 +#define N_IPCOMPSTAT 15 { .n_name = "_ipcompstat" }, -#define N_MFCTABLESIZE 17 +#define N_MFCTABLESIZE 16 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -150,8 +148,8 @@ #ifdef IPSEC { -1, N_IPSECSTAT, 1, NULL, NULL, stat_MAX, /* keep as compat */ ipsec_stats, NULL, "ipsec", 0, 0}, - { -1, N_AHSTAT, 1, NULL, NULL, stat_MAX, - ah_stats, NULL, "ah", 0, 0}, + { -1, 0, 1, NULL, ah_stats, stat_AH, + NULL, NULL, "ah", 0, 0}, { -1, 0, 1, NULL, esp_stats, stat_ESP, NULL, NULL, "esp", 0, 0}, { -1, N_IPCOMPSTAT, 1, NULL, NULL, stat_MAX, From owner-p4-projects@FreeBSD.ORG Thu Jul 30 23:01:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2323E1065674; Thu, 30 Jul 2009 23:01:35 +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 D47691065672 for ; Thu, 30 Jul 2009 23:01:34 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C256D8FC12 for ; Thu, 30 Jul 2009 23:01:34 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UN1YXX043207 for ; Thu, 30 Jul 2009 23:01:34 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UN1Yma043205 for perforce@freebsd.org; Thu, 30 Jul 2009 23:01:34 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 23:01:34 GMT Message-Id: <200907302301.n6UN1Yma043205@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166844 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 23:01:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=166844 Change 166844 by pgj@petymeg-current on 2009/07/30 23:01:24 Add header for IPcomp statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/ipcomp_var.h#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/xform_ipcomp.c#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/ipcomp_var.h#2 (text+ko) ==== @@ -41,6 +41,8 @@ */ #define IPCOMP_ALG_MAX 8 +#define IPCOMPSTAT_VERSION 0x00000001 + struct ipcompstat { u_int32_t ipcomps_hdrops; /* Packet shorter than header shows */ u_int32_t ipcomps_nopf; /* Protocol family not supported */ ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/xform_ipcomp.c#2 (text+ko) ==== @@ -42,11 +42,13 @@ #include #include #include +#include #include #include #include #include +#include #include #include @@ -69,14 +71,22 @@ #ifdef VIMAGE_GLOBALS int ipcomp_enable; +struct stat_header ipcompstat_header = { + .sth_version = IPCOMPSTAT_VERSION, + .sth_len = sizeof(struct ipcompstat) +}; struct ipcompstat ipcompstat; #endif SYSCTL_DECL(_net_inet_ipcomp); SYSCTL_V_INT(V_NET, vnet_ipsec, _net_inet_ipcomp, OID_AUTO, ipcomp_enable, CTLFLAG_RW, ipcomp_enable, 0, ""); + SYSCTL_V_STRUCT(V_NET, vnet_ipsec, _net_inet_ipcomp, IPSECCTL_STATS, - stats, CTLFLAG_RD, ipcompstat, ipcompstat, ""); + stats, CTLFLAG_RW, ipcompstat, ipcompstat, ""); + +SYSCTL_V_STRUCT(V_NET, vnet_ipsec, _net_inet_ipcomp, OID_AUTO, + stats_header, CTLFLAG_RD, ipcompstat_header, stat_header, ""); static int ipcomp_input_cb(struct cryptop *crp); static int ipcomp_output_cb(struct cryptop *crp); From owner-p4-projects@FreeBSD.ORG Thu Jul 30 23:02:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5903A106566B; Thu, 30 Jul 2009 23:02:36 +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 18BBC1065679 for ; Thu, 30 Jul 2009 23:02:36 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 06AA28FC15 for ; Thu, 30 Jul 2009 23:02:36 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UN2ZgV043265 for ; Thu, 30 Jul 2009 23:02:35 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UN2Zi6043263 for perforce@freebsd.org; Thu, 30 Jul 2009 23:02:35 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 23:02:35 GMT Message-Id: <200907302302.n6UN2Zi6043263@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166845 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 23:02:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=166845 Change 166845 by pgj@petymeg-current on 2009/07/30 23:01:57 Add support for IPcomp statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#52 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#49 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#19 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#57 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#52 (text+ko) ==== @@ -92,6 +92,7 @@ /* IPsec: */ #define NETSTAT_ESP_HIST_MAX ESP_ALG_MAX #define NETSTAT_AH_HIST_MAX AH_ALG_MAX +#define NETSTAT_IPCOMP_HIST_MAX IPCOMP_ALG_MAX /* Enum for TCP states: */ @@ -159,6 +160,7 @@ stat_pfkey, stat_ESP, stat_AH, + stat_IPcomp, #endif stat_MAX, stat_Invalid, @@ -212,6 +214,7 @@ struct pfkey_stat; struct esp_stat; struct ah_stat; +struct ipcomp_stat; #endif __BEGIN_DECLS @@ -1002,5 +1005,25 @@ u_int32_t netstat_ahs_get_crypto(const struct ah_stat *); u_int32_t netstat_ahs_get_tunnel(const struct ah_stat *); u_int32_t netstat_ahs_get_hist(const struct ah_stat *, int); + +const struct ipcomp_stat *netstat_get_ipcompstats(const struct stat_type *); +const char *netstat_ipsec_ipcompname(int); + +u_int32_t netstat_ipcomps_get_hdrops(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_nopf(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_notdb(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_badkcr(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_qfull(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_noxform(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_wrap(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_input(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_output(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_invalid(const struct ipcomp_stat *); +u_int64_t netstat_ipcomps_get_ibytes(const struct ipcomp_stat *); +u_int64_t netstat_ipcomps_get_obytes(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_toobig(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_pdrops(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_crypto(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_hist(const struct ipcomp_stat *, int); #endif /* !IPSEC */ #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#49 (text+ko) ==== @@ -69,6 +69,7 @@ #include #include #include +#include #endif #include "netstat.h" @@ -385,6 +386,10 @@ struct ah_stat { struct ahstat s; }; + +struct ipcomp_stat { + struct ipcompstat s; +}; #endif /* Timestamp type. */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#19 (text+ko) ==== @@ -90,6 +90,7 @@ { PFKEYSTAT_VERSION, "net.key.stats", "_pfkeystat" }, { ESPSTAT_VERSION, "net.inet.esp.stats", "_espstat" }, { AHSTAT_VERSION, "net.inet.ah.stats", "_ahstat" }, + { IPCOMPSTAT_VERSION, "net.inet.ipcomp.stats", "_ipcompstat" }, #endif }; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#57 (text+ko) ==== @@ -1972,6 +1972,36 @@ #undef AH_ACC #undef AH_ACC64 #undef AH_ACCA + +#define IPCOMP_ACC(field) \ + STATS_ACCX(u_int32_t,ipcomp,field,ipcomps_##field) + +#define IPCOMP_ACC64(field) \ + STATS_ACCX(u_int64_t,ipcomp,field,ipcomps_##field) + +#define IPCOMP_ACCA(field,size) \ + STATS_ACCXA(u_int32_t,ipcomp,field,ipcomps_##field,size) + +STATS_GET(ipcomp,IPcomp); +IPCOMP_ACC(hdrops); +IPCOMP_ACC(nopf); +IPCOMP_ACC(notdb); +IPCOMP_ACC(badkcr); +IPCOMP_ACC(qfull); +IPCOMP_ACC(noxform); +IPCOMP_ACC(wrap); +IPCOMP_ACC(input); +IPCOMP_ACC(output); +IPCOMP_ACC(invalid); +IPCOMP_ACC64(ibytes); +IPCOMP_ACC64(obytes); +IPCOMP_ACC(toobig); +IPCOMP_ACC(pdrops); +IPCOMP_ACC(crypto); +IPCOMP_ACCA(hist,IPCOMP_ALG_MAX); +#undef IPCOMP_ACC +#undef IPCOMP_ACC64 +#undef IPCOMP_ACCA #endif /* !IPSEC */ static const char *icmpnames[ICMP_MAXTYPE + 1] = { @@ -2358,6 +2388,14 @@ { -1, NULL }, }; +static struct val2str ipsec_ipcompnames[] = { + { SADB_X_CALG_NONE, "none" }, + { SADB_X_CALG_OUI, "oui" }, + { SADB_X_CALG_DEFLATE, "deflate" }, + { SADB_X_CALG_LZS, "lzs" }, + { -1, NULL }, +}; + const char * resolve_val2str_name(int proto, const struct val2str *name) { @@ -2389,6 +2427,12 @@ } const char * +netstat_ipsec_ipcompname(int proto) +{ + return (resolve_val2str_name(proto, ipsec_ipcompnames)); +} + +const char * routename(in_addr_t in, int numeric) { char *cp; From owner-p4-projects@FreeBSD.ORG Thu Jul 30 23:03:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 924E21065673; Thu, 30 Jul 2009 23:03:37 +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 50C44106566B for ; Thu, 30 Jul 2009 23:03:37 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3E20E8FC08 for ; Thu, 30 Jul 2009 23:03:37 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6UN3b0Q044316 for ; Thu, 30 Jul 2009 23:03:37 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6UN3bwV044314 for perforce@freebsd.org; Thu, 30 Jul 2009 23:03:37 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 30 Jul 2009 23:03:37 GMT Message-Id: <200907302303.n6UN3bwV044314@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166846 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2009 23:03:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=166846 Change 166846 by pgj@petymeg-current on 2009/07/30 23:02:52 Function ipcomp_stats() in netstat(1) now uses libnetstat(3). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#29 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipsec.c#5 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#37 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#29 (text+ko) ==== @@ -90,7 +90,7 @@ void ipsec_stats(u_long, const char *, int, int); void esp_stats(const struct stat_type *); void ah_stats(const struct stat_type *); -void ipcomp_stats(u_long, const char *, int, int); +void ipcomp_stats(const struct stat_type *); void pfkey_stats(const struct stat_type *); #endif ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipsec.c#5 (text+ko) ==== @@ -274,43 +274,6 @@ print_ipsecstats(&ipsecstat); } - -static void ipsec_hist_new(const u_int32_t *hist, size_t histmax, - const struct val2str *name, const char *title); -static void print_ipcompstats(const struct ipcompstat *ipcompstat); - -/* - * Dump IPSEC statistics structure. - */ -static void -ipsec_hist_new(const u_int32_t *hist, size_t histmax, - const struct val2str *name, const char *title) -{ - int first; - size_t proto; - const struct val2str *p; - - first = 1; - for (proto = 0; proto < histmax; proto++) { - if (hist[proto] <= 0) - continue; - if (first) { - printf("\t%s histogram:\n", title); - first = 0; - } - for (p = name; p && p->str; p++) { - if (p->val == (int)proto) - break; - } - if (p && p->str) { - printf("\t\t%s: %u\n", p->str, hist[proto]); - } else { - printf("\t\t#%lu: %u\n", (unsigned long)proto, - hist[proto]); - } - } -} - void ah_stats(const struct stat_type *sttp) { @@ -402,48 +365,43 @@ #undef p64 } -static void -print_ipcompstats(const struct ipcompstat *ipcompstat) +void +ipcomp_stats(const struct stat_type *sttp) { -#define p32(f, m) if (ipcompstat->f || sflag <= 1) \ - printf("\t%u" m, (unsigned int)ipcompstat->f, plural(ipcompstat->f)) -#define p64(f, m) if (ipcompstat->f || sflag <= 1) \ - printf("\t%ju" m, (uintmax_t)ipcompstat->f, plural(ipcompstat->f)) -#define hist(f, n, t) \ - ipsec_hist_new((f), sizeof(f)/sizeof(f[0]), (n), (t)); + const struct ipcomp_stat *s; + int first, proto; - p32(ipcomps_hdrops, " packet%s shorter than header shows\n"); - p32(ipcomps_nopf, " packet%s dropped; protocol family not supported\n"); - p32(ipcomps_notdb, " packet%s dropped; no TDB\n"); - p32(ipcomps_badkcr, " packet%s dropped; bad KCR\n"); - p32(ipcomps_qfull, " packet%s dropped; queue full\n"); - p32(ipcomps_noxform, " packet%s dropped; no transform\n"); - p32(ipcomps_wrap, " replay counter wrap%s\n"); - p32(ipcomps_input, " packet%s in\n"); - p32(ipcomps_output, " packet%s out\n"); - p32(ipcomps_invalid, " packet%s dropped; invalid TDB\n"); - p64(ipcomps_ibytes, " byte%s in\n"); - p64(ipcomps_obytes, " byte%s out\n"); - p32(ipcomps_toobig, " packet%s dropped; larger than IP_MAXPACKET\n"); - p32(ipcomps_pdrops, " packet%s blocked due to policy\n"); - p32(ipcomps_crypto, " crypto processing failure%s\n"); - hist(ipcompstat->ipcomps_hist, ipsec_compnames, "COMP output"); - + s = netstat_get_ipcompstats(sttp); +#define p32(f, m) if (netstat_ipcomps_get_##f(s) || sflag <= 1) \ + printf("\t%u" m, netstat_ipcomps_get_##f(s), plural(netstat_ipcomps_get_##f(s))) +#define p64(f, m) if (netstat_ipcomps_get_##f(s) || sflag <= 1) \ + printf("\t%ju" m, netstat_ipcomps_get_##f(s), plural(netstat_ipcomps_get_##f(s))) + p32(hdrops, " packet%s shorter than header shows\n"); + p32(nopf, " packet%s dropped; protocol family not supported\n"); + p32(notdb, " packet%s dropped; no TDB\n"); + p32(badkcr, " packet%s dropped; bad KCR\n"); + p32(qfull, " packet%s dropped; queue full\n"); + p32(noxform, " packet%s dropped; no transform\n"); + p32(wrap, " replay counter wrap%s\n"); + p32(input, " packet%s in\n"); + p32(output, " packet%s out\n"); + p32(invalid, " packet%s dropped; invalid TDB\n"); + p64(ibytes, " byte%s in\n"); + p64(obytes, " byte%s out\n"); + p32(toobig, " packet%s dropped; larger than IP_MAXPACKET\n"); + p32(pdrops, " packet%s blocked due to policy\n"); + p32(crypto, " crypto processing failure%s\n"); + first = 1; + for (proto = 0; proto < NETSTAT_IPCOMP_HIST_MAX; proto++) { + if (netstat_ipcomps_get_hist(s, proto) == 0) + continue; + if (first != 0) { + printf("\tCOMP output histogram:\n"); + first = 0; + } + printf("\t\t%s: %u\n", netstat_ipsec_ipcompname(proto), + netstat_ipcomps_get_hist(s, proto)); + } #undef p32 #undef p64 -#undef hist -} - -void -ipcomp_stats(u_long off, const char *name, int family __unused, - int proto __unused) -{ - struct ipcompstat ipcompstat; - - if (off == 0) - return; - printf ("%s:\n", name); - kread(off, (char *)&ipcompstat, sizeof(ipcompstat)); - - print_ipcompstats(&ipcompstat); } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#37 (text+ko) ==== @@ -107,9 +107,7 @@ { .n_name = "_mif6table" }, #define N_RTTRASH 14 { .n_name = "_rttrash" }, -#define N_IPCOMPSTAT 15 - { .n_name = "_ipcompstat" }, -#define N_MFCTABLESIZE 16 +#define N_MFCTABLESIZE 15 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -152,8 +150,8 @@ NULL, NULL, "ah", 0, 0}, { -1, 0, 1, NULL, esp_stats, stat_ESP, NULL, NULL, "esp", 0, 0}, - { -1, N_IPCOMPSTAT, 1, NULL, NULL, stat_MAX, - ipcomp_stats, NULL, "ipcomp", 0, 0}, + { -1, 0, 1, NULL, ipcomp_stats, stat_IPcomp, + NULL, NULL, "ipcomp", 0, 0}, #endif { 0, 0, 1, NULL, pim_stats, stat_PIM, NULL, NULL, "pim", 1, IPPROTO_PIM }, From owner-p4-projects@FreeBSD.ORG Fri Jul 31 00:01:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 25D291065673; Fri, 31 Jul 2009 00:01:41 +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 D852D106566C for ; Fri, 31 Jul 2009 00:01:40 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C67848FC12 for ; Fri, 31 Jul 2009 00:01:40 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6V01erH050061 for ; Fri, 31 Jul 2009 00:01:40 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6V01ewh050059 for perforce@freebsd.org; Fri, 31 Jul 2009 00:01:40 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 00:01:40 GMT Message-Id: <200907310001.n6V01ewh050059@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166847 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 00:01:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=166847 Change 166847 by pgj@petymeg-current on 2009/07/31 00:00:46 Add header for IPsec statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/ipsec.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/ipsec.h#3 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/ipsec.c#3 (text+ko) ==== @@ -66,6 +66,7 @@ #include #include #include +#include #include #include @@ -107,6 +108,10 @@ #ifdef VIMAGE_GLOBALS /* NB: name changed so netstat doesn't use it. */ +struct stat_header ipsecstat_header = { + .sth_version = IPSECSTAT_VERSION, + .sth_len = sizeof(struct ipsecstat) +}; struct ipsecstat ipsec4stat; struct secpolicy ip4_def_policy; int ipsec_debug; @@ -165,8 +170,11 @@ crypto_support, CTLFLAG_RW, crypto_support,0, "Crypto driver selection."); SYSCTL_V_STRUCT(V_NET, vnet_ipsec, _net_inet_ipsec, OID_AUTO, - ipsecstats, CTLFLAG_RD, ipsec4stat, ipsecstat, + ipsecstats, CTLFLAG_RW, ipsec4stat, ipsecstat, "IPsec IPv4 statistics."); +SYSCTL_V_STRUCT(V_NET, vnet_ipsec, _net_inet_ipsec, OID_AUTO, + ipsecstats_header, CTLFLAG_RD, ipsecstat_header, stat_header, + "IPsec IPv4 statistics header."); SYSCTL_V_INT(V_NET, vnet_ipsec, _net_inet_ipsec, OID_AUTO, filtertunnel, CTLFLAG_RW, ip4_ipsec_filtertunnel, 0, "If set filter packets from an IPsec tunnel."); ==== //depot/projects/soc2009/pgj_libstat/src/sys/netipsec/ipsec.h#3 (text+ko) ==== @@ -212,36 +212,38 @@ #define IPSEC_REPLAYWSIZE 32 /* statistics for ipsec processing */ +#define IPSECSTAT_VERSION 0x00000001 + struct ipsecstat { - u_quad_t in_success; /* succeeded inbound process */ - u_quad_t in_polvio; + u_int64_t in_success; /* succeeded inbound process */ + u_int64_t in_polvio; /* security policy violation for inbound process */ - u_quad_t in_nosa; /* inbound SA is unavailable */ - u_quad_t in_inval; /* inbound processing failed due to EINVAL */ - u_quad_t in_nomem; /* inbound processing failed due to ENOBUFS */ - u_quad_t in_badspi; /* failed getting a SPI */ - u_quad_t in_ahreplay; /* AH replay check failed */ - u_quad_t in_espreplay; /* ESP replay check failed */ - u_quad_t in_ahauthsucc; /* AH authentication success */ - u_quad_t in_ahauthfail; /* AH authentication failure */ - u_quad_t in_espauthsucc; /* ESP authentication success */ - u_quad_t in_espauthfail; /* ESP authentication failure */ - u_quad_t in_esphist[256]; - u_quad_t in_ahhist[256]; - u_quad_t in_comphist[256]; - u_quad_t out_success; /* succeeded outbound process */ - u_quad_t out_polvio; + u_int64_t in_nosa; /* inbound SA is unavailable */ + u_int64_t in_inval; /* inbound processing failed due to EINVAL */ + u_int64_t in_nomem; /* inbound processing failed due to ENOBUFS */ + u_int64_t in_badspi; /* failed getting a SPI */ + u_int64_t in_ahreplay; /* AH replay check failed */ + u_int64_t in_espreplay; /* ESP replay check failed */ + u_int64_t in_ahauthsucc; /* AH authentication success */ + u_int64_t in_ahauthfail; /* AH authentication failure */ + u_int64_t in_espauthsucc; /* ESP authentication success */ + u_int64_t in_espauthfail; /* ESP authentication failure */ + u_int64_t in_esphist[256]; + u_int64_t in_ahhist[256]; + u_int64_t in_comphist[256]; + u_int64_t out_success; /* succeeded outbound process */ + u_int64_t out_polvio; /* security policy violation for outbound process */ - u_quad_t out_nosa; /* outbound SA is unavailable */ - u_quad_t out_inval; /* outbound process failed due to EINVAL */ - u_quad_t out_nomem; /* inbound processing failed due to ENOBUFS */ - u_quad_t out_noroute; /* there is no route */ - u_quad_t out_esphist[256]; - u_quad_t out_ahhist[256]; - u_quad_t out_comphist[256]; + u_int64_t out_nosa; /* outbound SA is unavailable */ + u_int64_t out_inval; /* outbound process failed due to EINVAL */ + u_int64_t out_nomem; /* inbound processing failed due to ENOBUFS */ + u_int64_t out_noroute; /* there is no route */ + u_int64_t out_esphist[256]; + u_int64_t out_ahhist[256]; + u_int64_t out_comphist[256]; - u_quad_t spdcachelookup; - u_quad_t spdcachemiss; + u_int64_t spdcachelookup; + u_int64_t spdcachemiss; u_int32_t ips_in_polvio; /* input: sec policy violation */ u_int32_t ips_out_polvio; /* output: sec policy violation */ From owner-p4-projects@FreeBSD.ORG Fri Jul 31 00:01:42 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ED2E410656D1; Fri, 31 Jul 2009 00:01:41 +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 EA7601065672 for ; Fri, 31 Jul 2009 00:01:40 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D7F588FC13 for ; Fri, 31 Jul 2009 00:01:40 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6V01ek6050066 for ; Fri, 31 Jul 2009 00:01:40 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6V01est050064 for perforce@freebsd.org; Fri, 31 Jul 2009 00:01:40 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 00:01:40 GMT Message-Id: <200907310001.n6V01est050064@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166848 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 00:01:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=166848 Change 166848 by pgj@petymeg-current on 2009/07/31 00:01:20 Add support for IPsec statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#53 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#50 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#20 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#58 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#30 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipsec.c#6 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#38 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#53 (text+ko) ==== @@ -35,6 +35,8 @@ #ifdef IPSEC #include #include +#include +#include #endif #define NETSTAT_MAXCALLER 16 @@ -93,6 +95,9 @@ #define NETSTAT_ESP_HIST_MAX ESP_ALG_MAX #define NETSTAT_AH_HIST_MAX AH_ALG_MAX #define NETSTAT_IPCOMP_HIST_MAX IPCOMP_ALG_MAX +#define NETSTAT_IPSEC_ESP_HIST_MAX 256 +#define NETSTAT_IPSEC_AH_HIST_MAX 256 +#define NETSTAT_IPSEC_IPCOMP_HIST_MAX 256 /* Enum for TCP states: */ @@ -161,6 +166,7 @@ stat_ESP, stat_AH, stat_IPcomp, + stat_IPsec, #endif stat_MAX, stat_Invalid, @@ -1025,5 +1031,48 @@ u_int32_t netstat_ipcomps_get_pdrops(const struct ipcomp_stat *); u_int32_t netstat_ipcomps_get_crypto(const struct ipcomp_stat *); u_int32_t netstat_ipcomps_get_hist(const struct ipcomp_stat *, int); + +const struct ipsec_stat *netstat_get_ipsecstats(const struct stat_type *); + +u_int64_t netstat_ipsecs_get_in_success(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_in_polvio(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_in_nosa(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_in_inval(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_in_nomem(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_in_badspi(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_in_ahreplay(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_in_espreplay(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_in_ahauthsucc(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_in_ahauthfail(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_in_espauthsucc(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_in_espauthfail(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_in_esphist(const struct ipsec_stat *, int); +u_int64_t netstat_ipsecs_get_in_ahhist(const struct ipsec_stat *, int); +u_int64_t netstat_ipsecs_get_in_comphist(const struct ipsec_stat *, int); +u_int64_t netstat_ipsecs_get_out_success(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_out_polvio(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_out_nosa(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_out_inval(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_out_nomem(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_out_noroute(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_out_esphist(const struct ipsec_stat *, int); +u_int64_t netstat_ipsecs_get_out_ahhist(const struct ipsec_stat *, int); +u_int64_t netstat_ipsecs_get_out_comphist(const struct ipsec_stat *, int); +u_int64_t netstat_ipsecs_get_spdcachelookup(const struct ipsec_stat *); +u_int64_t netstat_ipsecs_get_spdcachemiss(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_in_polvio(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_out_polvio(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_out_nosa(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_out_nomem(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_out_noroute(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_out_inval(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_out_bundlesa(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_mbcoalesced(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_clcoalesced(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_clcopied(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_mbinserted(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_input_front(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_input_middle(const struct ipsec_stat *); +u_int32_t netstat_ipsecs_get_ips_input_end(const struct ipsec_stat *); #endif /* !IPSEC */ #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#50 (text+ko) ==== @@ -70,6 +70,7 @@ #include #include #include +#include #endif #include "netstat.h" @@ -390,6 +391,10 @@ struct ipcomp_stat { struct ipcompstat s; }; + +struct ipsec_stat { + struct ipsecstat s; +}; #endif /* Timestamp type. */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#20 (text+ko) ==== @@ -91,6 +91,7 @@ { ESPSTAT_VERSION, "net.inet.esp.stats", "_espstat" }, { AHSTAT_VERSION, "net.inet.ah.stats", "_ahstat" }, { IPCOMPSTAT_VERSION, "net.inet.ipcomp.stats", "_ipcompstat" }, + { IPSECSTAT_VERSION, "net.inet.ipsec.ipsecstats", "_ipsec4stat" }, #endif }; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#58 (text+ko) ==== @@ -2002,6 +2002,60 @@ #undef IPCOMP_ACC #undef IPCOMP_ACC64 #undef IPCOMP_ACCA + +#define IPSEC_ACC(field) \ + STATS_ACCX(u_int64_t,ipsec,field,field) + +#define IPSEC_ACC32(field) \ + STATS_ACCX(u_int32_t,ipsec,field,field) + +#define IPSEC_ACCA(field,size) \ + STATS_ACCXA(u_int64_t,ipsec,field,field,size) + +STATS_GET(ipsec,IPsec); +IPSEC_ACC(in_success); +IPSEC_ACC(in_polvio); +IPSEC_ACC(in_nosa); +IPSEC_ACC(in_inval); +IPSEC_ACC(in_nomem); +IPSEC_ACC(in_badspi); +IPSEC_ACC(in_ahreplay); +IPSEC_ACC(in_espreplay); +IPSEC_ACC(in_ahauthsucc); +IPSEC_ACC(in_ahauthfail); +IPSEC_ACC(in_espauthsucc); +IPSEC_ACC(in_espauthfail); +IPSEC_ACCA(in_esphist,256); +IPSEC_ACCA(in_ahhist,256); +IPSEC_ACCA(in_comphist,256); +IPSEC_ACC(out_success); +IPSEC_ACC(out_polvio); +IPSEC_ACC(out_nosa); +IPSEC_ACC(out_inval); +IPSEC_ACC(out_nomem); +IPSEC_ACC(out_noroute); +IPSEC_ACCA(out_esphist,256); +IPSEC_ACCA(out_ahhist,256); +IPSEC_ACCA(out_comphist,256); +IPSEC_ACC(spdcachelookup); +IPSEC_ACC(spdcachemiss); +IPSEC_ACC32(ips_in_polvio); +IPSEC_ACC32(ips_out_polvio); +IPSEC_ACC32(ips_out_nosa); +IPSEC_ACC32(ips_out_nomem); +IPSEC_ACC32(ips_out_noroute); +IPSEC_ACC32(ips_out_inval); +IPSEC_ACC32(ips_out_bundlesa); +IPSEC_ACC32(ips_mbcoalesced); +IPSEC_ACC32(ips_clcoalesced); +IPSEC_ACC32(ips_clcopied); +IPSEC_ACC32(ips_mbinserted); +IPSEC_ACC32(ips_input_front); +IPSEC_ACC32(ips_input_middle); +IPSEC_ACC32(ips_input_end); +#undef IPSEC_ACC +#undef IPSEC_ACC32 +#undef IPSEC_ACCA #endif /* !IPSEC */ static const char *icmpnames[ICMP_MAXTYPE + 1] = { ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#30 (text+ko) ==== @@ -87,7 +87,7 @@ void carp_stats(const struct stat_type *); void pfsync_stats(const struct stat_type *); #ifdef IPSEC -void ipsec_stats(u_long, const char *, int, int); +void ipsec_stats(const struct stat_type *); void esp_stats(const struct stat_type *); void ah_stats(const struct stat_type *); void ipcomp_stats(const struct stat_type *); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipsec.c#6 (text+ko) ==== @@ -27,6 +27,7 @@ */ /*- * Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project. + * Copyright (c) 2009 Gabor Pali * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -95,125 +96,23 @@ #include __FBSDID("$FreeBSD: src/usr.bin/netstat/ipsec.c,v 1.18 2008/01/02 23:26:11 obrien Exp $"); -#include -#include -#include -#include - -#include -#include -#include -#include -#include +#include -#include #include -#include -#include #include #include "extern.h" -struct val2str { - int val; - const char *str; -}; - -static struct val2str ipsec_ahnames[] = { - { SADB_AALG_NONE, "none", }, - { SADB_AALG_MD5HMAC, "hmac-md5", }, - { SADB_AALG_SHA1HMAC, "hmac-sha1", }, - { SADB_X_AALG_MD5, "md5", }, - { SADB_X_AALG_SHA, "sha", }, - { SADB_X_AALG_NULL, "null", }, -#ifdef SADB_X_AALG_SHA2_256 - { SADB_X_AALG_SHA2_256, "hmac-sha2-256", }, -#endif -#ifdef SADB_X_AALG_SHA2_384 - { SADB_X_AALG_SHA2_384, "hmac-sha2-384", }, -#endif -#ifdef SADB_X_AALG_SHA2_512 - { SADB_X_AALG_SHA2_512, "hmac-sha2-512", }, -#endif -#ifdef SADB_X_AALG_RIPEMD160HMAC - { SADB_X_AALG_RIPEMD160HMAC, "hmac-ripemd160", }, -#endif -#ifdef SADB_X_AALG_AES_XCBC_MAC - { SADB_X_AALG_AES_XCBC_MAC, "aes-xcbc-mac", }, -#endif - { -1, NULL }, -}; - -static struct val2str ipsec_espnames[] = { - { SADB_EALG_NONE, "none", }, - { SADB_EALG_DESCBC, "des-cbc", }, - { SADB_EALG_3DESCBC, "3des-cbc", }, - { SADB_EALG_NULL, "null", }, - { SADB_X_EALG_CAST128CBC, "cast128-cbc", }, - { SADB_X_EALG_BLOWFISHCBC, "blowfish-cbc", }, -#ifdef SADB_X_EALG_RIJNDAELCBC - { SADB_X_EALG_RIJNDAELCBC, "rijndael-cbc", }, -#endif -#ifdef SADB_X_EALG_AESCTR - { SADB_X_EALG_AESCTR, "aes-ctr", }, -#endif - { -1, NULL }, -}; - -static struct val2str ipsec_compnames[] = { - { SADB_X_CALG_NONE, "none", }, - { SADB_X_CALG_OUI, "oui", }, - { SADB_X_CALG_DEFLATE, "deflate", }, - { SADB_X_CALG_LZS, "lzs", }, - { -1, NULL }, -}; - -static void ipsec_hist(const u_quad_t *hist, size_t histmax, - const struct val2str *name, const char *title); -static void print_ipsecstats(const struct ipsecstat *ipsecstat); - - -/* - * Dump IPSEC statistics structure. - */ -static void -ipsec_hist(const u_quad_t *hist, size_t histmax, const struct val2str *name, - const char *title) +void +ipsec_stats(const struct stat_type *sttp) { - int first; - size_t proto; - const struct val2str *p; + const struct ipsec_stat *s; + int first, proto; - first = 1; - for (proto = 0; proto < histmax; proto++) { - if (hist[proto] <= 0) - continue; - if (first) { - printf("\t%s histogram:\n", title); - first = 0; - } - for (p = name; p && p->str; p++) { - if (p->val == (int)proto) - break; - } - if (p && p->str) { - printf("\t\t%s: %ju\n", p->str, (uintmax_t)hist[proto]); - } else { - printf("\t\t#%ld: %ju\n", (long)proto, - (uintmax_t)hist[proto]); - } - } -} - -static void -print_ipsecstats(const struct ipsecstat *ipsecstat) -{ -#define p(f, m) if (ipsecstat->f || sflag <= 1) \ - printf(m, (uintmax_t)ipsecstat->f, plural(ipsecstat->f)) -#define pes(f, m) if (ipsecstat->f || sflag <= 1) \ - printf(m, (uintmax_t)ipsecstat->f, plurales(ipsecstat->f)) -#define hist(f, n, t) \ - ipsec_hist((f), sizeof(f)/sizeof(f[0]), (n), (t)); - + s = netstat_get_ipsecstats(sttp); +#define p(f, m) if (netstat_ipsecs_get_##f(s) || sflag <= 1) \ + printf(m, (uintmax_t)netstat_ipsecs_get_##f(s), plural(netstat_ipsecs_get_##f(s))) +#define pes(f, m) if (netstat_ipsecs_get_##f(s) || sflag <= 1) \ + printf(m, netstat_ipsecs_get_##f(s), plurales(netstat_ipsecs_get_##f(s))) p(in_success, "\t%ju inbound packet%s processed successfully\n"); p(in_polvio, "\t%ju inbound packet%s violated process security " "policy\n"); @@ -225,10 +124,39 @@ p(in_espreplay, "\t%ju inbound packet%s failed on ESP replay check\n"); p(in_ahauthsucc, "\t%ju inbound packet%s considered authentic\n"); p(in_ahauthfail, "\t%ju inbound packet%s failed on authentication\n"); - hist(ipsecstat->in_ahhist, ipsec_ahnames, "AH input"); - hist(ipsecstat->in_esphist, ipsec_espnames, "ESP input"); - hist(ipsecstat->in_comphist, ipsec_compnames, "IPComp input"); - + first = 1; + for (proto = 0; proto < NETSTAT_IPSEC_AH_HIST_MAX; proto++) { + if (netstat_ipsecs_get_in_ahhist(s, proto) == 0) + continue; + if (first != 0) { + printf("\tAH input histogram:\n"); + first = 0; + } + printf("\t\t%s: %ju\n", netstat_ipsec_ahname(proto), + netstat_ipsecs_get_in_ahhist(s, proto)); + } + first = 1; + for (proto = 0; proto < NETSTAT_IPSEC_ESP_HIST_MAX; proto++) { + if (netstat_ipsecs_get_in_esphist(s, proto) == 0) + continue; + if (first != 0) { + printf("\tESP input histogram:\n"); + first = 0; + } + printf("\t\t%s: %ju\n", netstat_ipsec_espname(proto), + netstat_ipsecs_get_in_esphist(s, proto)); + } + first = 1; + for (proto = 0; proto < NETSTAT_IPSEC_IPCOMP_HIST_MAX; proto++) { + if (netstat_ipsecs_get_in_comphist(s, proto) == 0) + continue; + if (first != 0) { + printf("\tIPcomp input histogram:\n"); + first = 0; + } + printf("\t\t%s: %ju\n", netstat_ipsec_ipcompname(proto), + netstat_ipsecs_get_in_comphist(s, proto)); + } p(out_success, "\t%ju outbound packet%s processed successfully\n"); p(out_polvio, "\t%ju outbound packet%s violated process security " "policy\n"); @@ -236,13 +164,42 @@ p(out_inval, "\t%ju invalid outbound packet%s\n"); p(out_nomem, "\t%ju outbound packet%s failed due to insufficient memory\n"); p(out_noroute, "\t%ju outbound packet%s with no route\n"); - hist(ipsecstat->out_ahhist, ipsec_ahnames, "AH output"); - hist(ipsecstat->out_esphist, ipsec_espnames, "ESP output"); - hist(ipsecstat->out_comphist, ipsec_compnames, "IPComp output"); + first = 1; + for (proto = 0; proto < NETSTAT_IPSEC_AH_HIST_MAX; proto++) { + if (netstat_ipsecs_get_out_ahhist(s, proto) == 0) + continue; + if (first != 0) { + printf("\tAH output histogram:\n"); + first = 0; + } + printf("\t\t%s: %ju\n", netstat_ipsec_ahname(proto), + netstat_ipsecs_get_out_ahhist(s, proto)); + } + first = 1; + for (proto = 0; proto < NETSTAT_IPSEC_ESP_HIST_MAX; proto++) { + if (netstat_ipsecs_get_out_esphist(s, proto) == 0) + continue; + if (first != 0) { + printf("\tESP output histogram:\n"); + first = 0; + } + printf("\t\t%s: %ju\n", netstat_ipsec_espname(proto), + netstat_ipsecs_get_out_esphist(s, proto)); + } + first = 1; + for (proto = 0; proto < NETSTAT_IPSEC_IPCOMP_HIST_MAX; proto++) { + if (netstat_ipsecs_get_out_comphist(s, proto) == 0) + continue; + if (first != 0) { + printf("\tIPcomp output histogram:\n"); + first = 0; + } + printf("\t\t%s: %ju\n", netstat_ipsec_ipcompname(proto), + netstat_ipsecs_get_out_comphist(s, proto)); + } p(spdcachelookup, "\t%ju SPD cache lookup%s\n"); pes(spdcachemiss, "\t%ju SPD cache miss%s\n"); #undef pes -#undef hist p(ips_in_polvio, "\t%ju inbound packet%s violated process " "security policy\n"); p(ips_out_polvio, "\t%ju outbound packet%s violated process " @@ -262,19 +219,6 @@ } void -ipsec_stats(u_long off, const char *name, int af1 __unused, int proto __unused) -{ - struct ipsecstat ipsecstat; - - if (off == 0) - return; - printf ("%s:\n", name); - kread(off, (char *)&ipsecstat, sizeof(ipsecstat)); - - print_ipsecstats(&ipsecstat); -} - -void ah_stats(const struct stat_type *sttp) { const struct ah_stat *s; ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#38 (text+ko) ==== @@ -95,19 +95,15 @@ { .n_name = "_ngsocklist"}, #define N_IP6STAT 8 { .n_name = "_ip6stat" }, -#define N_IPSECSTAT 9 - { .n_name = "_ipsec4stat" }, -#define N_IPSEC6STAT 10 - { .n_name = "_ipsec6stat" }, -#define N_MRT6STAT 11 +#define N_MRT6STAT 9 { .n_name = "_mrt6stat" }, -#define N_MF6CTABLE 12 +#define N_MF6CTABLE 10 { .n_name = "_mf6ctable" }, -#define N_MIF6TABLE 13 +#define N_MIF6TABLE 11 { .n_name = "_mif6table" }, -#define N_RTTRASH 14 +#define N_RTTRASH 12 { .n_name = "_rttrash" }, -#define N_MFCTABLESIZE 15 +#define N_MFCTABLESIZE 13 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -144,8 +140,8 @@ { 0, 0, 1, NULL, igmp_stats, stat_IGMP, NULL, NULL, "igmp", 1, IPPROTO_IGMP }, #ifdef IPSEC - { -1, N_IPSECSTAT, 1, NULL, NULL, stat_MAX, /* keep as compat */ - ipsec_stats, NULL, "ipsec", 0, 0}, + { -1, 0, 1, NULL, ipsec_stats, stat_IPsec, /* keep as compat */ + NULL, NULL, "ipsec", 0, 0}, { -1, 0, 1, NULL, ah_stats, stat_AH, NULL, NULL, "ah", 0, 0}, { -1, 0, 1, NULL, esp_stats, stat_ESP, @@ -174,8 +170,8 @@ { 0, 0, 1, NULL, icmp6_stats, stat_ICMP6, NULL, icmp6_ifstats, "icmp6", 1, IPPROTO_ICMPV6 }, #ifdef IPSEC - { -1, N_IPSEC6STAT, 1, NULL, NULL, stat_MAX, - ipsec_stats, NULL, "ipsec6", 0, 0 }, + { -1, 0, 1, NULL, ipsec_stats, stat_IPsec, + NULL, NULL, "ipsec6", 0, 0 }, #endif #ifdef notyet { -1, 0, 1, NULL, pim6_stats, stat_PIM6, From owner-p4-projects@FreeBSD.ORG Fri Jul 31 10:06:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D0B791065687; Fri, 31 Jul 2009 10:06:40 +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 8ED32106573E for ; Fri, 31 Jul 2009 10:06:40 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 633018FC19 for ; Fri, 31 Jul 2009 10:06:40 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VA6e7t035261 for ; Fri, 31 Jul 2009 10:06:40 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VA6eiJ035259 for perforce@freebsd.org; Fri, 31 Jul 2009 10:06:40 GMT (envelope-from syl@FreeBSD.org) Date: Fri, 31 Jul 2009 10:06:40 GMT Message-Id: <200907311006.n6VA6eiJ035259@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166853 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 10:06:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=166853 Change 166853 by syl@syl_twoflowers on 2009/07/31 10:05:47 Add empty files for roothub_exec and hub template improvement. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/template/usb_template_hub.c#1 add .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_roothub_exec.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Fri Jul 31 13:48:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E7DE71065676; Fri, 31 Jul 2009 13:48:42 +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 A7ABD1065674 for ; Fri, 31 Jul 2009 13:48:42 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 958FE8FC08 for ; Fri, 31 Jul 2009 13:48:42 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VDmgTM091562 for ; Fri, 31 Jul 2009 13:48:42 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VDmgsr091560 for perforce@freebsd.org; Fri, 31 Jul 2009 13:48:42 GMT (envelope-from syl@FreeBSD.org) Date: Fri, 31 Jul 2009 13:48:42 GMT Message-Id: <200907311348.n6VDmgsr091560@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166855 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 13:48:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=166855 Change 166855 by syl@syl_twoflowers on 2009/07/31 13:47:53 Implement DCI HUB descriptors in a template. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/template/usb_template_hub.c#2 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/template/usb_template_hub.c#2 (text+ko) ==== @@ -1,0 +1,111 @@ +/*- + * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * This file contains the USB templates for a HUB device. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define STRING_LANG \ + 0x09, 0x04 + +#define STRING_HUB_VENDOR \ + 'F', 0, 'r', 0, 'e', 0, 'e', 0, \ + 'B', 0, 'S', 0, 'D', 0, ' ', 0, \ + 'f', 0, 'o', 0, 'u', 0, 'n', 0, \ + 'd', 0, 'a', 0, 't', 0, 'i', 0, \ + 'o', 0, 'n', 0, + +#define STRING_HUB_PRODUCT \ + 'D', 0, 'C', 0, 'I', 0, ' ', 0, 'R', 0, \ + 'o', 0, 'o', 0, 't', 0, ' ', 0, 'H', 0, \ + 'U', 0, 'B', 0, + +USB_MAKE_STRING_DESC(STRING_HUB_LANG, string_hub_langtab); +USB_MAKE_STRING_DESC(STRING_HUB_VENDOR, string_hub_vendor); +USB_MAKE_STRING_DESC(STRING_HUB_PRODUCT, string_hub_product); + +const struct usb_device_descriptor usb_devd_hub = { + .bLength = sizeof(struct usb_device_descriptor), + .bDescriptorType = UDESC_DEVICE, + .bcdUSB = {0x00, 0x02}, + .bDeviceClass = UDCLASS_HUB, + .bDeviceSubClass = UDSUBCLASS_HUB, + .bDeviceProtocol = UDPROTO_HSHUBSTT, + .bMaxPacketSize = 64, + .bcdDevice = {0x00, 0x01}, + .iManufacturer = 1, + .iProduct = 2, + .bNumConfigurations = 1, +}; + +const struct usb_device_qualifier usb_odevd_hub = { + .bLength = sizeof(struct usb_device_qualifier), + .bDescriptorType = UDESC_DEVICE_QUALIFIER, + .bcdUSB = {0x00, 0x02}, + .bDeviceClass = UDCLASS_HUB, + .bDeviceSubClass = UDSUBCLASS_HUB, + .bDeviceProtocol = UDPROTO_FSHUB, + .bMaxPacketSize0 = 0, + .bNumConfigurations = 0, +}; + +const struct usb_hub_descriptor_min usb_hubd_hub = { + .bDescLength = sizeof(usb_hubd_hub), + .bDescriptorType = UDESC_HUB, + .bNbrPorts = 1, + .wHubCharacteristics[0] = + (UHD_PWR_NO_SWITCH | UHD_OC_INDIVIDUAL) & 0xFF, + .wHubCharacteristics[1] = + (UHD_PWR_NO_SWITCH | UHD_OC_INDIVIDUAL) >> 8, + .bPwrOn2PwrGood = 50, + .bHubContrCurrent = 0, + .DeviceRemovable = {0}, /* port is removable */ +}; + + From owner-p4-projects@FreeBSD.ORG Fri Jul 31 13:50:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 98DEB1065672; Fri, 31 Jul 2009 13:50:45 +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 590A8106564A for ; Fri, 31 Jul 2009 13:50:45 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2D25C8FC17 for ; Fri, 31 Jul 2009 13:50:45 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VDoivA099094 for ; Fri, 31 Jul 2009 13:50:44 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VDoi6P099091 for perforce@freebsd.org; Fri, 31 Jul 2009 13:50:44 GMT (envelope-from syl@FreeBSD.org) Date: Fri, 31 Jul 2009 13:50:44 GMT Message-Id: <200907311350.n6VDoi6P099091@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166856 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 13:50:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=166856 Change 166856 by syl@syl_twoflowers on 2009/07/31 13:49:59 Add usb_template_hub.c in conf/files. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/conf/files#9 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/conf/files#9 (text+ko) ==== @@ -1675,6 +1675,7 @@ dev/usb/template/usb_template_cdce.c optional usb_template dev/usb/template/usb_template_msc.c optional usb_template dev/usb/template/usb_template_mtp.c optional usb_template +dev/usb/template/usb_template_hub.c optional usb # # USB END # From owner-p4-projects@FreeBSD.ORG Fri Jul 31 19:39:07 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 846F81065670; Fri, 31 Jul 2009 19:39:06 +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 42471106566B for ; Fri, 31 Jul 2009 19:39:06 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 307A38FC14 for ; Fri, 31 Jul 2009 19:39:06 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VJd6kJ066339 for ; Fri, 31 Jul 2009 19:39:06 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VJd6WL066336 for perforce@freebsd.org; Fri, 31 Jul 2009 19:39:06 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 31 Jul 2009 19:39:06 GMT Message-Id: <200907311939.n6VJd6WL066336@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166865 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 19:39:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=166865 Change 166865 by hselasky@hselasky_laptop001 on 2009/07/31 19:39:04 USB Ethernet: We used force all of the GPIO pins low first and then enable the ones we want. This has been changed to better match the ADMtek's reference design to avoid setting the power-down configuration line of the PHY at the same time it is reset. Patch by: John Hood Affected files ... .. //depot/projects/usb/src/sys/dev/usb/net/if_aue.c#15 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/net/if_aue.c#15 (text+ko) ==== @@ -484,7 +484,7 @@ } if (i == AUE_TIMEOUT) - device_printf(sc->sc_ue.ue_dev, "MII read timed out\n"); + device_printf(sc->sc_ue.ue_dev, "MII write timed out\n"); if (!locked) AUE_UNLOCK(sc); @@ -603,11 +603,14 @@ * to set the GPIO pins high so that the PHY(s) will * be enabled. * - * Note: We force all of the GPIO pins low first, *then* - * enable the ones we want. + * NOTE: We used force all of the GPIO pins low first and then + * enable the ones we want. This has been changed to better + * match the ADMtek's reference design to avoid setting the + * power-down configuration line of the PHY at the same time + * it is reset. */ - aue_csr_write_1(sc, AUE_GPIO0, AUE_GPIO_OUT0|AUE_GPIO_SEL0); - aue_csr_write_1(sc, AUE_GPIO0, AUE_GPIO_OUT0|AUE_GPIO_SEL0|AUE_GPIO_SEL1); + aue_csr_write_1(sc, AUE_GPIO0, AUE_GPIO_SEL0|AUE_GPIO_SEL1); + aue_csr_write_1(sc, AUE_GPIO0, AUE_GPIO_SEL0|AUE_GPIO_SEL1|AUE_GPIO_OUT0); if (sc->sc_flags & AUE_FLAG_LSYS) { /* Grrr. LinkSys has to be different from everyone else. */ From owner-p4-projects@FreeBSD.ORG Fri Jul 31 19:42:10 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 017531065670; Fri, 31 Jul 2009 19:42:10 +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 B07A91065672 for ; Fri, 31 Jul 2009 19:42:09 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9E86E8FC1B for ; Fri, 31 Jul 2009 19:42:09 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VJg9Ji066602 for ; Fri, 31 Jul 2009 19:42:09 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VJg9XA066599 for perforce@freebsd.org; Fri, 31 Jul 2009 19:42:09 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 31 Jul 2009 19:42:09 GMT Message-Id: <200907311942.n6VJg9XA066599@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166866 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 19:42:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=166866 Change 166866 by hselasky@hselasky_laptop001 on 2009/07/31 19:41:54 Spelling. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/net/if_aue.c#16 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/net/if_aue.c#16 (text+ko) ==== @@ -603,7 +603,7 @@ * to set the GPIO pins high so that the PHY(s) will * be enabled. * - * NOTE: We used force all of the GPIO pins low first and then + * NOTE: We used to force all of the GPIO pins low first and then * enable the ones we want. This has been changed to better * match the ADMtek's reference design to avoid setting the * power-down configuration line of the PHY at the same time From owner-p4-projects@FreeBSD.ORG Fri Jul 31 19:56:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A64151065675; Fri, 31 Jul 2009 19:56: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 5D481106566B for ; Fri, 31 Jul 2009 19:56:25 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4B8588FC19 for ; Fri, 31 Jul 2009 19:56:25 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VJuPE7067638 for ; Fri, 31 Jul 2009 19:56:25 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VJuPPw067636 for perforce@freebsd.org; Fri, 31 Jul 2009 19:56:25 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 31 Jul 2009 19:56:25 GMT Message-Id: <200907311956.n6VJuPPw067636@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166867 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 19:56:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=166867 Change 166867 by hselasky@hselasky_laptop001 on 2009/07/31 19:56:19 Support for the Apple Trackpad will be added soon. Get the product ID's in first. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usbdevs#72 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usbdevs#72 (text+ko) ==== @@ -861,6 +861,12 @@ /* Apple Computer products */ product APPLE EXT_KBD 0x020c Apple Extended USB Keyboard +product APPLE KBD_TP_ANSI 0x0223 Apple Internal Keyboard/Trackpad (Wellspring/ANSI) +product APPLE KBD_TP_ISO 0x0224 Apple Internal Keyboard/Trackpad (Wellspring/ISO) +product APPLE KBD_TP_JIS 0x0225 Apple Internal Keyboard/Trackpad (Wellspring/JIS) +product APPLE KBD_TP_ANSI2 0x0230 Apple Internal Keyboard/Trackpad (Wellspring2/ANSI) +product APPLE KBD_TP_ISO2 0x0231 Apple Internal Keyboard/Trackpad (Wellspring2/ISO) +product APPLE KBD_TP_JIS2 0x0232 Apple Internal Keyboard/Trackpad (Wellspring2/JIS) product APPLE OPTMOUSE 0x0302 Optical mouse product APPLE MIGHTYMOUSE 0x0304 Mighty Mouse product APPLE EXT_KBD_HUB 0x1003 Hub in Apple Extended USB Keyboard From owner-p4-projects@FreeBSD.ORG Fri Jul 31 20:23:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BE8B11065676; Fri, 31 Jul 2009 20:23:56 +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 74385106564A for ; Fri, 31 Jul 2009 20:23:55 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 62CC38FC08 for ; Fri, 31 Jul 2009 20:23:55 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VKNtI5070787 for ; Fri, 31 Jul 2009 20:23:55 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VKNtUR070785 for perforce@freebsd.org; Fri, 31 Jul 2009 20:23:55 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 20:23:55 GMT Message-Id: <200907312023.n6VKNtUR070785@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166868 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 20:23:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=166868 Change 166868 by pgj@petymeg-current on 2009/07/31 20:23:53 Add header for IP6 statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_input.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_var.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_input.c#2 (text+ko) ==== @@ -131,6 +131,11 @@ #ifdef VIMAGE_GLOBALS static int ip6qmaxlen; struct in6_ifaddr *in6_ifaddr; + +struct stat_header ip6stat_header = { + .sth_version = IP6STAT_VERSION, + .sth_len = sizeof(struct ip6stat) +}; struct ip6stat ip6stat; extern struct callout in6_tmpaddrtimer_ch; ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_var.h#2 (text+ko) ==== @@ -180,38 +180,40 @@ * Control options for incoming packets */ +#define IP6STAT_VERSION 0x00000001 + struct ip6stat { - u_quad_t ip6s_total; /* total packets received */ - u_quad_t ip6s_tooshort; /* packet too short */ - u_quad_t ip6s_toosmall; /* not enough data */ - u_quad_t ip6s_fragments; /* fragments received */ - u_quad_t ip6s_fragdropped; /* frags dropped(dups, out of space) */ - u_quad_t ip6s_fragtimeout; /* fragments timed out */ - u_quad_t ip6s_fragoverflow; /* fragments that exceeded limit */ - u_quad_t ip6s_forward; /* packets forwarded */ - u_quad_t ip6s_cantforward; /* packets rcvd for unreachable dest */ - u_quad_t ip6s_redirectsent; /* packets forwarded on same net */ - u_quad_t ip6s_delivered; /* datagrams delivered to upper level*/ - u_quad_t ip6s_localout; /* total ip packets generated here */ - u_quad_t ip6s_odropped; /* lost packets due to nobufs, etc. */ - u_quad_t ip6s_reassembled; /* total packets reassembled ok */ - u_quad_t ip6s_fragmented; /* datagrams successfully fragmented */ - u_quad_t ip6s_ofragments; /* output fragments created */ - u_quad_t ip6s_cantfrag; /* don't fragment flag was set, etc. */ - u_quad_t ip6s_badoptions; /* error in option processing */ - u_quad_t ip6s_noroute; /* packets discarded due to no route */ - u_quad_t ip6s_badvers; /* ip6 version != 6 */ - u_quad_t ip6s_rawout; /* total raw ip packets generated */ - u_quad_t ip6s_badscope; /* scope error */ - u_quad_t ip6s_notmember; /* don't join this multicast group */ - u_quad_t ip6s_nxthist[256]; /* next header history */ - u_quad_t ip6s_m1; /* one mbuf */ - u_quad_t ip6s_m2m[32]; /* two or more mbuf */ - u_quad_t ip6s_mext1; /* one ext mbuf */ - u_quad_t ip6s_mext2m; /* two or more ext mbuf */ - u_quad_t ip6s_exthdrtoolong; /* ext hdr are not continuous */ - u_quad_t ip6s_nogif; /* no match gif found */ - u_quad_t ip6s_toomanyhdr; /* discarded due to too many headers */ + u_int64_t ip6s_total; /* total packets received */ + u_int64_t ip6s_tooshort; /* packet too short */ + u_int64_t ip6s_toosmall; /* not enough data */ + u_int64_t ip6s_fragments; /* fragments received */ + u_int64_t ip6s_fragdropped; /* frags dropped(dups, out of space) */ + u_int64_t ip6s_fragtimeout; /* fragments timed out */ + u_int64_t ip6s_fragoverflow; /* fragments that exceeded limit */ + u_int64_t ip6s_forward; /* packets forwarded */ + u_int64_t ip6s_cantforward; /* packets rcvd for unreachable dest */ + u_int64_t ip6s_redirectsent; /* packets forwarded on same net */ + u_int64_t ip6s_delivered; /* datagrams delivered to upper level*/ + u_int64_t ip6s_localout; /* total ip packets generated here */ + u_int64_t ip6s_odropped; /* lost packets due to nobufs, etc. */ + u_int64_t ip6s_reassembled; /* total packets reassembled ok */ + u_int64_t ip6s_fragmented; /* datagrams successfully fragmented */ + u_int64_t ip6s_ofragments; /* output fragments created */ + u_int64_t ip6s_cantfrag; /* don't fragment flag was set, etc. */ + u_int64_t ip6s_badoptions; /* error in option processing */ + u_int64_t ip6s_noroute; /* packets discarded due to no route */ + u_int64_t ip6s_badvers; /* ip6 version != 6 */ + u_int64_t ip6s_rawout; /* total raw ip packets generated */ + u_int64_t ip6s_badscope; /* scope error */ + u_int64_t ip6s_notmember; /* don't join this multicast group */ + u_int64_t ip6s_nxthist[256]; /* next header history */ + u_int64_t ip6s_m1; /* one mbuf */ + u_int64_t ip6s_m2m[32]; /* two or more mbuf */ + u_int64_t ip6s_mext1; /* one ext mbuf */ + u_int64_t ip6s_mext2m; /* two or more ext mbuf */ + u_int64_t ip6s_exthdrtoolong; /* ext hdr are not continuous */ + u_int64_t ip6s_nogif; /* no match gif found */ + u_int64_t ip6s_toomanyhdr; /* discarded due to too many headers */ /* * statistics for improvement of the source address selection @@ -219,26 +221,26 @@ * XXX: hardcoded 16 = # of ip6 multicast scope types + 1 */ /* number of times that address selection fails */ - u_quad_t ip6s_sources_none; + u_int64_t ip6s_sources_none; /* number of times that an address on the outgoing I/F is chosen */ - u_quad_t ip6s_sources_sameif[16]; + u_int64_t ip6s_sources_sameif[16]; /* number of times that an address on a non-outgoing I/F is chosen */ - u_quad_t ip6s_sources_otherif[16]; + u_int64_t ip6s_sources_otherif[16]; /* * number of times that an address that has the same scope * from the destination is chosen. */ - u_quad_t ip6s_sources_samescope[16]; + u_int64_t ip6s_sources_samescope[16]; /* * number of times that an address that has a different scope * from the destination is chosen. */ - u_quad_t ip6s_sources_otherscope[16]; + u_int64_t ip6s_sources_otherscope[16]; /* number of times that a deprecated address is chosen */ - u_quad_t ip6s_sources_deprecated[16]; + u_int64_t ip6s_sources_deprecated[16]; /* number of times that each rule of source selection is applied. */ - u_quad_t ip6s_sources_rule[16]; + u_int64_t ip6s_sources_rule[16]; }; #ifdef _KERNEL @@ -292,6 +294,7 @@ #endif #ifdef VIMAGE_GLOBALS +extern struct stat_header ip6stat_header; extern struct ip6stat ip6stat; /* statistics */ extern int ip6_defhlim; /* default hop limit */ extern int ip6_defmcasthlim; /* default multicast hop limit */ From owner-p4-projects@FreeBSD.ORG Fri Jul 31 20:24:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F153B10656B6; Fri, 31 Jul 2009 20:24:56 +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 AD0DE10656B5 for ; Fri, 31 Jul 2009 20:24:56 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9B68E8FC1B for ; Fri, 31 Jul 2009 20:24:56 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VKOuTq070852 for ; Fri, 31 Jul 2009 20:24:56 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VKOuKZ070850 for perforce@freebsd.org; Fri, 31 Jul 2009 20:24:56 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 20:24:56 GMT Message-Id: <200907312024.n6VKOuKZ070850@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166869 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 20:24:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=166869 Change 166869 by pgj@petymeg-current on 2009/07/31 20:24:29 Add support for IP6 statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#54 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#51 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#21 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#59 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#54 (text+ko) ==== @@ -99,6 +99,10 @@ #define NETSTAT_IPSEC_AH_HIST_MAX 256 #define NETSTAT_IPSEC_IPCOMP_HIST_MAX 256 +/* IP6: */ +#define NETSTAT_IP6_NHIST_MAX 256 +#define NETSTAT_IP6_MBUF_MAX 32 +#define NETSTAT_IP6_IF_MAX 16 /* Enum for TCP states: */ enum tcp_state { @@ -152,6 +156,7 @@ stat_SCTP, #endif #ifdef INET6 + stat_IP6, stat_ICMP6, stat_PIM6, stat_RIP6, @@ -207,6 +212,7 @@ struct sctp_stat; #endif #ifdef INET6 +struct ip6_stat; struct icmp6_stat; struct pim6_stat; struct rip6_stat; @@ -785,6 +791,49 @@ #endif /* !SCTP */ #ifdef INET6 +const struct ip6_stat *netstat_get_ip6stats(const struct stat_type *); +const char *netstat_ip6_nhist_name(int); +const char *netstat_ip6_srcrule_name(int); + +u_int64_t netstat_ip6s_get_total(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_tooshort(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_toosmall(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_fragments(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_fragdropped(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_fragtimeout(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_fragoverflow(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_forward(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_cantforward(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_redirectsent(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_delivered(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_localout(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_odropped(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_reassembled(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_fragmented(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_ofragments(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_cantfrag(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_badoptions(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_noroute(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_badvers(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_rawout(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_badscope(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_notmember(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_nxthist(const struct ip6_stat *, int); +u_int64_t netstat_ip6s_get_m1(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_m2m(const struct ip6_stat *, int); +u_int64_t netstat_ip6s_get_mext1(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_mext2m(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_exthdrtoolong(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_nogif(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_toomanyhdr(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_sources_none(const struct ip6_stat *); +u_int64_t netstat_ip6s_get_sources_sameif(const struct ip6_stat *, int); +u_int64_t netstat_ip6s_get_sources_otherif(const struct ip6_stat *, int); +u_int64_t netstat_ip6s_get_sources_samescope(const struct ip6_stat *, int); +u_int64_t netstat_ip6s_get_sources_otherscope(const struct ip6_stat *, int); +u_int64_t netstat_ip6s_get_sources_deprecated(const struct ip6_stat *, int); +u_int64_t netstat_ip6s_get_sources_rule(const struct ip6_stat *, int); + const struct icmp6_stat *netstat_get_icmp6stats(const struct stat_type *); u_int64_t netstat_icmp6s_get_error(const struct icmp6_stat *); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#51 (text+ko) ==== @@ -55,6 +55,7 @@ #include #endif #ifdef INET6 +#include #include #include #include @@ -348,6 +349,10 @@ #endif #ifdef INET6 +struct ip6_stat { + struct ip6stat s; +}; + struct icmp6_stat { struct icmp6stat s; }; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#21 (text+ko) ==== @@ -77,6 +77,7 @@ { SCTPSTAT_VERSION, "net.inet.sctp.stats", "_sctpstat" }, #endif #ifdef INET6 + { IP6STAT_VERSION, "net.inet6.ip6.stats", "_ip6stat" }, { ICMP6STAT_VERSION, "net.inet6.icmp6.stats", "_icmp6stat" }, { PIM6STAT_VERSION, "net.inet6.pim.stats", "_pim6stat" }, { RIP6STAT_VERSION, "net.inet6.ip6.rip6stats", "_rip6stat" }, ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#59 (text+ko) ==== @@ -1692,6 +1692,54 @@ #endif /* !SCTP */ #ifdef INET6 +#define IP6_ACC(field) \ + STATS_ACCX(u_int64_t,ip6,field,ip6s_##field) + +#define IP6_ACCA(field,size) \ + STATS_ACCXA(u_int64_t,ip6,field,ip6s_##field,size) + +STATS_GET(ip6,IP6); +IP6_ACC(total); +IP6_ACC(tooshort); +IP6_ACC(toosmall); +IP6_ACC(fragments); +IP6_ACC(fragdropped); +IP6_ACC(fragtimeout); +IP6_ACC(fragoverflow); +IP6_ACC(forward); +IP6_ACC(cantforward); +IP6_ACC(redirectsent); +IP6_ACC(delivered); +IP6_ACC(localout); +IP6_ACC(odropped); +IP6_ACC(reassembled); +IP6_ACC(fragmented); +IP6_ACC(ofragments); +IP6_ACC(cantfrag); +IP6_ACC(badoptions); +IP6_ACC(noroute); +IP6_ACC(badvers); +IP6_ACC(rawout); +IP6_ACC(badscope); +IP6_ACC(notmember); +IP6_ACCA(nxthist,NETSTAT_IP6_NHIST_MAX); +IP6_ACC(m1); +IP6_ACCA(m2m,NETSTAT_IP6_MBUF_MAX); +IP6_ACC(mext1); +IP6_ACC(mext2m); +IP6_ACC(exthdrtoolong); +IP6_ACC(nogif); +IP6_ACC(toomanyhdr); +IP6_ACC(sources_none); +IP6_ACCA(sources_sameif,NETSTAT_IP6_IF_MAX); +IP6_ACCA(sources_otherif,NETSTAT_IP6_IF_MAX); +IP6_ACCA(sources_samescope,NETSTAT_IP6_IF_MAX); +IP6_ACCA(sources_otherscope,NETSTAT_IP6_IF_MAX); +IP6_ACCA(sources_deprecated,NETSTAT_IP6_IF_MAX); +IP6_ACCA(sources_rule,NETSTAT_IP6_IF_MAX); +#undef IP6_ACC +#undef IP6_ACCA + #define ICMP6_ACC(field) \ STATS_ACCX(u_int64_t,icmp6,field,icp6s_##field) @@ -2486,6 +2534,301 @@ return (resolve_val2str_name(proto, ipsec_ipcompnames)); } +static const char *ip6nh[] = { + "hop by hop", + "ICMP", + "IGMP", + "#3", + "IP", + "#5", + "TCP", + "#7", + "#8", + "#9", + "#10", + "#11", + "#12", + "#13", + "#14", + "#15", + "#16", + "UDP", + "#18", + "#19", + "#20", + "#21", + "IDP", + "#23", + "#24", + "#25", + "#26", + "#27", + "#28", + "TP", + "#30", + "#31", + "#32", + "#33", + "#34", + "#35", + "#36", + "#37", + "#38", + "#39", + "#40", + "IP6", + "#42", + "routing", + "fragment", + "#45", + "#46", + "#47", + "#48", + "#49", + "ESP", + "AH", + "#52", + "#53", + "#54", + "#55", + "#56", + "#57", + "ICMP6", + "no next header", + "destination option", + "#61", + "mobility", + "#63", + "#64", + "#65", + "#66", + "#67", + "#68", + "#69", + "#70", + "#71", + "#72", + "#73", + "#74", + "#75", + "#76", + "#77", + "#78", + "#79", + "ISOIP", + "#81", + "#82", + "#83", + "#84", + "#85", + "#86", + "#87", + "#88", + "OSPF", + "#80", + "#91", + "#92", + "#93", + "#94", + "#95", + "#96", + "Ethernet", + "#98", + "#99", + "#100", + "#101", + "#102", + "PIM", + "#104", + "#105", + "#106", + "#107", + "#108", + "#109", + "#110", + "#111", + "#112", + "#113", + "#114", + "#115", + "#116", + "#117", + "#118", + "#119", + "#120", + "#121", + "#122", + "#123", + "#124", + "#125", + "#126", + "#127", + "#128", + "#129", + "#130", + "#131", + "#132", + "#133", + "#134", + "#135", + "#136", + "#137", + "#138", + "#139", + "#140", + "#141", + "#142", + "#143", + "#144", + "#145", + "#146", + "#147", + "#148", + "#149", + "#150", + "#151", + "#152", + "#153", + "#154", + "#155", + "#156", + "#157", + "#158", + "#159", + "#160", + "#161", + "#162", + "#163", + "#164", + "#165", + "#166", + "#167", + "#168", + "#169", + "#170", + "#171", + "#172", + "#173", + "#174", + "#175", + "#176", + "#177", + "#178", + "#179", + "#180", + "#181", + "#182", + "#183", + "#184", + "#185", + "#186", + "#187", + "#188", + "#189", + "#180", + "#191", + "#192", + "#193", + "#194", + "#195", + "#196", + "#197", + "#198", + "#199", + "#200", + "#201", + "#202", + "#203", + "#204", + "#205", + "#206", + "#207", + "#208", + "#209", + "#210", + "#211", + "#212", + "#213", + "#214", + "#215", + "#216", + "#217", + "#218", + "#219", + "#220", + "#221", + "#222", + "#223", + "#224", + "#225", + "#226", + "#227", + "#228", + "#229", + "#230", + "#231", + "#232", + "#233", + "#234", + "#235", + "#236", + "#237", + "#238", + "#239", + "#240", + "#241", + "#242", + "#243", + "#244", + "#245", + "#246", + "#247", + "#248", + "#249", + "#250", + "#251", + "#252", + "#253", + "#254", + "#255", +}; + +const char * +netstat_ip6_nhist_name(int i) +{ + if (0 <= i && i < SizeOf(ip6nh)) + return (ip6nh[i]); + return (NULL); +} + +static const char *srcrule[] = { + "first candidate", + "same address", + "appropriate scope", + "deprecated address", + "home address", + "outgoing interface", + "matching label", + "public/temporary address", + "alive interface", + "preferred interface", + "rule #10", + "rule #11", + "rule #12", + "rule #13", + "longest match", + "rule #15", +}; + + +const char * +netstat_ip6_srcrule_name(int i) +{ + if (0 <= i && i < SizeOf(srcrule)) + return (srcrule[i]); + return (NULL); +} + const char * routename(in_addr_t in, int numeric) { From owner-p4-projects@FreeBSD.ORG Fri Jul 31 20:25:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1FE8B10656B0; Fri, 31 Jul 2009 20:25:58 +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 CE66510656B4 for ; Fri, 31 Jul 2009 20:25:57 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BB6CF8FC0A for ; Fri, 31 Jul 2009 20:25:57 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VKPvEP070969 for ; Fri, 31 Jul 2009 20:25:57 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VKPvL9070967 for perforce@freebsd.org; Fri, 31 Jul 2009 20:25:57 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 20:25:57 GMT Message-Id: <200907312025.n6VKPvL9070967@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166870 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 20:25:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=166870 Change 166870 by pgj@petymeg-current on 2009/07/31 20:25:49 Modify netstat(1) to call libnetstat(3) for displaying statistics on IP6 traffic. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#31 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet6.c#6 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#39 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#31 (text+ko) ==== @@ -95,7 +95,7 @@ #endif #ifdef INET6 -void ip6_stats(u_long, const char *, int, int); +void ip6_stats(const struct stat_type *); void ip6_ifstats(char *); void icmp6_stats(const struct stat_type *); void icmp6_ifstats(char *); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet6.c#6 (text+ko) ==== @@ -41,7 +41,7 @@ #include __FBSDID("$FreeBSD: src/usr.bin/netstat/inet6.c,v 1.35 2009/04/29 09:52:04 bms Exp $"); -#ifdef INET6 +#include #include #include #include @@ -81,446 +81,153 @@ static char ntop_buf[INET6_ADDRSTRLEN]; -static const char *ip6nh[] = { - "hop by hop", - "ICMP", - "IGMP", - "#3", - "IP", - "#5", - "TCP", - "#7", - "#8", - "#9", - "#10", - "#11", - "#12", - "#13", - "#14", - "#15", - "#16", - "UDP", - "#18", - "#19", - "#20", - "#21", - "IDP", - "#23", - "#24", - "#25", - "#26", - "#27", - "#28", - "TP", - "#30", - "#31", - "#32", - "#33", - "#34", - "#35", - "#36", - "#37", - "#38", - "#39", - "#40", - "IP6", - "#42", - "routing", - "fragment", - "#45", - "#46", - "#47", - "#48", - "#49", - "ESP", - "AH", - "#52", - "#53", - "#54", - "#55", - "#56", - "#57", - "ICMP6", - "no next header", - "destination option", - "#61", - "mobility", - "#63", - "#64", - "#65", - "#66", - "#67", - "#68", - "#69", - "#70", - "#71", - "#72", - "#73", - "#74", - "#75", - "#76", - "#77", - "#78", - "#79", - "ISOIP", - "#81", - "#82", - "#83", - "#84", - "#85", - "#86", - "#87", - "#88", - "OSPF", - "#80", - "#91", - "#92", - "#93", - "#94", - "#95", - "#96", - "Ethernet", - "#98", - "#99", - "#100", - "#101", - "#102", - "PIM", - "#104", - "#105", - "#106", - "#107", - "#108", - "#109", - "#110", - "#111", - "#112", - "#113", - "#114", - "#115", - "#116", - "#117", - "#118", - "#119", - "#120", - "#121", - "#122", - "#123", - "#124", - "#125", - "#126", - "#127", - "#128", - "#129", - "#130", - "#131", - "#132", - "#133", - "#134", - "#135", - "#136", - "#137", - "#138", - "#139", - "#140", - "#141", - "#142", - "#143", - "#144", - "#145", - "#146", - "#147", - "#148", - "#149", - "#150", - "#151", - "#152", - "#153", - "#154", - "#155", - "#156", - "#157", - "#158", - "#159", - "#160", - "#161", - "#162", - "#163", - "#164", - "#165", - "#166", - "#167", - "#168", - "#169", - "#170", - "#171", - "#172", - "#173", - "#174", - "#175", - "#176", - "#177", - "#178", - "#179", - "#180", - "#181", - "#182", - "#183", - "#184", - "#185", - "#186", - "#187", - "#188", - "#189", - "#180", - "#191", - "#192", - "#193", - "#194", - "#195", - "#196", - "#197", - "#198", - "#199", - "#200", - "#201", - "#202", - "#203", - "#204", - "#205", - "#206", - "#207", - "#208", - "#209", - "#210", - "#211", - "#212", - "#213", - "#214", - "#215", - "#216", - "#217", - "#218", - "#219", - "#220", - "#221", - "#222", - "#223", - "#224", - "#225", - "#226", - "#227", - "#228", - "#229", - "#230", - "#231", - "#232", - "#233", - "#234", - "#235", - "#236", - "#237", - "#238", - "#239", - "#240", - "#241", - "#242", - "#243", - "#244", - "#245", - "#246", - "#247", - "#248", - "#249", - "#250", - "#251", - "#252", - "#253", - "#254", - "#255", -}; - -static char *srcrule_str[] = { - "first candidate", - "same address", - "appropriate scope", - "deprecated address", - "home address", - "outgoing interface", - "matching label", - "public/temporary address", - "alive interface", - "preferred interface", - "rule #10", - "rule #11", - "rule #12", - "rule #13", - "longest match", - "rule #15", -}; - /* * Dump IP6 statistics structure. */ void -ip6_stats(u_long off, const char *name, int af1 __unused, int proto __unused) +ip6_stats(const struct stat_type *sttp) { - struct ip6stat ip6stat; + const struct ip6_stat *s; int first, i; - size_t len; - len = sizeof ip6stat; - if (live) { - memset(&ip6stat, 0, len); - if (sysctlbyname("net.inet6.ip6.stats", &ip6stat, &len, NULL, - 0) < 0) { - if (errno != ENOENT) - warn("sysctl: net.inet6.ip6.stats"); - return; - } - } else - kread(off, &ip6stat, len); - - printf("%s:\n", name); - -#define p(f, m) if (ip6stat.f || sflag <= 1) \ - printf(m, (uintmax_t)ip6stat.f, plural(ip6stat.f)) -#define p1a(f, m) if (ip6stat.f || sflag <= 1) \ - printf(m, (uintmax_t)ip6stat.f) - - p(ip6s_total, "\t%ju total packet%s received\n"); - p1a(ip6s_toosmall, "\t%ju with size smaller than minimum\n"); - p1a(ip6s_tooshort, "\t%ju with data size < data length\n"); - p1a(ip6s_badoptions, "\t%ju with bad options\n"); - p1a(ip6s_badvers, "\t%ju with incorrect version number\n"); - p(ip6s_fragments, "\t%ju fragment%s received\n"); - p(ip6s_fragdropped, "\t%ju fragment%s dropped (dup or out of space)\n"); - p(ip6s_fragtimeout, "\t%ju fragment%s dropped after timeout\n"); - p(ip6s_fragoverflow, "\t%ju fragment%s that exceeded limit\n"); - p(ip6s_reassembled, "\t%ju packet%s reassembled ok\n"); - p(ip6s_delivered, "\t%ju packet%s for this host\n"); - p(ip6s_forward, "\t%ju packet%s forwarded\n"); - p(ip6s_cantforward, "\t%ju packet%s not forwardable\n"); - p(ip6s_redirectsent, "\t%ju redirect%s sent\n"); - p(ip6s_localout, "\t%ju packet%s sent from this host\n"); - p(ip6s_rawout, "\t%ju packet%s sent with fabricated ip header\n"); - p(ip6s_odropped, "\t%ju output packet%s dropped due to no bufs, etc.\n"); - p(ip6s_noroute, "\t%ju output packet%s discarded due to no route\n"); - p(ip6s_fragmented, "\t%ju output datagram%s fragmented\n"); - p(ip6s_ofragments, "\t%ju fragment%s created\n"); - p(ip6s_cantfrag, "\t%ju datagram%s that can't be fragmented\n"); - p(ip6s_badscope, "\t%ju packet%s that violated scope rules\n"); - p(ip6s_notmember, "\t%ju multicast packet%s which we don't join\n"); - for (first = 1, i = 0; i < 256; i++) - if (ip6stat.ip6s_nxthist[i] != 0) { + s = netstat_get_ip6stats(sttp); +#define p(f, m) if (netstat_ip6s_get_##f(s) || sflag <= 1) \ + printf(m, netstat_ip6s_get_##f(s), plural(netstat_ip6s_get_##f(s))) +#define pa(f,i,m) if (netstat_ip6s_get_##f(s,i) || sflag <= 1) \ + printf(m, netstat_ip6s_get_##f(s,i), plural(netstat_ip6s_get_##f(s,i))) +#define p1a(f, m) if (netstat_ip6s_get_##f(s) || sflag <= 1) \ + printf(m, netstat_ip6s_get_##f(s)) + p(total, "\t%ju total packet%s received\n"); + p1a(toosmall, "\t%ju with size smaller than minimum\n"); + p1a(tooshort, "\t%ju with data size < data length\n"); + p1a(badoptions, "\t%ju with bad options\n"); + p1a(badvers, "\t%ju with incorrect version number\n"); + p(fragments, "\t%ju fragment%s received\n"); + p(fragdropped, "\t%ju fragment%s dropped (dup or out of space)\n"); + p(fragtimeout, "\t%ju fragment%s dropped after timeout\n"); + p(fragoverflow, "\t%ju fragment%s that exceeded limit\n"); + p(reassembled, "\t%ju packet%s reassembled ok\n"); + p(delivered, "\t%ju packet%s for this host\n"); + p(forward, "\t%ju packet%s forwarded\n"); + p(cantforward, "\t%ju packet%s not forwardable\n"); + p(redirectsent, "\t%ju redirect%s sent\n"); + p(localout, "\t%ju packet%s sent from this host\n"); + p(rawout, "\t%ju packet%s sent with fabricated ip header\n"); + p(odropped, "\t%ju output packet%s dropped due to no bufs, etc.\n"); + p(noroute, "\t%ju output packet%s discarded due to no route\n"); + p(fragmented, "\t%ju output datagram%s fragmented\n"); + p(ofragments, "\t%ju fragment%s created\n"); + p(cantfrag, "\t%ju datagram%s that can't be fragmented\n"); + p(badscope, "\t%ju packet%s that violated scope rules\n"); + p(notmember, "\t%ju multicast packet%s which we don't join\n"); + for (first = 1, i = 0; i < NETSTAT_IP6_NHIST_MAX; i++) + if (netstat_ip6s_get_nxthist(s, i) != 0) { if (first) { printf("\tInput histogram:\n"); first = 0; } - printf("\t\t%s: %ju\n", ip6nh[i], - (uintmax_t)ip6stat.ip6s_nxthist[i]); + printf("\t\t%s: %ju\n", netstat_ip6_nhist_name(i), + netstat_ip6s_get_nxthist(s, i)); } printf("\tMbuf statistics:\n"); - printf("\t\t%ju one mbuf\n", (uintmax_t)ip6stat.ip6s_m1); - for (first = 1, i = 0; i < 32; i++) { + printf("\t\t%ju one mbuf\n", netstat_ip6s_get_m1(s)); + for (first = 1, i = 0; i < NETSTAT_IP6_MBUF_MAX; i++) { char ifbuf[IFNAMSIZ]; - if (ip6stat.ip6s_m2m[i] != 0) { + if (netstat_ip6s_get_m2m(s, i) != 0) { if (first) { printf("\t\ttwo or more mbuf:\n"); first = 0; } printf("\t\t\t%s= %ju\n", if_indextoname(i, ifbuf), - (uintmax_t)ip6stat.ip6s_m2m[i]); + netstat_ip6s_get_m2m(s, i)); } } - printf("\t\t%ju one ext mbuf\n", - (uintmax_t)ip6stat.ip6s_mext1); - printf("\t\t%ju two or more ext mbuf\n", - (uintmax_t)ip6stat.ip6s_mext2m); - p(ip6s_exthdrtoolong, + printf("\t\t%ju one ext mbuf\n", netstat_ip6s_get_mext1(s)); + printf("\t\t%ju two or more ext mbuf\n", netstat_ip6s_get_mext2m(s)); + p(exthdrtoolong, "\t%ju packet%s whose headers are not continuous\n"); - p(ip6s_nogif, "\t%ju tunneling packet%s that can't find gif\n"); - p(ip6s_toomanyhdr, + p(nogif, "\t%ju tunneling packet%s that can't find gif\n"); + p(toomanyhdr, "\t%ju packet%s discarded because of too many headers\n"); /* for debugging source address selection */ -#define PRINT_SCOPESTAT(s,i) do {\ +#define PRINT_SCOPESTAT(f,i) do {\ switch(i) { /* XXX hardcoding in each case */\ case 1:\ - p(s, "\t\t%ju node-local%s\n");\ + pa(f, i, "\t\t%ju node-local%s\n");\ break;\ case 2:\ - p(s,"\t\t%ju link-local%s\n");\ + pa(f, i, "\t\t%ju link-local%s\n");\ break;\ case 5:\ - p(s,"\t\t%ju site-local%s\n");\ + pa(f, i, "\t\t%ju site-local%s\n");\ break;\ case 14:\ - p(s,"\t\t%ju global%s\n");\ + pa(f, i, "\t\t%ju global%s\n");\ break;\ default:\ printf("\t\t%ju addresses scope=%x\n",\ - (uintmax_t)ip6stat.s, i);\ + netstat_ip6s_get_##f(s,i), i);\ }\ } while (0); - p(ip6s_sources_none, - "\t%ju failure%s of source address selection\n"); - for (first = 1, i = 0; i < 16; i++) { - if (ip6stat.ip6s_sources_sameif[i]) { + p(sources_none, "\t%ju failure%s of source address selection\n"); + for (first = 1, i = 0; i < NETSTAT_IP6_IF_MAX; i++) { + if (netstat_ip6s_get_sources_sameif(s, i)) { if (first) { printf("\tsource addresses on an outgoing I/F\n"); first = 0; } - PRINT_SCOPESTAT(ip6s_sources_sameif[i], i); + PRINT_SCOPESTAT(sources_sameif,i); } } - for (first = 1, i = 0; i < 16; i++) { - if (ip6stat.ip6s_sources_otherif[i]) { + for (first = 1, i = 0; i < NETSTAT_IP6_IF_MAX; i++) { + if (netstat_ip6s_get_sources_otherif(s, i)) { if (first) { printf("\tsource addresses on a non-outgoing I/F\n"); first = 0; } - PRINT_SCOPESTAT(ip6s_sources_otherif[i], i); + PRINT_SCOPESTAT(sources_otherif,i); } } - for (first = 1, i = 0; i < 16; i++) { - if (ip6stat.ip6s_sources_samescope[i]) { + for (first = 1, i = 0; i < NETSTAT_IP6_IF_MAX; i++) { + if (netstat_ip6s_get_sources_samescope(s, i)) { if (first) { printf("\tsource addresses of same scope\n"); first = 0; } - PRINT_SCOPESTAT(ip6s_sources_samescope[i], i); + PRINT_SCOPESTAT(sources_samescope,i); } } - for (first = 1, i = 0; i < 16; i++) { - if (ip6stat.ip6s_sources_otherscope[i]) { + for (first = 1, i = 0; i < NETSTAT_IP6_IF_MAX; i++) { + if (netstat_ip6s_get_sources_otherscope(s, i)) { if (first) { printf("\tsource addresses of a different scope\n"); first = 0; } - PRINT_SCOPESTAT(ip6s_sources_otherscope[i], i); + PRINT_SCOPESTAT(sources_otherscope,i); } } - for (first = 1, i = 0; i < 16; i++) { - if (ip6stat.ip6s_sources_deprecated[i]) { + for (first = 1, i = 0; i < NETSTAT_IP6_IF_MAX; i++) { + if (netstat_ip6s_get_sources_deprecated(s, i)) { if (first) { printf("\tdeprecated source addresses\n"); first = 0; } - PRINT_SCOPESTAT(ip6s_sources_deprecated[i], i); + PRINT_SCOPESTAT(sources_deprecated,i); } } printf("\tSource addresses selection rule applied:\n"); - for (i = 0; i < 16; i++) { - if (ip6stat.ip6s_sources_rule[i]) + for (i = 0; i < NETSTAT_IP6_IF_MAX; i++) { + if (netstat_ip6s_get_sources_rule(s, i)) printf("\t\t%ju %s\n", - (uintmax_t)ip6stat.ip6s_sources_rule[i], - srcrule_str[i]); + netstat_ip6s_get_sources_rule(s, i), + netstat_ip6_srcrule_name(i)); } #undef p +#undef pa #undef p1a } @@ -840,4 +547,3 @@ sizeof(ntop_buf))); return (line); } -#endif /*INET6*/ ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#39 (text+ko) ==== @@ -93,17 +93,15 @@ { .n_name = "_ddpcb"}, #define N_NGSOCKS 7 { .n_name = "_ngsocklist"}, -#define N_IP6STAT 8 - { .n_name = "_ip6stat" }, -#define N_MRT6STAT 9 +#define N_MRT6STAT 8 { .n_name = "_mrt6stat" }, -#define N_MF6CTABLE 10 +#define N_MF6CTABLE 9 { .n_name = "_mf6ctable" }, -#define N_MIF6TABLE 11 +#define N_MIF6TABLE 10 { .n_name = "_mif6table" }, -#define N_RTTRASH 12 +#define N_RTTRASH 11 { .n_name = "_rttrash" }, -#define N_MFCTABLESIZE 13 +#define N_MFCTABLESIZE 12 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -165,8 +163,8 @@ NULL, NULL, "tcp", 1, IPPROTO_TCP }, { 0, 0, 1, NULL, udp_stats, stat_UDP, NULL, NULL, "udp", 1, IPPROTO_UDP }, - { 0, N_IP6STAT, 1, NULL, NULL, stat_MAX, - ip6_stats, ip6_ifstats, "ip6", 1, IPPROTO_RAW }, + { 0, 0, 1, NULL, ip6_stats, stat_IP6, + NULL, ip6_ifstats, "ip6", 1, IPPROTO_RAW }, { 0, 0, 1, NULL, icmp6_stats, stat_ICMP6, NULL, icmp6_ifstats, "icmp6", 1, IPPROTO_ICMPV6 }, #ifdef IPSEC From owner-p4-projects@FreeBSD.ORG Fri Jul 31 20:54:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8E621106566C; Fri, 31 Jul 2009 20:54:29 +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 4FFC2106564A for ; Fri, 31 Jul 2009 20:54:29 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 340978FC12 for ; Fri, 31 Jul 2009 20:54:29 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VKsSVm083228 for ; Fri, 31 Jul 2009 20:54:28 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VKsSZt083226 for perforce@freebsd.org; Fri, 31 Jul 2009 20:54:28 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 20:54:28 GMT Message-Id: <200907312054.n6VKsSZt083226@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166871 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 20:54:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=166871 Change 166871 by pgj@petymeg-current on 2009/07/31 20:54:03 Standardize and add header for multicast forwarding statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.c#3 (text+ko) ==== @@ -143,12 +143,20 @@ mtx_init(&mrouter_mtx, "IPv4 multicast forwarding", NULL, MTX_DEF) #define MROUTER_LOCK_DESTROY() mtx_destroy(&mrouter_mtx) +static struct stat_header mrtstat_header = { + .sth_version = MRTSTAT_VERSION, + .sth_len = sizeof(struct mrtstat) +}; static struct mrtstat mrtstat; SYSCTL_STRUCT(_net_inet_ip, OID_AUTO, mrtstat, CTLFLAG_RW, &mrtstat, mrtstat, "IPv4 Multicast Forwarding Statistics (struct mrtstat, " "netinet/ip_mroute.h)"); +SYSCTL_STRUCT(_net_inet_ip, OID_AUTO, mrtstat_header, CTLFLAG_RD, + &mrtstat_header, stat_header, + "IPv4 Multicast Forwarding Statistics header"); + static u_long mfchash; #define MFCHASH(a, g) \ ((((a).s_addr >> 20) ^ ((a).s_addr >> 10) ^ (a).s_addr ^ \ ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.h#2 (text+ko) ==== @@ -205,20 +205,22 @@ /* * The kernel's multicast routing statistics. */ +#define MRTSTAT_VERSION 0x00000001 + struct mrtstat { - u_long mrts_mfc_lookups; /* # forw. cache hash table hits */ - u_long mrts_mfc_misses; /* # forw. cache hash table misses */ - u_long mrts_upcalls; /* # calls to multicast routing daemon */ - u_long mrts_no_route; /* no route for packet's origin */ - u_long mrts_bad_tunnel; /* malformed tunnel options */ - u_long mrts_cant_tunnel; /* no room for tunnel options */ - u_long mrts_wrong_if; /* arrived on wrong interface */ - u_long mrts_upq_ovflw; /* upcall Q overflow */ - u_long mrts_cache_cleanups; /* # entries with no upcalls */ - u_long mrts_drop_sel; /* pkts dropped selectively */ - u_long mrts_q_overflow; /* pkts dropped - Q overflow */ - u_long mrts_pkt2large; /* pkts dropped - size > BKT SIZE */ - u_long mrts_upq_sockfull; /* upcalls dropped - socket full */ + u_int64_t mrts_mfc_lookups; /* # forw. cache hash table hits */ + u_int64_t mrts_mfc_misses; /* # forw. cache hash table misses */ + u_int64_t mrts_upcalls; /* # calls to multicast routing daemon */ + u_int64_t mrts_no_route; /* no route for packet's origin */ + u_int64_t mrts_bad_tunnel; /* malformed tunnel options */ + u_int64_t mrts_cant_tunnel; /* no room for tunnel options */ + u_int64_t mrts_wrong_if; /* arrived on wrong interface */ + u_int64_t mrts_upq_ovflw; /* upcall Q overflow */ + u_int64_t mrts_cache_cleanups; /* # entries with no upcalls */ + u_int64_t mrts_drop_sel; /* pkts dropped selectively */ + u_int64_t mrts_q_overflow; /* pkts dropped - Q overflow */ + u_int64_t mrts_pkt2large; /* pkts dropped - size > BKT SIZE */ + u_int64_t mrts_upq_sockfull; /* upcalls dropped - socket full */ }; #ifdef _KERNEL From owner-p4-projects@FreeBSD.ORG Fri Jul 31 20:56:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EC6D41065674; Fri, 31 Jul 2009 20:56:31 +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 AFD6A1065670 for ; Fri, 31 Jul 2009 20:56:31 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9ECB48FC08 for ; Fri, 31 Jul 2009 20:56:31 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VKuVcq083417 for ; Fri, 31 Jul 2009 20:56:31 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VKuVsN083415 for perforce@freebsd.org; Fri, 31 Jul 2009 20:56:31 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 20:56:31 GMT Message-Id: <200907312056.n6VKuVsN083415@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166872 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 20:56:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=166872 Change 166872 by pgj@petymeg-current on 2009/07/31 20:56:03 Add support for multicast forwarding statistics (IPv4). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#55 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#52 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#22 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#60 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#55 (text+ko) ==== @@ -173,6 +173,7 @@ stat_IPcomp, stat_IPsec, #endif + stat_mroute, stat_MAX, stat_Invalid, }; @@ -228,6 +229,7 @@ struct ah_stat; struct ipcomp_stat; #endif +struct mroute_stat; __BEGIN_DECLS const char *netstat_strerror(int); @@ -1124,4 +1126,20 @@ u_int32_t netstat_ipsecs_get_ips_input_middle(const struct ipsec_stat *); u_int32_t netstat_ipsecs_get_ips_input_end(const struct ipsec_stat *); #endif /* !IPSEC */ + +const struct mroute_stat *netstat_get_mroutestats(const struct stat_type *); + +u_int64_t netstat_mroutes_get_mfc_lookups(const struct mroute_stat *); +u_int64_t netstat_mroutes_get_mfc_misses(const struct mroute_stat *); +u_int64_t netstat_mroutes_get_upcalls(const struct mroute_stat *); +u_int64_t netstat_mroutes_get_no_route(const struct mroute_stat *); +u_int64_t netstat_mroutes_get_bad_tunnel(const struct mroute_stat *); +u_int64_t netstat_mroutes_get_cant_tunnel(const struct mroute_stat *); +u_int64_t netstat_mroutes_get_wrong_if(const struct mroute_stat *); +u_int64_t netstat_mroutes_get_upq_ovflw(const struct mroute_stat *); +u_int64_t netstat_mroutes_get_cache_cleanups(const struct mroute_stat *); +u_int64_t netstat_mroutes_get_drop_sel(const struct mroute_stat *); +u_int64_t netstat_mroutes_get_q_overflow(const struct mroute_stat *); +u_int64_t netstat_mroutes_get_pkt2large(const struct mroute_stat *); +u_int64_t netstat_mroutes_get_upq_sockfull(const struct mroute_stat *); #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#52 (text+ko) ==== @@ -73,6 +73,7 @@ #include #include #endif +#include #include "netstat.h" @@ -402,6 +403,10 @@ }; #endif +struct mroute_stat { + struct mrtstat s; +}; + /* Timestamp type. */ struct timestamp_type { u_int32_t ts_sec; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#22 (text+ko) ==== @@ -94,6 +94,7 @@ { IPCOMPSTAT_VERSION, "net.inet.ipcomp.stats", "_ipcompstat" }, { IPSECSTAT_VERSION, "net.inet.ipsec.ipsecstats", "_ipsec4stat" }, #endif + { MRTSTAT_VERSION, "net.inet.ip.mrtstat", "_mrtstat" } }; int ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#60 (text+ko) ==== @@ -2106,6 +2106,26 @@ #undef IPSEC_ACCA #endif /* !IPSEC */ +#define MRT_ACC(field) \ + STATS_ACCX(u_int64_t,mroute,field,mrts_##field) + +STATS_GET(mroute,mroute); +MRT_ACC(mfc_lookups); +MRT_ACC(mfc_misses); +MRT_ACC(upcalls); +MRT_ACC(no_route); +MRT_ACC(bad_tunnel); +MRT_ACC(cant_tunnel); +MRT_ACC(wrong_if); +MRT_ACC(upq_ovflw); +MRT_ACC(cache_cleanups); +MRT_ACC(drop_sel); +MRT_ACC(q_overflow); +MRT_ACC(pkt2large); +MRT_ACC(upq_sockfull); +#undef MRT_ACC + + static const char *icmpnames[ICMP_MAXTYPE + 1] = { "echo reply", /* RFC 792 */ "#1", From owner-p4-projects@FreeBSD.ORG Fri Jul 31 20:58:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5DC861065670; Fri, 31 Jul 2009 20:58:35 +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 20777106564A for ; Fri, 31 Jul 2009 20:58:35 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0EBC68FC13 for ; Fri, 31 Jul 2009 20:58:35 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VKwXrX083533 for ; Fri, 31 Jul 2009 20:58:33 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VKwXi1083531 for perforce@freebsd.org; Fri, 31 Jul 2009 20:58:33 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 20:58:33 GMT Message-Id: <200907312058.n6VKwXi1083531@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166873 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 20:58:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=166873 Change 166873 by pgj@petymeg-current on 2009/07/31 20:57:53 Let function rt_stats() in netstat(1) call libnetstat(3) for displaying statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#32 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#40 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/mroute.c#3 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#32 (text+ko) ==== @@ -163,5 +163,5 @@ void tp_stats(caddr_t, caddr_t); void mroutepr(u_long, u_long, u_long); -void mrt_stats(u_long); +void mrt_stats(const struct stat_type *); void bpf_stats(char *, void *); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#40 (text+ko) ==== @@ -81,27 +81,25 @@ { .n_name = "_rtstat" }, #define N_RTREE 1 { .n_name = "_rt_tables"}, -#define N_MRTSTAT 2 - { .n_name = "_mrtstat" }, -#define N_MFCHASHTBL 3 +#define N_MFCHASHTBL 2 { .n_name = "_mfchashtbl" }, -#define N_VIFTABLE 4 +#define N_VIFTABLE 3 { .n_name = "_viftable" }, -#define N_IPX 5 +#define N_IPX 4 { .n_name = "_ipxpcb_list"}, -#define N_DDPCB 6 +#define N_DDPCB 5 { .n_name = "_ddpcb"}, -#define N_NGSOCKS 7 +#define N_NGSOCKS 6 { .n_name = "_ngsocklist"}, -#define N_MRT6STAT 8 +#define N_MRT6STAT 7 { .n_name = "_mrt6stat" }, -#define N_MF6CTABLE 9 +#define N_MF6CTABLE 8 { .n_name = "_mf6ctable" }, -#define N_MIF6TABLE 10 +#define N_MIF6TABLE 9 { .n_name = "_mif6table" }, -#define N_RTTRASH 11 +#define N_RTTRASH 10 { .n_name = "_rttrash" }, -#define N_MFCTABLESIZE 12 +#define N_MFCTABLESIZE 11 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -473,7 +471,8 @@ kread(0, NULL, 0); if (sflag) { if (af == AF_INET || af == AF_UNSPEC) - mrt_stats(nl[N_MRTSTAT].n_value); + statpr(mrt_stats, stat_mroute, + "IPv4 multicast forwarding"); #ifdef INET6 if (af == AF_INET6 || af == AF_UNSPEC) mrt6_stats(nl[N_MRT6STAT].n_value); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/mroute.c#3 (text+ko) ==== @@ -338,42 +338,28 @@ } void -mrt_stats(u_long mstaddr) +mrt_stats(const struct stat_type *sttp) { - struct mrtstat mrtstat; - size_t len = sizeof mrtstat; + const struct mroute_stat *s; - if (live) { - if (sysctlbyname("net.inet.ip.mrtstat", &mrtstat, &len, NULL, - 0) < 0) { - warn("sysctl: net.inet.ip.mrtstat"); - return; - } - } else - kread(mstaddr, (char *)&mrtstat, sizeof(mrtstat)); - - printf("IPv4 multicast forwarding:\n"); - -#define p(f, m) if (mrtstat.f || sflag <= 1) \ - printf(m, mrtstat.f, plural(mrtstat.f)) -#define p2(f, m) if (mrtstat.f || sflag <= 1) \ - printf(m, mrtstat.f, plurales(mrtstat.f)) - - p(mrts_mfc_lookups, "\t%lu multicast forwarding cache lookup%s\n"); - p2(mrts_mfc_misses, "\t%lu multicast forwarding cache miss%s\n"); - p(mrts_upcalls, "\t%lu upcall%s to multicast routing daemon\n"); - p(mrts_upq_ovflw, "\t%lu upcall queue overflow%s\n"); - p(mrts_upq_sockfull, - "\t%lu upcall%s dropped due to full socket buffer\n"); - p(mrts_cache_cleanups, "\t%lu cache cleanup%s\n"); - p(mrts_no_route, "\t%lu datagram%s with no route for origin\n"); - p(mrts_bad_tunnel, "\t%lu datagram%s arrived with bad tunneling\n"); - p(mrts_cant_tunnel, "\t%lu datagram%s could not be tunneled\n"); - p(mrts_wrong_if, "\t%lu datagram%s arrived on wrong interface\n"); - p(mrts_drop_sel, "\t%lu datagram%s selectively dropped\n"); - p(mrts_q_overflow, "\t%lu datagram%s dropped due to queue overflow\n"); - p(mrts_pkt2large, "\t%lu datagram%s dropped for being too large\n"); - + s = netstat_get_mroutestats(sttp); +#define p(f, m) if (netstat_mroutes_get_##f(s) || sflag <= 1) \ + printf(m, netstat_mroutes_get_##f(s), plural(netstat_mroutes_get_##f(s))) +#define p2(f, m) if (netstat_mroutes_get_##f(s) || sflag <= 1) \ + printf(m, netstat_mroutes_get_##f(s), plurales(netstat_mroutes_get_##f(s))) + p(mfc_lookups, "\t%ju multicast forwarding cache lookup%s\n"); + p2(mfc_misses, "\t%ju multicast forwarding cache miss%s\n"); + p(upcalls, "\t%ju upcall%s to multicast routing daemon\n"); + p(upq_ovflw, "\t%ju upcall queue overflow%s\n"); + p(upq_sockfull, "\t%ju upcall%s dropped due to full socket buffer\n"); + p(cache_cleanups, "\t%ju cache cleanup%s\n"); + p(no_route, "\t%ju datagram%s with no route for origin\n"); + p(bad_tunnel, "\t%ju datagram%s arrived with bad tunneling\n"); + p(cant_tunnel, "\t%ju datagram%s could not be tunneled\n"); + p(wrong_if, "\t%ju datagram%s arrived on wrong interface\n"); + p(drop_sel, "\t%ju datagram%s selectively dropped\n"); + p(q_overflow, "\t%ju datagram%s dropped due to queue overflow\n"); + p(pkt2large, "\t%ju datagram%s dropped for being too large\n"); #undef p2 #undef p } From owner-p4-projects@FreeBSD.ORG Fri Jul 31 21:23:01 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 539661065673; Fri, 31 Jul 2009 21:23:01 +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 14EB6106564A for ; Fri, 31 Jul 2009 21:23:01 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 03A1C8FC0A for ; Fri, 31 Jul 2009 21:23:01 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VLN0Es086369 for ; Fri, 31 Jul 2009 21:23:00 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VLN03o086365 for perforce@freebsd.org; Fri, 31 Jul 2009 21:23:00 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 21:23:00 GMT Message-Id: <200907312123.n6VLN03o086365@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166876 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 21:23:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=166876 Change 166876 by pgj@petymeg-current on 2009/07/31 21:22:22 Add support for IPv6 multicast forwarding statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#56 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#53 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#23 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#61 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#56 (text+ko) ==== @@ -174,6 +174,9 @@ stat_IPsec, #endif stat_mroute, +#ifdef INET6 + stat_mroute6, +#endif stat_MAX, stat_Invalid, }; @@ -230,6 +233,9 @@ struct ipcomp_stat; #endif struct mroute_stat; +#ifdef INET6 +struct mroute6_stat; +#endif __BEGIN_DECLS const char *netstat_strerror(int); @@ -1142,4 +1148,22 @@ u_int64_t netstat_mroutes_get_q_overflow(const struct mroute_stat *); u_int64_t netstat_mroutes_get_pkt2large(const struct mroute_stat *); u_int64_t netstat_mroutes_get_upq_sockfull(const struct mroute_stat *); + +#ifdef INET6 +const struct mroute6_stat *netstat_get_mroute6stats(const struct stat_type *); + +u_int64_t netstat_mroute6s_get_mfc_lookups(const struct mroute6_stat *); +u_int64_t netstat_mroute6s_get_mfc_misses(const struct mroute6_stat *); +u_int64_t netstat_mroute6s_get_upcalls(const struct mroute6_stat *); +u_int64_t netstat_mroute6s_get_no_route(const struct mroute6_stat *); +u_int64_t netstat_mroute6s_get_bad_tunnel(const struct mroute6_stat *); +u_int64_t netstat_mroute6s_get_cant_tunnel(const struct mroute6_stat *); +u_int64_t netstat_mroute6s_get_wrong_if(const struct mroute6_stat *); +u_int64_t netstat_mroute6s_get_upq_ovflw(const struct mroute6_stat *); +u_int64_t netstat_mroute6s_get_cache_cleanups(const struct mroute6_stat *); +u_int64_t netstat_mroute6s_get_drop_sel(const struct mroute6_stat *); +u_int64_t netstat_mroute6s_get_q_overflow(const struct mroute6_stat *); +u_int64_t netstat_mroute6s_get_pkt2large(const struct mroute6_stat *); +u_int64_t netstat_mroute6s_get_upq_sockfull(const struct mroute6_stat *); +#endif #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#53 (text+ko) ==== @@ -74,6 +74,9 @@ #include #endif #include +#ifdef INET6 +#include +#endif #include "netstat.h" @@ -407,6 +410,12 @@ struct mrtstat s; }; +#ifdef INET6 +struct mroute6_stat { + struct mrt6stat s; +}; +#endif + /* Timestamp type. */ struct timestamp_type { u_int32_t ts_sec; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#23 (text+ko) ==== @@ -94,7 +94,10 @@ { IPCOMPSTAT_VERSION, "net.inet.ipcomp.stats", "_ipcompstat" }, { IPSECSTAT_VERSION, "net.inet.ipsec.ipsecstats", "_ipsec4stat" }, #endif - { MRTSTAT_VERSION, "net.inet.ip.mrtstat", "_mrtstat" } + { MRTSTAT_VERSION, "net.inet.ip.mrtstat", "_mrtstat" }, +#ifdef INET6 + { MRT6STAT_VERSION, "net.inet6.ip6.mrt6stat", "_mrt6stat" }, +#endif }; int ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#61 (text+ko) ==== @@ -2125,6 +2125,26 @@ MRT_ACC(upq_sockfull); #undef MRT_ACC +#ifdef INET6 +#define MRT6_ACC(field) \ + STATS_ACCX(u_int64_t,mroute6,field,mrt6s_##field) + +STATS_GET(mroute6,mroute6); +MRT6_ACC(mfc_lookups); +MRT6_ACC(mfc_misses); +MRT6_ACC(upcalls); +MRT6_ACC(no_route); +MRT6_ACC(bad_tunnel); +MRT6_ACC(cant_tunnel); +MRT6_ACC(wrong_if); +MRT6_ACC(upq_ovflw); +MRT6_ACC(cache_cleanups); +MRT6_ACC(drop_sel); +MRT6_ACC(q_overflow); +MRT6_ACC(pkt2large); +MRT6_ACC(upq_sockfull); +#undef MRT6_ACC +#endif static const char *icmpnames[ICMP_MAXTYPE + 1] = { "echo reply", /* RFC 792 */ From owner-p4-projects@FreeBSD.ORG Fri Jul 31 21:24:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BA0EF1065673; Fri, 31 Jul 2009 21:24: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 6288D106566B for ; Fri, 31 Jul 2009 21:24:02 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 50DDE8FC17 for ; Fri, 31 Jul 2009 21:24:02 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VLO27Q086439 for ; Fri, 31 Jul 2009 21:24:02 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VLO27r086437 for perforce@freebsd.org; Fri, 31 Jul 2009 21:24:02 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 21:24:02 GMT Message-Id: <200907312124.n6VLO27r086437@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166877 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 21:24:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=166877 Change 166877 by pgj@petymeg-current on 2009/07/31 21:23:15 Make netstat(1) to use libnetstat(3) for juggling with IPv6 multicast forwarding statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#33 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#41 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/mroute6.c#3 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#33 (text+ko) ==== @@ -102,7 +102,7 @@ void pim6_stats(const struct stat_type *); void rip6_stats(const struct stat_type *); void mroute6pr(u_long, u_long); -void mrt6_stats(u_long); +void mrt6_stats(const struct stat_type *); struct sockaddr_in6; struct in6_addr; ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#41 (text+ko) ==== @@ -91,15 +91,13 @@ { .n_name = "_ddpcb"}, #define N_NGSOCKS 6 { .n_name = "_ngsocklist"}, -#define N_MRT6STAT 7 - { .n_name = "_mrt6stat" }, -#define N_MF6CTABLE 8 +#define N_MF6CTABLE 7 { .n_name = "_mf6ctable" }, -#define N_MIF6TABLE 9 +#define N_MIF6TABLE 8 { .n_name = "_mif6table" }, -#define N_RTTRASH 10 +#define N_RTTRASH 9 { .n_name = "_rttrash" }, -#define N_MFCTABLESIZE 11 +#define N_MFCTABLESIZE 10 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -475,7 +473,8 @@ "IPv4 multicast forwarding"); #ifdef INET6 if (af == AF_INET6 || af == AF_UNSPEC) - mrt6_stats(nl[N_MRT6STAT].n_value); + statpr(mrt6_stats, stat_mroute6, + "IPv6 multicast forwarding"); #endif } else { if (af == AF_INET || af == AF_UNSPEC) ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/mroute6.c#3 (text+ko) ==== @@ -217,43 +217,28 @@ } void -mrt6_stats(u_long mstaddr) +mrt6_stats(const struct stat_type *sttp) { - struct mrt6stat mrtstat; - size_t len = sizeof mrtstat; + const struct mroute6_stat *s; - if (live) { - if (sysctlbyname("net.inet6.ip6.mrt6stat", &mrtstat, &len, - NULL, 0) < 0) { - warn("sysctl: net.inet6.ip6.mrt6stat"); - return; - } - } else - kread(mstaddr, (char *)&mrtstat, sizeof(mrtstat)); - - printf("IPv6 multicast forwarding:\n"); - -#define p(f, m) if (mrtstat.f || sflag <= 1) \ - printf(m, (uintmax_t)mrtstat.f, plural(mrtstat.f)) -#define p2(f, m) if (mrtstat.f || sflag <= 1) \ - printf(m, (uintmax_t)mrtstat.f, plurales(mrtstat.f)) - - p(mrt6s_mfc_lookups, "\t%ju multicast forwarding cache lookup%s\n"); - p2(mrt6s_mfc_misses, "\t%ju multicast forwarding cache miss%s\n"); - p(mrt6s_upcalls, "\t%ju upcall%s to multicast routing daemon\n"); - p(mrt6s_upq_ovflw, "\t%ju upcall queue overflow%s\n"); - p(mrt6s_upq_sockfull, - "\t%ju upcall%s dropped due to full socket buffer\n"); - p(mrt6s_cache_cleanups, "\t%ju cache cleanup%s\n"); - p(mrt6s_no_route, "\t%ju datagram%s with no route for origin\n"); - p(mrt6s_bad_tunnel, "\t%ju datagram%s arrived with bad tunneling\n"); - p(mrt6s_cant_tunnel, "\t%ju datagram%s could not be tunneled\n"); - p(mrt6s_wrong_if, "\t%ju datagram%s arrived on wrong interface\n"); - p(mrt6s_drop_sel, "\t%ju datagram%s selectively dropped\n"); - p(mrt6s_q_overflow, - "\t%ju datagram%s dropped due to queue overflow\n"); - p(mrt6s_pkt2large, "\t%ju datagram%s dropped for being too large\n"); - + s = netstat_get_mroute6stats(sttp); +#define p(f, m) if (netstat_mroute6s_get_##f(s) || sflag <= 1) \ + printf(m, netstat_mroute6s_get_##f(s), plural(netstat_mroute6s_get_##f(s))) +#define p2(f, m) if (netstat_mroute6s_get_##f(s) || sflag <= 1) \ + printf(m, netstat_mroute6s_get_##f(s), plurales(netstat_mroute6s_get_##f(s))) + p(mfc_lookups, "\t%ju multicast forwarding cache lookup%s\n"); + p2(mfc_misses, "\t%ju multicast forwarding cache miss%s\n"); + p(upcalls, "\t%ju upcall%s to multicast routing daemon\n"); + p(upq_ovflw, "\t%ju upcall queue overflow%s\n"); + p(upq_sockfull, "\t%ju upcall%s dropped due to full socket buffer\n"); + p(cache_cleanups, "\t%ju cache cleanup%s\n"); + p(no_route, "\t%ju datagram%s with no route for origin\n"); + p(bad_tunnel, "\t%ju datagram%s arrived with bad tunneling\n"); + p(cant_tunnel, "\t%ju datagram%s could not be tunneled\n"); + p(wrong_if, "\t%ju datagram%s arrived on wrong interface\n"); + p(drop_sel, "\t%ju datagram%s selectively dropped\n"); + p(q_overflow, "\t%ju datagram%s dropped due to queue overflow\n"); + p(pkt2large, "\t%ju datagram%s dropped for being too large\n"); #undef p2 #undef p } From owner-p4-projects@FreeBSD.ORG Fri Jul 31 22:06:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 838F81065672; Fri, 31 Jul 2009 22:06:49 +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 44D55106564A for ; Fri, 31 Jul 2009 22:06:49 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 18D4D8FC15 for ; Fri, 31 Jul 2009 22:06:49 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VM6m1Z090510 for ; Fri, 31 Jul 2009 22:06:48 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VM6mrO090508 for perforce@freebsd.org; Fri, 31 Jul 2009 22:06:48 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 22:06:48 GMT Message-Id: <200907312206.n6VM6mrO090508@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166878 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 22:06:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=166878 Change 166878 by pgj@petymeg-current on 2009/07/31 22:05:50 Add headers for IP6, RIP6, ICMP6 statistics (missed to submit previously). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/in6_proto.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/in6_var.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/in6_proto.c#2 (text+ko) ==== @@ -490,7 +490,9 @@ SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_DEFHLIM, hlim, CTLFLAG_RW, ip6_defhlim, 0, ""); SYSCTL_V_STRUCT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_STATS, stats, - CTLFLAG_RD, ip6stat, ip6stat, ""); + CTLFLAG_RW, ip6stat, ip6stat, ""); +SYSCTL_V_STRUCT(V_NET, vnet_inet6, _net_inet6_ip6, OID_AUTO, stats_header, + CTLFLAG_RD, ip6stat_header, stat_header, ""); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_MAXFRAGPACKETS, maxfragpackets, CTLFLAG_RW, ip6_maxfragpackets, 0, ""); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_ACCEPT_RTADV, @@ -526,7 +528,10 @@ SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_AUTO_LINKLOCAL, auto_linklocal, CTLFLAG_RW, ip6_auto_linklocal, 0, ""); SYSCTL_V_STRUCT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_RIP6STATS, - rip6stats, CTLFLAG_RD, rip6stat, rip6stat, ""); + rip6stats, CTLFLAG_RW, rip6stat, rip6stat, "RIP6 Statistics"); +SYSCTL_V_STRUCT(V_NET, vnet_inet6, _net_inet6_ip6, OID_AUTO, + rip6stats_header, CTLFLAG_RD, rip6stat_header, stat_header, + "RIP6 Statistics header"); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_PREFER_TEMPADDR, prefer_tempaddr, CTLFLAG_RW, ip6_prefer_tempaddr, 0, ""); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_USE_DEFAULTZONE, @@ -546,7 +551,10 @@ SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_icmp6, ICMPV6CTL_REDIRTIMEOUT, redirtimeout, CTLFLAG_RW, icmp6_redirtimeout, 0, ""); SYSCTL_V_STRUCT(V_NET, vnet_inet6, _net_inet6_icmp6, ICMPV6CTL_STATS, - stats, CTLFLAG_RD, icmp6stat, icmp6stat, ""); + stats, CTLFLAG_RW, icmp6stat, icmp6stat, "ICMP6 Statistics"); +SYSCTL_V_STRUCT(V_NET, vnet_inet6, _net_inet6_icmp6, OID_AUTO, + stats_header, CTLFLAG_RD, icmp6stat_header, stat_header, + "ICMP6 Statistics header"); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_icmp6, ICMPV6CTL_ND6_PRUNE, nd6_prune, CTLFLAG_RW, nd6_prune, 0, ""); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_icmp6, ICMPV6CTL_ND6_DELAY, ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/in6_var.h#2 (text+ko) ==== @@ -486,6 +486,7 @@ #ifdef VIMAGE_GLOBALS extern struct in6_ifaddr *in6_ifaddr; +extern struct stat_header icmp6stat_header; extern struct icmp6stat icmp6stat; extern unsigned long in6_maxmtu; From owner-p4-projects@FreeBSD.ORG Fri Jul 31 22:07:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A01161065675; Fri, 31 Jul 2009 22:07:50 +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 61559106566C for ; Fri, 31 Jul 2009 22:07:50 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 501658FC19 for ; Fri, 31 Jul 2009 22:07:50 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VM7oOJ090570 for ; Fri, 31 Jul 2009 22:07:50 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VM7ox6090568 for perforce@freebsd.org; Fri, 31 Jul 2009 22:07:50 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 22:07:50 GMT Message-Id: <200907312207.n6VM7ox6090568@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166879 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 22:07:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=166879 Change 166879 by pgj@petymeg-current on 2009/07/31 22:07:36 - Standardize forwarding statistics. - Add header. - Merge rttrash into struct rtstat for the ease of use. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/net/route.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/net/route.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/net/route.c#2 (text+ko) ==== @@ -90,8 +90,18 @@ TUNABLE_INT("net.add_addr_allfibs", &rt_add_addr_allfibs); #ifdef VIMAGE_GLOBALS +static struct stat_header rtstat_header = { + .sth_version = RTSTAT_VERSION, + .sth_len = sizeof(struct rtstat) +}; static struct rtstat rtstat; +SYSCTL_STRUCT(_net_inet_ip, OID_AUTO, rtstat, CTLFLAG_RW, &rtstat, rtstat, + "IPv4 Forwarding Statistics (struct rtstat, net/route.h)"); + +SYSCTL_STRUCT(_net_inet_ip, OID_AUTO, rtstat_header, CTLFLAG_RD, &rtstat_header, + stat_header, "IPv4 Forwarding Statistics header"); + /* by default only the first 'row' of tables will be accessed. */ /* * XXXMRT When we fix netstat, and do this differnetly, @@ -101,7 +111,7 @@ */ struct radix_node_head *rt_tables[RT_MAXFIBS][AF_MAX+1]; -static int rttrash; /* routes not in table but not freed */ +#define rttrash rtstat.rts_trash #endif static void rt_maskedcopy(struct sockaddr *, @@ -460,7 +470,7 @@ INIT_VNET_NET(curvnet); struct rtentry *rt, *rt0 = NULL; int error = 0; - short *stat = NULL; + u_int64_t *stat = NULL; struct rt_addrinfo info; struct ifaddr *ifa; struct radix_node_head *rnh = ==== //depot/projects/soc2009/pgj_libstat/src/sys/net/route.h#2 (text+ko) ==== @@ -210,12 +210,15 @@ /* * Routing statistics. */ +#define RTSTAT_VERSION 0x00000001 + struct rtstat { - short rts_badredirect; /* bogus redirect calls */ - short rts_dynamic; /* routes created by redirects */ - short rts_newgateway; /* routes modified by redirects */ - short rts_unreach; /* lookups which failed */ - short rts_wildcard; /* lookups satisfied by a wildcard */ + u_int64_t rts_badredirect; /* bogus redirect calls */ + u_int64_t rts_dynamic; /* routes created by redirects */ + u_int64_t rts_newgateway; /* routes modified by redirects */ + u_int64_t rts_unreach; /* lookups which failed */ + u_int64_t rts_wildcard; /* lookups satisfied by a wildcard */ + u_int64_t rts_trash; /* routes not in table but not freed */ }; /* * Structures for routing messages. From owner-p4-projects@FreeBSD.ORG Fri Jul 31 22:09:53 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 485E61065670; Fri, 31 Jul 2009 22:09: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 E54EF106564A for ; Fri, 31 Jul 2009 22:09:52 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B9BC78FC08 for ; Fri, 31 Jul 2009 22:09:52 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VM9qeI090699 for ; Fri, 31 Jul 2009 22:09:52 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VM9qYe090697 for perforce@freebsd.org; Fri, 31 Jul 2009 22:09:52 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 22:09:52 GMT Message-Id: <200907312209.n6VM9qYe090697@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166880 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 22:09:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=166880 Change 166880 by pgj@petymeg-current on 2009/07/31 22:09:46 Add support for IPv4 forwarding statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#57 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#54 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#24 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#62 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#57 (text+ko) ==== @@ -173,6 +173,7 @@ stat_IPcomp, stat_IPsec, #endif + stat_route, stat_mroute, #ifdef INET6 stat_mroute6, @@ -232,6 +233,7 @@ struct ah_stat; struct ipcomp_stat; #endif +struct route_stat; struct mroute_stat; #ifdef INET6 struct mroute6_stat; @@ -1133,6 +1135,15 @@ u_int32_t netstat_ipsecs_get_ips_input_end(const struct ipsec_stat *); #endif /* !IPSEC */ +const struct route_stat *netstat_get_routestats(const struct stat_type *); + +u_int64_t netstat_routes_get_badredirect(const struct route_stat *); +u_int64_t netstat_routes_get_dynamic(const struct route_stat *); +u_int64_t netstat_routes_get_newgateway(const struct route_stat *); +u_int64_t netstat_routes_get_unreach(const struct route_stat *); +u_int64_t netstat_routes_get_wildcard(const struct route_stat *); +u_int64_t netstat_routes_get_trash(const struct route_stat *); + const struct mroute_stat *netstat_get_mroutestats(const struct stat_type *); u_int64_t netstat_mroutes_get_mfc_lookups(const struct mroute_stat *); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#54 (text+ko) ==== @@ -73,6 +73,7 @@ #include #include #endif +#include #include #ifdef INET6 #include @@ -406,6 +407,10 @@ }; #endif +struct route_stat { + struct rtstat s; +}; + struct mroute_stat { struct mrtstat s; }; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#24 (text+ko) ==== @@ -94,6 +94,7 @@ { IPCOMPSTAT_VERSION, "net.inet.ipcomp.stats", "_ipcompstat" }, { IPSECSTAT_VERSION, "net.inet.ipsec.ipsecstats", "_ipsec4stat" }, #endif + { RTSTAT_VERSION, "net.inet.ip.rtstat", "_rtstat" }, { MRTSTAT_VERSION, "net.inet.ip.mrtstat", "_mrtstat" }, #ifdef INET6 { MRT6STAT_VERSION, "net.inet6.ip6.mrt6stat", "_mrt6stat" }, ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#62 (text+ko) ==== @@ -2106,6 +2106,18 @@ #undef IPSEC_ACCA #endif /* !IPSEC */ +#define RT_ACC(field) \ + STATS_ACCX(u_int64_t,route,field,rts_##field) + +STATS_GET(route,route); +RT_ACC(badredirect); +RT_ACC(dynamic); +RT_ACC(newgateway); +RT_ACC(unreach); +RT_ACC(wildcard); +RT_ACC(trash); +#undef RT_ACC + #define MRT_ACC(field) \ STATS_ACCX(u_int64_t,mroute,field,mrts_##field) From owner-p4-projects@FreeBSD.ORG Fri Jul 31 22:11:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7EB781065673; Fri, 31 Jul 2009 22:11:55 +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 3F9E5106564A for ; Fri, 31 Jul 2009 22:11:55 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2DEEB8FC08 for ; Fri, 31 Jul 2009 22:11:55 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VMBtjF090925 for ; Fri, 31 Jul 2009 22:11:55 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VMBsfY090923 for perforce@freebsd.org; Fri, 31 Jul 2009 22:11:54 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 22:11:54 GMT Message-Id: <200907312211.n6VMBsfY090923@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166881 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 22:11:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=166881 Change 166881 by pgj@petymeg-current on 2009/07/31 22:10:55 IPv4 forwarding statistics are now handled via libnetstat(3) in netstat(1). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#34 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#42 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/route.c#3 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#34 (text+ko) ==== @@ -120,7 +120,7 @@ void pr_rthdr(int); void pr_family(int); -void rt_stats(u_long, u_long); +void rt_stats(const struct stat_type *); char *ipx_pnet(struct sockaddr *); char *ipx_phost(struct sockaddr *); char *ns_phost(struct sockaddr *); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#42 (text+ko) ==== @@ -77,27 +77,23 @@ static struct nlist nl[] = { -#define N_RTSTAT 0 - { .n_name = "_rtstat" }, -#define N_RTREE 1 +#define N_RTREE 0 { .n_name = "_rt_tables"}, -#define N_MFCHASHTBL 2 +#define N_MFCHASHTBL 1 { .n_name = "_mfchashtbl" }, -#define N_VIFTABLE 3 +#define N_VIFTABLE 2 { .n_name = "_viftable" }, -#define N_IPX 4 +#define N_IPX 3 { .n_name = "_ipxpcb_list"}, -#define N_DDPCB 5 +#define N_DDPCB 4 { .n_name = "_ddpcb"}, -#define N_NGSOCKS 6 +#define N_NGSOCKS 5 { .n_name = "_ngsocklist"}, -#define N_MF6CTABLE 7 +#define N_MF6CTABLE 6 { .n_name = "_mf6ctable" }, -#define N_MIF6TABLE 8 +#define N_MIF6TABLE 7 { .n_name = "_mif6table" }, -#define N_RTTRASH 9 - { .n_name = "_rttrash" }, -#define N_MFCTABLESIZE 10 +#define N_MFCTABLESIZE 8 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -458,11 +454,15 @@ exit(0); } if (rflag) { - kread(0, NULL, 0); - if (sflag) - rt_stats(nl[N_RTSTAT].n_value, nl[N_RTTRASH].n_value); - else + if (sflag) { + if (!live) + kread(0, NULL, 0); + statpr(rt_stats, stat_route, "routing"); + } + else { + kread(0, NULL, 0); routepr(nl[N_RTREE].n_value); + } exit(0); } if (gflag) { ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/route.c#3 (text+ko) ==== @@ -985,36 +985,20 @@ * Print routing statistics */ void -rt_stats(u_long rtsaddr, u_long rttaddr) +rt_stats(const struct stat_type *sttp) { - struct rtstat rtstat; - int rttrash; + const struct route_stat *s; - if (rtsaddr == 0) { - printf("rtstat: symbol not in namelist\n"); - return; - } - if (rttaddr == 0) { - printf("rttrash: symbol not in namelist\n"); - return; - } - kread(rtsaddr, (char *)&rtstat, sizeof (rtstat)); - kread(rttaddr, (char *)&rttrash, sizeof (rttrash)); - printf("routing:\n"); - -#define p(f, m) if (rtstat.f || sflag <= 1) \ - printf(m, rtstat.f, plural(rtstat.f)) - - p(rts_badredirect, "\t%u bad routing redirect%s\n"); - p(rts_dynamic, "\t%u dynamically created route%s\n"); - p(rts_newgateway, "\t%u new gateway%s due to redirects\n"); - p(rts_unreach, "\t%u destination%s found unreachable\n"); - p(rts_wildcard, "\t%u use%s of a wildcard route\n"); + s = netstat_get_routestats(sttp); +#define p(f, m) if (netstat_routes_get_##f(s) || sflag <= 1) \ + printf(m, netstat_routes_get_##f(s), plural(netstat_routes_get_##f(s))) + p(badredirect, "\t%ju bad routing redirect%s\n"); + p(dynamic, "\t%ju dynamically created route%s\n"); + p(newgateway, "\t%ju new gateway%s due to redirects\n"); + p(unreach, "\t%ju destination%s found unreachable\n"); + p(wildcard, "\t%ju use%s of a wildcard route\n"); + p(trash, "\t%ju route%s not in table but not freed\n"); #undef p - - if (rttrash || sflag <= 1) - printf("\t%u route%s not in table but not freed\n", - rttrash, plural(rttrash)); } char * From owner-p4-projects@FreeBSD.ORG Fri Jul 31 22:28:13 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7D2FC1065673; Fri, 31 Jul 2009 22:28: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 234F21065670 for ; Fri, 31 Jul 2009 22:28:13 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 108B68FC16 for ; Fri, 31 Jul 2009 22:28:13 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VMSCFn092068 for ; Fri, 31 Jul 2009 22:28:12 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VMSCg9092066 for perforce@freebsd.org; Fri, 31 Jul 2009 22:28:12 GMT (envelope-from dforsyth@FreeBSD.org) Date: Fri, 31 Jul 2009 22:28:12 GMT Message-Id: <200907312228.n6VMSCg9092066@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 166882 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 22:28:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=166882 Change 166882 by dforsyth@squirrel on 2009/07/31 22:27:14 Fix parse loop, dump everything. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#40 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#35 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db.c#8 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb.h#6 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb_read.c#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.c#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.h#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest_plist.c#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#15 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#26 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#40 (text+ko) ==== @@ -15,7 +15,6 @@ #include "pkg.h" void pkg_check_magic(struct pkg *p, const char *where); -static int pkg_set_field(char *dest, const char *src); static int pkg_read_pkg_element_from_db(struct pkg *p, int element); static int pkg_write_pkg_element_to_db(struct pkg *p, int element); static int pkg_parse_manifest(struct pkg *p); @@ -214,6 +213,24 @@ return (p->description); } +const char * +pkg_required_by(struct pkg *p) +{ + if (p->in_db != NULL) + pkg_read_pkg_element_from_db(p, PKG_ELEM_REQUIRED_BY); + + return ((const char *)p->required_by); +} + +const char * +pkg_display(struct pkg *p) +{ + if (p->in_db != NULL) + pkg_read_pkg_element_from_db(p, PKG_ELEM_DISPLAY); + + return ((const char *)p->display); +} + /* Set the comment for this package. */ int @@ -409,6 +426,34 @@ return ((const char *)pkg_depend_origin(pd)); } +const char * +pkg_mtree_file(struct pkg *p) +{ + pkg_parse_manifest(p); + return ((const char *)pkg_manifest_mtree_file(p->pm)); +} + +int +pkg_extract_in_place(struct pkg *p) +{ + pkg_parse_manifest(p); + return (pkg_manifest_extract_in_place(p->pm)); +} + +int +pkg_preserve(struct pkg *p) +{ + pkg_parse_manifest(p); + return (pkg_manifest_preserve(p->pm)); +} + +int +pkg_complete(struct pkg *p) +{ + pkg_parse_manifest(p); + return (pkg_manifest_complete(p->pm)); +} + /* Wrap _write_pkg_element. */ static int ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#35 (text+ko) ==== @@ -50,6 +50,7 @@ int pkg_set_required_by(struct pkg *p, const char *required_by); int pkg_clone(struct pkg *src, struct pkg *dest); +int pkg_force_parse_manifest(struct pkg *p); /* Add mtree_dirs, display, etc, etc. */ @@ -57,10 +58,10 @@ const char *const *pkg_depends(struct pkg *p); const char *const *pkg_conflicts(struct pkg *p); -int pkg_add_file(struct pkg *p, const char *path, const char *cwd, +int pkg_insert_pkg_file(struct pkg *p, const char *path, const char *cwd, const char *group, const char *md5, const char *mode, const char *owner); -int pkg_remove_file(struct pkg *p, const char *path); +int pkg_delete_pkg_file(struct pkg *p, const char *path); const char *pkg_pkg_file_cwd(struct pkg *p, const char *path); const char *pkg_pkg_file_group(struct pkg *p, const char *path); const char *pkg_pkg_file_md5(struct pkg *p, const char *path); @@ -76,6 +77,14 @@ int pkg_remove_conflict(struct pkg *p, const char *name); int pkg_conflict_get_version(struct pkg *p, const char *name); +const char *pkg_mtree_file(struct pkg *p); + +int pkg_extract_in_place(struct pkg *p); +int pkg_preserve(struct pkg *p); +int pkg_complete(struct pkg *p); + +const char *pkg_required_by(struct pkg *p); + /* pkg_db */ struct pkg_db *pkg_db_new(void); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db.c#8 (text+ko) ==== @@ -63,7 +63,7 @@ db->pkg_db_db_open = pkg_db_hierdb_db_open; /* db->pkg_db_db_read_pkg_from_db = pkg_db_hierdb_read_pkg_from_db; */ db->pkg_db_db_read_pkg_element = pkg_db_hierdb_read_pkg_element; - db->pkg_db_db_write_pkg_element = pkg_db_hierdb_write_pkg_element; + /* db->pkg_db_db_write_pkg_element = pkg_db_hierdb_write_pkg_element; */ /* db->pkg_db_db_close = pkg_db_hierdb_db_close; */ break; default: @@ -138,7 +138,6 @@ int pkg_db_insert_pkg_entry(struct pkg_db *db, struct pkg *p) { - int i; int status; char **list; struct pkg *entries; ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb.h#6 (text+ko) ==== @@ -17,6 +17,8 @@ int pkg_db_hierdb_read_pkg_from_db(struct pkg_db *db, struct pkg *p); +int pkg_db_hierdb_file_exists(struct pkg_db *db, struct pkg *p, const char *filename); + // int pkg_db_hierdb_read_pkg_element(struct pkg_db *db, struct pkg *p, int element); #endif ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb_read.c#2 (text+ko) ==== @@ -22,21 +22,25 @@ FILE *pkg_db_hierdb_open_file_stream_read(struct pkg_db *db, struct pkg *p, const char *filename); -int pkg_db_hierdb_read_comment_to_pkg(struct pkg_db *db, struct pkg *p); + +static char *pkg_db_hierdb_read_file_to_text(struct pkg_db *db, struct pkg *p, + const char *filename); + +static int pkg_db_hierdb_read_comment_to_pkg(struct pkg_db *db, struct pkg *p); + +static int pkg_db_hierdb_read_description_to_pkg(struct pkg_db *db, struct pkg *p); -int pkg_db_hierdb_read_description_to_pkg(struct pkg_db *db, struct pkg *p); +static int pkg_db_hierdb_read_display_to_pkg(struct pkg_db *db, struct pkg *p); -int pkg_db_hierdb_read_display_to_pkg(struct pkg_db *db, struct pkg *p); +static int pkg_db_hierdb_read_mtree_dirs_to_pkg(struct pkg_db *db, struct pkg *p); -int pkg_db_hierdb_read_mtree_dirs_to_pkg(struct pkg_db *db, struct pkg *p); +static int pkg_db_hierdb_read_required_by_to_pkg(struct pkg_db *db, struct pkg *p); -int pkg_db_hierdb_read_pkg_manifest_to_pkg(struct pkg_db *db, struct pkg *p); +static int pkg_db_hierdb_read_pkg_manifest_to_pkg(struct pkg_db *db, struct pkg *p); int pkg_db_hierdb_read_pkg_element(struct pkg_db *db, struct pkg *p, int element) { - FILE *file; - char *text; int status; status = OK; @@ -84,7 +88,7 @@ return (file); } -char * +static char * pkg_db_hierdb_read_file_to_text(struct pkg_db *db, struct pkg *p, const char *filename) { @@ -94,7 +98,7 @@ char *path; char *text; struct stat sb; - + status = OK; dir = path_build(db->db_root, p->ident); path = path_build(dir, filename); @@ -128,13 +132,14 @@ } text[sb.st_size] = '\0'; + return (text); } /* These will not be staying this way. For now, assume that all files are where we * want them to be, and assume a PLIST manifest. */ -int +static int pkg_db_hierdb_read_comment_to_pkg(struct pkg_db *db, struct pkg *p) { char *text; @@ -152,7 +157,7 @@ return (OK); } -int +static int pkg_db_hierdb_read_description_to_pkg(struct pkg_db *db, struct pkg *p) { char *text; @@ -170,7 +175,7 @@ return (OK); } -int +static int pkg_db_hierdb_read_display_to_pkg(struct pkg_db *db, struct pkg *p) { char *text; @@ -188,7 +193,7 @@ return (OK); } -int +static int pkg_db_hierdb_read_mtree_dirs_to_pkg(struct pkg_db *db, struct pkg *p) { char *text; @@ -206,7 +211,7 @@ return (OK); } -int +static int pkg_db_hierdb_read_required_by_to_pkg(struct pkg_db *db, struct pkg *p) { char *text; @@ -224,9 +229,10 @@ return (OK); } -int +static int pkg_db_hierdb_read_pkg_manifest_to_pkg(struct pkg_db *db, struct pkg *p) { + char *text; FILE *manifest_stream; int manifest_type; int status; @@ -239,7 +245,7 @@ /* Open a stream. */ manifest_stream = pkg_db_hierdb_open_file_stream_read(db, p, CONTENTS_FILE); - + status = OK; switch(manifest_type) { case (PLIST): status = pkg_manifest_parse_plist_from_stream(p->pm, manifest_stream); @@ -247,7 +253,6 @@ default: break; } - fclose(manifest_stream); return (status); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.c#2 (text+ko) ==== @@ -131,6 +131,24 @@ } int +pkg_manifest_extract_in_place(struct pkg_manifest *pm) +{ + return (pm->extract_in_place); +} + +int +pkg_manifest_preserve(struct pkg_manifest *pm) +{ + return (pm->preserve); +} + +int +pkg_manifest_complete(struct pkg_manifest *pm) +{ + return (pm->complete); +} + +int pkg_manifest_set_cwd(struct pkg_manifest *pm, const char *cwd) { pkg_manifest_check_magic(pm, __func__); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.h#2 (text+ko) ==== @@ -101,6 +101,12 @@ const char *pkg_manifest_mtree_file(struct pkg_manifest *pm); +int pkg_manifest_extract_in_place(struct pkg_manifest *pm); + +int pkg_manifest_preserve(struct pkg_manifest *pm); + +int pkg_manifest_complete(struct pkg_manifest *pm); + int pkg_manifest_set_cwd(struct pkg_manifest *pm, const char *cwd); int pkg_manifest_set_revision(struct pkg_manifest *pm, const char *rev); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest_plist.c#2 (text+ko) ==== @@ -117,15 +117,17 @@ line = buff; line[p - buff] = '\0'; status = pkg_manifest_parse_plist_parse_line(pm, line, &st); + /* if (status != OK) { pkg_manifest_reset(pm); free(buff); return (status); } + */ buff = p + 1; } } - free(buff); + // free(buff); return (0); } @@ -202,10 +204,10 @@ int argc; int cmd_id; int status; - char cmd[13]; + char cmd[FILENAME_MAX]; char argument[LINE_MAX]; char isolate[FILENAME_MAX]; - char comment[20]; + char comment[FILENAME_MAX]; char trail[FILENAME_MAX]; /* Last file and depend. */ @@ -213,7 +215,6 @@ struct pkg_depend *lpd; status = OK; - argc = sscanf(line, "%s %[^\n]", cmd, argument); if (argc == 1 && line[0] != PLIST_PRE_CMD) { cmd_id = PM_FILE; ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#15 (text+ko) ==== @@ -115,7 +115,10 @@ const char *comment; const char *name; const char *origin; - /* const char *mtree_file; */ + const char *mtree_file; + const char *reqdby; + const char *display; + const char *desc; const char *cwd; const char *path; @@ -133,8 +136,10 @@ name = pkg_name(p); origin = pkg_origin(p); - /* mtree_file = pkg_mtree_file(p); */ - + mtree_file = pkg_mtree_file(p); + reqdby = pkg_required_by(p); + display = pkg_display(p); + desc = pkg_description(p); fprintf(stream, "IDENT: %s\n\n", (ident != NULL ? ident : BAD_OR_UNKNOWN_VALUE)); @@ -145,7 +150,7 @@ (name != NULL ? name : BAD_OR_UNKNOWN_VALUE)); fprintf(stream, "\torigin: %s\n", (origin != NULL ? origin : BAD_OR_UNKNOWN_VALUE)); - /* + fprintf(stream, "\tmtree file: %s\n", (mtree_file != NULL ? mtree_file : BAD_OR_UNKNOWN_VALUE)); fprintf(stream, "\textract in place: %s\n", @@ -154,7 +159,7 @@ (pkg_preserve(p) ? "YES" : "NO")); fprintf(stream, "\tcomplete: %s\n", (pkg_complete(p) ? "YES" : "NO")); - */ + fprintf(stream, "\tfiles:\n"); files = pkg_files(p); @@ -197,4 +202,16 @@ name = conflict; fprintf(stream, "\t\t%s\n", name); } + + fprintf(stream, "\nrequired by:\n"); + fprintf(stream, "%s\n", + (reqdby != NULL ? reqdby : "None.")); + + fprintf(stream, "\ndisplay:\n"); + fprintf(stream, "%s\n", + (display != NULL ? display : "None")); + + fprintf(stream, "\ndescription:\n"); + fprintf(stream, "%s\n", + (desc != NULL ? desc : "None")); } ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#26 (text+ko) ==== @@ -219,13 +219,8 @@ keys = pkg_db_all_pkg_keys(db); - FOREACH_PKG_IN_DB(p, db, keys) { - if (!opt_all) - print_pkg_information(p); - else { - printf("pkg: "); pkg_dump(p, stdout); - } - } + FOREACH_PKG_IN_DB(p, db, keys) + print_pkg_information(p); } void From owner-p4-projects@FreeBSD.ORG Fri Jul 31 22:28:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 119CC1065700; Fri, 31 Jul 2009 22:28: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 4369A106564A for ; Fri, 31 Jul 2009 22:28:13 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 314C68FC17 for ; Fri, 31 Jul 2009 22:28:13 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VMSDLE092073 for ; Fri, 31 Jul 2009 22:28:13 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VMSD22092071 for perforce@freebsd.org; Fri, 31 Jul 2009 22:28:13 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 22:28:13 GMT Message-Id: <200907312228.n6VMSD22092071@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166883 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 22:28:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=166883 Change 166883 by pgj@petymeg-current on 2009/07/31 22:27:24 All the stats-related kvm(3) symbols have been eliminated from netstat(1). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#43 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#43 (text+ko) ==== @@ -100,7 +100,6 @@ struct protox { int pr_index; /* index into nlist of cb head */ - int pr_sindex; /* index into nlist of stat block */ u_char pr_wanted; /* 1 if wanted, 0 otherwise */ void (*pr_cblocks)(u_long, const char *, int, int); /* control blocks printing routine */ @@ -113,99 +112,99 @@ int pr_usesysctl; /* non-zero if we use sysctl, not kvm */ int pr_protocol; } protox[] = { - { 0, 0, 1, NULL, tcp_stats, stat_TCP, + { 0, 1, NULL, tcp_stats, stat_TCP, NULL, NULL, "tcp", 1, IPPROTO_TCP }, - { 0, 0, 1, NULL, udp_stats, stat_UDP, + { 0, 1, NULL, udp_stats, stat_UDP, NULL, NULL, "udp", 1, IPPROTO_UDP }, #ifdef SCTP - { -1, 0, 1, sctp_protopr, sctp_stats, stat_SCTP, + { -1, 1, sctp_protopr, sctp_stats, stat_SCTP, NULL, NULL, "sctp", 1, IPPROTO_SCTP }, #endif - { 0, -1, 1, NULL, NULL, stat_MAX, + { 0, 1, NULL, NULL, stat_MAX, NULL, NULL, "divert", 1, IPPROTO_DIVERT }, - { 0, 0, 1, NULL, ip_stats, stat_IP, + { 0, 1, NULL, ip_stats, stat_IP, NULL, NULL, "ip", 1, IPPROTO_RAW }, - { 0, 0, 1, NULL, icmp_stats, stat_ICMP, + { 0, 1, NULL, icmp_stats, stat_ICMP, NULL, NULL, "icmp", 1, IPPROTO_ICMP }, - { 0, 0, 1, NULL, igmp_stats, stat_IGMP, + { 0, 1, NULL, igmp_stats, stat_IGMP, NULL, NULL, "igmp", 1, IPPROTO_IGMP }, #ifdef IPSEC - { -1, 0, 1, NULL, ipsec_stats, stat_IPsec, /* keep as compat */ + { -1, 1, NULL, ipsec_stats, stat_IPsec, /* keep as compat */ NULL, NULL, "ipsec", 0, 0}, - { -1, 0, 1, NULL, ah_stats, stat_AH, + { -1, 1, NULL, ah_stats, stat_AH, NULL, NULL, "ah", 0, 0}, - { -1, 0, 1, NULL, esp_stats, stat_ESP, + { -1, 1, NULL, esp_stats, stat_ESP, NULL, NULL, "esp", 0, 0}, - { -1, 0, 1, NULL, ipcomp_stats, stat_IPcomp, + { -1, 1, NULL, ipcomp_stats, stat_IPcomp, NULL, NULL, "ipcomp", 0, 0}, #endif - { 0, 0, 1, NULL, pim_stats, stat_PIM, + { 0, 1, NULL, pim_stats, stat_PIM, NULL, NULL, "pim", 1, IPPROTO_PIM }, - { -1, 0, 1, NULL, carp_stats, stat_CARP, + { -1, 1, NULL, carp_stats, stat_CARP, NULL, NULL, "carp", 1, 0 }, - { -1, 0, 1, NULL, pfsync_stats, stat_pfsync, + { -1, 1, NULL, pfsync_stats, stat_pfsync, NULL, NULL, "pfsync", 1, 0 }, - { -1, -1, 0, NULL, NULL, stat_MAX, + { -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; #ifdef INET6 struct protox ip6protox[] = { - { 0, 0, 1, NULL, tcp_stats, stat_TCP, + { 0, 1, NULL, tcp_stats, stat_TCP, NULL, NULL, "tcp", 1, IPPROTO_TCP }, - { 0, 0, 1, NULL, udp_stats, stat_UDP, + { 0, 1, NULL, udp_stats, stat_UDP, NULL, NULL, "udp", 1, IPPROTO_UDP }, - { 0, 0, 1, NULL, ip6_stats, stat_IP6, + { 0, 1, NULL, ip6_stats, stat_IP6, NULL, ip6_ifstats, "ip6", 1, IPPROTO_RAW }, - { 0, 0, 1, NULL, icmp6_stats, stat_ICMP6, + { 0, 1, NULL, icmp6_stats, stat_ICMP6, NULL, icmp6_ifstats, "icmp6", 1, IPPROTO_ICMPV6 }, #ifdef IPSEC - { -1, 0, 1, NULL, ipsec_stats, stat_IPsec, + { -1, 1, NULL, ipsec_stats, stat_IPsec, NULL, NULL, "ipsec6", 0, 0 }, #endif #ifdef notyet - { -1, 0, 1, NULL, pim6_stats, stat_PIM6, + { -1, 1, NULL, pim6_stats, stat_PIM6, NULL, NULL, "pim6", 1, 0 }, #endif - { -1, 0, 1, NULL, rip6_stats, stat_RIP6, + { -1, 1, NULL, rip6_stats, stat_RIP6, NULL, NULL, "rip6", 1, 0 }, - { -1, -1, 0, NULL, NULL, stat_MAX, + { -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; #endif /*INET6*/ #ifdef IPSEC struct protox pfkeyprotox[] = { - { -1, 0, 1, NULL, pfkey_stats, stat_pfkey, + { -1, 1, NULL, pfkey_stats, stat_pfkey, NULL, NULL, "pfkey", 0, 0 }, - { -1, -1, 0, NULL, NULL, stat_MAX, + { -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; #endif struct protox atalkprotox[] = { - { N_DDPCB, 0, 1, atalkprotopr, ddp_stats, stat_DDP, + { N_DDPCB, 1, atalkprotopr, ddp_stats, stat_DDP, NULL, NULL, "ddp", 0, 0 }, - { -1, -1, 0, NULL, NULL, stat_MAX, + { -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; #ifdef NETGRAPH struct protox netgraphprotox[] = { - { N_NGSOCKS, -1, 1, netgraphprotopr, NULL, stat_MAX, + { N_NGSOCKS, 1, netgraphprotopr, NULL, stat_MAX, NULL, NULL, "ctrl", 0, 0 }, - { N_NGSOCKS, -1, 1, netgraphprotopr, NULL, stat_MAX, + { N_NGSOCKS, 1, netgraphprotopr, NULL, stat_MAX, NULL, NULL, "data", 0, 0 }, - { -1, -1, 0, NULL, NULL, stat_MAX, + { -1, 0, NULL, NULL, stat_MAX, NULL, NULL, NULL, 0, 0 } }; #endif #ifdef IPX struct protox ipxprotox[] = { - { N_IPX, 0, 1, ipxprotopr, ipx_stats, stat_IPX, + { N_IPX, 1, ipxprotopr, ipx_stats, stat_IPX, NULL, NULL, "ipx", 0, 0 }, - { N_IPX, 0, 1, ipxprotopr, spx_stats, stat_SPX, + { N_IPX, 1, ipxprotopr, spx_stats, stat_SPX, NULL, NULL, "spx", 0, 0 }, - { -1, -1, 0, NULL, NULL, stat_MAX, + { -1, 0, NULL, NULL, stat_MAX, NULL, NULL, 0, 0, 0 } }; #endif @@ -611,28 +610,14 @@ tp->pr_name); return; } else { - /* XXX: temp. hack */ if (tp->pr_nstats != NULL) statpr(tp->pr_nstats, tp->pr_stx, tp->pr_name); - else { - pr = tp->pr_stats; - if (!pr) { - if (pflag) - printf("%s: no stats routine\n", - tp->pr_name); + else + if (pflag) { + printf("%s: no stats routine\n", + tp->pr_name); return; } - if (tp->pr_usesysctl && live) - off = 0; - else if (tp->pr_sindex < 0) { - if (pflag) - printf( - "%s: stats routine doesn't work on cores\n", - tp->pr_name); - return; - } else - off = nl[tp->pr_sindex].n_value; - } } } else { pr = tp->pr_cblocks; From owner-p4-projects@FreeBSD.ORG Fri Jul 31 22:32:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 229C71065674; Fri, 31 Jul 2009 22:32: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 D7E691065672 for ; Fri, 31 Jul 2009 22:32:17 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BB7038FC15 for ; Fri, 31 Jul 2009 22:32:17 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6VMWH93092373 for ; Fri, 31 Jul 2009 22:32:17 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6VMWH3D092371 for perforce@freebsd.org; Fri, 31 Jul 2009 22:32:17 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 31 Jul 2009 22:32:17 GMT Message-Id: <200907312232.n6VMWH3D092371@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166884 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 22:32:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=166884 Change 166884 by pgj@petymeg-current on 2009/07/31 22:31:31 The old statistics "framework" has been replaced for a new one by applying libnetstat(3). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#44 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#44 (text+ko) ==== @@ -103,109 +103,108 @@ u_char pr_wanted; /* 1 if wanted, 0 otherwise */ void (*pr_cblocks)(u_long, const char *, int, int); /* control blocks printing routine */ - void (*pr_nstats)(const struct stat_type *); + void (*pr_stats)(const struct stat_type *); + /* statistics printing routine */ enum stat pr_stx; - void (*pr_stats)(u_long, const char *, int, int); - /* statistics printing routine */ void (*pr_istats)(char *); /* per/if statistics printing routine */ const char *pr_name; /* well-known name */ int pr_usesysctl; /* non-zero if we use sysctl, not kvm */ int pr_protocol; } protox[] = { { 0, 1, NULL, tcp_stats, stat_TCP, - NULL, NULL, "tcp", 1, IPPROTO_TCP }, + NULL, "tcp", 1, IPPROTO_TCP }, { 0, 1, NULL, udp_stats, stat_UDP, - NULL, NULL, "udp", 1, IPPROTO_UDP }, + NULL, "udp", 1, IPPROTO_UDP }, #ifdef SCTP { -1, 1, sctp_protopr, sctp_stats, stat_SCTP, - NULL, NULL, "sctp", 1, IPPROTO_SCTP }, + NULL, "sctp", 1, IPPROTO_SCTP }, #endif { 0, 1, NULL, NULL, stat_MAX, - NULL, NULL, "divert", 1, IPPROTO_DIVERT }, + NULL, "divert", 1, IPPROTO_DIVERT }, { 0, 1, NULL, ip_stats, stat_IP, - NULL, NULL, "ip", 1, IPPROTO_RAW }, + NULL, "ip", 1, IPPROTO_RAW }, { 0, 1, NULL, icmp_stats, stat_ICMP, - NULL, NULL, "icmp", 1, IPPROTO_ICMP }, + NULL, "icmp", 1, IPPROTO_ICMP }, { 0, 1, NULL, igmp_stats, stat_IGMP, - NULL, NULL, "igmp", 1, IPPROTO_IGMP }, + NULL, "igmp", 1, IPPROTO_IGMP }, #ifdef IPSEC { -1, 1, NULL, ipsec_stats, stat_IPsec, /* keep as compat */ - NULL, NULL, "ipsec", 0, 0}, + NULL, "ipsec", 0, 0}, { -1, 1, NULL, ah_stats, stat_AH, - NULL, NULL, "ah", 0, 0}, + NULL, "ah", 0, 0}, { -1, 1, NULL, esp_stats, stat_ESP, - NULL, NULL, "esp", 0, 0}, + NULL, "esp", 0, 0}, { -1, 1, NULL, ipcomp_stats, stat_IPcomp, - NULL, NULL, "ipcomp", 0, 0}, + NULL, "ipcomp", 0, 0}, #endif { 0, 1, NULL, pim_stats, stat_PIM, - NULL, NULL, "pim", 1, IPPROTO_PIM }, + NULL, "pim", 1, IPPROTO_PIM }, { -1, 1, NULL, carp_stats, stat_CARP, - NULL, NULL, "carp", 1, 0 }, + NULL, "carp", 1, 0 }, { -1, 1, NULL, pfsync_stats, stat_pfsync, - NULL, NULL, "pfsync", 1, 0 }, + NULL, "pfsync", 1, 0 }, { -1, 0, NULL, NULL, stat_MAX, - NULL, NULL, NULL, 0, 0 } + NULL, NULL, 0, 0 } }; #ifdef INET6 struct protox ip6protox[] = { { 0, 1, NULL, tcp_stats, stat_TCP, - NULL, NULL, "tcp", 1, IPPROTO_TCP }, + NULL, "tcp", 1, IPPROTO_TCP }, { 0, 1, NULL, udp_stats, stat_UDP, - NULL, NULL, "udp", 1, IPPROTO_UDP }, + NULL, "udp", 1, IPPROTO_UDP }, { 0, 1, NULL, ip6_stats, stat_IP6, - NULL, ip6_ifstats, "ip6", 1, IPPROTO_RAW }, + ip6_ifstats, "ip6", 1, IPPROTO_RAW }, { 0, 1, NULL, icmp6_stats, stat_ICMP6, - NULL, icmp6_ifstats, "icmp6", 1, IPPROTO_ICMPV6 }, + icmp6_ifstats, "icmp6", 1, IPPROTO_ICMPV6 }, #ifdef IPSEC { -1, 1, NULL, ipsec_stats, stat_IPsec, - NULL, NULL, "ipsec6", 0, 0 }, + NULL, "ipsec6", 0, 0 }, #endif #ifdef notyet { -1, 1, NULL, pim6_stats, stat_PIM6, - NULL, NULL, "pim6", 1, 0 }, + NULL, "pim6", 1, 0 }, #endif { -1, 1, NULL, rip6_stats, stat_RIP6, - NULL, NULL, "rip6", 1, 0 }, + NULL, "rip6", 1, 0 }, { -1, 0, NULL, NULL, stat_MAX, - NULL, NULL, NULL, 0, 0 } + NULL, NULL, 0, 0 } }; #endif /*INET6*/ #ifdef IPSEC struct protox pfkeyprotox[] = { { -1, 1, NULL, pfkey_stats, stat_pfkey, - NULL, NULL, "pfkey", 0, 0 }, + NULL, "pfkey", 0, 0 }, { -1, 0, NULL, NULL, stat_MAX, - NULL, NULL, NULL, 0, 0 } + NULL, NULL, 0, 0 } }; #endif struct protox atalkprotox[] = { { N_DDPCB, 1, atalkprotopr, ddp_stats, stat_DDP, - NULL, NULL, "ddp", 0, 0 }, + NULL, "ddp", 0, 0 }, { -1, 0, NULL, NULL, stat_MAX, - NULL, NULL, NULL, 0, 0 } + NULL, NULL, 0, 0 } }; #ifdef NETGRAPH struct protox netgraphprotox[] = { { N_NGSOCKS, 1, netgraphprotopr, NULL, stat_MAX, - NULL, NULL, "ctrl", 0, 0 }, + NULL, "ctrl", 0, 0 }, { N_NGSOCKS, 1, netgraphprotopr, NULL, stat_MAX, - NULL, NULL, "data", 0, 0 }, + NULL, "data", 0, 0 }, { -1, 0, NULL, NULL, stat_MAX, - NULL, NULL, NULL, 0, 0 } + NULL, NULL, 0, 0 } }; #endif #ifdef IPX struct protox ipxprotox[] = { { N_IPX, 1, ipxprotopr, ipx_stats, stat_IPX, - NULL, NULL, "ipx", 0, 0 }, + NULL, "ipx", 0, 0 }, { N_IPX, 1, ipxprotopr, spx_stats, stat_SPX, - NULL, NULL, "spx", 0, 0 }, + NULL, "spx", 0, 0 }, { -1, 0, NULL, NULL, stat_MAX, - NULL, NULL, 0, 0, 0 } + NULL, 0, 0, 0 } }; #endif @@ -610,8 +609,8 @@ tp->pr_name); return; } else { - if (tp->pr_nstats != NULL) - statpr(tp->pr_nstats, tp->pr_stx, tp->pr_name); + if (tp->pr_stats != NULL) + statpr(tp->pr_stats, tp->pr_stx, tp->pr_name); else if (pflag) { printf("%s: no stats routine\n", From owner-p4-projects@FreeBSD.ORG Sat Aug 1 18:38:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8AB991065674; Sat, 1 Aug 2009 18:38: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 4A4291065672 for ; Sat, 1 Aug 2009 18:38:22 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 36B988FC18 for ; Sat, 1 Aug 2009 18:38:22 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n71IcMVD049385 for ; Sat, 1 Aug 2009 18:38:22 GMT (envelope-from gk@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n71IcMgW049383 for perforce@freebsd.org; Sat, 1 Aug 2009 18:38:22 GMT (envelope-from gk@FreeBSD.org) Date: Sat, 1 Aug 2009 18:38:22 GMT Message-Id: <200908011838.n71IcMgW049383@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gk@FreeBSD.org using -f From: Gleb Kurtsou To: Perforce Change Reviews Cc: Subject: PERFORCE change 166896 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Aug 2009 18:38:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=166896 Change 166896 by gk@gk_h1 on 2009/08/01 18:37:48 Implement changing directory key (pefs setkey) Implement key chaining Fix vop_link: forbid creation of link to unencrypted file, use same tweak and key for created link Affected files ... .. //depot/projects/soc2009/gk_pefs/sbin/pefs/Makefile#2 edit .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_ctl.c#2 edit .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_ctl.h#2 edit .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_key.c#2 edit .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_keychain.c#1 add .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_keychain.h#1 add .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_mount.c#2 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_crypto.c#5 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vnops.c#8 edit Differences ... ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/Makefile#2 (text+ko) ==== @@ -5,7 +5,7 @@ .PATH: ${MOUNT} ${SYS}/geom/eli ${SYS}/crypto/sha2 PROG= pefs -SRCS= pefs_ctl.c pefs_mount.c pefs_key.c +SRCS= pefs_ctl.c pefs_key.c pefs_keychain.c pefs_mount.c SRCS+= getmntopts.c SRCS+= g_eli_crypto.c pkcs5v2.c sha2.c ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_ctl.c#2 (text+ko) ==== @@ -29,6 +29,8 @@ __FBSDID("$FreeBSD$"); #include +#include +#include #include #include #include @@ -42,6 +44,7 @@ #include #include "pefs_ctl.h" +#include "pefs_keychain.h" #define PATH_UMOUNT "/sbin/umount" @@ -50,9 +53,14 @@ static int pefs_setkey(int argc, char *argv[]); static int pefs_delkey(int argc, char *argv[]); static int pefs_flushkeys(int argc, char *argv[]); -static int pefs_status(int argc, char *argv[]); +static int pefs_setchain(int argc, char *argv[]); +static int pefs_delchain(int argc, char *argv[]); +static int pefs_randomchain(int argc, char *argv[]); +static int pefs_showkeys(int argc, char *argv[]); +static int pefs_showchain(int argc, char *argv[]); typedef int (*command_func_t)(int argc, char **argv); +typedef int (*keyop_func_t)(struct pefs_keychain *kc, int fd); struct command { const char *name; @@ -67,88 +75,237 @@ { "setkey", pefs_setkey }, { "delkey", pefs_delkey }, { "flushkeys", pefs_flushkeys }, - { "status", pefs_status }, + { "showkeys", pefs_showkeys }, + { "status", pefs_showkeys }, + { "randomchain", pefs_randomchain }, + { "setchain", pefs_setchain }, + { "delchain", pefs_delchain }, + { "showchain", pefs_showchain }, { NULL, NULL }, }; static int -pefs_addkey(int argc, char *argv[]) +checkargs_fs(int argc, char **argv __unused) +{ + if (argc != 1) { + if (argc == 0) + warnx("missing filesystem argument"); + else + warnx("too many arguments"); + return (0); + } + + return (1); +} + +uintmax_t +pefs_keyid_as_int(char *keyid) +{ + uintmax_t r; + int i; + + assert(sizeof(uintmax_t) >= PEFS_KEYID_SIZE); + for (i = 0, r = 0; i < PEFS_KEYID_SIZE; i++) { + if (i) + r <<= 8; + r |= keyid[i] & 0xff; + } + + return (r); +} + +static inline void +pefs_key_show(struct pefs_xkey *xk, int ind) +{ + printf("\t%-4d %016jx %s\n", ind, pefs_keyid_as_int(xk->pxk_keyid), pefs_alg_name(xk->pxk_alg)); +} + +static int +pefs_keyop(keyop_func_t func, int argc, char *argv[]) { struct pefs_xkey k; - int error, fd; + struct pefs_keychain *kc; + struct pefs_keyparam kp; + int error, fd, i; + int chain = PEFS_KEYCHAIN_IGNORE_MISSING; - error = pefs_get_key(&k, &argc, argv); - if (error != 0) - return (error); + pefs_keyparam_init(&kp); + while ((i = getopt(argc, argv, "pcCa:i:k:")) != -1) + switch(i) { + case 'a': + kp.kp_alg = optarg; + break; + case 'c': + chain = PEFS_KEYCHAIN_USE; + break; + case 'C': + chain = 0; + break; + case 'p': + kp.kp_nopassphrase = 1; + break; + case 'i': + kp.kp_iterations = atoi(optarg); + if (kp.kp_iterations <= 0) { + warnx("invalid iterations argument: %s", optarg); + pefs_usage(); + } + break; + case 'k': + kp.kp_keyfile = optarg; + break; + default: + pefs_usage(); + } + argc -= optind; + argv += optind; - if (argc != 1) { + if (!checkargs_fs(argc, argv)) { bzero(&k, sizeof(k)); - if (argc == 0) - warnx("missing filesystem argument"); - else if (getopt(argc, argv, "") == -1) - warnx("too many arguments"); pefs_usage(); } + error = pefs_key_get(&k, NULL, 0, &kp); + if (error != 0) + return (error); + + kc = pefs_keychain_get(argv[0], chain, &k); + bzero(&k, sizeof(k)); + if (kc == NULL) { + return (EX_DATAERR); + } fd = open(argv[0], O_RDONLY); if (fd == -1) { - bzero(&k, sizeof(k)); err(EX_IOERR, "cannot open %s", argv[0]); } - if (ioctl(fd, PEFS_ADDKEY, &k) == -1) { - bzero(&k, sizeof(k)); - err(EX_IOERR, "cannot add key"); + + error = func(kc, fd); + + pefs_keychain_free(kc); + + close(fd); + + return (error); +} + +static int +pefs_addkey_op(struct pefs_keychain *kc, int fd) +{ + for (; kc; kc = kc->kc_next) { + if (ioctl(fd, PEFS_ADDKEY, &kc->kc_key) == -1) { + warn("cannot add key"); + return (-1); + } } - bzero(&k, sizeof(k)); - close(fd); return (0); } static int -pefs_setkey(int argc __unused, char *argv[] __unused) +pefs_delkey_op(struct pefs_keychain *kc, int fd) { - pefs_usage(); + for (; kc; kc = kc->kc_next) { + if (ioctl(fd, PEFS_DELKEY, &kc->kc_key) == -1) { + warn("cannot delete key"); + } + } return (0); } static int +pefs_addkey(int argc, char *argv[]) +{ + return (pefs_keyop(pefs_addkey_op, argc, argv)); +} + +static int pefs_delkey(int argc, char *argv[]) { + return (pefs_keyop(pefs_delkey_op, argc, argv)); +} + +static int +pefs_setkey(int argc, char *argv[]) +{ struct pefs_xkey k; - int error, fd; + struct pefs_keychain *kc; + struct pefs_keyparam kp; + int error, fd, i; + int addkey = 0; + int chain = PEFS_KEYCHAIN_IGNORE_MISSING; + + pefs_keyparam_init(&kp); + while ((i = getopt(argc, argv, "xpcCa:i:k:")) != -1) + switch(i) { + case 'x': + addkey = 1; + break; + case 'a': + kp.kp_alg = optarg; + break; + case 'c': + chain = PEFS_KEYCHAIN_USE; + break; + case 'C': + chain = 0; + break; + case 'p': + kp.kp_nopassphrase = 1; + break; + case 'i': + kp.kp_iterations = atoi(optarg); + if (kp.kp_iterations <= 0) { + warnx("invalid iterations argument: %s", optarg); + pefs_usage(); + } + break; + case 'k': + kp.kp_keyfile = optarg; + break; + default: + pefs_usage(); + } + argc -= optind; + argv += optind; - error = pefs_get_key(&k, &argc, argv); - if (error != 0) - return (error); + if (chain == PEFS_KEYCHAIN_USE && addkey) + errx(EX_USAGE, "invalid arguments: -x -c"); - bzero(k.pxk_key, PEFS_KEY_SIZE); if (argc != 1) { - bzero(&k, sizeof(k)); if (argc == 0) - warnx("missing filesystem argument"); - else if (getopt(argc, argv, "") == -1) + warnx("missing directory argument"); + else warnx("too many arguments"); + bzero(&k, sizeof(k)); pefs_usage(); } + error = pefs_key_get(&k, NULL, 0, &kp); + if (error != 0) + return (error); + + kc = pefs_keychain_get(argv[0], chain, &k); + if (kc == NULL) { + return (EX_DATAERR); + } + pefs_keychain_free(kc); + + bzero(k.pxk_key, PEFS_KEY_SIZE); + fd = open(argv[0], O_RDONLY); if (fd == -1) { - bzero(&k, sizeof(k)); err(EX_IOERR, "cannot open %s", argv[0]); } - if (ioctl(fd, PEFS_DELKEY, &k) == -1) { - bzero(&k, sizeof(k)); - err(EX_IOERR, "cannot delete key"); + + if (ioctl(fd, PEFS_SETKEY, &k) == -1) { + warn("cannot set key"); + error = EX_OSERR; } - bzero(&k, sizeof(k)); + close(fd); - return (0); - pefs_usage(); - - return (0); + return (error); } static int @@ -156,11 +313,7 @@ { int fd; - if (argc != 1) { - if (argc == 0) - warnx("missing filesystem argument"); - else if (getopt(argc, argv, "") == -1) - warnx("too many arguments"); + if (!checkargs_fs(argc, argv)) { pefs_usage(); } @@ -177,17 +330,22 @@ } static int -pefs_status(int argc, char *argv[]) +pefs_showkeys(int argc, char *argv[]) { struct pefs_xkey k; - char buf[PEFS_KEYID_SIZE * 2 + 1]; - int fd, i; + int chain, fd, i; + + chain = 1; + while ((i = getopt(argc, argv, "")) != -1) + switch(i) { + case '?': + default: + pefs_usage(); + } + argc -= optind; + argv += optind; - if (argc != 1) { - if (argc == 0) - warnx("missing filesystem argument"); - else if (getopt(argc, argv, "") == -1) - warnx("too many arguments"); + if (!checkargs_fs(argc, argv)) { pefs_usage(); } @@ -205,11 +363,7 @@ } else { printf("Keys:\n"); while (1) { - for (i = 0; i < PEFS_KEYID_SIZE; i++) { - snprintf(buf + i * 2, sizeof(buf) - i * 2, "%02x", - k.pxk_keyid[i] & 0xff); - } - printf("\t%-4d %16s %s\n", k.pxk_index, buf, pefs_alg_name(k.pxk_alg)); + pefs_key_show(&k, k.pxk_index); k.pxk_index++; if (ioctl(fd, PEFS_GETKEY, &k) == -1) break; @@ -217,6 +371,9 @@ } close(fd); + if (chain) { + } + return (0); } @@ -235,14 +392,13 @@ default: pefs_usage(); } - if (argc - optind == 0) { - warnx("missing filesystem argument"); + argc -= optind; + argv += optind; + + if (!checkargs_fs(argc, argv)) { pefs_usage(); } - if (argc - optind > 1) { - warnx("too many arguments"); - pefs_usage(); - } + nargv = malloc((argc + 2) * sizeof(*nargv)); for (i = 0; i < argc; i++) nargv[i + 1] = argv[i]; @@ -251,19 +407,236 @@ if (execv(PATH_UMOUNT, nargv) == -1) errx(EX_OSERR, "exec %s", PATH_UMOUNT); + + return (0); +} + +static int +pefs_setchain(int argc, char *argv[]) +{ + struct pefs_keychain *kc, *kci; + struct { + struct pefs_xkey k; + struct pefs_keyparam kp; + } p[2]; + struct pefs_xkey *k1 = &p[0].k, *k2 = &p[1].k; + int error, i; + + pefs_keyparam_init(&p[0].kp); + pefs_keyparam_init(&p[1].kp); + while ((i = getopt(argc, argv, "pPa:A:i:I:k:K:")) != -1) + switch(i) { + case 'a': + case 'A': + p[isupper(i) ? 1 : 0].kp.kp_alg = optarg; + break; + case 'p': + case 'P': + p[isupper(i) ? 1 : 0].kp.kp_nopassphrase = 1; + break; + case 'i': + case 'I': + if ((p[isupper(i) ? 1 : 0].kp.kp_iterations = atoi(optarg)) <= 0) { + warnx("invalid iterations argument: %s", optarg); + pefs_usage(); + } + break; + case 'k': + case 'K': + p[isupper(i) ? 1 : 0].kp.kp_keyfile = optarg; + break; + default: + pefs_usage(); + } + argc -= optind; + argv += optind; + + + if (!checkargs_fs(argc, argv)) { + bzero(p, sizeof(p)); + pefs_usage(); + } + + error = pefs_key_get(k1, "parent key passphrase", 1, &p[0].kp); + if (error != 0) { + bzero(p, sizeof(p)); + return (error); + } + error = pefs_key_get(k2, "chained key passphrase", 1, &p[1].kp); + if (error != 0) { + bzero(p, sizeof(p)); + return (error); + } + + kc = pefs_keychain_get(argv[0], PEFS_KEYCHAIN_IGNORE_MISSING, k1); + for (kci = kc; kci; kci = kci->kc_next) { + if (memcmp(k2->pxk_keyid, kci->kc_key.pxk_keyid, PEFS_KEYID_SIZE) == 0) { + pefs_keychain_free(kc); + bzero(k1->pxk_key, PEFS_KEY_SIZE); + bzero(k2->pxk_key, PEFS_KEY_SIZE); + errx(EX_DATAERR, "key chain is already set: %016jx -> %016jx", + pefs_keyid_as_int(k1->pxk_keyid), + pefs_keyid_as_int(k2->pxk_keyid)); + } + } + if (kc->kc_next != NULL) { + bzero(k1->pxk_key, PEFS_KEY_SIZE); + bzero(k2->pxk_key, PEFS_KEY_SIZE); + warnx("key chain for parent key is already set: %016jx -> %016jx", + pefs_keyid_as_int(kc->kc_key.pxk_keyid), + pefs_keyid_as_int(kc->kc_next->kc_key.pxk_keyid)); + pefs_keychain_free(kc); + exit(EX_DATAERR); + } + + error = pefs_keychain_set(argv[0], k1, k2); + if (error) + return (EX_DATAERR); + return (0); } +static int +pefs_delchain(int argc, char *argv[]) +{ + struct pefs_xkey k; + struct pefs_keyparam kp; + struct pefs_keychain *kc, *kci; + int error, i; + int force = 0; + + pefs_keyparam_init(&kp); + while ((i = getopt(argc, argv, "fpa:i:k:")) != -1) + switch(i) { + case 'f': + force = 1; + break; + case 'a': + kp.kp_alg = optarg; + break; + case 'p': + kp.kp_nopassphrase = 1; + break; + case 'i': + kp.kp_iterations = atoi(optarg); + if (kp.kp_iterations <= 0) { + warnx("invalid iterations argument: %s", optarg); + pefs_usage(); + } + break; + case 'k': + kp.kp_keyfile = optarg; + break; + default: + pefs_usage(); + } + argc -= optind; + argv += optind; + + if (!checkargs_fs(argc, argv)) { + pefs_usage(); + } + + error = pefs_key_get(&k, NULL, 0, &kp); + if (error != 0) + return (error); + + kc = pefs_keychain_get(argv[0], PEFS_KEYCHAIN_USE, &k); + if (kc == NULL) { + bzero(&k, sizeof(k)); + return (EX_DATAERR); + } + + for (kci = kc; kci != NULL && kci->kc_next != NULL; kci = kci->kc_next) { + pefs_keychain_del(argv[0], &kci->kc_key); + if (!force) + break; + } + pefs_keychain_free(kc); + + return (0); +} + +static int +pefs_showchain(int argc, char *argv[]) +{ + struct pefs_xkey k; + struct pefs_keyparam kp; + struct pefs_keychain *kc, *kci; + int error, i; + + pefs_keyparam_init(&kp); + while ((i = getopt(argc, argv, "pa:i:k:")) != -1) + switch(i) { + case 'a': + kp.kp_alg = optarg; + break; + case 'p': + kp.kp_nopassphrase = 1; + break; + case 'i': + kp.kp_iterations = atoi(optarg); + if (kp.kp_iterations <= 0) { + warnx("invalid iterations argument: %s", optarg); + pefs_usage(); + } + break; + case 'k': + kp.kp_keyfile = optarg; + break; + default: + pefs_usage(); + } + argc -= optind; + argv += optind; + + if (!checkargs_fs(argc, argv)) { + pefs_usage(); + } + + error = pefs_key_get(&k, NULL, 0, &kp); + if (error != 0) + return (error); + + kc = pefs_keychain_get(argv[0], PEFS_KEYCHAIN_USE, &k); + if (kc == NULL) { + bzero(&k, sizeof(k)); + return (EX_DATAERR); + } + + printf("Key chain:\n"); + bzero(&k, sizeof(k)); + for (i = 1, kci = kc; kci != NULL; i++, kci = kci->kc_next) { + pefs_key_show(&kci->kc_key, i); + } + pefs_keychain_free(kc); + + return (0); +} + +static int +pefs_randomchain(int argc __unused, char *argv[] __unused) +{ + return (0); +} + + void pefs_usage(void) { fprintf(stderr, "usage: pefs mount [-o options] target filesystem\n" " pefs unmount [-fv] filesystem\n" - " pefs addkey [-p] [-a alg] [-i iterations] [-k keyfile] filesystem\n" - " pefs setkey [-cp] [-a alg] [-i iterations] [-k keyfile] directory\n" - " pefs delkey [-p] [-a alg] [-i iterations] [-k keyfile] filesystem\n" + " pefs addkey [-cCp] [-a alg] [-i iterations] [-k keyfile] filesystem\n" + " pefs setkey [-xcCp] [-a alg] [-i iterations] [-k keyfile] directory\n" + " pefs delkey [-cCp] [-a alg] [-i iterations] [-k keyfile] filesystem\n" " pefs flushkeys filesystem\n" - " pefs status filesystem\n"); + " pefs setchain [-pP] [-a alg] [-i iterations] [-k keyfile]\n" + " [-A alg] [-I iterations] [-K keyfile] filesystem\n" + " pefs delchain [-pP] [-a alg] [-i iterations] [-k keyfile]\n" + " [-A alg] [-I iterations] [-K keyfile] filesystem\n" + " pefs showchain [-a alg] [-n min] [-N max] filesystem\n" + " pefs randomchain [-a alg] [-n min] [-N max] filesystem\n" + " pefs showkeys filesystem\n"); exit(EX_USAGE); } ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_ctl.h#2 (text+ko) ==== @@ -1,5 +1,6 @@ /*- - * Copyright (c) 2009 Gleb Kurtsou. All rights reserved. + * Copyright (c) 2009 Gleb Kurtsou + * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -24,16 +25,33 @@ * * $FreeBSD$ */ - #define PEFS_ALG_DEFAULT PEFS_ALG_SALSA20 #define PEFS_KDF_ITERATIONS 50000 struct pefs_xkey; +struct pefs_keyparam { + int kp_nopassphrase; + int kp_iterations; + char *kp_keyfile; + char *kp_alg; +}; + +static inline void +pefs_keyparam_init(struct pefs_keyparam *kp) +{ + kp->kp_nopassphrase = 0; + kp->kp_iterations = PEFS_KDF_ITERATIONS; + kp->kp_keyfile = NULL; + kp->kp_alg = NULL; +} + void pefs_usage(void); -int pefs_get_key(struct pefs_xkey *xk, int *pargc, char *argv[]); +int pefs_key_get(struct pefs_xkey *xk, const char *prompt, int verify, + struct pefs_keyparam *kp); int pefs_mount(int argc, char *argv[]); int pefs_mount_prog(int argc, char *argv[]); +uintmax_t pefs_keyid_as_int(char *keyid); const char * pefs_alg_name(int alg_id); ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_key.c#2 (text+ko) ==== @@ -44,6 +44,8 @@ #include "pefs_ctl.h" +#define PEFS_KEY_PROMPT_DEFAULT "passphrase" + struct algorithm { const char *name; int id; @@ -68,95 +70,76 @@ } int -pefs_get_key(struct pefs_xkey *xk, int *pargc, char *argv[]) +pefs_key_get(struct pefs_xkey *xk, const char *prompt, int verify, struct pefs_keyparam *kp) { struct hmac_ctx ctx; struct algorithm *alg; - char buf[BUFSIZ], *p; - char *keyfile = NULL; + char promptbuf[64], buf[BUFSIZ], buf2[BUFSIZ], *p; ssize_t done; - int nopassphrase = 0; - int iterations = PEFS_KDF_ITERATIONS; - int i, fd, xargc = 0, orig_opterr; + int fd, i; xk->pxk_index = -1; xk->pxk_alg = PEFS_ALG_DEFAULT; - orig_opterr = opterr; - opterr = 0; - while ((i = getopt(*pargc, argv, "pi:k:")) != -1) - switch(i) { - case 'a': - for (alg = algs; alg->name != NULL; alg++) { - if (strcmp(optarg, alg->name) == 0) - xk->pxk_alg = alg->id; - } - errx(EX_USAGE, "invalid algorithm %s", optarg); - break; - case 'p': - nopassphrase = 1; - break; - case 'i': - iterations = atoi(optarg); - if (iterations <= 0) { - warnx("invalid iterations argument: %s", optarg); - pefs_usage(); - } - break; - case 'k': - keyfile = optarg; - break; - default: - argv[xargc++] = argv[optind - 1]; + if (kp->kp_alg != NULL) { + for (alg = algs; alg->name != NULL; alg++) { + if (strcmp(kp->kp_alg, alg->name) == 0) + xk->pxk_alg = alg->id; } - if (optind != *pargc) { - if (strcmp(argv[optind - 1], "--") == 0) - optind--; - for (i = optind; i < *pargc; i++) { - argv[xargc++] = argv[i]; - } + errx(EX_USAGE, "invalid algorithm %s", optarg); } - *pargc = xargc; - opterr = orig_opterr; - optind = 0; - optreset = 1; g_eli_crypto_hmac_init(&ctx, NULL, 0); - if (keyfile != NULL && keyfile[0] == '\0') - keyfile = NULL; - if (keyfile == NULL && nopassphrase) { + if (kp->kp_keyfile != NULL && kp->kp_keyfile[0] == '\0') + kp->kp_keyfile = NULL; + if (kp->kp_keyfile == NULL && kp->kp_nopassphrase) { warnx("no key components given"); pefs_usage(); } - if (keyfile != NULL) { - if (strcmp(keyfile, "-") == 0) + if (kp->kp_keyfile != NULL) { + if (strcmp(kp->kp_keyfile, "-") == 0) fd = STDIN_FILENO; else { - fd = open(keyfile, O_RDONLY); + fd = open(kp->kp_keyfile, O_RDONLY); if (fd == -1) - err(EX_IOERR, "cannot open keyfile %s", keyfile); + err(EX_IOERR, "cannot open keyfile %s", kp->kp_keyfile); } while ((done = read(fd, buf, sizeof(buf))) > 0) g_eli_crypto_hmac_update(&ctx, buf, done); bzero(buf, sizeof(buf)); if (done == -1) - err(EX_IOERR, "cannot read keyfile %s", keyfile); + err(EX_IOERR, "cannot read keyfile %s", kp->kp_keyfile); if (fd != STDIN_FILENO) close(fd); } - if (!nopassphrase) { - p = readpassphrase("Enter passphrase:", buf, sizeof(buf), - RPP_ECHO_OFF | RPP_REQUIRE_TTY); - if (p == NULL) { + if (!kp->kp_nopassphrase) { + if (verify) + verify = 1; + if (prompt == NULL) + prompt = PEFS_KEY_PROMPT_DEFAULT; + for (i = 0; i <= verify; i++) { + snprintf(promptbuf, sizeof(promptbuf), "%s %s:", + !i ? "Enter" : "Reenter", prompt); + p = readpassphrase(promptbuf, !i ? buf : buf2, BUFSIZ, + RPP_ECHO_OFF | RPP_REQUIRE_TTY); + if (p == NULL) { + bzero(buf, sizeof(buf)); + bzero(buf2, sizeof(buf2)); + errx(EX_DATAERR, "unable to read passphrase"); + } + } + if (verify && strcmp(buf, buf2) != 0) { bzero(buf, sizeof(buf)); - errx(EX_DATAERR, "unable to read passphrase"); + bzero(buf2, sizeof(buf2)); + errx(EX_DATAERR, "passphrases didn't match"); } - if (iterations == 0) { + bzero(buf2, sizeof(buf2)); + if (kp->kp_iterations == 0) { g_eli_crypto_hmac_update(&ctx, buf, strlen(buf)); } else { - pkcs5v2_genkey(xk->pxk_key, PEFS_KEY_SIZE, buf, 0, buf, iterations); + pkcs5v2_genkey(xk->pxk_key, PEFS_KEY_SIZE, buf, 0, buf, kp->kp_iterations); g_eli_crypto_hmac_update(&ctx, xk->pxk_key, PEFS_KEY_SIZE); } bzero(buf, sizeof(buf)); ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_mount.c#2 (text+ko) ==== @@ -30,28 +30,18 @@ * SUCH DAMAGE. */ -#ifndef lint -static const char copyright[] = -"@(#) Copyright (c) 1992, 1993, 1994\n\ - The Regents of the University of California. All rights reserved.\n"; -#endif /* not lint */ - -#ifndef lint -#if 0 -static char sccsid[] = "@(#)mount_null.c 8.6 (Berkeley) 4/26/95"; -#endif /* * Ancestors: * FreeBSD: head/sbin/mount_nullfs/mount_nullfs.c 152670 2005-11-21 22:51:16Z rodrigc */ -static const char rcsid[] = - "$FreeBSD$"; -#endif /* not lint */ +#include +__FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_crypto.c#5 (text+ko) ==== @@ -119,6 +119,7 @@ case PEFS_ALG_SALSA20: break; default: + printf("pefs: unknown algorithm %d\n", alg); return (NULL); } ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vnops.c#8 (text+ko) ==== @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -104,7 +105,7 @@ } static int -pefs_enccn_create(struct pefs_enccn *pec, struct pefs_key *pk, struct componentname *cnp) +pefs_enccn_create(struct pefs_enccn *pec, struct pefs_key *pk, char *tweak, struct componentname *cnp) { int r; @@ -115,7 +116,10 @@ pefs_enccn_init(pec, NULL, cnp->cn_nameptr, cnp->cn_namelen, cnp); return (0); } - arc4rand(pec->pec_tkey.ptk_tweak, PEFS_TWEAK_SIZE, 0); + if (tweak == NULL) + arc4rand(pec->pec_tkey.ptk_tweak, PEFS_TWEAK_SIZE, 0); + else + memcpy(pec->pec_tkey.ptk_tweak, tweak, PEFS_TWEAK_SIZE); pec->pec_tkey.ptk_key = pk; PEFSDEBUG("%s: pk=%p\n", __func__, pk); pec->pec_buf = uma_zalloc(namei_zone, M_WAITOK); @@ -251,7 +255,7 @@ if (error == ENOENT) { struct pefs_key *dpk = pefs_node_key(VP_TO_PN(dvp)); - error = pefs_enccn_create(pec, dpk, cnp); + error = pefs_enccn_create(pec, dpk, NULL, cnp); pefs_key_release(dpk); } PEFSDEBUG("%s: returning = %d\n", __func__, error); @@ -259,6 +263,22 @@ return (error); } +static inline int +pefs_enccn_lookup_createcopy(struct pefs_enccn *pec, struct pefs_tkey *ptk, struct vnode *dvp, struct componentname *cnp) +{ + int error; + + MPASS(ptk->ptk_key != NULL); + error = pefs_enccn_lookup(pec, dvp, cnp); + PEFSDEBUG("%s: lookup error = %d\n", __func__, error); + if (error == ENOENT) { + error = pefs_enccn_create(pec, ptk->ptk_key, ptk->ptk_tweak, cnp); + } + PEFSDEBUG("%s: returning = %d\n", __func__, error); + + return (error); +} + static int pefs_enccn_get(struct pefs_enccn *pec, struct vnode *vp, struct vnode *dvp, struct componentname *cnp) { @@ -297,14 +317,20 @@ * Recycle vnodes using key pk. * If pk is NULL recycle all vnodes with PN_HASKEY flag set. */ +#define PEFS_FLUSHKEY_ALL 1 + static int -pefs_flushkey(struct mount *mp, struct pefs_key *pk) +pefs_flushkey(struct mount *mp, struct thread *td, int flags, struct pefs_key *pk) { struct vnode *vp, *mvp; struct pefs_node *pn; int error; PEFSDEBUG("pefs_flushkey: pk=%p\n", pk); + + vflush(mp, 0, 0, td); + if ((flags & PEFS_FLUSHKEY_ALL) == 0 && pk == NULL) + goto loop_end; MNT_ILOCK(mp); loop: MNT_VNODE_FOREACH(vp, mp, mvp) { @@ -313,7 +339,7 @@ VI_LOCK(vp); pn = VP_TO_PN(vp); if ((pn->pn_flags & PN_HASKEY) && - (pk == NULL || pn->pn_tkey.ptk_key == pk)) { + ((flags & PEFS_FLUSHKEY_ALL) || pn->pn_tkey.ptk_key == pk)) { >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 1 22:43:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 51CEF1065674; Sat, 1 Aug 2009 22:43:59 +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 E5D4A1065673 for ; Sat, 1 Aug 2009 22:43:58 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D24D98FC08 for ; Sat, 1 Aug 2009 22:43:58 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n71MhwWM082187 for ; Sat, 1 Aug 2009 22:43:58 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n71Mhob5082180 for perforce@freebsd.org; Sat, 1 Aug 2009 22:43:50 GMT (envelope-from zec@fer.hr) Date: Sat, 1 Aug 2009 22:43:50 GMT Message-Id: <200908012243.n71Mhob5082180@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 166906 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Aug 2009 22:44:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=166906 Change 166906 by zec@zec_tpx32 on 2009/08/01 22:43:05 IFC @ 166905 Affected files ... .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/initcpu.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/machdep.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/pmap.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/include/cpufunc.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/include/md_var.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/arm/arm/busdma_machdep.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/arm/arm/cpufunc.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/arm/arm/minidump_machdep.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/arm/arm/pmap.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/arm/arm/vm_machdep.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/arm/conf/AVILA#10 integrate .. //depot/projects/vimage-commit2/src/sys/arm/conf/CAMBRIA#5 integrate .. //depot/projects/vimage-commit2/src/sys/boot/forth/loader.conf#15 integrate .. //depot/projects/vimage-commit2/src/sys/bsm/audit.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/bsm/audit_kevents.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/cam/ata/ata_da.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/cam/cam_ccb.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/cam/cam_xpt.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/dev/dtrace/amd64/dtrace_subr.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/dev/dtrace/i386/dtrace_subr.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_misc.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linprocfs/linprocfs.c#25 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_ioctl.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_mib.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_socket.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/compat/svr4/svr4_sockio.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/conf/NOTES#35 integrate .. //depot/projects/vimage-commit2/src/sys/conf/files#48 integrate .. //depot/projects/vimage-commit2/src/sys/conf/newvers.sh#8 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/altq/altq/altq_subr.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/ipfilter/netinet/fil.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/pf/net/pf.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/pf/net/pf_if.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/pf/net/pf_ioctl.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/pf/net/pf_subr.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/rdma/rdma_cma.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/ddb/db_sym.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/alc/if_alc.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ata/ata-all.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ath/if_ath.c#21 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ath/if_athvar.h#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ciss/ciss.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#24 integrate .. //depot/projects/vimage-commit2/src/sys/dev/e1000/e1000_ich8lan.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/e1000/if_em.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/dev/e1000/if_igb.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/if_ndis/if_ndis.c#19 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/isp.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/isp_freebsd.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/isp_freebsd.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/isp_ioctl.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/isp_library.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/isp_library.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/isp_pci.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/isp_sbus.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/isp_stds.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/isp_target.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/isp_target.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/ispmbox.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/ispreg.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/isp/ispvar.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ispfw/asm_2300.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ispfw/asm_2400.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ispfw/asm_2500.h#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/ispfw/ispfw.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ixgbe/ixgbe.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mxge/if_mxge.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/pci/pci.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/dev/siis/siis.c#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/siis/siis.h#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sound/usb/uaudio.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/dev/uart/uart_cpu_powerpc.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/at91dci.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/atmegadci.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/avr32dci.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/ehci.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/ehci_pci.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/musb_otg.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/ohci.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/ohci_pci.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/uhci.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/uhci_pci.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/usb_controller.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/uss820dci.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/input/ukbd.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/input/ums.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/serial/u3g.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/serial/ulpt.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_compat_linux.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_compat_linux.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_controller.h#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_dev.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_dev.h#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_device.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_handle_request.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_hid.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_hub.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_parse.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_request.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_transfer.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usbdevs#29 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usbdi.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/wlan/if_uath.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfs/nfsport.h#8 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clbio.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clrpcops.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clstate.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clvfsops.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clvnops.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/fs/procfs/procfs_map.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/fs/unionfs/union_subr.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/geom/vinum/geom_vinum.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/initcpu.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/machdep.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/pmap.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/vm_machdep.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/i386/include/cpufunc.h#10 integrate .. //depot/projects/vimage-commit2/src/sys/i386/include/md_var.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/i386/include/pmap.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/i386/include/sf_buf.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/i386/xen/pmap.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/ia64/ia64/pmap.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/kern/init_main.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_exec.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_exit.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_fork.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_jail.c#29 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_linker.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_poll.c#20 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_proc.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_prot.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_sysctl.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_uuid.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_vimage.c#58 delete .. //depot/projects/vimage-commit2/src/sys/kern/link_elf_obj.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/kern/sys_socket.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/kern/uipc_domain.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/kern/uipc_socket.c#29 integrate .. //depot/projects/vimage-commit2/src/sys/kern/uipc_syscalls.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/kern/uipc_usrreq.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_bio.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_lookup.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_mount.c#21 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_syscalls.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/mips/mips/pmap.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/modules/Makefile#28 integrate .. //depot/projects/vimage-commit2/src/sys/modules/if_epair/Makefile#1 branch .. //depot/projects/vimage-commit2/src/sys/modules/ispfw/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/ispfw/isp_2400_multi/Makefile#1 branch .. //depot/projects/vimage-commit2/src/sys/modules/ispfw/isp_2500/Makefile#1 branch .. //depot/projects/vimage-commit2/src/sys/modules/ispfw/isp_2500_multi/Makefile#1 branch .. //depot/projects/vimage-commit2/src/sys/modules/siis/Makefile#1 branch .. //depot/projects/vimage-commit2/src/sys/modules/wlan/Makefile#9 integrate .. //depot/projects/vimage-commit2/src/sys/net/bpf.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/net/bridgestp.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/net/flowtable.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/net/flowtable.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/net/if.c#81 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_bridge.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_clone.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_clone.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_ef.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_enc.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_epair.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_ethersubr.c#33 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_faith.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_gif.c#33 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_gif.h#14 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_gre.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_llatbl.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_loop.c#39 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_mib.c#19 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_spppsubr.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_stf.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_tun.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_var.h#36 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_vlan.c#19 integrate .. //depot/projects/vimage-commit2/src/sys/net/netisr.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/net/netisr.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/net/raw_cb.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/net/raw_cb.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/net/raw_usrreq.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/net/route.c#47 integrate .. //depot/projects/vimage-commit2/src/sys/net/rtsock.c#34 integrate .. //depot/projects/vimage-commit2/src/sys/net/vnet.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/net/vnet.h#29 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_crypto.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_crypto.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_ddb.c#21 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_freebsd.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_hwmp.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_input.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_input.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_ioctl.h#10 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_mesh.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_mesh.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_output.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_scan_sta.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/atm/ng_atm.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/bluetooth/socket/ng_btsocket.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/netgraph.h#30 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_base.c#37 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_bridge.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_eiface.c#30 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_ether.c#21 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_gif.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_iface.c#26 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_pipe.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_socket.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_source.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/icmp6.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/icmp_var.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/if_ether.c#40 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/igmp.c#45 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in.c#33 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_gif.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_mcast.c#27 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_pcb.c#46 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_pcb.h#23 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_proto.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_rmx.c#36 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_var.h#14 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_carp.c#19 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_divert.c#34 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_fastfwd.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_fw.h#29 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_icmp.c#21 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_input.c#49 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_ipsec.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_mroute.c#21 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_options.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_output.c#36 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_var.h#21 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_fw2.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_fw_nat.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_fw_pfil.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/raw_ip.c#36 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_auth.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_indata.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_os_bsd.h#27 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_sysctl.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_sysctl.h#8 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_uio.h#11 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctputil.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctputil.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_hostcache.c#31 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_input.c#42 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_offload.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_output.c#25 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_reass.c#20 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_sack.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_subr.c#57 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_syncache.c#40 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_timer.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_timewait.c#31 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_usrreq.c#24 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_var.h#20 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/udp_usrreq.c#45 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/udp_var.h#11 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/dest6.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/frag6.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/icmp6.c#33 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6.c#25 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_gif.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_ifattach.c#34 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_mcast.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_pcb.c#24 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_proto.c#27 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_rmx.c#37 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_src.c#23 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_var.h#8 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_forward.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_input.c#38 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_ipsec.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_mroute.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_output.c#20 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_var.h#13 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/mld6.c#27 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/nd6.c#40 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/nd6.h#12 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/nd6_nbr.c#28 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/nd6_rtr.c#31 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/raw_ip6.c#30 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/raw_ip6.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/route6.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/scope6.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/tcp6_var.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/udp6_usrreq.c#26 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ah_var.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/esp_var.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipcomp_var.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipip_var.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec.c#37 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec.h#12 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec6.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec_input.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec_mbuf.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec_output.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/key.c#37 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/key_debug.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/keysock.c#24 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/keysock.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/xform_ah.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/xform_esp.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/xform_ipcomp.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/xform_ipip.c#21 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/xform_tcp.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/bootp_subr.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_diskless.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_vnops.c#25 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/booke/pmap.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/mpc85xx/lbc.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/security/audit/audit.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/security/audit/audit.h#8 integrate .. //depot/projects/vimage-commit2/src/sys/security/audit/audit_arg.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/security/audit/audit_bsm.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/security/audit/audit_bsm_errno.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/security/audit/audit_bsm_klib.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/security/audit/audit_bsm_token.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/security/audit/audit_private.h#8 integrate .. //depot/projects/vimage-commit2/src/sys/sparc64/include/param.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/pmap.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/sys/domain.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/sys/jail.h#15 integrate .. //depot/projects/vimage-commit2/src/sys/sys/kernel.h#12 integrate .. //depot/projects/vimage-commit2/src/sys/sys/param.h#50 integrate .. //depot/projects/vimage-commit2/src/sys/sys/priv.h#15 integrate .. //depot/projects/vimage-commit2/src/sys/sys/sockio.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/sys/sysctl.h#25 integrate .. //depot/projects/vimage-commit2/src/sys/sys/ucred.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/sys/user.h#8 integrate .. //depot/projects/vimage-commit2/src/sys/sys/vimage.h#79 delete .. //depot/projects/vimage-commit2/src/sys/vm/device_pager.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/vm/sg_pager.c#1 branch .. //depot/projects/vimage-commit2/src/sys/vm/vm.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_fault.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_map.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_meter.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_object.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_object.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_page.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_pageout.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_pager.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_pager.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/xen/evtchn/evtchn.c#9 integrate Differences ... ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/initcpu.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.53 2009/01/12 19:17:35 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.54 2009/07/22 14:32:38 kib Exp $"); #include "opt_cpu.h" @@ -65,6 +65,7 @@ u_int cpu_vendor_id; /* CPU vendor ID */ u_int cpu_fxsr; /* SSE enabled */ u_int cpu_mxcsr_mask; /* Valid bits in mxcsr */ +u_int cpu_clflush_line_size = 32; SYSCTL_UINT(_hw, OID_AUTO, via_feature_rng, CTLFLAG_RD, &via_feature_rng, 0, "VIA C3/C7 RNG feature available in CPU"); @@ -156,4 +157,12 @@ AMD64_CPU_FAMILY(cpu_id) == 0x6 && AMD64_CPU_MODEL(cpu_id) >= 0xf) init_via(); + + /* + * CPUID with %eax = 1, %ebx returns + * Bits 15-8: CLFLUSH line size + * (Value * 8 = cache line size in bytes) + */ + if ((cpu_feature & CPUID_CLFSH) != 0) + cpu_clflush_line_size = ((cpu_procinfo >> 8) & 0xff) * 8; } ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/machdep.c#14 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.705 2009/07/09 09:34:11 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.706 2009/07/27 13:51:55 rpaulo Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -213,7 +213,10 @@ */ sysenv = getenv("smbios.system.product"); if (sysenv != NULL) { - if (strncmp(sysenv, "MacBook", 7) == 0) { + if (strncmp(sysenv, "MacBook1,1", 10) == 0 || + strncmp(sysenv, "MacBookPro1,1", 13) == 0 || + strncmp(sysenv, "MacBookPro1,2", 13) == 0 || + strncmp(sysenv, "Macmini1,1", 10) == 0) { if (bootverbose) printf("Disabling LEGACY_USB_EN bit on " "Intel ICH.\n"); ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/pmap.c#18 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.663 2009/07/12 23:31:20 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.667 2009/07/24 13:50:29 jhb Exp $"); /* * Manages physical address maps. @@ -231,6 +231,7 @@ vm_page_t m, vm_prot_t prot, vm_page_t mpte); static void pmap_fill_ptp(pt_entry_t *firstpte, pt_entry_t newpte); static void pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte); +static void pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva); static boolean_t pmap_is_modified_pvh(struct md_page *pvh); static void pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int mode); static vm_page_t pmap_lookup_pt_page(pmap_t pmap, vm_offset_t va); @@ -752,21 +753,6 @@ /* The PAT bit is different for PTE's and PDE's. */ pat_flag = is_pde ? PG_PDE_PAT : PG_PTE_PAT; - /* If we don't support PAT, map extended modes to older ones. */ - if (!(cpu_feature & CPUID_PAT)) { - switch (mode) { - case PAT_UNCACHEABLE: - case PAT_WRITE_THROUGH: - case PAT_WRITE_BACK: - break; - case PAT_UNCACHED: - case PAT_WRITE_COMBINING: - case PAT_WRITE_PROTECTED: - mode = PAT_UNCACHEABLE; - break; - } - } - /* Map the caching mode to a PAT index. */ switch (mode) { case PAT_UNCACHEABLE: @@ -936,6 +922,40 @@ } #endif /* !SMP */ +static void +pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva) +{ + + KASSERT((sva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: sva not page-aligned")); + KASSERT((eva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: eva not page-aligned")); + + if (cpu_feature & CPUID_SS) + ; /* If "Self Snoop" is supported, do nothing. */ + else if (cpu_feature & CPUID_CLFSH) { + + /* + * Otherwise, do per-cache line flush. Use the mfence + * instruction to insure that previous stores are + * included in the write-back. The processor + * propagates flush to other processors in the cache + * coherence domain. + */ + mfence(); + for (; eva < sva; eva += cpu_clflush_line_size) + clflush(eva); + mfence(); + } else { + + /* + * No targeted cache flush methods are supported by CPU, + * globally invalidate cache as a last resort. + */ + pmap_invalidate_cache(); + } +} + /* * Are we current address space or kernel? */ @@ -3339,7 +3359,7 @@ int pat_mode; VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); - KASSERT(object->type == OBJT_DEVICE, + KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, ("pmap_object_init_pt: non-device object")); if ((addr & (NBPDR - 1)) == 0 && (size & (NBPDR - 1)) == 0) { if (!vm_object_populate(object, pindex, pindex + atop(size))) @@ -4271,7 +4291,8 @@ void * pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) { - vm_offset_t va, tmpva, offset; + vm_offset_t va, offset; + vm_size_t tmpsize; /* * If the specified range of physical addresses fits within the direct @@ -4288,14 +4309,10 @@ if (!va) panic("pmap_mapdev: Couldn't alloc kernel virtual memory"); pa = trunc_page(pa); - for (tmpva = va; size > 0; ) { - pmap_kenter_attr(tmpva, pa, mode); - size -= PAGE_SIZE; - tmpva += PAGE_SIZE; - pa += PAGE_SIZE; - } - pmap_invalidate_range(kernel_pmap, va, tmpva); - pmap_invalidate_cache(); + for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE) + pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode); + pmap_invalidate_range(kernel_pmap, va, va + tmpsize); + pmap_invalidate_cache_range(va, va + tmpsize); return ((void *)(va + offset)); } @@ -4394,9 +4411,12 @@ m->md.pat_mode = ma; /* - * Update the direct mapping and flush the cache. + * If "m" is a normal page, update its direct mapping. This update + * can be relied upon to perform any cache operations that are + * required for data coherence. */ - if (pmap_change_attr(PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), PAGE_SIZE, + if ((m->flags & PG_FICTITIOUS) == 0 && + pmap_change_attr(PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), PAGE_SIZE, m->md.pat_mode)) panic("memory attribute change on the direct map failed"); } @@ -4634,7 +4654,7 @@ */ if (changed) { pmap_invalidate_range(kernel_pmap, base, tmpva); - pmap_invalidate_cache(); + pmap_invalidate_cache_range(base, tmpva); } return (error); } ==== //depot/projects/vimage-commit2/src/sys/amd64/include/cpufunc.h#6 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.153 2009/04/11 14:01:01 ed Exp $ + * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.154 2009/07/22 14:32:38 kib Exp $ */ /* @@ -100,6 +100,13 @@ } static __inline void +clflush(u_long addr) +{ + + __asm __volatile("clflush %0" : : "m" (*(char *)addr)); +} + +static __inline void disable_intr(void) { __asm __volatile("cli" : : : "memory"); @@ -267,6 +274,13 @@ } static __inline void +mfence(void) +{ + + __asm__ __volatile("mfence" : : : "memory"); +} + +static __inline void ia32_pause(void) { __asm __volatile("pause"); ==== //depot/projects/vimage-commit2/src/sys/amd64/include/md_var.h#6 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.85 2009/04/01 13:09:26 kib Exp $ + * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.86 2009/07/22 14:32:38 kib Exp $ */ #ifndef _MACHINE_MD_VAR_H_ @@ -47,6 +47,7 @@ extern u_int amd_pminfo; extern u_int via_feature_rng; extern u_int via_feature_xcrypt; +extern u_int cpu_clflush_line_size; extern u_int cpu_fxsr; extern u_int cpu_high; extern u_int cpu_id; ==== //depot/projects/vimage-commit2/src/sys/arm/arm/busdma_machdep.c#8 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.47 2009/04/23 20:24:19 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.48 2009/07/20 07:53:07 raj Exp $"); /* * ARM bus dma support routines @@ -630,10 +630,6 @@ ((vm_offset_t)*vaddr & PAGE_MASK)); newmap->origbuffer = *vaddr; newmap->allocbuffer = tmpaddr; - cpu_idcache_wbinv_range((vm_offset_t)*vaddr, - dmat->maxsize); - cpu_l2cache_wbinv_range((vm_offset_t)*vaddr, - dmat->maxsize); *vaddr = tmpaddr; } else newmap->origbuffer = newmap->allocbuffer = NULL; ==== //depot/projects/vimage-commit2/src/sys/arm/arm/cpufunc.c#5 (text+ko) ==== @@ -45,7 +45,7 @@ * Created : 30/01/97 */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.26 2009/05/05 12:57:16 stas Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.27 2009/07/21 08:29:19 raj Exp $"); #include #include @@ -265,7 +265,7 @@ arm9_dcache_wbinv_all, /* dcache_wbinv_all */ arm9_dcache_wbinv_range, /* dcache_wbinv_range */ -/*XXX*/ arm9_dcache_wbinv_range, /* dcache_inv_range */ + arm9_dcache_inv_range, /* dcache_inv_range */ arm9_dcache_wb_range, /* dcache_wb_range */ arm9_idcache_wbinv_all, /* idcache_wbinv_all */ @@ -327,7 +327,7 @@ armv5_ec_dcache_wbinv_all, /* dcache_wbinv_all */ armv5_ec_dcache_wbinv_range, /* dcache_wbinv_range */ -/*XXX*/ armv5_ec_dcache_wbinv_range, /* dcache_inv_range */ + armv5_ec_dcache_inv_range, /* dcache_inv_range */ armv5_ec_dcache_wb_range, /* dcache_wb_range */ armv5_ec_idcache_wbinv_all, /* idcache_wbinv_all */ ==== //depot/projects/vimage-commit2/src/sys/arm/arm/minidump_machdep.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/minidump_machdep.c,v 1.1 2008/11/06 16:20:27 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/minidump_machdep.c,v 1.2 2009/08/01 19:26:27 rwatson Exp $"); #include #include @@ -36,7 +36,6 @@ #include #include #include -#include #include #include #include ==== //depot/projects/vimage-commit2/src/sys/arm/arm/pmap.c#10 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.111 2009/06/24 21:03:59 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.113 2009/07/24 13:50:29 jhb Exp $"); #include #include #include @@ -2984,6 +2984,7 @@ pmap_free_pv_entry(pve); PMAP_UNLOCK(pmap_kernel()); vm_page_unlock_queues(); + va = va & ~PAGE_MASK; cpu_dcache_wbinv_range(va, PAGE_SIZE); cpu_l2cache_wbinv_range(va, PAGE_SIZE); cpu_tlb_flushD_SE(va); @@ -3100,7 +3101,7 @@ { VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); - KASSERT(object->type == OBJT_DEVICE, + KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, ("pmap_object_init_pt: non-device object")); } ==== //depot/projects/vimage-commit2/src/sys/arm/arm/vm_machdep.c#5 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.39 2009/06/24 21:00:13 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.40 2009/07/20 07:53:07 raj Exp $"); #include #include @@ -426,10 +426,15 @@ vm_offset_t tomap = arm_nocache_startaddr + i * PAGE_SIZE; void *ret = (void *)tomap; vm_paddr_t physaddr = vtophys((vm_offset_t)addr); + vm_offset_t vaddr = (vm_offset_t) addr; + vaddr = vaddr & ~PAGE_MASK; for (; tomap < (vm_offset_t)ret + size; tomap += PAGE_SIZE, - physaddr += PAGE_SIZE, i++) { + vaddr += PAGE_SIZE, physaddr += PAGE_SIZE, i++) { + cpu_idcache_wbinv_range(vaddr, PAGE_SIZE); + cpu_l2cache_wbinv_range(vaddr, PAGE_SIZE); pmap_kenter_nocache(tomap, physaddr); + cpu_tlb_flushID_SE(vaddr); arm_nocache_allocated[i / BITS_PER_INT] |= 1 << (i % BITS_PER_INT); } ==== //depot/projects/vimage-commit2/src/sys/arm/conf/AVILA#10 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/arm/conf/AVILA,v 1.32 2009/05/27 16:16:56 thompsa Exp $ +# $FreeBSD: src/sys/arm/conf/AVILA,v 1.33 2009/07/17 18:35:45 rpaulo Exp $ ident AVILA @@ -105,6 +105,7 @@ device wlan # 802.11 support options IEEE80211_DEBUG options IEEE80211_SUPPORT_TDMA +options IEEE80211_SUPPORT_MESH device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support ==== //depot/projects/vimage-commit2/src/sys/arm/conf/CAMBRIA#5 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/arm/conf/CAMBRIA,v 1.11 2009/05/10 00:00:25 kuriyama Exp $ +# $FreeBSD: src/sys/arm/conf/CAMBRIA,v 1.12 2009/07/17 18:35:45 rpaulo Exp $ ident CAMBRIA @@ -108,6 +108,7 @@ device wlan # 802.11 support options IEEE80211_DEBUG options IEEE80211_SUPPORT_TDMA +options IEEE80211_SUPPORT_MESH device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support ==== //depot/projects/vimage-commit2/src/sys/boot/forth/loader.conf#15 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.142 2009/06/15 18:22:41 marius Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.143 2009/07/26 12:20:07 bz Exp $ ############################################################## ### Basic configuration options ############################ @@ -190,6 +190,7 @@ if_disc_load="NO" # Discard device if_ef_load="NO" # pseudo-device providing support for multiple # ethernet frame types +if_epair_load="NO" # Virtual b-t-b Ethernet-like interface pair if_faith_load="NO" # IPv6-to-IPv4 TCP relay capturing interface if_gif_load="NO" # generic tunnel interface if_gre_load="NO" # encapsulating network device ==== //depot/projects/vimage-commit2/src/sys/bsm/audit.h#7 (text) ==== @@ -26,8 +26,8 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit.h#9 - * $FreeBSD: src/sys/bsm/audit.h,v 1.16 2009/04/19 14:53:17 rwatson Exp $ + * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit.h#10 + * $FreeBSD: src/sys/bsm/audit.h,v 1.17 2009/07/17 14:02:20 rwatson Exp $ */ #ifndef _BSM_AUDIT_H @@ -173,6 +173,7 @@ typedef u_int16_t au_event_t; typedef u_int16_t au_emod_t; typedef u_int32_t au_class_t; +typedef u_int64_t au_asflgs_t __attribute__ ((aligned (8))); struct au_tid { dev_t port; @@ -206,7 +207,7 @@ au_mask_t ai_mask; /* Audit masks. */ au_tid_addr_t ai_termid; /* Terminal ID. */ au_asid_t ai_asid; /* Audit session ID. */ - u_int64_t ai_flags; /* Audit session flags. */ + au_asflgs_t ai_flags; /* Audit session flags. */ }; typedef struct auditinfo_addr auditinfo_addr_t; @@ -225,7 +226,7 @@ au_mask_t ap_mask; /* Audit masks. */ au_tid_addr_t ap_termid; /* Terminal ID. */ au_asid_t ap_asid; /* Audit session ID. */ - u_int64_t ap_flags; /* Audit session flags. */ + au_asflgs_t ap_flags; /* Audit session flags. */ }; typedef struct auditpinfo_addr auditpinfo_addr_t; ==== //depot/projects/vimage-commit2/src/sys/bsm/audit_kevents.h#9 (text) ==== @@ -26,8 +26,8 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_kevents.h#6 - * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.21 2009/07/08 15:23:18 trasz Exp $ + * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_kevents.h#7 + * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.22 2009/07/17 14:02:20 rwatson Exp $ */ #ifndef _BSM_AUDIT_KEVENTS_H_ ==== //depot/projects/vimage-commit2/src/sys/cam/ata/ata_da.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.1 2009/07/10 08:18:08 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.2 2009/07/17 21:48:08 mav Exp $"); #include @@ -275,7 +275,6 @@ if (softc->flags & ADA_FLAG_CAN_FLUSHCACHE) { ccb = cam_periph_getccb(periph, /*priority*/1); - ccb->ccb_h.ccb_state = ADA_CCB_DUMP; cam_fill_ataio(&ccb->ataio, 1, adadone, @@ -289,7 +288,9 @@ ata_48bit_cmd(&ccb->ataio, ATA_FLUSHCACHE48, 0, 0, 0); else ata_48bit_cmd(&ccb->ataio, ATA_FLUSHCACHE, 0, 0, 0); - xpt_polled_action(ccb); + cam_periph_runccb(ccb, /*error_routine*/NULL, /*cam_flags*/0, + /*sense_flags*/SF_RETRY_UA, + softc->disk->d_devstat); if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) xpt_print(periph->path, "Synchronize cache failed\n"); ==== //depot/projects/vimage-commit2/src/sys/cam/cam_ccb.h#3 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.36 2009/07/10 08:18:08 scottl Exp $ + * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.37 2009/08/01 01:04:26 mjacob Exp $ */ #ifndef _CAM_CAM_CCB_H @@ -173,6 +173,15 @@ XPT_ATA_IO = 0x18 | XPT_FC_DEV_QUEUED, /* Execute the requested ATA I/O operation */ + XPT_GET_SIM_KNOB = 0x18, + /* + * Get SIM specific knob values. + */ + + XPT_SET_SIM_KNOB = 0x19, + /* + * Set SIM specific knob values. + */ /* HBA engine commands 0x20->0x2F */ XPT_ENG_INQ = 0x20 | XPT_FC_XPT_ONLY, /* HBA engine feature inquiry */ @@ -189,8 +198,12 @@ XPT_CONT_TARGET_IO = 0x33 | XPT_FC_DEV_QUEUED, /* Continue Host Target I/O Connection */ XPT_IMMED_NOTIFY = 0x34 | XPT_FC_QUEUED | XPT_FC_USER_CCB, + /* Notify Host Target driver of event (obsolete) */ + XPT_NOTIFY_ACK = 0x35, + /* Acknowledgement of event (obsolete) */ + XPT_IMMEDIATE_NOTIFY = 0x36 | XPT_FC_QUEUED | XPT_FC_USER_CCB, /* Notify Host Target driver of event */ - XPT_NOTIFY_ACK = 0x35, + XPT_NOTIFY_ACKNOWLEDGE = 0x37 | XPT_FC_QUEUED | XPT_FC_USER_CCB, /* Acknowledgement of event */ /* Vendor Unique codes: 0x80->0x8F */ @@ -531,12 +544,14 @@ struct ccb_pathinq_settings_spi { u_int8_t ppr_options; }; + struct ccb_pathinq_settings_fc { u_int64_t wwnn; /* world wide node name */ u_int64_t wwpn; /* world wide port name */ u_int32_t port; /* 24 bit port id, if known */ u_int32_t bitrate; /* Mbps */ }; + struct ccb_pathinq_settings_sas { u_int32_t bitrate; /* Mbps */ }; @@ -678,6 +693,7 @@ * Definitions for the asynchronous callback CCB fields. */ typedef enum { + AC_CONTRACT = 0x1000,/* A contractual callback */ AC_GETDEV_CHANGED = 0x800,/* Getdev info might have changed */ AC_INQ_CHANGED = 0x400,/* Inquiry info might have changed */ AC_TRANSFER_NEG = 0x200,/* New transfer settings in effect */ @@ -694,6 +710,26 @@ typedef void ac_callback_t (void *softc, u_int32_t code, struct cam_path *path, void *args); +/* + * Generic Asynchronous callbacks. + * + * Generic arguments passed bac which are then interpreted between a per-system + * contract number. + */ +#define AC_CONTRACT_DATA_MAX (128 - sizeof (u_int64_t)) +struct ac_contract { + u_int64_t contract_number; + u_int8_t contract_data[AC_CONTRACT_DATA_MAX]; +}; + +#define AC_CONTRACT_DEV_CHG 1 +struct ac_device_changed { + u_int64_t wwpn; + u_int32_t port; + target_id_t target; + u_int8_t arrived; +}; + /* Set Asynchronous Callback CCB */ struct ccb_setasync { struct ccb_hdr ccb_h; @@ -823,6 +859,50 @@ }; /* + * Set or get SIM (and transport) specific knobs + */ + +#define KNOB_VALID_ADDRESS 0x1 +#define KNOB_VALID_ROLE 0x2 >>> TRUNCATED FOR MAIL (1000 lines) <<<
    portmgrSilion Valley, California + 36GB or greater 1" high SCSI hard drives + + Add more capacity to i386 and sparc64 package + building clusters. +
    portmgrworldwide + sparc64 gear + + We could specifically use rack-mounted Sparcs (such as + SunFire V120, V210, or V240) for our package building + cluster in the US. +
    rpaulo Portugal