aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2015-11-27 10:14:45 +1000
committerinmarket <andrewh@inmarket.com.au>2015-11-27 10:14:45 +1000
commit3681542e242bc6170b5c98aaa52a6df9ad21cae3 (patch)
tree730c89537f0e9a0c3e55d1fed3ad9098d9ae977d /src
parent739b3b16993d2abee681b6070d5bb36b16b12444 (diff)
downloaduGFX-3681542e242bc6170b5c98aaa52a6df9ad21cae3.tar.gz
uGFX-3681542e242bc6170b5c98aaa52a6df9ad21cae3.tar.bz2
uGFX-3681542e242bc6170b5c98aaa52a6df9ad21cae3.zip
Fix doco
Diffstat (limited to 'src')
-rw-r--r--src/gos/gos_x_heap.h42
1 files 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