From 3681542e242bc6170b5c98aaa52a6df9ad21cae3 Mon Sep 17 00:00:00 2001 From: inmarket Date: Fri, 27 Nov 2015 10:14:45 +1000 Subject: [PATCH] Fix doco --- src/gos/gos_x_heap.h | 42 ++++++++++++------------------------------ 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/src/gos/gos_x_heap.h b/src/gos/gos_x_heap.h index 3612989c..0fbfc905 100644 --- a/src/gos/gos_x_heap.h +++ b/src/gos/gos_x_heap.h @@ -5,38 +5,10 @@ * http://ugfx.org/license.html */ -/** - * The raw32 GOS implementation supports any 32 bit processor with or without an - * underlying operating system. It uses cooperative multi-tasking. Be careful - * when writing device drivers not to disturb the assumptions this creates by performing - * call-backs to uGFX code unless you define the INTERRUPTS_OFF() and INTERRUPTS_ON() macros. - * It still requires some C runtime library support... - * enough startup to initialise the stack, interrupts, static data etc and call main(). - * setjmp() and longjmp() - for threading - * memcpy() - for heap and threading - * malloc(), realloc and free() - if GFX_OS_HEAP_SIZE == 0 - * - * You must also define the following routines in your own code so that timing functions will work... - * systemticks_t gfxSystemTicks(void); - * systemticks_t gfxMillisecondsToTicks(delaytime_t ms); - */ #ifndef _GOS_X_HEAP_H #define _GOS_X_HEAP_H -#if GOS_NEED_X_HEAP - - -/*===========================================================================*/ -/* Special Macros */ -/*===========================================================================*/ - -/** - * @brief Set the maximum size of the heap. - * @note If set to 0 then the C runtime library malloc() and free() are used. - */ -#ifndef GFX_OS_HEAP_SIZE - #define GFX_OS_HEAP_SIZE 0 -#endif +#if GOS_NEED_X_HEAP || defined(__DOXYGEN__) /*===========================================================================*/ /* Type definitions */ @@ -46,7 +18,17 @@ extern "C" { #endif - #if GFX_OS_HEAP_SIZE != 0 + #if GFX_OS_HEAP_SIZE != 0 || defined(__DOXYGEN__) + /** + * @brief Take a chunk of memory and add it to the available heap + * @note Memory added must obviously not already be on the heap. + * @note It is allowable to add multiple non-contiguous blocks of memory + * to the heap. If however it is contiguous with a previously added block + * it will get merged with the existing block in order to allow + * allocations that span the boundary. + * @pre GFX_OS_HEAP_SIZE != 0 and an operating system that uses the + * internal ugfx heap allocator rather than its own allocator. + */ void gfxAddHeapBlock(void *ptr, size_t sz); #endif