Frame buffers management implementation.
Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include "sysConfig.h"
#include "nwk.h"
#include "nwkFrame.h"
Enumerations | |
enum | { NWK_FRAME_STATE_FREE = 0x00 } |
Functions | |
NwkFrame_t * | nwkFrameAlloc (void) |
Allocates an empty frame from the buffer pool. More... | |
void | nwkFrameCommandInit (NwkFrame_t *frame) |
Sets default parameters for the the command frame. More... | |
void | nwkFrameFree (NwkFrame_t *frame) |
Frees a frame and returns it to the buffer pool. More... | |
void | nwkFrameInit (void) |
Initializes the Frame module. More... | |
NwkFrame_t * | nwkFrameNext (NwkFrame_t *frame) |
Cycles through the allocated frames starting from the specified frame. More... | |
Variables | |
static NwkFrame_t | nwkFrameFrames [NWK_BUFFERS_AMOUNT] |
NwkFrame_t* nwkFrameAlloc | ( | void | ) |
Allocates an empty frame from the buffer pool.
NULL
if there are no free frames References NwkFrame_t::data, NwkIb_t::lock, NWK_BUFFERS_AMOUNT, NWK_FRAME_STATE_FREE, nwkIb, NwkFrame_t::payload, NwkFrame_t::size, and NWK_DataReq_t::state.
Referenced by nwkDataReqSendFrame(), nwkRxSendAck(), nwkTxBroadcastFrame(), and PHY_DataInd().
void nwkFrameCommandInit | ( | NwkFrame_t * | frame | ) |
Sets default parameters for the the command frame.
[in] | frame | Pointer to the command frame |
References NwkIb_t::addr, NwkFrame_t::header, NWK_SUCCESS_STATUS, NwkFrameHeader_t::nwkFcf, nwkIb, NwkFrameHeader_t::nwkSeq, NwkIb_t::nwkSeqNum, NwkFrameHeader_t::nwkSrcAddr, NwkFrameHeader_t::security, and NwkFrame_t::tx.
Referenced by nwkRxSendAck().
void nwkFrameFree | ( | NwkFrame_t * | frame | ) |
Frees a frame and returns it to the buffer pool.
[in] | frame | Pointer to the frame to be freed |
References NwkIb_t::lock, NWK_FRAME_STATE_FREE, nwkIb, and NwkFrame_t::state.
Referenced by nwkDataReqTxConf(), nwkRxTaskHandler(), and nwkTxTaskHandler().
void nwkFrameInit | ( | void | ) |
Initializes the Frame module.
References NWK_BUFFERS_AMOUNT, NWK_FRAME_STATE_FREE, and NwkFrame_t::state.
Referenced by NWK_Init().
NwkFrame_t* nwkFrameNext | ( | NwkFrame_t * | frame | ) |
Cycles through the allocated frames starting from the specified frame.
[in] | frame | Pointer to the current frame or NULL for the first frame |
NULL
if there are no more frames References NWK_DataReq_t::frame, NWK_BUFFERS_AMOUNT, NWK_FRAME_STATE_FREE, nwkFrameFrames, and NwkFrame_t::state.
Referenced by nwkRxTaskHandler(), nwkTxAckReceived(), nwkTxAckWaitTimerHandler(), nwkTxDelayTimerHandler(), and nwkTxTaskHandler().
|
static |
Referenced by nwkFrameNext().