Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
Buffer.cxx File Reference
#include "utils/Buffer.hxx"
#include "utils/ByteBuffer.hxx"

Go to the source code of this file.

Functions

Poolinit_main_buffer_pool ()
 Initializes the main buffer pool.
 
void * buffer_malloc (size_t length)
 malloc implementation used for allocating buffer space.
 

Variables

DynamicPoolmainBufferPool = nullptr
 main buffer pool instance
 
PoolrawBufferPool = nullptr
 Use this BufferPool to allocate raw buffers.
 

Detailed Description

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 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 distribution.

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 HOLDER 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.

Implementation of non-templated functions of buffers and pools.

Author
Stuart W. Baker
Date
3 August 2013

Definition in file Buffer.cxx.

Function Documentation

◆ buffer_malloc()

void * buffer_malloc ( size_t  length)
extern

malloc implementation used for allocating buffer space.

Override the weak definition if the buffer space should be allocated from some other place than the heap. Useful for MCUs with multiple memory banks.

Parameters
lengthhow much memory to allocate (in bytes)
Returns
pointer to allcoated memory

malloc implementation used for allocating buffer space.

Overrides the (weak) definition to put it to a separate RAM segment and leave more heap space free.

Parameters
sizein bytes, how large chunk we should allocate.
Returns
a newly allocated buffer. Cannot be freed.

Definition at line 114 of file freertos_drivers/nxp/stack_malloc.c.

◆ init_main_buffer_pool()

Pool * init_main_buffer_pool ( )

Initializes the main buffer pool.

The first call is not thread safe, later calls are noops. It is recommended to call this one or more times from the static initialization.

Returns
the mainBufferPool instance.

Definition at line 40 of file Buffer.cxx.

Variable Documentation

◆ mainBufferPool

DynamicPool* mainBufferPool = nullptr

main buffer pool instance

Definition at line 37 of file Buffer.cxx.

◆ rawBufferPool

Pool* rawBufferPool = nullptr

Use this BufferPool to allocate raw buffers.

Definition at line 38 of file Buffer.cxx.