summaryrefslogtreecommitdiffstats
path: root/src/include/ipxe/malloc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/ipxe/malloc.h')
-rw-r--r--src/include/ipxe/malloc.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/include/ipxe/malloc.h b/src/include/ipxe/malloc.h
index a1b656c8..e8136a3c 100644
--- a/src/include/ipxe/malloc.h
+++ b/src/include/ipxe/malloc.h
@@ -18,6 +18,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
*
*/
#include <stdlib.h>
+#include <ipxe/tables.h>
extern size_t freemem;
@@ -56,4 +57,20 @@ static inline void free_dma ( void *ptr, size_t size ) {
free_memblock ( ptr, size );
}
+/** A cache discarder */
+struct cache_discarder {
+ /**
+ * Discard some cached data
+ *
+ * @ret discarded Number of cached items discarded
+ */
+ unsigned int ( * discard ) ( void );
+};
+
+/** Cache discarder table */
+#define CACHE_DISCARDERS __table ( struct cache_discarder, "cache_discarders" )
+
+/** Declare a cache discarder */
+#define __cache_discarder __table_entry ( CACHE_DISCARDERS, 01 )
+
#endif /* _IPXE_MALLOC_H */