void net_tx_pkt_init(struct NetTxPkt **pkt, uint32_t max_frags,

    bool has_virt_hdr)

{

    struct NetTxPkt *p = g_malloc0(sizeof *p);



    p->vec = g_malloc((sizeof *p->vec) *

        (max_frags + NET_TX_PKT_PL_START_FRAG));



    p->raw = g_malloc((sizeof *p->raw) * max_frags);



    p->max_payload_frags = max_frags;

    p->max_raw_frags = max_frags;

    p->has_virt_hdr = has_virt_hdr;

    p->vec[NET_TX_PKT_VHDR_FRAG].iov_base = &p->virt_hdr;

    p->vec[NET_TX_PKT_VHDR_FRAG].iov_len =

        p->has_virt_hdr ? sizeof p->virt_hdr : 0;

    p->vec[NET_TX_PKT_L2HDR_FRAG].iov_base = &p->l2_hdr;

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

    p->vec[NET_TX_PKT_L3HDR_FRAG].iov_len = 0;



    *pkt = p;

}

void net_tx_pkt_init(struct NetTxPkt **pkt, uint32_t max_frags,

    bool has_virt_hdr)

{

    struct NetTxPkt *p = g_malloc0(sizeof *p);



    p->vec = g_malloc((sizeof *p->vec) *

        (max_frags + NET_TX_PKT_PL_START_FRAG));



    p->raw = g_malloc((sizeof *p->raw) * max_frags);



    p->max_payload_frags = max_frags;

    p->max_raw_frags = max_frags;

    p->has_virt_hdr = has_virt_hdr;

    p->vec[NET_TX_PKT_VHDR_FRAG].iov_base = &p->virt_hdr;

    p->vec[NET_TX_PKT_VHDR_FRAG].iov_len =

        p->has_virt_hdr ? sizeof p->virt_hdr : 0;

    p->vec[NET_TX_PKT_L2HDR_FRAG].iov_base = &p->l2_hdr;

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

    p->vec[NET_TX_PKT_L3HDR_FRAG].iov_len = 0;



    *pkt = p;

}

void FUNC_0(struct NetTxPkt **VAR_0, uint32_t VAR_1,

    bool VAR_2)

{

    struct NetTxPkt *VAR_3 = g_malloc0(sizeof *VAR_3);



    VAR_3->vec = g_malloc((sizeof *VAR_3->vec) *

        (VAR_1 + NET_TX_PKT_PL_START_FRAG));



    VAR_3->raw = g_malloc((sizeof *VAR_3->raw) * VAR_1);



    VAR_3->max_payload_frags = VAR_1;

    VAR_3->max_raw_frags = VAR_1;

    VAR_3->VAR_2 = VAR_2;

    VAR_3->vec[NET_TX_PKT_VHDR_FRAG].iov_base = &VAR_3->virt_hdr;

    VAR_3->vec[NET_TX_PKT_VHDR_FRAG].iov_len =

        VAR_3->VAR_2 ? sizeof VAR_3->virt_hdr : 0;

    VAR_3->vec[NET_TX_PKT_L2HDR_FRAG].iov_base = &VAR_3->l2_hdr;

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

    VAR_3->vec[NET_TX_PKT_L3HDR_FRAG].iov_len = 0;



    *VAR_0 = VAR_3;

}

void FUNC_0(struct NetTxPkt **VAR_0, uint32_t VAR_1,
bool VAR_2)
{ struct NetTxPkt *VAR_3 = g_malloc0(sizeof *VAR_3); VAR_3->vec = g_malloc((sizeof *VAR_3->vec) *
(VAR_1 + NET_TX_PKT_PL_START_FRAG)); VAR_3->raw = g_malloc((sizeof *VAR_3->raw) * VAR_1); VAR_3->max_payload_frags = VAR_1; VAR_3->max_raw_frags = VAR_1; VAR_3->VAR_2 = VAR_2; VAR_3->vec[NET_TX_PKT_VHDR_FRAG].iov_base = &VAR_3->virt_hdr; VAR_3->vec[NET_TX_PKT_VHDR_FRAG].iov_len =
VAR_3->VAR_2 ? sizeof VAR_3->virt_hdr : 0; VAR_3->vec[NET_TX_PKT_L2HDR_FRAG].iov_base = &VAR_3->l2_hdr; VAR_3->vec[NET_TX_PKT_L3HDR_FRAG].iov_base = NULL; VAR_3->vec[NET_TX_PKT_L3HDR_FRAG].iov_len = 0; *VAR_0 = VAR_3; }