/* ****************************************************************************** * INTERPEAK SOURCE FILE * * Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmipmn_pktbuf.c,v $ $Revision: 1.8 $ * $Source: /home/interpeak/CVSRoot/ipmipmn/config/ipmipmn_pktbuf.c,v $ * $Author: jhorteli $ * $State: Exp $ $Locker: $ * * INTERPEAK_COPYRIGHT_STRING * Design and implementation by Joel Hortelius ****************************************************************************** */ /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** */ /* **************************************************************************** * 2 CONFIGURATION **************************************************************************** */ #include "ipmipmn_config.h" /* **************************************************************************** * 3 INCLUDE FILES **************************************************************************** */ #define IPCOM_USE_CLIB_PROTO #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "ipmipmn_h.h" #include "ipmipmn_pktbuf.h" #include "ipmipmn_if.h" /* **************************************************************************** * 4 DEFINES **************************************************************************** */ /* **************************************************************************** * 5 TYPES **************************************************************************** */ /* **************************************************************************** * 6 EXTERN PROTOTYPES **************************************************************************** */ /* **************************************************************************** * 7 LOCAL PROTOTYPES **************************************************************************** */ /* **************************************************************************** * 8 DATA **************************************************************************** */ /* **************************************************************************** * 9 STATIC FUNCTIONS **************************************************************************** */ /* **************************************************************************** * 10 GLOBAL FUNCTIONS **************************************************************************** */ /* *=========================================================================== * ipmipmn_pktbuf_alloc *=========================================================================== * Description: Allocate a packet buffer * Parameters: * Returns: A newly allocated packet buffer * */ IP_GLOBAL Ipmip_pktbuf_t * ipmipmn_pktbuf_alloc(Ipmipmn_context_t *ctx, Ipmip_proc_t *proc, Ip_size_t extra) { Ipmipmn_pktbuf_t *pbuf = ipcom_calloc(1, sizeof(Ipmipmn_pktbuf_t) + extra); IPMIP_UNUSED_PARAMETER(ctx); IPMIP_UNUSED_PARAMETER(proc); if (pbuf) { pbuf->api.ipmip4.ipmip.pktend = (void *) (pbuf + 1); return &pbuf->api.ipmip4.ipmip; } /* Return a Ipmipha_pktbuf_t */ return IP_NULL; } /* *=========================================================================== * ipmipmn_pktbuf_free *=========================================================================== * Description: Free a packet buffer * Parameters: pbuf - The packet buffer * Returns: * */ IP_GLOBAL void ipmipmn_pktbuf_free(Ipmipmn_context_t *ctx, Ipmip_proc_t *proc, Ipmipmn_pktbuf_t *pbuf) { ipmipmn_api_pktbuf_free(&ctx->api, proc, &pbuf->api); if (pbuf->api.iff.priv != IP_NULL) ipmipmn_if_release(ctx, proc, pbuf->api.iff.priv, IP_NULL); /* Free the data */ ipcom_free(pbuf); } /* **************************************************************************** * 11 PUBLIC FUNCTIONS **************************************************************************** */ /* **************************************************************************** * END OF FILE **************************************************************************** */