Cleanups for malloc code.
[seabios.git] / src / util.h
index b8d82332173d967dd2636c37ae0019f0f74350a0..a8f75a3caee18f063be507290d311b6b60f4d0cf 100644 (file)
@@ -252,14 +252,27 @@ u16 get_pnp_offset();
 void pnp_setup();
 
 // pmm.c
-void *malloc_high(u32 size);
-void *malloc_fseg(u32 size);
+extern struct zone_s ZoneLow, ZoneHigh, ZoneFSeg, ZoneTmpLow, ZoneTmpHigh;
+void *zone_malloc(struct zone_s *zone, u32 size, u32 align);
 void malloc_setup();
 void malloc_finalize();
 void pmm_setup();
 void pmm_finalize();
 // Minimum alignment of malloc'd memory
 #define MALLOC_MIN_ALIGN 16
+// Helper functions for memory allocation.
+static inline void *malloc_high(u32 size) {
+    return zone_malloc(&ZoneHigh, size, MALLOC_MIN_ALIGN);
+}
+static inline void *malloc_fseg(u32 size) {
+    return zone_malloc(&ZoneFSeg, size, MALLOC_MIN_ALIGN);
+}
+static inline void *memalign_tmphigh(u32 align, u32 size) {
+    return zone_malloc(&ZoneTmpHigh, size, align);
+}
+static inline void *memalign_high(u32 align, u32 size) {
+    return zone_malloc(&ZoneHigh, size, align);
+}
 
 // mtrr.c
 void mtrr_setup(void);