Add romfile_name() function.
authorGleb Natapov <gleb@redhat.com>
Thu, 23 Dec 2010 09:29:39 +0000 (11:29 +0200)
committerKevin O'Connor <kevin@koconnor.net>
Fri, 24 Dec 2010 15:33:17 +0000 (10:33 -0500)
romfile_name() return file name given file handler. Works for qemu and
coreboot.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
src/paravirt.c
src/paravirt.h

index ca646d4366b57bc5bf8fd288558f33c2f9292857..308c809c3841bcbff3d9477ceba5bec0ba4fc845 100644 (file)
@@ -345,6 +345,14 @@ int qemu_cfg_size_file(u32 select)
     return ntohl(LastFile.size);
 }
 
+
+const char* qemu_cfg_name_file(u32 select)
+{
+    if (select != ntohs(LastFile.select))
+        return NULL;
+    return LastFile.name;
+}
+
 int qemu_cfg_read_file(u32 select, void *dst, u32 maxlen)
 {
     if (!qemu_cfg_present)
index 7d4bc026acb72172a62681d4681a18617bd5ad02..99c473b49b5af8f5d8f9abe96c6c5bc9bcbc85d0 100644 (file)
@@ -71,6 +71,7 @@ struct e820_reservation {
 u32 qemu_cfg_next_prefix_file(const char *prefix, u32 prevselect);
 u32 qemu_cfg_find_file(const char *name);
 int qemu_cfg_size_file(u32 select);
+const char* qemu_cfg_name_file(u32 select);
 int qemu_cfg_read_file(u32 select, void *dst, u32 maxlen);
 
 // Wrappers that select cbfs or qemu_cfg file interface.
@@ -94,6 +95,11 @@ static inline int romfile_copy(u32 fileid, void *dst, u32 maxlen) {
         return cbfs_copyfile((void*)fileid, dst, maxlen);
     return qemu_cfg_read_file(fileid, dst, maxlen);
 }
+static inline const char* romfile_name(u32 fileid) {
+    if (CONFIG_COREBOOT)
+        return cbfs_filename((void*)fileid);
+    return qemu_cfg_name_file(fileid);
+}
 
 u32 qemu_cfg_e820_entries(void);
 void* qemu_cfg_e820_load_next(void *addr);