X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_mbuf%2Frte_mbuf.c;h=a72e9b8d3f641565fd62ba210b6190ae446a1152;hb=591a9d7985c1230652d9f7ea1f9221e8c66ec188;hp=d6718ed9b78117df0076aee8562463c528b62cb5;hpb=c662f30dbe45c0827261d42b8082d73ab9b2be8e;p=dpdk.git diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c index d6718ed9b7..a72e9b8d3f 100644 --- a/lib/librte_mbuf/rte_mbuf.c +++ b/lib/librte_mbuf/rte_mbuf.c @@ -1,35 +1,34 @@ /*- * BSD LICENSE * - * Copyright(c) 2010-2012 Intel Corporation. All rights reserved. + * Copyright(c) 2010-2014 Intel Corporation. All rights reserved. * All rights reserved. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions * are met: * - * * Redistributions of source code must retain the above copyright + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * * 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 + * * 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. - * * Neither the name of Intel Corporation nor the names of its - * contributors may be used to endorse or promote products derived + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT + * OWNER 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. - * */ #include @@ -58,6 +57,7 @@ #include #include #include +#include /* * ctrlmbuf constructor, given as a callback function to @@ -139,33 +139,6 @@ rte_pktmbuf_init(struct rte_mempool *mp, m->pkt.in_port = 0xff; } -static void -rte_pktmbuf_hexdump(const void *buf, unsigned int len) -{ - unsigned int i, out, ofs; - const unsigned char *data = buf; -#define LINE_LEN 80 - char line[LINE_LEN]; - - printf(" dump data at 0x%p, len=%u\n", data, len); - ofs = 0; - while (ofs < len) { - out = rte_snprintf(line, LINE_LEN, " %08X", ofs); - for (i = 0; ofs+i < len && i < 16; i++) - out += rte_snprintf(line+out, LINE_LEN - out, " %02X", - data[ofs+i]&0xff); - for (; i <= 16; i++) - out += rte_snprintf(line+out, LINE_LEN - out, " "); - for (i = 0; ofs < len && i < 16; i++, ofs++) { - unsigned char c = data[ofs]; - if (!isascii(c) || !isprint(c)) - c = '.'; - out += rte_snprintf(line+out, LINE_LEN - out, "%c", c); - } - printf("%s\n", line); - } -} - /* do some sanity checks on a mbuf: panic if it fails */ void rte_mbuf_sanity_check(const struct rte_mbuf *m, enum rte_mbuf_type t, @@ -220,16 +193,16 @@ rte_mbuf_sanity_check(const struct rte_mbuf *m, enum rte_mbuf_type t, /* dump a mbuf on console */ void -rte_pktmbuf_dump(const struct rte_mbuf *m, unsigned dump_len) +rte_pktmbuf_dump(FILE *f, const struct rte_mbuf *m, unsigned dump_len) { unsigned int len; unsigned nb_segs; __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1); - printf("dump mbuf at 0x%p, phys=%"PRIx64", buf_len=%u\n", + fprintf(f, "dump mbuf at 0x%p, phys=%"PRIx64", buf_len=%u\n", m, (uint64_t)m->buf_physaddr, (unsigned)m->buf_len); - printf(" pkt_len=%"PRIu32", ol_flags=%"PRIx16", nb_segs=%u, " + fprintf(f, " pkt_len=%"PRIu32", ol_flags=%"PRIx16", nb_segs=%u, " "in_port=%u\n", m->pkt.pkt_len, m->ol_flags, (unsigned)m->pkt.nb_segs, (unsigned)m->pkt.in_port); nb_segs = m->pkt.nb_segs; @@ -237,13 +210,13 @@ rte_pktmbuf_dump(const struct rte_mbuf *m, unsigned dump_len) while (m && nb_segs != 0) { __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 0); - printf(" segment at 0x%p, data=0x%p, data_len=%u\n", + fprintf(f, " segment at 0x%p, data=0x%p, data_len=%u\n", m, m->pkt.data, (unsigned)m->pkt.data_len); len = dump_len; if (len > m->pkt.data_len) len = m->pkt.data_len; if (len != 0) - rte_pktmbuf_hexdump(m->pkt.data, len); + rte_hexdump(f, NULL, m->pkt.data, len); dump_len -= len; m = m->pkt.next; nb_segs --;