void net_tx_pkt_reset(struct NetTxPkt *pkt)

{

    int i;



    /* no assert, as reset can be called before tx_pkt_init */

    if (!pkt) {

        return;

    }



    memset(&pkt->virt_hdr, 0, sizeof(pkt->virt_hdr));



    g_free(pkt->vec[NET_TX_PKT_L3HDR_FRAG].iov_base);

    pkt->vec[NET_TX_PKT_L3HDR_FRAG].iov_base = NULL;



    assert(pkt->vec);

    for (i = NET_TX_PKT_L2HDR_FRAG;

         i < pkt->payload_frags + NET_TX_PKT_PL_START_FRAG; i++) {

        pkt->vec[i].iov_len = 0;

    }

    pkt->payload_len = 0;

    pkt->payload_frags = 0;



    assert(pkt->raw);

    for (i = 0; i < pkt->raw_frags; i++) {

        assert(pkt->raw[i].iov_base);

        cpu_physical_memory_unmap(pkt->raw[i].iov_base, pkt->raw[i].iov_len,

                                  false, pkt->raw[i].iov_len);

        pkt->raw[i].iov_len = 0;

    }

    pkt->raw_frags = 0;



    pkt->hdr_len = 0;

    pkt->packet_type = 0;

    pkt->l4proto = 0;

}

void net_tx_pkt_reset(struct NetTxPkt *pkt)

{

    int i;



    

    if (!pkt) {

        return;

    }



    memset(&pkt->virt_hdr, 0, sizeof(pkt->virt_hdr));



    g_free(pkt->vec[NET_TX_PKT_L3HDR_FRAG].iov_base);

    pkt->vec[NET_TX_PKT_L3HDR_FRAG].iov_base = NULL;



    assert(pkt->vec);

    for (i = NET_TX_PKT_L2HDR_FRAG;

         i < pkt->payload_frags + NET_TX_PKT_PL_START_FRAG; i++) {

        pkt->vec[i].iov_len = 0;

    }

    pkt->payload_len = 0;

    pkt->payload_frags = 0;



    assert(pkt->raw);

    for (i = 0; i < pkt->raw_frags; i++) {

        assert(pkt->raw[i].iov_base);

        cpu_physical_memory_unmap(pkt->raw[i].iov_base, pkt->raw[i].iov_len,

                                  false, pkt->raw[i].iov_len);

        pkt->raw[i].iov_len = 0;

    }

    pkt->raw_frags = 0;



    pkt->hdr_len = 0;

    pkt->packet_type = 0;

    pkt->l4proto = 0;

}

void FUNC_0(struct NetTxPkt *VAR_0)

{

    int VAR_1;



    

    if (!VAR_0) {

        return;

    }



    memset(&VAR_0->virt_hdr, 0, sizeof(VAR_0->virt_hdr));



    g_free(VAR_0->vec[NET_TX_PKT_L3HDR_FRAG].iov_base);

    VAR_0->vec[NET_TX_PKT_L3HDR_FRAG].iov_base = NULL;



    assert(VAR_0->vec);

    for (VAR_1 = NET_TX_PKT_L2HDR_FRAG;

         VAR_1 < VAR_0->payload_frags + NET_TX_PKT_PL_START_FRAG; VAR_1++) {

        VAR_0->vec[VAR_1].iov_len = 0;

    }

    VAR_0->payload_len = 0;

    VAR_0->payload_frags = 0;



    assert(VAR_0->raw);

    for (VAR_1 = 0; VAR_1 < VAR_0->raw_frags; VAR_1++) {

        assert(VAR_0->raw[VAR_1].iov_base);

        cpu_physical_memory_unmap(VAR_0->raw[VAR_1].iov_base, VAR_0->raw[VAR_1].iov_len,

                                  false, VAR_0->raw[VAR_1].iov_len);

        VAR_0->raw[VAR_1].iov_len = 0;

    }

    VAR_0->raw_frags = 0;



    VAR_0->hdr_len = 0;

    VAR_0->packet_type = 0;

    VAR_0->l4proto = 0;

}

void FUNC_0(struct NetTxPkt *VAR_0)
{ int VAR_1; if (!VAR_0) { return; } memset(&VAR_0->virt_hdr, 0, sizeof(VAR_0->virt_hdr)); g_free(VAR_0->vec[NET_TX_PKT_L3HDR_FRAG].iov_base); VAR_0->vec[NET_TX_PKT_L3HDR_FRAG].iov_base = NULL; assert(VAR_0->vec); for (VAR_1 = NET_TX_PKT_L2HDR_FRAG; VAR_1 < VAR_0->payload_frags + NET_TX_PKT_PL_START_FRAG; VAR_1++) { VAR_0->vec[VAR_1].iov_len = 0; } VAR_0->payload_len = 0; VAR_0->payload_frags = 0; assert(VAR_0->raw); for (VAR_1 = 0; VAR_1 < VAR_0->raw_frags; VAR_1++) { assert(VAR_0->raw[VAR_1].iov_base); cpu_physical_memory_unmap(VAR_0->raw[VAR_1].iov_base, VAR_0->raw[VAR_1].iov_len,
false, VAR_0->raw[VAR_1].iov_len); VAR_0->raw[VAR_1].iov_len = 0; } VAR_0->raw_frags = 0; VAR_0->hdr_len = 0; VAR_0->packet_type = 0; VAR_0->l4proto = 0; }