libpayload: Add larfptr function
authorJordan Crouse <jordan.crouse@amd.com>
Tue, 20 May 2008 20:09:42 +0000 (20:09 +0000)
committerJordan Crouse <jordan.crouse@amd.com>
Tue, 20 May 2008 20:09:42 +0000 (20:09 +0000)
Add a function to get a pointer to the start of a LAR entry.

Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>
Acked-by: Myles Watson <mylesgw@gmail.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3337 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

payloads/libpayload/include/libpayload.h
payloads/libpayload/libc/lar.c

index be4d2a7ba3ba883fc202398852a2ea63b1f67801..8535bd04fa74abfe7564da39abdded9c0439f5e2 100644 (file)
@@ -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);
 
index 65b503d1c82d312f041ccdd37592314d1632d12d..6ae40520393fd4c828ff66f881d4a52a4a76fd38 100644 (file)
@@ -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;