[malloc] Add cache discard mechanism
[people/meteger/gpxe.git] / src / include / gpxe / malloc.h
index c02a866..4987905 100644 (file)
@@ -18,6 +18,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
  *
  */
 #include <stdlib.h>
+#include <gpxe/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 /* _GPXE_MALLOC_H */