From fc697ad028be74df40fde7eb3f18fc12d75a3d1d Mon Sep 17 00:00:00 2001 From: Jordan Crouse Date: Tue, 27 May 2008 20:06:54 +0000 Subject: libpayload: Add PAYLOAD_INFO macro Adds the PAYLOAD_INFO macro to store payload information in a data section in the ELF which can be consumed by other entities. Signed-off-by: Jordan Crouse Acked-by: Peter Stuge git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3354 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- payloads/libpayload/include/libpayload.h | 12 ++++++++++++ payloads/libpayload/lib/libpayload.ldscript | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'payloads') diff --git a/payloads/libpayload/include/libpayload.h b/payloads/libpayload/include/libpayload.h index c05aafb37c..dc2f5eec1b 100644 --- a/payloads/libpayload/include/libpayload.h +++ b/payloads/libpayload/include/libpayload.h @@ -55,6 +55,18 @@ #define RAND_MAX 0x7fffffff +/* Payload information parameters - these are used to pass information + * to the entity loading the payload + * Usage: PAYLOAD_INFO(key, value) + * Example: PAYLOAD_INFO(name, "CoreInfo!") + */ + +#define _pstruct(key) __pinfo_ ##key +#define PAYLOAD_INFO(key, value) \ +static const char _pstruct(key)[] \ + __attribute__((__used__)) \ + __attribute__((section(".note.pinfo"),unused)) = #key "=" value + /* Some NVRAM byte definitions */ #define NVRAM_RTC_SECONDS 0 #define NVRAM_RTC_MINUTES 2 diff --git a/payloads/libpayload/lib/libpayload.ldscript b/payloads/libpayload/lib/libpayload.ldscript index 7ae49e5808..400c1377a5 100644 --- a/payloads/libpayload/lib/libpayload.ldscript +++ b/payloads/libpayload/lib/libpayload.ldscript @@ -81,5 +81,5 @@ SECTIONS _end = .; - /DISCARD/ : { *(.comment) *(.note) *(.note.*) } + /DISCARD/ : { *(.comment) } } -- cgit v1.2.3