From 506980808d2f525e294cdd364b2b4e08276ab8d9 Mon Sep 17 00:00:00 2001 From: Jordan Crouse Date: Tue, 20 May 2008 20:09:42 +0000 Subject: libpayload: Add larfptr function Add a function to get a pointer to the start of a LAR entry. Signed-off-by: Jordan Crouse Acked-by: Myles Watson git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3337 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- payloads/libpayload/include/libpayload.h | 1 + payloads/libpayload/libc/lar.c | 10 ++++++++++ 2 files changed, 11 insertions(+) (limited to 'payloads/libpayload') diff --git a/payloads/libpayload/include/libpayload.h b/payloads/libpayload/include/libpayload.h index be4d2a7ba3..8535bd04fa 100644 --- a/payloads/libpayload/include/libpayload.h +++ b/payloads/libpayload/include/libpayload.h @@ -247,6 +247,7 @@ int closelar(struct LAR *lar); struct larent *readlar(struct LAR *lar); void rewindlar(struct LAR *lar); int larstat(struct LAR *lar, const char *path, struct larstat *buf); +void *larfptr(struct LAR *lar, const char *filename); struct LFILE * lfopen(struct LAR *lar, const char *filename); int lfread(void *ptr, size_t size, size_t nmemb, struct LFILE *stream); diff --git a/payloads/libpayload/libc/lar.c b/payloads/libpayload/libc/lar.c index 65b503d1c8..6ae4052039 100644 --- a/payloads/libpayload/libc/lar.c +++ b/payloads/libpayload/libc/lar.c @@ -218,6 +218,16 @@ int larstat(struct LAR *lar, const char *path, struct larstat *buf) return 0; } +void * larfptr(struct LAR *lar, const char *filename) +{ + struct lar_header *header = get_header_by_name(lar, filename); + + if (header == NULL) + return NULL; + + return (void *) ((u8 *) header + ntohl(header->offset)); +} + struct LFILE * lfopen(struct LAR *lar, const char *filename) { struct LFILE *file; -- cgit v1.2.3