summaryrefslogtreecommitdiff
path: root/com32/include/syslinux
diff options
context:
space:
mode:
authorMatt Fleming <matt.fleming@intel.com>2012-11-15 11:54:16 +0000
committerMatt Fleming <matt.fleming@intel.com>2012-11-15 13:06:45 +0000
commitd87b69dccdf1a42942c277ca6b074a69b95d87c4 (patch)
tree625326f0c8ff1f32da05f962b0966fe8fd808106 /com32/include/syslinux
parent4b0851493dce7cb5a6ada6e525da0bda6f5048dd (diff)
downloadsyslinux-d87b69dccdf1a42942c277ca6b074a69b95d87c4.tar.gz
firmware: Move memory operations into firmware
Instead of littering core/mem with #ifdef SYSLINUX_EFI move memory operations into the 'firmware' structure so that they can be implemented differently for BIOS and EFI. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Diffstat (limited to 'com32/include/syslinux')
-rw-r--r--com32/include/syslinux/firmware.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/com32/include/syslinux/firmware.h b/com32/include/syslinux/firmware.h
index cfe3b8df..c2b5a44c 100644
--- a/com32/include/syslinux/firmware.h
+++ b/com32/include/syslinux/firmware.h
@@ -37,13 +37,20 @@ struct vesa_ops {
int (*font_query)(uint8_t **);
};
+enum heap;
+struct mem_ops {
+ void *(*malloc)(size_t, enum heap, size_t);
+ void *(*realloc)(void *, size_t);
+ void (*free)(void *);
+ int (*scan_memory)(scan_memory_callback_t, void *);
+};
+
struct disk_private;
struct initramfs;
struct setup_data;
struct firmware {
void (*init)(void);
- int (*scan_memory)(scan_memory_callback_t, void *);
void (*adjust_screen)(void);
void (*cleanup)(void);
struct disk *(*disk_init)(void *);
@@ -55,6 +62,7 @@ struct firmware {
int (*boot_linux)(void *, size_t, struct initramfs *,
struct setup_data *, char *);
struct vesa_ops *vesa;
+ struct mem_ops *mem;
};
extern struct firmware *firmware;