diff options
| author | Matt Fleming <matt.fleming@intel.com> | 2012-07-19 16:03:19 +0100 |
|---|---|---|
| committer | Matt Fleming <matt.fleming@intel.com> | 2012-07-19 16:07:01 +0100 |
| commit | 7cc3ba019aee913d09e7bf0b6711da2e1f6b2db4 (patch) | |
| tree | 944e4a5f9967abe993c47d66bf89b4e0ef8cfb07 /com32/include/syslinux | |
| parent | f351d07ddc7f1d7ed786d88f5725db20ef288439 (diff) | |
| parent | 0a0e0e41cad93cd16c323cf16f40264a21eedd6c (diff) | |
| download | syslinux-7cc3ba019aee913d09e7bf0b6711da2e1f6b2db4.tar.gz | |
Merge branch 'master' into elflink
The reason for this merge is that we need the fix to core/fs/cache.c
without which we can potentially dereference an invalid pointer.
The below conflict is a result of the new setup_data blob code being
merged from the master branch.
Conflicts:
com32/lib/Makefile
Diffstat (limited to 'com32/include/syslinux')
| -rw-r--r-- | com32/include/syslinux/linux.h | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/com32/include/syslinux/linux.h b/com32/include/syslinux/linux.h index 754d1b64..f5f95fb0 100644 --- a/com32/include/syslinux/linux.h +++ b/com32/include/syslinux/linux.h @@ -1,6 +1,7 @@ /* ----------------------------------------------------------------------- * * * Copyright 2007-2008 H. Peter Anvin - All Rights Reserved + * Copyright 2012 Intel Corporation; author: H. Peter Anvin * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation @@ -51,8 +52,26 @@ struct initramfs { }; #define INITRAMFS_MAX_ALIGN 4096 +struct setup_data_header { + uint64_t next; + uint32_t type; + uint32_t len; +} __packed; + +struct setup_data { + struct setup_data *prev, *next; + const void *data; + struct setup_data_header hdr; +}; + +#define SETUP_NONE 0 +#define SETUP_E820_EXT 1 +#define SETUP_DTB 2 + int syslinux_boot_linux(void *kernel_buf, size_t kernel_size, - struct initramfs *initramfs, char *cmdline); + struct initramfs *initramfs, + struct setup_data *setup_data, + char *cmdline); /* Initramfs manipulation functions */ @@ -70,4 +89,12 @@ int initramfs_load_file(struct initramfs *ihead, const char *src_filename, int initramfs_add_trailer(struct initramfs *ihead); int initramfs_load_archive(struct initramfs *ihead, const char *filename); +/* Setup data manipulation functions */ + +struct setup_data *setup_data_init(void); +int setup_data_add(struct setup_data *head, uint32_t type, + const void *data, size_t data_len); +int setup_data_load(struct setup_data *head, uint32_t type, + const char *filename); + #endif /* _SYSLINUX_LINUX_H */ |
